Como desativar/bloquear ou colocar atualizações de pacotes na lista negra usando a ferramenta Apt
APT significa que Advanced Packaging Tool é outro gerenciador de pacotes encontrado em sistemas baseados em Linux. Inicialmente projetado como um front-end para o dpkg funcionar com pacotes .deb, o apt conseguiu mostrar sua visibilidade no Mac OS, Open Solaris etc.
Quer aprender e dominar os comandos APT e DPKG para gerenciar o gerenciamento de pacotes Debian, então use nossos artigos detalhados que cobrirão mais de 30+ exemplos em ambas as ferramentas.
Neste artigo veremos várias técnicas para desabilitar/bloquear pacotes de instalação, atualização e remoção no Debian Linux e seus derivados, como Ubuntu e Linux Mint.
1. Desative/bloqueie o pacote usando ‘apt-mark’ com a opção hold/unhold
O comando apt-mark marcará ou desmarcará um pacote de software como sendo instalado automaticamente e é usado com a opção hold ou unhold.
- hold – esta opção usada para marcar um pacote como retido, o que impedirá que o pacote seja instalado, atualizado ou removido.
- unhold – esta opção usada para remover uma retenção previamente definida em um pacote e permitir instalar, atualizar e remover pacotes.
Por exemplo, para fazer com que um pacote diga apache2
indisponível para instalação, atualização ou desinstalação, você pode usar o seguinte comando no terminal com privilégios de root:
apt-mark hold apache2
Para disponibilizar este pacote para atualização, basta substituir ‘hold’ por ‘unhold’.
apt-mark unhold apache2
Bloqueando atualizações de pacotes usando o arquivo de preferências APT
Outra forma de bloquear atualizações de um pacote específico é adicionar sua entrada em /etc/apt/preferences
ou /etc/apt/preferences.d/official-package-repositories.pref
arquivo. Este arquivo é responsável por atualizar ou bloquear certas atualizações de pacotes de acordo com a prioridade especificada pelo usuário.
Para bloquear o pacote, basta inserir seu nome, recurso adicional e a prioridade que deseja atribuir. Aqui, a prioridade < 1
bloquearia o pacote.
Para bloquear qualquer pacote, basta inserir seus detalhes no arquivo /etc/apt/preferences
assim:
Package: <package-name> (Here, '*' means all packages)
Pin: release *
Pin-Priority: <less than 0>
Por exemplo, para bloquear atualizações do pacote apache2, adicione a entrada conforme mostrado:
Package: apache2
Pin: release o=Ubuntu
Pin-Priority: 1
Podemos usar outras opções com a palavra-chave release para identificar melhor o pacote ao qual estamos aplicando a Prioridade de Pin. Essas palavras-chave são:
- a -> Arquivar
- c -> Componente
- o -> Origem
- l -> Etiqueta
- n -> Arquitetura
como :
Pin: release o=Debian,a=Experimental
Significaria extrair o pacote indicado do arquivo experimental do pacote Debian.
Colocar uma atualização de pacote na lista negra usando o arquivo APT Autoremove
Outra maneira de colocar um pacote na lista negra da instalação é atualizar sua entrada em um dos arquivos contidos no diretório /etc/apt/apt.conf.d/
que é 01autoremove.
O arquivo de amostra é mostrado abaixo:
APT
{
NeverAutoRemove
{
"^firmware-linux.*";
"^linux-firmware$";
};
VersionedKernelPackages
{
# linux kernels
"linux-image";
"linux-headers";
"linux-image-extra";
"linux-signed-image";
# kfreebsd kernels
"kfreebsd-image";
"kfreebsd-headers";
# hurd kernels
"gnumach-image";
# (out-of-tree) modules
".*-modules";
".*-kernel";
"linux-backports-modules-.*";
# tools
"linux-tools";
};
Never-MarkAuto-Sections
{
"metapackages";
"restricted/metapackages";
"universe/metapackages";
"multiverse/metapackages";
"oldlibs";
"restricted/oldlibs";
"universe/oldlibs";
"multiverse/oldlibs";
};
};
Agora, para colocar qualquer pacote na lista negra, basta inserir seu nome em Never-MarkAuto-Sections
. Basta digitar o nome do pacote no final em Never-MarkAuto-Section
e salvar e fechar o arquivo. Isso bloquearia a busca por novas atualizações desse pacote.
Por exemplo, para colocar um pacote na lista negra de atualização, adicione a entrada conforme mostrado:
Never-MarkAuto-Sections
{
"metapackages";
"restricted/metapackages";
"universe/metapackages";
"multiverse/metapackages";
"oldlibs";
"restricted/oldlibs";
"universe/oldlibs";
"multiverse/oldlibs";
"apache2*";
};
};
Seleção de pacote personalizado para atualização
Outra alternativa para isso é escolher o que deseja atualizar. A ferramenta apt lhe dá liberdade para escolher o que deseja atualizar, mas para isso você deve ter conhecimento sobre quais pacotes estão disponíveis para atualização.
Para tal, o seguinte conjunto de comandos pode ser útil:
a. Para listar quais pacotes têm atualizações pendentes.
apt-get -u -V upgrade
b. Para instalar apenas pacotes seletivos.
apt-get --only-upgrade install <package-name>
Conclusão
Neste artigo, explicamos algumas maneiras de desabilitar/bloquear ou colocar atualizações de pacotes na lista negra usando o modo APT. Se você conhece alguma outra forma preferida, informe-nos por meio de comentários ou se você estava procurando o comando yum para desabilitar/bloquear a atualização do pacote e leia o artigo abaixo.