Por que o “apt-get autoremove” não remove todas as dependências instaladas?

4

A instalação de libav-tools e ubuntu-restricted-extras também instala esses novos pacotes:

  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

No entanto, apt-get autoremove libav-tools ubuntu-restricted-extras apenas remove o seguinte:

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

Por que autoremove não remove todos os pacotes que foram instalados junto com os que eu queria inicialmente instalados e agora querem remover? Como posso remover essas dependências automaticamente, ao remover os pacotes com os quais eles foram instalados? Parece que eu teria que de alguma forma acompanhar todas as dependências que foram instaladas ao lado de cada pacote desejado, para que eu pudesse removê-las manualmente quando quisesse remover o pacote inicialmente desejado.

    
por stanny 06.05.2015 / 23:00

1 resposta

0

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

Atendendo às dependências de libav-tools e ubuntu-restricted-extras necessárias para atualizar (e não para instalar ), a maioria dos pacotes listados por sudo apt-get install libav-tools ubuntu-restricted-extras para uma nova versão .

Na página apt-get man para Trusy :

[...]
       install
[...]
           This is also the target to use if you want to upgrade one or more
           already-installed packages without upgrading every package you have
           on your system. Unlike the "upgrade" target, which installs the
           newest version of all currently installed packages, "install" will
           install the newest version of only the package(s) specified. Simply
           provide the name of the package(s) you wish to upgrade, and if a
           newer version is available, it (and its dependencies, as described
           above) will be downloaded and installed.
[...]

Isto é lógico, uma vez que se um pacote depende de uma versão mais recente de um pacote já instalado, a fim de executar o anterior, o último deve ser atualizado.

O resultado é que, se qualquer um dos pacotes já instalados for exigido por qualquer pacote antes da instalação de libav-tools e ubuntu-restricted-extras , não será autorado.

Você pode verificar isso executando apt-cache rdepends <package> em cada um dos pacotes erroneamente esperados para serem autorados: cada um deles será exigido por pelo menos um pacote que não será autorizado automaticamente.

    
por kos 07.05.2015 / 00:42