Por causa do bug # 693758, eu gostaria de impedir que o apt-get upgrade
Update Manager atualize o pacote "libgtk2.0-0".
Como isso pode ser alcançado?
disable packages from the auto-update
Por causa do bug # 693758, eu gostaria de impedir que o apt-get upgrade
Update Manager atualize o pacote "libgtk2.0-0".
Como isso pode ser alcançado?
disable packages from the auto-update
Respostas:
Existem quatro maneiras de reter pacotes: com dpkg, apt, aptitude ou dselect.
Coloque um pacote em espera:
echo "<package-name> hold" | sudo dpkg --set-selections
Remova a retenção:
echo "<package-name> install" | sudo dpkg --set-selections
Exiba o status dos seus pacotes:
dpkg --get-selections
Exiba o status de um único pacote:
dpkg --get-selections | grep "<package-name>"
Segure um pacote:
sudo apt-mark hold <package-name>
Remova a retenção:
sudo apt-mark unhold <package-name>
Mostrar todos os pacotes em espera:
sudo apt-mark showhold
Com o dselect, entre na tela [S] elect, encontre o pacote que deseja manter no estado atual e pressione =ou H. As alterações entrarão em vigor imediatamente após sair da tela [S] elect.
As abordagens a seguir são limitadas, pois o bloqueio / retenção de um pacote no aptitude ou no synaptic não afeta o apt-get / apt.
Segure um pacote:
sudo aptitude hold <package-name>
Remova a retenção:
sudo aptitude unhold <package-name>
Vá para Synaptic Package Manager (Sistema> Administração> Synaptic Package Manager).
Clique no botão de pesquisa e digite o nome do pacote.
Quando você encontrar o pacote, selecione-o e vá para o menu Package e selecione Lock Version .
Esse pacote agora não será exibido no gerenciador de atualizações e não será atualizado.
devscripts
, muitos pacotes são extraídos como pacotes recomendados. Como não preciso de um servidor de correio (postfix), eu poderia desativar a instalação executando echo postfix hold | sudo dpkg --set-selections
antes de executar sudo apt-get install devscripts
. Essa ação de retenção persiste apenas para esta instalação, após a instalação as seleções são redefinidas.
apt-mark
não suporta hold
na versão 0.7.25 (Ubuntu Lucid)
apt-mark hold fglrx fglrx-amdcccle fglrx-dev && aptitude hold fglrx fglrx-amdcccle fglrx-dev
,.
Para colocar um pacote "foo" em espera:
echo "foo hold" | dpkg --set-selections
No seu caso, vamos colocar o vinho em espera:
sudo -i
echo "wine hold" | dpkg --set-selections
Para remover a retenção:
sudo -i
echo "wine install" | dpkg --set-selections
apt-get install wine=1.2.3
. Estar em espera impede que apt-get (dist-)upgrade
seja alterado.
/var/cache/apt/archives
) é independente detém e atualizações e coisas, então todas as versões que você baixou estará lá até que seja executadoapt-get [auto]clean
Eu estava procurando a mesma coisa e, depois de muita pesquisa, descobri que, usando a seguinte sintaxe, você pode proibir uma versão específica, mas permitir a próxima atualização:
Pacote: compiz-plugins-main Pin: versão 1: 0.9.7.0 ~ bzr19-0ubuntu10.1 Prioridade de pinos: -1
Isso vai para o arquivo / etc / apt / preferências.
Instale synaptic
usando sudo apt-get install synaptic
.
Execute usando gksudo synaptic
e, na caixa de pesquisa, localize o pacote que você deseja bloquear, ou seja:gedit
No menu do pacote, selecione Bloquear versão :
E isso é tudo, a versão atualmente instalada no momento do bloqueio permanecerá instalada mesmo durante as atualizações.
Impedir a instalação de um pacote é chamado de "retenção de pacotes" e é muito simples:
eco package_name hold | dpkg --set-selections
... onde * package_name * é o nome do pacote que você deseja impedir a instalação.
Nota: o comando acima assume privilégios de root. Em outras palavras, você provavelmente precisará digitar sudo su
antes de executá-lo.
s/sudo su/sudo -s/g
(ou sudo -i
) ( -i
dará um shell de login, -s
não).
Como algum tempo apt-get
é substituído por apt
, por exemplo, quero impedir que o Firefox atualize para a versão acima de 56, porque muitos complementos, como "Grupos de guias " , não funcionam mais com o novo Firefox 57 (consulte "Extensões da Web" Atualizar").
É possível armazenar mais de um pacote com um comando e usar caracteres curinga.
sudo apt-mark hold firefox firefox-locale-*
Se você desejar desestabilizá-los mais tarde, esse seria o comando:
sudo apt-mark unhold firefox firefox-locale-*
Eu acho que você pode congelar a versão de um pacote específico. Não tenho 100% de certeza se isso irá alterar o apt-get, mas definitivamente interromperá o gerenciador de atualizações.
Para congelar um pacote, selecione-o no synaptic, abra o menu do pacote e selecione congelar versão.
Espero que isto ajude
edit: Esta questão 16668 trata de uma situação semelhante
Tudo o que você sempre quis saber sobre "manter" e "fixar" pacotes em versões específicas: https://help.ubuntu.com/community/PinningHowto
Veja os erros # 75332 , # 158981 e # 72806 .
O resumo é que a retenção no nível apt-get / aptitude não está ativando o status de espera no dpkg (consulte o bug 72806 especialmente) e o update-manager lê o status no dpkg.
solução alternativa é executada como raiz:
echo "package hold" | dpkg --set-selections
Você pode usar no aptitude a "substituição específica", assim:
aptitude reinstall ~i oracle-java8-jre:
Este é um uso único de (não armazenado para futuras reinstalações), mantenha substituição específica, para reinstalar todos os pacotes em seu sistema, mas não o oracle-java8-jre.
Se você usar uma substituição específica do keep, o pacote ficará momentaneamente em um estado de keep que o aptitude não tentará instalá-lo.
Uma coisa muito boa se você acha que seu sistema foi comprometido de alguma forma.
Se você tiver o Synaptic instalado, poderá selecionar o pacote e usar o menu Pacote -> Bloquear versão para impedir que ele seja atualizado.
Você pode instalar o Synaptic com o sudo apt-get install synaptic. Pessoalmente, acho mais útil do que o Centro de Software ... então, sou bastante velho. :)
Ocasionalmente, pode-se querer reter todos os pacotes atualmente instalados. Aqui está como.
Primeiro salve o estado atual, para que você possa desfazer:
dpkg --get-selections > current_selections.txt
Então, para reter todos os pacotes:
dpkg --get-selections | sed -r "s/\tinstall/hold/" |dpkg --set-selections
Por fim, quando você quiser voltar ao estado anterior:
dpkg --set-selections < current_selections.txt
Um caso de uso para isso pode ser ao criar um instantâneo de VM ou Amazon AMI para migrar de um QA para um ambiente de produção.
Adicionando detalhes aos comentários de @ soger em relação ao Ubuntu 16.04.
O Ubuntu 16.04 não possui um arquivo / etc / apt / preferências existente por padrão. Se você não possui um atualmente, basta criar um novo arquivo e preenchê-lo com uma sub-rotina como o @soger descreve acima para excluir o pacote fornecido e suas dependências das atualizações.
Depois, corra apt update
e você é GTG. : 0)
Por exemplo, eu tenho um servidor Ubuntu 16.04.5 LTS com placa de vídeo Intel incorporada e uma placa NVidia. A placa NVidia é a única usada. O servidor também usa drivers CUDA. Eu tive um problema em que apt
insistia
va-driver-all
(Drivers Intel) exigiu uma atualização, mas não foi possível determinar qual versão instalar. Isso estava me deixando louco, e eu não precisava dos drivers da Intel. Digitei este texto no arquivo de preferências e liberado o apt, problema resolvido.
Package: va-driver-all
Pin: release *
Pin-Priority: -1