cantik memekmu Asked: 2021-10-05 04:26:53 +0800 CST2021-10-05 04:26:53 +0800 CST 2021-10-05 04:26:53 +0800 CST 仅更新某些 Arch 某些软件包 772 我们如何使用 pacman 更新某些包? 例如,我们如何仅更新包(以正则表达式语法)py.+ 为: $ sudo pacman -S 'py.+' error: target not found: py.+ 不工作 请帮忙,提前谢谢 arch-linux package-management 1 个回答 Voted Best Answer fra-san 2021-10-05T08:48:19+08:002021-10-05T08:48:19+08:00 请注意,在 Arch Linux 上,不支持部分升级;您应该始终一次升级整个系统(pacman -Syu)并在安装新软件包时升级整个系统()。将安装当前在您的同步数据库中的版本,可能会重新安装已安装的版本。随后会更新同步数据库,然后安装最新版本及其依赖项,可能会破坏其他依赖于旧版本的已安装包。 如上面链接的 wiki 页面中所述,随后也不是解决方案。pacman -Syu package pacman -S packagepackage pacman -Sypacman -S packagepackage pacman -Syuwpacman -S package 也就是说,基于Arch Wikipacman ,将包列表作为参数提供的常用方法是使用另一个pacman实例生成它。例如,要获取名称或描述以1开头py(但不只是py)的已安装软件包列表的详细信息,请过滤掉外来的软件包: pacman -Qsq '^py[^ ]+$' | xargs pacman -Qnq | xargs -o pacman -Si Wherexargs用于避免“参数列表太长”的错误。 在处理包名称时,假设它们不包含空格、引号、通配符或其他不常见字符是安全的。否则,不引用命令替换可能是个坏主意2;只需确保 的值IFS不包含可能出现在包名称中的任何字符。 non standardxargs的-o选项(通常在 Arch Linux 上可用,默认情况下提供其 GNU 实现),它告诉xargs重新打开标准输入/dev/tty并使其可用于执行的命令,在运行pacman需要用户交互的命令时是必要的(尽管在上面的例子中实际上不需要)。 或者,如果您确信搜索返回的包数量很少,您可以使用嵌套命令替换: pacman -Si $(pacman -Qnq $(pacman -Qsq '^py[^ ]+$')) 1 可能需要其他实用程序来仅对名称执行正则表达式搜索,例如pacsift(来自pacutils)或expac. 请注意,pacman的搜索选项还检查包的“提供”字段。 2 请参阅何时需要双引号?,为什么我的 shell 脚本会因空格或其他特殊字符而窒息?和忘记在 bash/POSIX shells 中引用变量的安全隐患。
请注意,在 Arch Linux 上,不支持部分升级;您应该始终一次升级整个系统(
pacman -Syu
)并在安装新软件包时升级整个系统()。将安装当前在您的同步数据库中的版本,可能会重新安装已安装的版本。随后会更新同步数据库,然后安装最新版本及其依赖项,可能会破坏其他依赖于旧版本的已安装包。 如上面链接的 wiki 页面中所述,随后也不是解决方案。pacman -Syu package
pacman -S package
package
pacman -Sy
pacman -S package
package
pacman -Syuw
pacman -S package
也就是说,基于Arch Wiki
pacman
,将包列表作为参数提供的常用方法是使用另一个pacman
实例生成它。例如,要获取名称或描述以1开头py
(但不只是py
)的已安装软件包列表的详细信息,请过滤掉外来的软件包:Where
xargs
用于避免“参数列表太长”的错误。在处理包名称时,假设它们不包含空格、引号、通配符或其他不常见字符是安全的。否则,不引用命令替换可能是个坏主意2;只需确保 的值
IFS
不包含可能出现在包名称中的任何字符。non standard
xargs
的-o
选项(通常在 Arch Linux 上可用,默认情况下提供其 GNU 实现),它告诉xargs
重新打开标准输入/dev/tty
并使其可用于执行的命令,在运行pacman
需要用户交互的命令时是必要的(尽管在上面的例子中实际上不需要)。或者,如果您确信搜索返回的包数量很少,您可以使用嵌套命令替换:
1 可能需要其他实用程序来仅对名称执行正则表达式搜索,例如
pacsift
(来自pacutils)或expac
. 请注意,pacman
的搜索选项还检查包的“提供”字段。2 请参阅何时需要双引号?,为什么我的 shell 脚本会因空格或其他特殊字符而窒息?和忘记在 bash/POSIX shells 中引用变量的安全隐患。