我正在尝试在我的计算机上从一个拱形安装(已分区的拱形安装)转移到另一个拱形安装(分区较少的拱形安装),并且我想要类似的设置。所以我想知道是否有一种简单的方法可以让 pacman 安装相同的软件包。
我正在考虑pacman -Qe | awk '{print $1}' > package_list.txt
创建一个脚本来从该列表中安装。
有没有办法可以通过几个命令创建该脚本,或者我应该如何执行此操作?
答案1
您可以使用pacman -Qeq
代替pacman -Qe | awk '{print $1}'
.并且 pacman 无法安装 AUR 软件包,最好将它们放在单独的列表中或使用 AUR 帮助程序,例如pacaur
或yaourt
。
因此,如果您使用像 pacaur 这样的 AUR 助手,您可以使用以下命令导出所有显式安装的软件包:
pacman -Qqe > package_list.txt
或者,如果您只喜欢本机和显式安装的软件包:
pacman -Qqen > package_list.txt
要安装文件中列出的软件包:
pacman -S - < package_list.txt
如果需要,将 pacman 替换为 pacaur 或您的 AUR 助手。
答案2
我最近重新安装了 arch linux 几次,尝试在 pacman 中使用一些 -Qqe 选项,但遇到了本地安装的软件包等几个问题,我不得不手动注释/删除。对我来说,最有效的方法是遵循 arch wiki 中的内容: https://wiki.archlinux.org/title/migrate_installation_to_new_hardware#Bottom_to_top
在旧系统中生成包列表:
pacman -Qqen > pkglist.txt
pacman -Qqem > pkglist_aur.txt
然后(用 yay 替换您的 AUR 助手)在新系统上:
pacman -S --needed - < pkglist.txt
yay -S --needed - < pkglist_aur.txt