![数据包列表的比较](https://linux22.com/image/900026/%E6%95%B0%E6%8D%AE%E5%8C%85%E5%88%97%E8%A1%A8%E7%9A%84%E6%AF%94%E8%BE%83.png)
我今天全新安装了 Ubuntu 18.04。之前我使用的是 16.10 版本。我一直遵循法语文档这一页的说明:https://doc.ubuntu-fr.org/tutoriel/comment_sauver_et_restaurer_la_liste_des_paquets。
我的目的是恢复此新版本上的所有先前软件包。我很困惑,因为我只想恢复我手动安装的软件包,而不是 ubuntu 16.10 带来的软件包,也不是 18.04 的全新安装(最小安装)带来的软件包。
我尝试使用 diff 和 cmp 命令将安装前保存的软件包列表与文件 ubuntu-16.10-desktop-amd64.manifest 进行比较。我在这里获得了清单文件:http://old-releases.ubuntu.com/releases/yakkety/
我使用 cmd 获取了软件包列表:
dpkg --get-selections > liste-des-paquets_`hostname`_`date +%Y-%m-%d-%H-%M`
我的问题是:
- 我是否必须与 18.04 和 16.10 的两个清单文件进行比较?
- 比较文件和删除坏条目的最简单方法是什么?
我感谢你的帮助。
编辑:我想到解决方案的一个进展是列出实际的软件包,并将它们与旧软件包列表进行比较
diff -yb --suppress-common-lines new_list_of_package_name old_list_of_package | grep -e ">" > change-to-add
然后:
cut -d ">" -f 2 change-to-add | cut -c 2-
这样,我就可以得到一个包含所有可能需要排序的行的列表。我仍然需要将列表与清单文件进行比较,这样我就不会添加不需要的旧 Linux 内核。