我在 shell 中输入以下内容:
sudo apt-get --purge remove openssl
我删除的不仅仅是 openssl 包,为什么?
以下是部分输出:
(Reading database ... 400426 files and directories currently installed.)
Removing nautilus-share (0.7.3-1ubuntu5) ...
Removing apturl (0.5.2ubuntu4) ...
Removing bluez-cups (4.101-0ubuntu13.1) ...
Removing google-chrome-stable (43.0.2357.124-1) ...
答案1
因为它们依赖于您刚才说要删除的东西 -openssl
就是有问题的依赖项。没有它,这些程序都无法运行。
例如,当我安装某些东西时,看一下输出:
The following extra packages will be installed:
chkrootkit john john-data procmail sendmail sendmail-base sendmail-bin
sendmail-cf sensible-mda tripwire
这是因为我想要安装的包(tiger
)需要这些 - 它们是依赖项。
嗯,这里也发生了同样的事情。nautilus-share
,,apturl
和bluez-cups
都google-chrome-stable
需要openssl
运行——所以它们同时被卸载。
下次你删除某些东西时,你可能会看到类似这样的内容:
The following packages will be REMOVED
akregator amarok amarok-utils anoise anoise-media apport-kde
apt-xapian-index apturl-kde ark audiocd-kio bluedevil blueproximity
如果您看到了想要的东西,请不要删除主包。在上述情况下,我打算删除python
- 但那会删除很多东西(231)。
答案2
看一下依赖关系aptitude why
:
$ aptitude why openssl
i ca-certificates Depends openssl (>= 1.0.0)
$ aptitude why ca-certificates
i software-properties-common Depends ca-certificates
$ aptitude why software-properties-common
i software-properties-gtk Depends software-properties-common
$ aptitude why software-properties-gtk
i ubuntu-desktop Depends software-properties-gtk
$ aptitude why apturl
i nautilus-share Depends apturl
$ aptitude why nautilus-share
i ubuntu-desktop Recommends nautilus-share
因此,这表明openssl
已安装,因为它是 的依赖项ca-certificates
。
ca-certificates
是 的依赖项,software-properties-common
而 又是 的依赖项software-properties-gtk
。
software-properties-gtk
最后是 的依赖项ubuntu-desktop
。 因此,如果删除 ,所有这些都将被删除openssl
。 它们递归依赖于openssl
。
由于ubuntu-desktop
被删除并且nautilus-share
被推荐ubuntu-desktop
(并且很可能没有其他安装理由),它也将被删除。同样apturl