La comanda apt és el gestor de paquets de Debian, Ubuntu, Raspberry Pi OS, Linux Mint i la resta de distribucions derivades. Descarrega els programes dels repositoris, en resol les dependències, els instal·la, els actualitza i els esborra. És la versió moderna i pensada per a ús interactiu d’apt-get i apt-cache: fa el mateix, però amb ordres més curtes, colors i una barra de progrés.
Sintaxi
sudo apt [opcions] ordre [paquets...]
Les ordres que modifiquen el sistema (update, install, upgrade, remove…) necessiten sudo. Les de consulta (search, show, list, policy) no.
Ordres més habituals
| Ordre | Què fa |
|---|---|
apt update | Descarrega la llista actualitzada de paquets dels repositoris |
apt list --upgradable | Mostra quins paquets tenen una versió nova |
apt upgrade | Actualitza els paquets, sense esborrar-ne cap |
apt full-upgrade | Actualitza i, si cal, esborra o instal·la paquets per resoldre dependències (abans dist-upgrade, que també funciona) |
apt install paquet | Instal·la un paquet i les seves dependències |
apt reinstall paquet | Torna a instal·lar un paquet |
apt remove paquet | Esborra un paquet, però en conserva la configuració |
apt purge paquet | Esborra un paquet i la seva configuració |
apt autoremove | Esborra les dependències que ja no fa servir ningú |
apt search paraula | Cerca paquets pel nom o la descripció |
apt show paquet | Descripció, versió, mida i dependències d’un paquet |
apt list --installed | Llista els paquets instal·lats |
apt policy paquet | Versió instal·lada, versió candidata i de quin repositori ve |
apt depends paquet / apt rdepends paquet | De què depèn un paquet / qui en depèn |
apt download paquet | Descarrega el .deb al directori actual sense instal·lar-lo |
apt clean | Esborra la memòria cau de paquets descarregats |
Exemples
Actualitzar el sistema. Primer sempre update, perquè apt sàpiga quines versions noves hi ha:
sudo apt update
apt list --upgradable
sudo apt upgrade
Instal·lar diversos paquets de cop, sense que pregunti (-y):
sudo apt install -y git tmux
Instal·lar un paquet sense els paquets recomanats, útil en servidors i contenidors per instal·lar només el necessari:
sudo apt install --no-install-recommends nginx
Instal·lar un .deb que has descarregat, resolent les dependències des dels repositoris (el ./ indica que és un fitxer, no el nom d’un paquet):
sudo apt install ./programa_1.0_amd64.deb
Cercar un paquet. apt search busca també a les descripcions, de manera que pot donar molts resultats; amb --names-only busca només als noms:
$ apt search --names-only '^tree$'
Sorting...
Full Text Search...
tree/stable 2.2.1-1 arm64
displays an indented directory tree, in color
Veure la informació d’un paquet abans d’instal·lar-lo:
$ apt show tree
Package: tree
Version: 2.2.1-1
Priority: optional
Section: utils
Maintainer: Florian Ernst <florian@debian.org>
Installed-Size: 173 kB
Depends: libc6 (>= 2.38)
...
Download-Size: 57.9 kB
APT-Sources: http://deb.debian.org/debian trixie/main arm64 Packages
Description: displays an indented directory tree, in color
Saber quina versió tens i de quin repositori ve (molt útil si tens repositoris de tercers):
$ apt policy nano
nano:
Installed: 8.4-1+deb13u1
Candidate: 8.4-1+deb13u1
Version table:
*** 8.4-1+deb13u1 500
500 http://deb.debian.org/debian trixie/main arm64 Packages
100 /var/lib/dpkg/status
Esborrar un programa amb la seva configuració i, després, les dependències que han quedat òrfenes:
sudo apt purge nom-del-programa
sudo apt autoremove
Evitar que un paquet s’actualitzi
Amb apt-mark pots «congelar» un paquet en la versió actual, per exemple si la nova versió et dona problemes:
sudo apt-mark hold paquet
apt-mark showhold
sudo apt-mark unhold paquet
apt-mark també serveix per marcar un paquet com a instal·lat a mà (apt-mark manual paquet), perquè autoremove no te l’esborri.
upgrade o full-upgrade?
apt upgradeinstal·la les versions noves, i paquets nous si calen, però mai esborra res. Si una actualització requereix treure un paquet, la deixa pendent.apt full-upgradefa el mateix però pot esborrar paquets si cal. És el que necessites quan veus el missatge de paquets que no s’han actualitzat (kept back). Llegeix bé la llista abans de confirmar.
Cap de les dues canvia de versió de la distribució (per exemple, de Debian 12 a 13). Per fer-ho, a Debian cal canviar abans el nom de la versió als repositoris (bookworm → trixie) i després fer full-upgrade, seguint les notes de la versió. A Ubuntu es fa amb sudo do-release-upgrade. La versió anterior d’aquest post deia que dist-upgrade actualitzava d’Ubuntu 20.04 a 22.04, i no és així.
Repositoris
Els repositoris són a /etc/apt/sources.list.d/. Des de Debian 13 i Ubuntu 24.04 fan servir el format nou .sources (deb822), en lloc de l’antic sources.list:
$ cat /etc/apt/sources.list.d/debian.sources
Types: deb
URIs: http://deb.debian.org/debian/
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.pgp
Si tens fitxers .list antics, sudo apt modernize-sources (Debian 13) els converteix al format nou.
Repositoris de tercers: la comanda apt-key que trobaràs en molts tutorials és obsoleta (a Debian 13 ja no existeix), perquè donava confiança a la clau per a tots els repositoris. Ara la clau es desa a /etc/apt/keyrings/ i s’indica només al repositori que la fa servir, amb Signed-By. Segueix sempre les instruccions actuals del proveïdor.
apt als scripts
apt avisa que la seva sortida pot canviar entre versions (WARNING: apt does not have a stable CLI interface). Als scripts fes servir apt-get i apt-cache, que tenen les mateixes ordres i una interfície estable. Tens una comparativa a diferències entre apt, apt-get i aptitude.
Comandes relacionades
apt-get: la versió clàssica, per a scripts.aptitude: un altre gestor, amb interfície de text.dpkg: l’eina de baix nivell que fa servirapt.yumidnf: l’equivalent a Red Hat, Fedora i derivades.- La gestió de paquets a Linux: visió general.