我通常会使用以下教程重新安装 Ubuntu 并备份我的 APT 内容 [源、密钥和已安装的软件包列表]https://askubuntu.com/a/99151/371765。不过,我通常也会删除图腾、传输、统一范围等软件。
当安装完成并从之前的安装中恢复我的 APT 源、密钥和已安装的软件包时,我发现得到以下信息:
- 我收到一条警告,说
dpkg: warning: package not in database at line ###: vlc
[vlc 是一个例子,它可能是htop
或iotop
]。我认为它对在 Universe repos 中恢复的每个包都会发出此警告,但我不太确定。 - 先前系统上卸载的任何内容 [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
备份已安装的包
- 获取已安装的软件包列表
- 删除那些已卸载的
- 移除已安装的色谱柱
- 保存列表
# dpkg --get-selections | grep -v deinstall | awk '{print $1}' > package.lst
从 package.lst 恢复
# aptitude install -y $(cat package.lst)