使用homebrew安装RabbitMQ3.12.XX版本无法启动的解决方案

news2024/10/6 8:35:26

使用brew安装RabbitMQ3.12.XX版本遇到无法启动的天坑

首先来看RabbitMQ 3.12.0的新版说明,这也是我为什么无法启动的原因

所需的功能标志

RabbitMQ 3.12.0 将要求在升级前启用 3.11.x 系列版本的所有功能标志、
类似于 3.11.0 要求在 3.9.0 之前引入的所有功能标志的方式。

如果未启用功能标志,RabbitMQ 3.12 及以后的节点将拒绝启动。

而这就需要先安装历史版本的RabbitMQ进行功能标志的开启,之后可以再选择升级到最新版mq,这样就可以解决,但问题是我搜遍了百度,也没能找到使用homebrew安装历史版本mq的方法,而在mac上如不使用homebrew安装,那过程是相当的复杂,且过程中报错一个挨着一个。。。

最后在一点点科技的加持之下,最终在谷歌搜索到了homebrew安装历史版本的方法。

背景

在 macos下, 大部分的软件都是使用 homebrew 进行管理的, 可以方便的进行软件的安装,更新,删除等等, 大部分情况下 homebrew 的仓库只会存在一份最新的软件版本, 有时可能也会同时存在多个版本, 比如 python 就会有多个.

在有些情况下我们可能需要安装某些软件的历史版本, 接下来提供几种方式实现.

Homebrew 术语说明

  • Formula ( 配方 )

主要使用 ruby 文件描述的软件信息, 包含软件基本信息, 依赖, 编译等等. 如 /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/foo.rb

  • Tap ( 酒吧 )

所有 Formula 或命令的 Git 仓库, 比如: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core 对应 https://github.com/Homebrew/homebrew-core 仓库.
我们平时使用 brew update 就是使用同步 Tap 对应分支的更新. 使用 brew install formula 也是从所有的 tap 中查找formula 安装.

  • Bottle ( 酒瓶 )

基于对应操作系统已编译好的二进制包, 可以直接使用, 在 rb 文件中会描述各个版本的二进制. 使用二进制包可以省去自己编译. 如: qt-4.8.4.catalina.bottle.tar.gz

  • Cask ( 木酒桶 )

用于描述和安装 macOs 原生 app 软件, 使用 brew cask 安装就和使用 dmg 安装到 Applications 一样的效果.

  • Keg ( 小桶 )

描述的是一个已安装的软件版本路径, 如: /usr/local/Cellar/foo/0.1

  • Cellar ( 酒窖 )

所有已安装软件的存储仓库路径, 如: /usr/local/Cellar

理解上面的一些概念后, 其实要安装历史版本的话, 我们只需要拿到历史版本的 formula 就可以安装了.

历史版本安装

前面说过, 有的软件在 homebrew 的仓库会存在多个版本, 我们可以直接指定相应的版本进行安装, 我们可以使用 brew search 查询下要安装的软件的版本.

➜  brew search python

# output
==> Formulae
ipython                           python-markdown                   python@3.11 ✔     
micropython                       python-tabulate                   python@3.7
pr0d1r2/python2/python@2.7.17 ✔   python-tk@3.10                    python@3.8 ✔
ptpython                          python-tk@3.11                    python@3.9 ✔
-----------------------------------

如上有很多 python 的其它版本, 如: python@3.7, python@3.8 等. 我们使用 brew install 指定版本安装.

➜ brew install python@3.7

# output
Running `brew update --auto-update`...

无多版本软件
对于 tap 中无多版本的软件, 我们可以通过在 tap 对应的 git 仓库中查看历史 formula 版本, 通过下载到本地进行安装.

先通过 https://formulae.brew.sh/ 找到软件信息, 如我需要找到 folly 的历史版本, 可按照下面的步骤.

使用brew安装历史版本的几种方式_macos

