Bloqueie um pacote de ser desinstalado no APT

8

Em suma, quero poder definir o pacote abc para que:

  1. apt-get remove abc deve falhar.
  2. apt-get purge abc deve falhar.
  3. apt-get upgrade abc deve funcionar.

Se as dependências do pacote forem alteradas para que abc seja desinstalado durante um dist-upgrade , ficarei feliz em ser forçado a fazer algo e, em seguida, dist-upgrade novamente.

    
por Deleted 21.01.2012 / 21:45

1 resposta

5

Não é realmente nada para "fixar" um pacote para impedir a remoção, mas permitir a atualização.

Você pode martelar um pico em um pacote, não pode ser excluído, removido, atualizado, lambido, nada ...

Mas é um pouco mais complicado do que a maioria das coisas.

Por exemplo, queremos fixar o firefox: (você usaria o nome completo do pacote, é claro)

echo firefox hold | dpkg --set-selections

que então tornaria ' firefox ' imortal. MAS , também não pode ser atualizado neste estado.

Para remover o status de suspensão é um pouco mais fácil, mas é um gesto abrangente:

dpkg --clear-selections

remove o status HOLD de TUDO! Então, se você quiser manter alguns pacotes, é melhor manter uma lista para reaplicar posteriormente

Na verdade, é bastante agradável e fácil de realizar usando aptitude ou synaptics , pois eles têm opções de menu para manter / suspender um pacote, cuidando de toda a contabilidade atrás do cenas para você. Eu recomendaria usar um desses (ou qualquer um dos inúmeros gerenciadores de pacotes que você pode encontrar)

Com o Aptitude, o uso da linha de comando também é possível:

aptitude hold <package>
aptitude unhold <package>

Lembre-se, porém, você precisará ' soltar ' algo se quiser atualizá-lo. Embora se você usar o lado da GUI do Aptitude, ele deve informar se algo que é mantido atualizável

    
por 08.07.2012 / 21:07

Tags