AUR 软件包依赖项更新问题解决

Arch Linux / Manjaro 系统的包管理系统有两个特点:1. 滚动更新,软件总是紧跟最新发布版本,更新频率高;2. 用户软件仓库(Arch User Repository,AUR)提供大量额外软件包。这两个特点是我喜欢 Arch/Manjaro 的重要原因,不过有时也会带来一些苦恼,其中之一便是依赖项更新导致的 AUR 包失效问题。

由于 AUR 包是通过下载源码后本地编译安装的,如果其依赖项被更新,就会出现找不到依赖项的问题。比如 ros-noetic-desktop-full 包本身非常庞大,组件很多,而且依赖项也多,最近一次更新系统(python 从 3.8 更新到 3.9)后,就各种找不到 rospkg、catkin_pkg。在网上找了很久终于找到比较好的解决办法,总结下来就是:

  1. 借助 rebuild-detector 工具 (AUR 安装) 查询系统中由于依赖项失效而需要重新构建的包,其 -v 参数可以查看依赖项失效的详细信息;
  2. 在 yay 中加入 --rebuildtree 开关来强制重新编译全部关联的 AUR 包,比如当 ros 依赖项失效时,可以用 yay -Syu ros-noetic-desktop-full --rebuildtree 命令强制重新编译 ros 全部组件。

另外有个关于 yay 的小技巧:当安装的包需要很长的编译时间(比如 ros)时,编译后安装前输密码的阶段很容易因为等待超时而错过,导致安装失败,给 yay 加上 --sudoloop 则可以避免这一情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值