Ubuntu 20.04.6 LTS中RabbitMQ更新报错(i386包404)的源URL调整方案咨询
Ubuntu 20.04.6 LTS中RabbitMQ更新报错(i386包404)的源URL调整方案咨询
嘿,我之前碰到过一模一样的问题,给你几个实用的解决思路:
问题根源
虽然你检查源配置时没看到明确的i386相关URL,但APT默认可能开启了多架构支持——它会自动尝试拉取所有已启用架构的包,而RabbitMQ的Erlang源确实从未提供过32位(i386)的Debian包,所以才会出现404错误。
具体解决步骤
检查当前启用的架构
先确认你的系统是否开启了i386架构支持,运行以下命令:dpkg --print-foreign-architectures如果输出包含
i386,说明系统确实在尝试拉取32位包。方案1:移除不需要的i386架构
如果你完全不需要32位软件,可以直接移除i386架构支持:sudo dpkg --remove-architecture i386 sudo apt update执行后再更新,应该就不会再出现i386包的404报错了。
方案2:保留i386架构,限制源仅拉取amd64包
如果你需要保留i386架构(比如有其他32位软件依赖),可以修改RabbitMQ的源配置,指定仅拉取64位(amd64)包:- 编辑RabbitMQ的源文件:
sudo nano /etc/apt/sources.list.d/rabbitmq.list - 在每个
deb和deb-src行的括号内添加arch=amd64参数,修改后的内容类似:deb [arch=amd64 signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu focal main deb-src [arch=amd64 signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa1.novemberain.com/rabbitmq/rabbitmq-erlang/deb/ubuntu focal main - 同样,如果你有rabbitmq-server的源配置(报错信息里提到了这个源),也要做相同的修改,确保每个源条目都加上架构限制。
- 保存退出后,运行
sudo apt update验证效果。
- 编辑RabbitMQ的源文件:
补充说明
你看不到源配置里有i386的URL,是因为APT会自动根据当前启用的架构,在源地址后拼接对应的架构路径(比如binary-i386),所以只要给源加上架构限制,就能阻止它去请求不存在的32位包路径啦。
备注:内容来源于stack exchange,提问作者kykywei
相关产品推荐
相关产品推荐

