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

Eug*_*ash 11 arch-linux

我知道pacman -Su升级所有软件包。但是我怎样才能得到需要升级的软件包列表呢?

小智 17

checkupdates
Run Code Online (Sandbox Code Playgroud)

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

系统维护

  • 这应该是正确答案 (3认同)

use*_*517 12

查看手册页类似

pacman -Syu
Run Code Online (Sandbox Code Playgroud)

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

pacman -Qu
Run Code Online (Sandbox Code Playgroud)

-u, --upgrades

Restrict or filter output to packages that are out of date on the
Run Code Online (Sandbox Code Playgroud)

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

  • **危险**:文档说“永远不要运行`pacman -Sy`”(来源:https://wiki.archlinux.org/index.php/System_maintenance#Avoid_certain_pacman_commands) (2认同)
  • @blippy 在编写此答案时该文档不存在,它的最早修订版是[几个月后](https://wiki.archlinux.org/index.php?title=System_maintenance&oldid=194778)。此外,您所引用的声明直到 4 年后(2015 年 10 月 23 日)[https://wiki.archlinux.org/index.php?title=System_maintenance&oldid=406240] 才添加到文档中。**与其如此夸张,不如直接编辑答案并引用文档作为更改请求的原因** _另请注意,即使现​​在手册页也没有发出此类警告。_ (2认同)
  • 也想澄清一下 - [原因](https://wiki.archlinux.org/index.php/System_maintenance#Partial_upgrades_are_unsupported) 不运行 `pacman -Sy` 是为了避免安装来自不同包数据库更新的包。例如,`pacman -S <something>` 可能会给你一个与 `pacman -Sy && pacman -S <something>` 不同的包和依赖项。然而,从他们的文档来看,`pacman -Sy && pacman -Qu` 似乎是 OP 问题的正确答案。在安装任何软件包之前,请确保您最终运行了 `pacman -Su`。 (2认同)
  • 5 天后,当您忘记运行“pacman -Sy”并运行“pacman -S nvidia”时,您可能会破坏某些内容。 (2认同)