Como faço para bloquear uma versão específica de um pacote a ser instalado pelo aptitude (ou apt-get)?

3

Eu tenho um problema com o travamento de um programa, e suspeito que apenas a versão mais recente do pacote tenha esse problema, portanto, desejo bloquear que essa versão específica seja instalada - mas ainda quero atualizar para versões futuras.

Acho que li (em algum lugar, em algum momento) que o sistema apt permite isso, mas agora que procuro, parece que não consigo encontrá-lo.

Como eu faria isso?

P.S. Eu sou intencionalmente vago sobre qual pacote eu estou tendo problemas, como eu quero entender este recurso do Apt (se de fato existir), e não quero sugestões específicas para o programa que estou tendo problemas.

    
por zrajm 29.07.2015 / 12:07

3 respostas

2

Edite o arquivo /etc/apt/preferences e adicione:

Package: unzip
Pin: version 2.7
Pin-Priority: 100

Package: unzip
Pin: version 3*
Pin-Priority: 1000

Isso manterá o pacote em 2.7 , pule 2.8 , 2.9 e atualize para 3 * quando disponível.

Note que esta é uma maneira não natural de não atualizar para uma versão de pacote instável. Uma melhor (e a forma recomendada ) é manter o pacote até os problemas serem resolvidos:

dpkg :

$ echo "package hold" | sudo dpkg --set-selections

Aptidão

$ sudo aptitude hold package_name 
    
por ps95 29.07.2015 / 13:07
1

O aptitude permite isso com a opção de versão proibida.

Selecione a versão do pacote na interface do usuário e pressione "F"

Como alternativa, você pode fazer isso por meio da interface de linha de comando, consulte a página de manual:

forbid-version
           Forbid a package from being upgraded to a particular version, while allowing automatic upgrades to future versions. This is useful for example to avoid a known broken version of a package,
           without having to set and clear manual holds.

           By default, aptitude will select the forbidden version to be the one which the package would normally be upgraded (the candidate version). This may be overridden by appending „=<version>“ to the
           package name: for instance, „aptitude forbid-version vim=1.2.3.broken-4“.

           To revert the action, „aptitude install <package>“ will remove the ban. To remove the forbidden version without installing the candidate version, the current version should be appended: „install
           <package>=<version>“.

Por favor note: Esta versão proibida é apenas honrada pelo aptitude. O apt-get ou outros gerenciadores de pacotes atualizarão o pacote se forem executados.

    
por hennr 10.03.2017 / 10:05
0

Você pode usar o 'apt-get install pacote-versão' para instalar uma versão específica deste pacote.

Você pode impedir a atualização desta versão com uma configuração específica de / etc / apt / preferences. Veja a seção 3.10 em:

APT HOWTO

Você também pode fazer isso com o comando apt-mark. Veja a opção "hold" em:

Man pages do Ubuntu

    
por bitseater 29.07.2015 / 13:03

Tags