的力量dpkg
,diff
和grep
我的回答基于以下问答:设置安装在2台计算机上的软件包的差异。不同之处在于:
- 有两个不同的分区,而不是两个不同的服务器
apt
在我的旧版16.04分区中损坏,因此dpkg
用于替代
我将旧的16.04分区安装为,/mnt/old
然后键入以下内容:
/mnt/old$ dpkg --admindir=var/lib/dpkg --get-selections|sort > ~/installed-old
/mnt/old$ dpkg --admindir=/var/lib/dpkg --get-selections|sort > ~/installed-new
/mnt/old$ diff -u ~/installed-old ~/installed-new > ~/compare-old-new
/mnt/old$ cat ~/compare-old-new | grep '^-' | grep -v -e '^-lib' -e '^-linux' | wc -l
257
因此,可能有257个软件包需要重新安装,但是其中许多软件包将由依赖于它们的软件包自动安装。
列表长什么样
这cat ~/compare-old-new | grep '^-' | grep -v -e '^-lib' -e '^-linux'
是使用该命令时的清单的片段:
-mesa-utils install
-mesa-vdpau-drivers:amd64 install
-milou install
-mkusb-common install
-mkusb install
-mkusb-nox install
-module-init-tools install
-mutter-common install
-mutter install
-mysql-common install
-nasm install
-nautilus-hide install
-nautilus-image-converter install
-ntrack-module-libnl-0 deinstall
-nvidia-384 deinstall
-nvidia-390 deinstall
-nvidia-opencl-icd-384 deinstall
-nvidia-opencl-icd-390 deinstall
-nvidia-prime deinstall
-nvidia-settings deinstall
-nvme-cli install
-ocl-icd-libopencl1:amd64 install
-oracle-java8-installer install
-oracle-java8-set-default install
-oxideqt-codecs:amd64 install
-oxygen5-icon-theme deinstall
-pavucontrol install
-peek install
大多数文档片断是安装在回答问题的包向Ubuntu的。从这个片段,我只需要重新安装:mesa-utils
,mutter
,nvme-cli
,pavucontrol
和peek
。
deinstall
带有商标的软件包可以忽略:dpkg --get-selections显示标记为“卸载”的软件包