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

发布于:2024-12-19 ⋅ 阅读:(64) ⋅ 点赞:(0)

查询信息

这里以 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.xz

SHA256 (./rabbitmq-server-generic-unix-4.0.4.tar.xz) = b024b75935bc9b30597b3ea5c5d3846b8a8f887e0f1d5703f00974ea481342f3

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

$ openssl dgst -rmd160 ./rabbitmq-server-generic-unix-4.0.4.tar.xz

RIPEMD-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 v

checksums           rmd160  c30a5ee11a501b8a271bda39f92dd8125230f4c6 \
                    sha256  538be3c85e8cad10de62705714f71eaacb04339f73a81477c91478600bb8253c \
                    size    20897748

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

github.setup        rabbitmq rabbitmq-server 4.0.4 v

checksums           rmd160  90dd6e7a4ce6a34cd3ec0af62995cdecc5812b4e \
                    sha256  b024b75935bc9b30597b3ea5c5d3846b8a8f887e0f1d5703f00974ea481342f3 \
                    size    16236548

执行安装/更新

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

sudo port upgrade rabbitmq-server