Existem várias maneiras de evitar que um pacote seja atualizado no Debian, Ubuntu, Linux Mint, elementaryOS e outras distribuições Linux baseadas em Debian/Ubuntu. Este artigo apresenta 3 maneiras de excluir pacotes de repositório de serem atualizados.
Por que impedir que um pacote seja atualizado? Digamos que você instale um pacote mais antigo que a versão disponível nos repositórios Debian, Ubuntu ou Linux Mint, ou você sabe que alguma atualização está causando problemas e deseja atualizar todos os pacotes menos um (ou dois, três ...).
Aqui está um exemplo. Estou usando o navegador Chromium com aceleração de hardware (patches do Saiarcot895-dev PPA), no Ubuntu 18.10. Para que a aceleração de hardware funcione com os drivers da Nvidia, é necessário um pacote vdpau-va-driver
com patch, que ainda não está disponível neste PPA para o Ubuntu 18.10 mais recente. Felizmente, o pacote Ubuntu 18.04 pode ser instalado no Ubuntu 18.10, mas qualquer atualização através de "apt upgrade
" ou usando o Atualizador de Software irá atualizar este pacote, o que eu não quero. Portanto, neste caso, reter este pacote de atualizações me permitiria atualizar todos os outros pacotes sem ter que me preocupar com isso.
Deve-se notar que prevenir um pacote de atualizações futuras pode causar problemas em algumas situações, se o pacote que você está segurando for usado como uma dependência para outro pacote que pode ser atualizado. Portanto, tente não evitar que muitos pacotes sejam atualizados, especialmente bibliotecas.
Da mesma série: Como pesquisar pacotes disponíveis na linha de comando no Debian, Ubuntu ou Linux Mint [APT]
Aqui estão 3 maneiras de evitar que um pacote seja atualizado no Debian, Ubuntu, Linux Mint.
O Synaptic Package Manager, um programa gráfico de gerenciamento de pacotes Gtk para apt, pode bloquear pacotes que os impede de serem atualizados.
É importante notar que usar o Synaptic para bloquear pacotes não os impedirá de serem atualizados na linha de comando - rodar apt upgrade
ou apt-get upgrade
ainda atualizará um pacote bloqueado no Synaptic. Bloquear pacotes no Synaptic impedirá atualizações de pacote usando o Ubuntu Aplicativo de atualização de software e possivelmente outros gerenciadores de pacotes gráficos. No entanto, isso não impedirá a atualização de pacotes usando o aplicativo Linux Mint Update Manager. Como resultado, eu recomendo usar apt-mark
ou dpkg
(veja abaixo) para evitar que os pacotes sejam atualizados.
Você pode instalar o Synaptic Package Manager usando este comando:
sudo apt install synaptic
Para evitar que um pacote seja atualizado usando o Synaptic, pesquise-o, selecione o pacote e, no menu Synaptic, clique em Package -> Lock Version
:
Da mesma forma, você também pode desbloquear o pacote.
Para ver todos os pacotes bloqueados no Synaptic, clique em Status
no lado esquerdo inferior e, em seguida, clique em Pinned
acima da seção Status
:
apt-mark
Impedir que os pacotes sejam atualizados com o apt-mark deve evitar que eles atualizem usando o Atualizador de Software do Ubuntu, bem como atualizações de linha de comando (apt upgrade
/apt-get upgrade
).
Você pode manter um pacote de atualizações futuras (e de ser removido automaticamente) com apt-mark
usando este comando:
sudo apt-mark hold PACKAGE
Substituindo PACKAGE
pelo pacote que você deseja impedir de atualização.
Você pode verificar quais pacotes estão marcados como hold
(para que não sejam atualizados) usando:
apt-mark showhold
Para remover uma retenção (para que o pacote possa ser atualizado), use:
sudo apt-mark unhold PACKAGE
Para hold
e unhold
, você pode especificar vários pacotes, assim como ao instalar o software com apt
(separe os pacotes por um espaço).
dpkg
Um tempo atrás, havia alguns gerenciadores de pacotes gráficos que ignoravam o status de suspensão do apt-mark. Não tenho certeza se esse ainda é o caso, mas apenas para garantir (e caso você esteja usando uma versão antiga do Debian/Ubuntu/Linux Mint), aqui está outra maneira de evitar atualizações de pacotes no Ubuntu, Linux Mint ou Debian: dpkg.
Para evitar que um pacote seja atualizado usando dpkg, use:
echo "PACKAGE hold" | sudo dpkg --set-selections
Substitua PACKAGE
pelo pacote que você deseja impedir de atualização.
Você pode ver todas as retenções de pacote usando este comando:
dpkg --get-selections | grep hold
Para remover a suspensão (permitir que o pacote seja atualizado), use:
echo "PACKAGE install" | sudo dpkg --set-selections
Ao contrário de apt-mark
, esta solução não permite especificar vários pacotes de uma vez.
Esse post foi traduzido do site LinuxUprising.com pela rtland.team.
Confira a versão original desse post em inglês:
How To Keep A Package From Updating In Ubuntu, Debian Or Linux Mint [APT]