如何创建 pacman 安装的列表/文件?

如何创建 pacman 安装的列表/文件?

我正在尝试将计算机上的一个 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_pa​​ckages

答案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'

相关内容