Marcando e desmarcando pacotes para atualização, instalação e remoção no Debian e agregados
Dica publicada em Linux / Comandos
Marcando e desmarcando pacotes para atualização, instalação e remoção no Debian e agregados
Há várias razões para se "travar" a atualização, instalação e remoção de pacotes no Linux, seguem algumas delas:
Há outras mas vou me ater nesses citados pois são as mais comuns.
O
Exemplificando, entre pacotes versão 1, 2 e 3 o Debian e agregados ficam no 2, onde o "1" é o mais antigo e o "3" o mais novo.
Já nas versões rolling release (que não possuem "versões" como
No caso de uma atualização de sistema, o
Por exemplo, digitando no Terminal:
Deverá aparecer:
Veja que na linha DEBIAN_VERSION_FULL=13.3 a versão do
Para travar pacotes, o comando seria:
Digamos que você queira bloquear os pacotes do
O comando acima faz com que os pacotes não sejam atualizados, não sejam desinstalados e eventualmente não sejam instalados. Dá pra fazer isso com qualquer pacote que esteja sendo instalado via apt.
Por exemplo, depois de um "sudo apt update" pra ver o que está pra ser atualizado, é só escolher dessa listagem e eventualmente bloquear a atualização dos pacotes desejados.
Para ver os pacotes que estão "holdados":
Para "desholdar" um pacote:
Para desbloquear todos os "holdados":
A princípio pode parecer besteira bloquear certos pacotes mas com o tempo de uso e acúmulo de experiência dá pra notar a vantagem.
E esses comandos servem para todas as as pilhas que usam o apt/dpkg.
Se um pacote estiver em hold:
Nada que use APT/dpkg vai mexer nele a não ser que seja forçado. O que não vai funcionar seria então:
Boas holdadas aí...
- Economizar banda de internet;
- Evitar que um programa seja desinstalado, atualizado ou instalado;
- Evitar a atualização de um pacote que pode fazer o sistema ficar instável;
- Evitar a atualização de um pacote que faça programas pararem de funcionar;
- Manter uma versão de pacote ou programa cujas atualizações não o deixarem funcionar adequadamente.
Há outras mas vou me ater nesses citados pois são as mais comuns.
O
Debian não sofre tanto em relação às atualizações pois usa pacotes bem testados e que sempre ficam ali no meio termo entre o mais atual e o nem tão atual; então as atualizações são relativamente espaçadas.
Exemplificando, entre pacotes versão 1, 2 e 3 o Debian e agregados ficam no 2, onde o "1" é o mais antigo e o "3" o mais novo.
Já nas versões rolling release (que não possuem "versões" como
Debian 11, 12 ou 13) que possuem desenvolvimento contínuo há sempre pacotes a serem atualizados e que podem passar de 1GB de tamanho entre uma semana e outra.
No caso de uma atualização de sistema, o
Debian tem a versão atual + atualizações de sistema. Por exemplo, o Debian 13 no lançamento era 'Debian 13.0" e agora, uns 5 meses depois desse lançamento e algumas atualizações de sistema agora é "Debian 13.x".
Por exemplo, digitando no Terminal:
cat /etc/os-release
Deverá aparecer:
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.3
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Veja que na linha DEBIAN_VERSION_FULL=13.3 a versão do
Debian 13 (Trixie) está atualmente em 13.3 e essa nomenclatura vai se alterando conforme atualizações DO SISTEMA (13.4, 13.5, etc) mas sempre mantendo a versão "13" que é o release do Trixie até o próximo lançamento, daqui a mais ou menos 2 anos com o Debian 14.
Para travar pacotes, o comando seria:
sudo apt-mark hold nome-do-pacote (ou mais de um deles)
Digamos que você queira bloquear os pacotes do
Firefox e Google Chrome que aparecem para serem atualizados:
sudo apt-mark hold firefox firefox-l10n-pt-br google-chrome-stable
O comando acima faz com que os pacotes não sejam atualizados, não sejam desinstalados e eventualmente não sejam instalados. Dá pra fazer isso com qualquer pacote que esteja sendo instalado via apt.
Por exemplo, depois de um "sudo apt update" pra ver o que está pra ser atualizado, é só escolher dessa listagem e eventualmente bloquear a atualização dos pacotes desejados.
Para ver os pacotes que estão "holdados":
sudo apt-mark showhold
Para "desholdar" um pacote:
sudo apt-mark unhold nome-do-pacote (ou nomes)
Para desbloquear todos os "holdados":
sudo apt-mark showhold | xargs sudo apt-mark unhold
A princípio pode parecer besteira bloquear certos pacotes mas com o tempo de uso e acúmulo de experiência dá pra notar a vantagem.
E esses comandos servem para todas as as pilhas que usam o apt/dpkg.
Se um pacote estiver em hold:
- apt respeita;
- GNOME Software (e Discovery do KDE) respeita;
- PackageKit respeita;
- aptitude respeita;
- updates automáticos e manuais respeitam.
Nada que use APT/dpkg vai mexer nele a não ser que seja forçado. O que não vai funcionar seria então:
- Flatpak (outro sistema);
- Snap;
- AppImage;
- Programas compilados à mão (make install) ou instalados manualmente com cp ou mesmo via HomeBrew.
Boas holdadas aí...