我正在尝试将计算机上的一个 arch 安装(分区安装)移至另一个 arch 安装(分区较少的安装),并且我想要一个类似的设置。所以我想知道是否有一种简单的方法可以让 pacman 安装相同的软件包。
我在想
pacman -Qe | awk '{print $1}' > package_list.txt
然后创建一个脚本来从该列表中进行安装。有没有办法用几个命令创建该脚本?如果没有,我该怎么做?
答案1
pacman -Qqen > pkglist.txt
安装:
pacman -S - < pkglist.txt
来自 ArchWiki:https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#List_of_installed_packages
答案2
我知道这已经过时了,但我希望提出一个更全面的解决方案。
我的做法采用了同样的想法,并在archlinux.org 网站。
首先你需要一个软件包列表,可以使用以下命令完成
pacman -Qqe > pkglist.txt
这里
pacman -Q
查询所有已安装的程序,-q
删除版本号,并-e
列出明确安装的程序。现在,当我们想要恢复/安装程序时,我更喜欢这样做
installable_packages=$(comm -12 <(pacman -Slq | sort) <(sort pkglist.txt)) pacman -S --needed $installable_packages
这里我们只获取列表中的 pacman 可用软件包。这是通过命令完成的
comm -12 file1 file2
。该-12
标志会抑制文件 1 和文件 2 中的独特行,并留下两个文件的交集;即可安装的软件包。
答案3
例如,有些人想在没有中间文件的情况下做到这一点:
# Method description:
# For each parameter passed,
# offer to remove all packages containing that string,
# with all its dependencies.
pacman_purge() {
for var in "$@"do
# Command explanation:
# By passing - to pacman at the end of the line,
# we tell it to read stdin.
# That way we don't need awk or xargs.
#
# Rs --unneeded will remove only where don't break dependencies
# (instead of exiting with errors, as by default).
pacman -Qeq | grep "$var" | sudo pacman -Rs - --unneeded
done
}
# Optional
alias pacman-purgue='pacman_purge'