历史版本的 .rb 文件保存到本地之后, 可以使用 brew install 安装. 如:

# 在 .rb 文件保存的目录执行
# 需要先删除原始版本的链接再进行安装
brew unlink folly
brew install folly.rb

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/695094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android SDK file not found: F:\androidSDK\build-tools\34.0.0\aapt

问题表现 执行flutter doctor 的时候,报错Android SDK file not found,很明确的说没有配置 30.0.3 问题解决 首先去报错的SDK路径中排查是否有这个版本。发现有,但是是个空文件夹,所以删除掉该文件夹重新运行 flutter doctor &a…

【大语言模型】5分钟了解预训练、微调和上下文学习

5分钟了解预训练、微调和上下文学习 什么是预训练?什么是微调?什么是上下文学习?相关资料 近年来大语言模型在自然语言理解和生成方面、多模态学习等方面取得了显著进展。这些模型通过 预训练、 微调和 上下文学习的组合来学习。本文将快速…

JWT数字签名与token实现

JWT介绍 官方介绍 JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。 什么时候你应该用JSON Web Token &#xf…

python爬虫—selenium获取csdn质量分并用echarts可视化分析

文章目录 ⭐前言⭐selenium💖 获取所有的文章url💖 根据url查询分数💖 inscode结合echarts展示结束 ⭐前言 大家好,我是yma16,本文分享关于python自动化获取个人博客质量分并可视化。 该系列文章: python爬…

MATLAB App Designer基础教程 Matlab GUI入门(一)

