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

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

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

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

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

我怎样才能使从以前的系统卸载的任何东西在安装其他软件包[例如vlc]期间在新系统上卸载?

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

答案1

略有不同通过使用 dpkg --set-selections 导入列表来安装软件包应该可以解决问题。

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

dpkg --get-selections > packages.lst

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

dpkg --merge-avail <(apt-cache dumpavail)
dpkg --clear-selections
dpkg --set-selections < packages.lst
apt-get dselect-upgrade

答案2

备份已安装的包

  1. 获取已安装的软件包列表
  2. 删除那些已卸载的
  3. 移除已安装的色谱柱
  4. 保存列表
# dpkg --get-selections | grep -v deinstall | awk '{print $1}' > package.lst

从 package.lst 恢复

# aptitude install -y $(cat package.lst)

相关内容