当前位置: 首页 > news >正文

MacPorts 中安装高/低版本软件方式,以 RabbitMQ 为例

查询信息

这里以 RabbitMQ 为例,通过搜索得到默认安装版本信息:

port search rabbitmq-server

结果

~/Downloads> port search rabbitmq-server
rabbitmq-server @3.11.15 (net)The RabbitMQ AMQP Server
~/Downloads>

获取二进制文件

但当前官网已更新到 4.x 版本,例如我们需要安装 4.0.4 版本,首先去到 RabbitMQ 的 GitHub release 页:https://github.com/rabbitmq/rabbitmq-server/releases

下载 rabbitmq-server-generic-unix-4.0.4.tar.xz 文件,以便获取相关指纹进行替换

修改 Portfile

所在目录

在查询结果中我们注意到 rabbitmq-server @3.11.15 (net),括号内是 net

而 MacPorts 对应的软件相关 Portfile 存储于 /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports

因为 RabbitMQ 属于 net,这里我们还需要进入 net 目录才能找到 rabbitmq-server

所以其最终对应的路径为 /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/net/rabbitmq-server

获取 rmd160、sha256 和文件大小

sha256 非常好获取,在文件所在目录直接运行即可

$ sha256 ./rabbitmq-server-generic-unix-4.0.4.tar.xzSHA256 (./rabbitmq-server-generic-unix-4.0.4.tar.xz) = b024b75935bc9b30597b3ea5c5d3846b8a8f887e0f1d5703f00974ea481342f3

而 rmd160 则需要利用 openssl 命令(如果没有可以先通过 port 安装):

$ openssl dgst -rmd160 ./rabbitmq-server-generic-unix-4.0.4.tar.xzRIPEMD-160(./rabbitmq-server-generic-unix-4.0.4.tar.xz)= 90dd6e7a4ce6a34cd3ec0af62995cdecc5812b4e

文件大小直接通过 ls -l 命令即可:

$ ls -l ./rabbitmq-server-generic-unix-4.0.4.tar.xz-rw-r--r--@ 1 maxsky  staff  16236548 12 18 14:43 ./rabbitmq-server-generic-unix-4.0.4.tar.xz

其中 16236548 就是文件字节大小

替换对应内容

原内容

github.setup        rabbitmq rabbitmq-server 3.11.15 vchecksums           rmd160  c30a5ee11a501b8a271bda39f92dd8125230f4c6 \sha256  538be3c85e8cad10de62705714f71eaacb04339f73a81477c91478600bb8253c \size    20897748

将原内容中的版本号以及两个指纹值修改保存即可

github.setup        rabbitmq rabbitmq-server 4.0.4 vchecksums           rmd160  90dd6e7a4ce6a34cd3ec0af62995cdecc5812b4e \sha256  b024b75935bc9b30597b3ea5c5d3846b8a8f887e0f1d5703f00974ea481342f3 \size    16236548

执行安装/更新

低版本升级直接运行 upgrade,安装就直接 install

sudo port upgrade rabbitmq-server
http://www.lryc.cn/news/507954.html

相关文章:

  • CVPR2024 | 通过集成渐近正态分布学习实现强可迁移对抗攻击
  • 建投数据与腾讯云数据库TDSQL完成产品兼容性互认证
  • 群晖利用acme.sh自动申请证书并且自动重载证书的问题解决
  • 质量小议51 - 茧房
  • 【C++图论】2359. 找到离给定两个节点最近的节点|1714
  • 重拾设计模式-外观模式和适配器模式的异同
  • 51c自动驾驶~合集42
  • 34 Opencv 自定义角点检测
  • 信创技术栈发展现状与展望:机遇与挑战并存
  • 跟我学c++中级篇——C++中的缓存利用
  • 二叉树_堆
  • word文档中有大量空白行删除不掉,怎么办?
  • python rabbitmq实现简单/持久/广播/组播/topic/rpc消息异步发送可配置Django
  • 构建高性能异步任务引擎:FastAPI + Celery + Redis
  • 永磁同步电机无速度算法--全阶滑模观测器
  • 部署开源大模型的硬件配置全面指南
  • 三、使用langchain搭建RAG:金融问答机器人--检索增强生成
  • Day13 用Excel表体验梯度下降法
  • 计算机组成原理的学习笔记(5)--数据的表示与运算·其四 浮点数的储存和加减/内存对齐/大端小端
  • 华为IPD流程6大阶段370个流程活动详解_第二阶段:计划阶段 — 86个活动
  • 如何使用 Flask 框架创建简单的 Web 应用?
  • 将Minio设置为Django的默认Storage(django-storages)
  • sed | 一些关于 sed 的笔记
  • wtforms+flask_sqlalchemy在flask-admin视图下实现日期的修改与更新
  • AI的进阶之路:从机器学习到深度学习的演变(三)
  • thinkphp 多选框
  • 机器学习《西瓜书》学习笔记《待续》
  • STM32HAL I2C函数
  • 洛谷 P1644 跳马问题 C语言
  • 每天40分玩转Django:实操在线商城