![如何使用 Pacman 从文本文件中包含的列表安装软件包?](https://linux22.com/image/173521/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Pacman%20%E4%BB%8E%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E4%B8%AD%E5%8C%85%E5%90%AB%E7%9A%84%E5%88%97%E8%A1%A8%E5%AE%89%E8%A3%85%E8%BD%AF%E4%BB%B6%E5%8C%85%EF%BC%9F.png)
我安装了 Manjaro Cinnamon 版的最小版本,现在想将其升级到完整版。软件包列表可在此找到文本文件。
如何使用 Pacman 安装它们,而无需痛苦地输入数百个软件包的名称?为了方便起见,我附上了文件的前 5 行。
a52dec 0.7.4-10
aalib 1.4rc5-13
accountsservice 0.6.55-2
acl 2.2.53-3
acpi 1.7-3
答案1
我现在不在linux上,所以我无法测试它,但这应该可行......
pacman -S $(cat yourfilename | cut -d' ' -f1)
如果这不起作用,那么这应该
pacman -S $(echo $(cat yourfilename | cut -d' ' -f1))
这里的目标是让 pacman 将文件的输出作为一行,没有版本编号,并且每行用空格分隔。
答案2
做就是了:
$ sudo sh -c 'cat input_file | cut "-d " -f1 | xargs pacman -S'
或更简单的版本:
$ awk '{print $1}' input_file | xargs pacman -S
或者
$ sudo pacman -S $(awk '{print $1}' input_file)
其中input_file
包含所有要安装的软件包,一行一行。
警告语:
毫无疑问,Archlinux 是一个滚动发布包,所以指定要安装的版本是不建议这意味着您实际上可以打破依赖关系,并最终打破整个系统。仅出于这个原因,我就删除了您的包记录中的版本信息input_file
......
如果您坚持回滚某些软件包(即“旧”)版本,您可以在 Arch Linux 上回滚,但我建议您手动执行此操作,而不是以自动方式执行,前提是您确切知道自己会得到什么进入。
HTH。