已安装软件包和 APT 源的备份和恢复列表

6 ubuntu dpkg apt software-installation package-management

我通常使用https://askubuntu.com/a/99151/371765 上的教程重新安装 Ubuntu 并备份我的 APT 内容 [源、密钥和已安装的包列表] 。但是我通常也会删除图腾、传输、统一范围等软件。

当安装完成并且我从之前的安装中恢复我的 APT 源、密钥和已安装的包时,我发现我得到以下信息:

  1. 我收到一条警告说dpkg: warning: package not in database at line ###: vlc[vlc 是一个例子,它可能是htopiotop]。我认为它对要在 Universe 存储库中恢复的每个包都会发出此警告,但是我不太确定。
  2. 在以前的系统上卸载的任何东西 [totem、transmission、firefox、simple-scan 等] 仍会安装在新系统上。

在安装其他软件包 [例如 vlc] 期间,如何才能在新系统上卸载从以前系统卸载的任何内容?

我已经开始使用 diff 计划,但是当尝试将版本号转换为 Ubuntu 14.04.2 清单中的“测试”一词 [用于测试目的] 时,它会转换所有行而不是其中的一部分。

Ste*_*itt 7

通过使用 dpkg --set-selections 导入列表安装包的轻微变化应该可以解决问题。

在您的参考系统上保存软件包列表:

dpkg --get-selections > packages.lst
Run Code Online (Sandbox Code Playgroud)

然后在更新可用软件包列表后,在目标系统上根据该列表安装软件包:

dpkg --merge-avail <(apt-cache dumpavail)
dpkg --clear-selections
dpkg --set-selections < packages.lst
apt-get dselect-upgrade
Run Code Online (Sandbox Code Playgroud)