Actualitzar paquets a LinuxNotas

Diferències entre apt, apt-get i aptitude a Debian i Ubuntu: quina fer servir



A Debian, Ubuntu, Raspberry Pi OS i derivades tens tres comandes per instal·lar i actualitzar programes: apt, apt-get i aptitude. Totes tres fan servir els mateixos repositoris i la mateixa base de dades de paquets, i per sota totes acaben cridant dpkg. La diferència és per a qui estan pensades.

Resum ràpid

aptapt-get (i apt-cache)aptitude
Pensada per aÚs interactiu al terminalScripts i automatitzacióÚs interactiu, conflictes complicats
Instal·lada per defecteSíSíNo
SortidaColors, barra de progrésEstable entre versionsInterfície de text a pantalla completa, o comanda
Resolutor de dependènciesEl d’APTEl d’APTPropi, proposa alternatives
RecomanacióPer al dia a diaAls scripts i DockerfilesQuan apt no sap resoldre un conflicte

apt

És la interfície moderna (des d’APT 1.0, el 2014) i la que hauries de fer servir quan escrius comandes a mà. Reuneix en una sola comanda les ordres més habituals d’apt-get i apt-cache, amb noms més curts:

  • apt search, apt show i apt policy substitueixen apt-cache search, show i policy.
  • apt list --installed i apt list --upgradable no tenen equivalent directe a apt-get.
  • apt full-upgrade és el nom nou de dist-upgrade (el vell també funciona).
  • Mostra colors i una barra de progrés.

L’inconvenient: la seva sortida pot canviar entre versions, i ho avisa si la llegeixes des d’un script (WARNING: apt does not have a stable CLI interface).

Més detalls a la comanda apt.

apt-get

És l’eina clàssica, i no és més potent que apt: fan servir la mateixa biblioteca i el mateix resolutor de dependències. El que ofereix és estabilitat: les ordres, les opcions i el format de la sortida es mantenen, i per això és la que s’ha de fer servir en scripts, Dockerfiles i eines com Ansible.

Les consultes no són a apt-get, sinó a apt-cache (apt-cache search, apt-cache policy…).

Té algunes ordres que apt també té però que es fan servir sobretot des d’apt-get: apt-get -s (simular), apt-get download, apt-get source, apt-get build-dep…

Més detalls a la comanda apt-get.

aptitude

És un programa a part (sudo apt install aptitude) amb dues cares:

  • Una interfície de text a pantalla completa (sudo aptitude), amb menús i llistes on marques els paquets per instal·lar o esborrar i aplices els canvis tots de cop.
  • Un mode comanda amb ordres semblants (aptitude install, aptitude search, aptitude safe-upgrade…).

El que el fa diferent és el resolutor de dependències: quan hi ha un conflicte, en lloc de rendir-se, proposa una solució; si no t’agrada, en demana una altra. També té ordres que no tenen equivalent directe a apt, com aptitude why paquet (per què està instal·lat) i patrons de cerca molt potents (aptitude search '~o' per veure els paquets obsolets).

Més detalls a la comanda aptitude.

Equivalències

Tascaaptapt-get / apt-cacheaptitude
Actualitzar la llistaapt updateapt-get updateaptitude update
Actualitzar sense esborrarapt upgradeapt-get upgradeaptitude safe-upgrade
Actualitzar del totapt full-upgradeapt-get dist-upgradeaptitude full-upgrade
Instal·larapt install papt-get install paptitude install p
Esborrar amb configuracióapt purge papt-get purge paptitude purge p
Esborrar dependències òrfenesapt autoremoveapt-get autoremoveAutomàtic
Cercarapt search papt-cache search paptitude search p
Informacióapt show papt-cache show paptitude show p
Llistar instal·latsapt list --installeddpkg -laptitude search '~i'
Simularapt -s install papt-get -s install paptitude -s install p
Congelar un paquetapt-mark hold papt-mark hold paptitude hold p

Correccions respecte a la versió anterior

  • autoremove no és exclusiu d’apt: apt-get autoremove existeix des de fa molts anys.
  • dist-upgrade tampoc és exclusiu d’apt-get: a apt es diu full-upgrade.
  • Totes tres eines desen un historial: apt i apt-get a /var/log/apt/history.log, i aptitude a més a /var/log/aptitude.

Quina faig servir?

  • Al terminal, cada dia: apt.
  • En un script: apt-get (amb -y i, si cal, -q).
  • Si apt no pot resoldre unes dependències o vols explorar els paquets: aptitude.

Es poden fer servir les tres al mateix sistema sense problemes.

Comandes relacionades