三重启动获取不同分区上缺少的软件包的列表


0

背景

我有一个双引导Windows 10 / Ubuntu 16.04系统。然后,我用18.04进行了三重启动。然后我在Ubuntu 16.04系统的Vitualbox VM中添加了Lubuntu 16.04。

一路上我迷路了而/usr不是删除了usr。然后,思想18.04又重新同步到了16.04我,我复制了这些文件/usr,最后得到了科学怪人16.04 / 18.04。

因此,我创建了一个实时USB 16.04.4,并将其复制到/usr目录中。幸运的是,我最终得到了16.04.4 / 16.04.5混合动力,其中混入了18.04。

我的电脑apt坏了,但dpkg仍然可以工作,所以我用它重新安装,apt但它是另一个版本。

我擦除了18.04分区,并安装了16.04.5的新副本。我安装了一些随机的应用程序,如conkydialoggimpvnstatyad也许其他几个。

因为我仍然可以挂载旧的16.04分区,如何获得仍需要在新的16.04分区上安装的软件包列表(没有库和linux内核)?

Answers:


1

的力量dpkgdiffgrep

我的回答基于以下问答:设置安装在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-utilsmutternvme-clipavucontrolpeek

deinstall带有商标的软件包可以忽略:dpkg --get-selections显示标记为“卸载”的软件包

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.