如何确定 Arch Linux 中哪些软件包需要升级?

如何确定 Arch Linux 中哪些软件包需要升级?

我知道这pacman -Su会升级所有软件包。但我如何才能获得需要升级的软件包列表?

答案1

看看手册页就像是

pacman -Sy

将数据库同步到最新版本,然后

pacman -Qu

-u,--升级

Restrict or filter output to packages that are out of date on the

本地系统。(仅使用软件包版本来查找过时的软件包,这里不检查替换。)如果使用 -Sy 刷新同步数据库,则此选项效果最佳。


请注意,像这样同步软件包列表将使您处于不应安装或升级单个软件包的情况,直到您执行下一次完整更新为止。

一般来说不应该升级单个软件包,因为 Arch 或 Manjaro 不支持部分升级。如果你看到需要升级的软件包,你应该立即运行pacman -Syu升级所有软件包。

虽然安装或升级单个软件包有时可能会有效,但存在升级其所依赖的库的危险,而该库的升级可能会导致另一个软件包损坏。

答案2

checkupdates

checkupdates包含在pacman-contrib包,提供了一种安全的方法来检查已安装包的升级,而无需同时运行系统更新。

系统维护

答案3

正如@Panagiotis 提到的,checkupdates提供了一种无需 root 权限或弄乱数据库即可完成此操作的方法/var/lib/pacman。以下是的最小版本checkupdates

TMPPATH="${TMPDIR:-/tmp}/checkup-db-${USER}"
DBPATH="$(pacman-conf DBPath)"

mkdir -p "$TMPPATH"
ln -s "$DBPATH/local" "$TMPPATH" &>/dev/null
fakeroot -- pacman -Sy --dbpath "$TMPPATH" --logfile /dev/null &>/dev/null
pacman -Qu --dbpath "$TMPPATH" 2>/dev/null

它的工作原理是:

  1. 为您的数据库创建一个临时文件夹。
  2. 符号链接您的/var/lib/pacman/local
  3. pacman -Sy在您的临时文件夹上运行。
  4. pacman -Qu通过您的临时文件夹进行查询。

相关内容