Pesquisa de site

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.

  1. hold – esta opção usada para marcar um pacote como retido, o que impedirá que o pacote seja instalado, atualizado ou removido.
  2. 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:

  1. a -> Arquivar
  2. c -> Componente
  3. o -> Origem
  4. l -> Etiqueta
  5. 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.