Pacotes são removidos quando eu uso o “apt-get install” com um hífen após o nome do pacote

15

Na tentativa de instalar o cuda , copiei e colei alguns apt-get install packages. Por razões desconhecidas, a linha que eu executei no final é a seguinte:

sudo apt-get install libgtk2.0-

O resultado foi que muitos pacotes foram removidos. Escolhendo aleatoriamente alguns:

libreoffice-*
python-*
xfce4-* 

A lista é enorme. Um número considerável de partes do sistema foi desinstalado. Agora isso parece um desvio sério do que eu espero quando executo apt-get install .

O que está acontecendo?

    
por nass 17.04.2014 / 11:33

2 respostas

21

O problema é o seguinte (de man apt-get ):

  

instale

     

install é seguido por um ou mais pacotes desejados para          instalação ou atualização. Cada pacote é um nome de pacote, não          um nome de arquivo totalmente qualificado (por exemplo, em um sistema Debian,          apt-utils seria o argumento fornecido, não          apt-utils_0.9.12.1_amd64.deb). Todos os pacotes exigidos pelo          pacote (s) especificado (s) para instalação também será recuperado          e instalado. O arquivo /etc/apt/sources.list é usado para localizar          os pacotes desejados. Se um hífen for anexado ao pacote          nome (sem espaço de intervenção), o pacote identificado será          ser removido se estiver instalado . Da mesma forma, um sinal de mais pode ser          usado para designar um pacote para instalar. Estes últimos recursos          pode ser usado para anular decisões tomadas pelo sistema de resolução de conflitos do apt-get.

Portanto, adicionar um hífen ao final de um nome de pacote significa "remover esse pacote". Especificamente, no seu caso, isso removeria estes:

Note, selecting 'libgtk2.0-doc' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-cil' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-bin' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-common' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-0' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-cil-dev' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-0-dbg' for regex 'libgtk2.0'
Note, selecting 'libgtk2.0-dev' for regex 'libgtk2.0'

Em outras palavras, você removeu todo o conjunto de bibliotecas gtk2, e um lote de programas depende do gtk2. Como resultado, um lote de programas foi removido.

Então, não, isso não é um bug. É, admito, comportamento surpreendente se você não souber, mas está documentado e intencional.

    
por terdon 17.04.2014 / 11:59
6

Dê uma olhada em /var/log/apt/history.log para ver exatamente o que foi removido. Então, basta reinstalar esses pacotes.

    
por Jos 17.04.2014 / 12:22

Tags