想要分享以下问题+解决方案,因为我花了更长的时间来解决这个问题,并希望它可以节省您在这篇文章中遇到的时间:
我正在使用 Manjaro 并安装以下三种不同类型的软件包:
- 软件包位于主存储库中,我可以通过以下方式安装它们
pacman -S
- 软件包仅存在于 AUR(Arch Linux 用户存储库)中,并且是二进制格式,可以通过以下方式安装
pamac build
- 仅在 AUR(Arch Linux 用户存储库)中并且必须通过以下方式自编译的软件包(例如 *-git 软件包)
pamac build
现在我遇到了以下两个问题:
- 二进制软件包
pamac build
从未通过运行更新pacman -Syyu
- 自编译的包
pamac build
从未更新过运行pacman -Syyu
答案1
因此,第一个问题已经解决,将以下两行添加到我的更新脚本中:
pamac checkupdates -a
pamac upgrade -a
哪里-a
代表尿素尿率
我在我的脚本中使用此命令已经很长时间了,它一直运行良好,我认为我已经完成了,因为现在通过 pacman 安装的所有软件包都已通过以上命令进行了更新,pacman -Syyu
并且来自 AUR 的所有软件包都已通过上述命令进行了更新。
但我想知道为什么*-git
我安装的软件包(在主/主分支上经常更新)从未更新。
因此,我深入研究了这个问题,并且必须将我的脚本调整为以下内容:
pamac checkupdates -a --devel
pamac upgrade -a --devel
其中--devel
包括开发包(如*-git
)。
现在我注意到运行此命令需要更长的时间来检查更新,因为-a
只需检查 AUR 中的包是否较新(快),但如果它是一个*-git
包并且 AUR 中没有更新而仅在 git 存储库中,它不会捡起它。
然而,新命令--devel
花费的时间更长,因为它首先要求 AUR 更新(快速)+开发包,它还要求后面的存储库检查是否有任何更新。
现在我终于可以使用这个简单的脚本使所有包保持最新状态:
pacman -Syyu
pamac checkupdates -a --devel
pamac upgrade -a --devel