MATLAB GUI入门 第一天 学习传送门: 【MATLAB App Designer基础教程Matlab GUI界面设计(全集更新完毕-用户界面设计appdesigner(中文)Matlab Gui教程】 https://www.bilibili.com/video/BV16f4y147x9/?p2&share_sourcecopy_…

音视频解码流程解析

文章目录 1.音视频解码过程2.FFmpeg解音视频流程3.关键函数说明 1.音视频解码过程 2.FFmpeg解音视频流程 3.关键函数说明 avcodec_find_decoder:根据指定AVCodecID查找注册的解码器av_parser_init:初始化AVCodecParserContextavcodec_alloc_context3:创建AVCodecContext上下文…

同行共建,引领潮流,我来说说亚马逊云科技的中国新举措

亚马逊云科技全面阐述生成式AI新机遇,宣布多项举措助力企业加速创新、可持续发展。 【全球云观察 | 热点关注】当前,全球公有云整体规模已经发展到足够大了,来自专业分析机构的数据统计显示,包括了laaS、PaaS、SaaS在内…

gitlab集成kubernetes

gitlab集成kubernetes 1. 管理员通过服务模板添加Kubernetes集群,是生效所有项目 2. 群组中也可以添加Kubernetes集群,优先于管理员添加的全局集群 3. 链接现有集群 4. 配置集群信息 http://178.119.31.180/help/user/project/clusters/add_existing_cl…

uniapp中环状进度条

调用插件&#xff1a; <circle-progress-bar :pro"84/100" :border_back_color"#297DFE" :border_color"#FB8F23">{{84}}%</circle-progress-bar>添加插件引用&#xff1a; <script>import CircleProgressBar from ../../com…

QT桌面挂件动画

目录 参考功能实现05DesktopPattern.promain.cppdesktoppattern.hdesktoppattern.cppwallpaper.hwallpaper.cpp 效果模糊知识点 参考 图片资源 功能 桌面挂件动画置顶切换挂件动画图片选择更换桌面壁纸显示时改变桌面壁纸&#xff0c;隐藏/退出时还原桌面壁纸系统托盘菜单&a…

R语言复现一篇6分的孟德尔随机化文章

上一期我们对孟德尔随机化做了一个简单的介绍&#xff0c;今天我们来复现一篇6分左右的使用了孟德尔随机化方法的文章&#xff0c;文章的题目是&#xff1a;Mendelian randomization analysis does not reveal a causal influence of mental diseases on osteoporosis&#xff…

Angular 与 PDF之五 实现方式的选择与扩展

在纯web的前提下&#xff08;不考虑移动端native&#xff09;&#xff0c;PDF的功能基本包括&#xff1a; 客户端PDF&#xff1a;最简单的场景&#xff0c;实现方式也很多&#xff0c;基本不需要有什么顾虑的地方&#xff0c;简单的实现可以参考系列第一篇文章。客户端PDF预览&…

【NM 2019】综述:基于机器学习引导的定向进化蛋白质工程

Machine-learning-guided directed evolution for protein engineering | Nature Methods Machine-learning-guided directed evolution for protein engineering 机器学习引导的定向进化蛋白质工程 图1 | 带和不带机器学习的定向进化。 a&#xff09;定向进化利用迭代循环的…

MySQL数据库---笔记5

MySQL数据库---笔记5 一、锁1.1、介绍1.2、全局锁1.2.1、全局锁介绍1.2.2、一致性数据备份 1.3、表级锁1.3.1、表锁1.3.2、元数据锁&#xff08;meta data lock , MDL&#xff09;1.3.3、意向锁 1.4、行级锁1.4.1、介绍1.4.2、行锁1.4.3、间隙锁/临建锁 二、InnoDB引擎2.1、逻辑…

vue和node使用websocket实现数据推送,实时聊天

需求&#xff1a;node做后端根据websocket&#xff0c;连接数据库&#xff0c;数据库的字段改变后&#xff0c;前端不用刷新页面也能更新到数据&#xff0c;前端也可以发送消息给后端&#xff0c;后端接受后把前端消息做处理再推送给前端展示 1.初始化node&#xff0c;生成pac…

STM32杂记之单片机复位状态

参考源码 概况 复位后&#xff0c;器件从内部高速振荡器 &#xff08;HSI 8MHz&#xff09; 运行&#xff0c;FLASH 0 等待状态&#xff0c;FLASH预取缓冲区使能&#xff0c;除内部 SRAM、FLASH和 JTAG 外&#xff0c;所有外设均关闭。高速 &#xff08;AHB&#xff09; 和低…

LLaMA模型微调版本:斯坦福 Alpaca 详解

项目代码&#xff1a;https://github.com/tatsu-lab/stanford_alpaca 博客介绍&#xff1a;https://crfm.stanford.edu/2023/03/13/alpaca.html Alpaca 总览 Alpaca 是 LLaMA-7B 的微调版本&#xff0c;使用Self-instruct[2]方式借用text-davinct-003构建了52K的数据&#x…

三相一次重合闸程序逻辑原理(二)

在手动合闸至故障线路或手动分闸及保护或自动装置要求不允许重合闸&#xff08;如母线、变压器保护及低频减载动作&#xff09;等情况下&#xff0c;闭锁重合闸的输入开关量触点接通&#xff0c;H4输出“1”&#xff0c;非门Z4输出“0”&#xff0c;计数器清零&#xff08;CD0&…

健身戴哪种耳机好、适合健身运动的耳机推荐

随着越来越多的人加入运动健身的行列&#xff0c;市场上涌现出越来越多适用于跑步的运动耳机。对于喜欢运动的朋友们来说&#xff0c;一副优秀的运动耳机成为了必不可少的装备。当进行力量训练时&#xff0c;佩戴耳机可以帮助提升训练的专注度&#xff1b;而在进行有氧运动时&a…

部署 kubeadm 1.20

目录 一、环境准备二、所有节点安装docker三、所有节点安装kubeadm&#xff0c;kubelet和kubectl四、部署K8S集群 硬件准备 master&#xff08;2C/4G&#xff0c;cpu核心数要求大于2&#xff09; 192.168.154.10 docker、kubeadm、kubelet、kubectl、flannel node01&#xff08…