Command ‘deb‘ not found, rabbitMQ官方文档在ubuntu安装

在Ubuntu 20.04 LTS上安装rabbitMQ时,根据官方文档操作出现Command 'deb' not found错误。原因是需要添加Cloudsmith源并使用tee命令交互式地更新sources.list.d/rabbitmq.list文件。解决方案是正确输入命令,将bionic替换为对应Ubuntu版本的代号focal,并理解tee命令的交互模式。完成这些步骤后,通过apt安装erlang和rabbitMQ-server。

系统环境: ubuntu 20.04 LTS, 今天安装rabbitMQ的时候,照着官方文档一步步操作,

#!/usr/bin/sh

sudo apt-get install curl gnupg apt-transport-https -y

## Team RabbitMQ's main signing key
curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null
## Cloudsmith: modern Erlang repository
curl -1sLf https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg > /dev/null
## Cloudsmith: RabbitMQ repository
curl -1sLf https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/gpg.9F4587F226208342.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg > /dev/null

## Add apt repositories maintained by Team RabbitMQ
sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF
## Provides modern Erlang/OTP releases
##
deb [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/ubuntu bionic main
deb-src [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/ubuntu bionic main

## Provides RabbitMQ
##
deb [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/ubuntu bionic main
deb-src [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/ubuntu bionic main
EOF

## Update package indices
sudo apt-get update -y

## Install Erlang packages
sudo apt-get install -y erlang-base \
                        erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \
                        erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \
                        erlang-runtime-tools erlang-snmp erlang-ssl \
                        erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl

## Install rabbitmq-server and its dependencies
sudo apt-get install rabbitmq-server -y --fix-missing

官方文档在这个脚本的下面有解释,基本原理就是ubuntu的apt库里的rabbitMQ和erlang库可能是过时的,rabbitMQ团队维护的apt库在 Cloudsmith, 所以要通过apt安装的话,需要添加这个源。

sudo apt-get install curl gnupg apt-transport-https -y

这句是安装工具,curl是访问网络url的, gnupg是验证签名的,也可以加解密, apt-transport-https这个是为了使用Cloudsmith这个源必须安装的工具。

## Team RabbitMQ's main signing key
curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null
## Cloudsmith: modern Erlang repository
curl -1sLf https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg > /dev/null
## Cloudsmith: RabbitMQ repository
curl -1sLf https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/gpg.9F4587F226208342.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg > /dev/null

上面这个是获取RabbitMQ的签名key的,可以验证下载的文件的安全性,保证没有被篡改

## Add apt repositories maintained by Team RabbitMQ
sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF

就是执行到这条语句的时候,懵逼了, 出现一个>符号,按回车也不好使,后来按ctrl+c退出了,接着执行下面的语句

deb [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/ubuntu bionic main

接着就报那个错误了,Command 'deb' not found

百度搜索也没搜出个结果,用sudo apt-get install deb也不行,这几把啥意思。

后来整明白了,还是linux命令掌握不够啊,上面的那条命令

sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF

tee 是获取终端输入,然后保存进一个文件,也就是上面的 /etc/apt/sources.list.d/rabbitmq.list,当执行这条语句的时候,出现的 > 符号,就是进入了交互模式,之后输入的内容会保存进这个文件,当输入EOF的时候,会结束交互模式,完成写入,所以后面的

deb [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/ubuntu bionic main
deb-src [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.E495BB49CC4BBE5B.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/ubuntu bionic main

## Provides RabbitMQ
##
deb [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/ubuntu bionic main
deb-src [signed-by=/usr/share/keyrings/io.cloudsmith.rabbitmq.9F4587F226208342.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/ubuntu bionic main
EOF

是应该在出现交互模式的时候输入的,然后会写到那个文件里去, deb 是在那个文件里执行的命令,不是终端执行的命令

还有上面标红的 bionic 是 ubuntu 系统的代号, bionic 是 18.04, 我的是20.04,所以需要替换成20.04的代号 focal

执行完这段,如果执行命令

vim /etc/apt/sources.list.d/rabbitmq.list

会看到输入的内容已经存进文件了。

之后接着执行后面的命令就行,速度稍微有点慢,大概花了一二十分钟吧,erlang和rabbitmq-server都装完了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值