为什么“apt-get autoremove”不能删除所有已安装的依赖项?

为什么“apt-get autoremove”不能删除所有已安装的依赖项?

安装libav-toolsubuntu-restricted-extras安装这些新包:

  cabextract chromium-codecs-ffmpeg-extra freepats gstreamer0.10-fluendo-mp3
  gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse
  gstreamer0.10-plugins-ugly gstreamer1.0-fluendo-mp3 gstreamer1.0-libav
  gstreamer1.0-plugins-bad gstreamer1.0-plugins-bad-faad
  gstreamer1.0-plugins-bad-videoparsers gstreamer1.0-plugins-ugly
  gstreamer1.0-plugins-ugly-amr libav-tools libavcodec-extra
  libavcodec-extra-56 libavdevice55 libavfilter5 libcdaudio1 libdirac-encoder0
  libfaac0 libfftw3-double3 libflite1 libgme0 libgstreamer-plugins-bad0.10-0
  libgstreamer-plugins-bad1.0-0 libgtkglext1 libilmbase6 libmimic0
  libmjpegutils-2.1-0 libmms0 libmpeg2encpp-2.1-0 libmpg123-0 libmplex2-2.1-0
  libmspack0 libofa0 libopencore-amrnb0 libopencore-amrwb0
  libopencv-calib3d2.4 libopencv-contrib2.4 libopencv-core2.4
  libopencv-features2d2.4 libopencv-flann2.4 libopencv-highgui2.4
  libopencv-imgproc2.4 libopencv-legacy2.4 libopencv-ml2.4
  libopencv-objdetect2.4 libopencv-video2.4 libopenexr6 libsidplay1 libslv2-9
  libsoundtouch0 libspandsp2 libsrtp0 libtbb2 libvo-aacenc0 libvo-amrwbenc0
  libwildmidi-config libwildmidi1 libzbar0 oxideqt-codecs-extra

但是,apt-get autoremove libav-tools ubuntu-restricted-extras仅删除以下内容:

  gstreamer0.10-plugins-bad-multiverse libav-tools libavcodec-extra
  libavdevice55 libavfilter5 libfaac0 ubuntu-restricted-extras

为什么不autoremove删除与我最初想要安装但现在想要删除的软件包一起安装的所有软件包?如何自动删除这些依赖项,同时删除与它们一起安装的软件包?看起来我必须以某种方式跟踪与每个所需软件包一起安装的所有依赖项,这样当我想要删除最初所需的软件包时,我就可以手动删除它们。

答案1

注意:sudo apt-get autoremove <package1> [<package2>, ...]=sudo apt-get remove --autoremove <package1> [<package2>, ...]

满足依赖关系libav-toolsubuntu-restricted-extras要求更新(和不安装) 列出的大多数软件包都升级sudo apt-get install libav-tools ubuntu-restricted-extras到了新版本。

来自apt-get manTrusy 的页面

[...]
       安装
[...]
           如果您要升级一个或多个
           已安装的软件包,无需升级所有软件包
           在您的系统上。与“升级”目标不同,它安装
           所有当前安装的软件包的最新版本,“安装”将
           仅安装指定软件包的最新版本。只需
           提供要升级的软件包的名称,如果
           有较新版本可用,它(及其依赖项,如所述
           上述步骤之后,系统就会下载并安装该应用。
[...]

这是合乎逻辑的,因为如果一个包依赖于已经安装的包的更高版本,那么为了运行前者,必须更新后者。

libav-tools结果是,如果在安装和之前的任何包需要任何已安装的包ubuntu-restricted-extras,则它将不会被自动删除。

您可以通过运行apt-cache rdepends <package>每个被错误地预期会被自动删除的包来检查这一点:每个包都至少需要一个不会被自动删除的包。

相关内容