6.2. Les comandes aptitude
, apt-get
, i apt
APT és un gran projecte, els plans originals del qual incloïen una interfície gràfica. Es basa en una biblioteca que conté l'aplicació principal, i
apt-get
fou el primer frontal — basat en la línia d'ordres — que es va desenvolupar dins del projecte.
apt
és un segon frontal basat en la línia d'ordres proporcionat per APT i que supera alguns errors de disseny d'
apt-get
.
Ambdues eines estan construïdes sobre la mateixa biblioteca i per tant són molt semblants, però el comportament per defecte d'apt
ha estat millorat per a l'ús interactiu i per fer el que la majoria d'usuaris esperen. Els desenvolupadors d'APT es reserven el dret de canviar la interfície pública d'aquesta eina per millorar-la. Al contrari, la interfície pública d'apt-get
està ben definida i no serà canviada de cap manera incompatible cap enrere. Per tant, és l'eina que voldreu utilitzar quan necessiteu fer «scripts» amb peticions d'instal·lació de paquets.
Nombroses altres interfícies gràfiques van aparèixer com a projectes externs: synaptic
, aptitude
(que inclou tant una interfície de mode de text com una gràfica — tot i que encara no està completa), wajig
, etc. La interfície més recomanada, apt
, és la que utilitzarem en els exemples donats en aquesta secció. Tingueu en compte, però, que apt-get
i aptitude
tenen una sintaxi molt similar a la línia d'ordres. Quan hi hagi grans diferències entre aquestes tres ordres, aquestes seran detallades.
Per a qualsevol tasca amb APT, la llista de paquets disponibles s'ha d'actualitzar; això es pot fer simplement a través d'apt update
. Depenent de la velocitat de la vostra connexió i configuració, l'operació pot trigar una estona, ja que implica la descàrrega d'un cert nombre de fitxers (normalment comprimits) (Packages
, Sources
, Translation-codi-idioma
), que gradualment s'han fet més i més grans a mesura que Debian s'ha desenvolupat (almenys 10-16 MB de dades per a la secció main
). Per descomptat, la instal·lació des d'un conjunt de CD-ROM/DVD no requereix cap descàrrega — en aquest cas, l'operació és molt ràpida.
6.2.2. Instal·lació i eliminació
Amb APT, els paquets es poden afegir o eliminar del sistema, respectivament, amb apt install paquet
i apt remove paquet
. En tots dos casos, APT instal·larà automàticament les dependències necessàries o suprimirà els paquets que depenen del paquet que s'està eliminant. L'ordre apt purge paquet
implica la desinstal·lació completa eliminant també els fitxers de configuració.
Si el fitxer
sources.list
menciona diverses distribucions, és possible especificar la versió del paquet a instal·lar. Es pot sol·licitar un número de versió específic amb
apt install paquet=versió
, però indicant la seva distribució d'origen (
Stable,
Testing o
Unstable) — amb
apt install paquet/distribució
— usualment es l'opció preferida. Amb aquesta ordre, és possible tornar a una versió més antiga d'un paquet (si, per exemple, sabeu que funciona bé), sempre que estigui disponible en una de les fonts referenciades pel fitxer
sources.list
. En cas contrari, l'arxiu
snapshot.debian.org
pot sortir al rescat (vegeu la barra lateral
ANANT MÉS ENLLÀ Versions de paquets antics: snapshot.debian.org
i archive.debian.org
).
Exemple 6.4. Instal·lació de la versió a Unstable d'spamassassin
#
apt install spamassassin/unstable
Si el paquet a instal·lar us ha estat proporcionat en forma d'un simple fitxer .deb
sense cap dipòsit de paquets associat, encara és possible utilitzar APT per instal·lar-lo juntament amb les seves dependències (sempre que les dependències estiguin disponibles als repositoris configurats) amb una ordre simple: apt install ./camí-al-paquet.deb
. El ./
del davant és important per deixar clar que estem referint-nos a un nom de fitxer i no al nom d'un paquet disponible en un dels repositoris.
6.2.3. Actualització del sistema
Es recomanen actualitzacions regulars, perquè inclouen les últimes actualitzacions de seguretat. Per actualitzar, utilitzeu apt update
, apt-get update
o aptitude safe-upgrade
(per descomptat després d'apt update
). Aquesta ordre cerca els paquets instal·lats que es poden actualitzar sense eliminar cap paquet. En altres paraules, l'objectiu és garantir la millora menys intervencionista possible. apt-get
és una mica més exigent que aptitude
o apt
perquè es negarà a instal·lar els paquets que no estiguessin instal·lats prèviament.
apt
normalment triarà el número de versió més recent (excepte pels paquets de Experimental i stable-backports, que són per defecte ignorats independentment del número de versió). Si teniu especificats Testing o Unstable al sources.list
, apt upgrade
canviarà bona part del vostre sistema Stable per Testing o Unstable, que pot no ser el que preteneu.
Per a dir-li a apt
que utilitzi una distribució específica quan cerqui paquets actualitzats heu d'utilitzar l'opció -t
o --target-release
, seguida del nom de la distribució que voleu (per exemple, apt -t stable upgrade
). Per evitar especificar aquesta opció cada vegada que utilitzeu apt
, podeu afegir APT::Default-Release "stable";
al fitxer /etc/apt/apt.conf.d/local
.
Per a actualitzacions més importants, com ara el canvi d'una versió major de Debian a la següent, heu d'utilitzar apt full-upgrade
. Amb aquesta instrucció, apt
completarà l'actualització fins i tot si ha d'eliminar alguns paquets obsolets o instal·lar noves dependències. Aquesta és també l'ordre utilitzada pels usuaris que treballen diàriament amb la versió de Debian Unstable i segueixen la seva evolució dia a dia. És tan senzill que a penes necessita explicació: la reputació d'APT es basa en aquesta gran funcionalitat.
A diferència d'apt
i d'aptitude
, apt-get
no reconeix l'ordre full-upgrade
. En lloc d'això, hauríeu d'utilitzar apt-get dist-upgrade
('actualització de la distribució'), l'ordre històrica i ben coneguda que apt
i aptitude
també accepten per a la comoditat dels usuaris que s'hi han acostumat.
Els resultats d'aquestes operacions queden registrats a /var/log/apt/history.log
i /log/apt/term.log
, mentre que dpkg
manté el seu registre en un fitxer anomenat /var/log/dpkg.log
.
6.2.4. Opcions de configuració
A més dels elements de configuració ja esmentats, és possible configurar certs aspectes d'APT afegint directives en un fitxer del directori /etc/apt/apt.conf.d/
o a /etc/apt/apt.conf
. Recordeu, per exemple, que és possible que APT li digui a dpkg
que ignori els errors de conflicte de fitxers especificant DPkg::options { "--force-overwrite"; }
.
Si només es pot accedir a la web a través d'un servidor intermediari (o «proxy»), afegiu una línia com ara
Acquire::http::proxy "http://elteuproxy:3128"
. Per a un servidor intermediari FTP, escriviu
Acquire::ftp::proxy "ftp://elteuproxy"
. Per descobrir més opcions de configuració, llegiu la pàgina del manual de
apt.conf(5) (per a detalls amb les pàgines man, vegeu
Secció 7.1.1, «Pàgines de manual»).
6.2.5. Gestió de les prioritats dels paquets
Un dels aspectes més importants en la configuració de APT és la gestió de les prioritats associades a cada font de paquets. Per exemple, és possible que vulgueu ampliar una distribució amb un o dos paquets més nous de Testing, Unstable o Experimental. És possible assignar una prioritat a cada paquet disponible (el mateix paquet pot tenir diverses prioritats depenent de la seva versió o la distribució que el proveeix). Aquestes prioritats influiran en el comportament d'APT: per a cada paquet, sempre seleccionarà la versió amb la prioritat més alta (excepte si aquesta versió és més antiga que la instal·lada i si la seva prioritat és inferior a 1000).
APT defineix diverses prioritats per defecte. Cada versió de paquet instal·lat té una prioritat de 100. Una versió no instal·lada té una prioritat de 500 per defecte, però pot saltar a 990 si forma part de la versió de destinació (definida amb l'opció -t
de línia d'ordres o amb la directiva de configuració APT::Default-Release
).
Podeu modificar les prioritats afegint entrades en un fitxer a /etc/apt/preferences.d/
o al fitxer /etc/apt/preferences
amb els noms dels paquets afectats, la seva versió, el seu origen i la seva nova prioritat.
APT mai instal·larà una versió més antiga d'un paquet (és a dir, un paquet el número de versió del qual sigui més baix que el del paquet actualment instal·lat), excepte si la seva prioritat és superior a 1000 (o és explícitament sol·licitat per l'usuari, vegeu
Secció 6.2.2, «Instal·lació i eliminació»). APT sempre instal·larà el paquet de prioritat més alta que segueix aquesta restricció. Si dos paquets tenen la mateixa prioritat, APT instal·la el més nou (el número de versió del qual és el més alt). Si dos paquets amb la mateixa versió tenen la mateixa prioritat però difereixen en el seu contingut, APT instal·larà la versió que no estigui instal·lada (aquesta regla s'ha creat per cobrir el cas d'una actualització de paquet sense l'increment del número de revisió, que normalment és necessari).
En termes més concrets, un paquet la prioritat del qual és
- < 0
no s'instal·larà mai,
- 1..99
només s'instal·larà si no hi ha cap altra versió del paquet ja instal·lada,
- 100..499
només s'instal·larà si no hi ha cap altra versió més nova instal·lada o disponible en una altra distribució,
- 500....989
només s'instal·larà si no hi ha cap versió més nova instal·lada o disponible a la distribució de destinació,
- 990..1000
s'instal·larà excepte si la versió instal·lada és més nova,
- > 1000
sempre s'instal·larà, fins i tot si obliga a APT a rebaixar-lo a una versió més antiga.
Quan APT comprova /etc/apt/preferences
i /etc/apt/preferences.d/
, primer té en compte les entrades més específiques (sovint les que especifiquen el paquet afectat), després les més genèriques (incloent, per exemple, tots els paquets d'una distribució). Si existeixen diverses entrades genèriques, s'utilitza el primer encaix. Els criteris de selecció disponibles inclouen el nom del paquet i la font que el proporciona. Cada font de paquets s'identifica per la informació continguda en un fitxer Release
que APT descarrega juntament amb els fitxers Packages
. Aquest especifica l'origen (normalment “Debian” per als paquets de miralls oficials, però també pot ser el nom d'una persona o una organització en repositoris de tercers). També aporta el nom de la distribució (normalment Stable, Testing, Unstable o Experimental per a les distribucions estàndard proporcionades per Debian) juntament amb la seva versió (per exemple, 11 per Debian Bullseye). Vegem la seva sintaxi a través d'estudis de casos realistes d'aquest mecanisme.
Suposem que només voleu utilitzar paquets de la versió estable de Debian. Aquells que es proporcionen en altres versions no s'haurien d'instal·lar excepte si es demana explícitament. Podeu escriure les següents entrades al fitxer /etc/apt/preferences
:
a=estable
defineix el nom de la distribució seleccionada. o=Debian
limita l'abast als paquets l'origen dels quals és “Debian”.
Suposem ara que teniu un servidor amb diversos programes locals depenent de la versió 5.28 de Perl i que voleu assegurar-vos que les actualitzacions no n'instal·lin una altra versió. Podeu utilitzar aquesta entrada:
Per obtenir una millor comprensió dels mecanismes de prioritat i les propietats de distribució o de repositori a fixar, no dubteu en executar
apt-cache policy
per mostrar la prioritat predeterminada associada a cada font de paquets, o
apt-cache policy paquet
per mostrar la prioritat predeterminada per a cada versió i font d'un paquet com s'explica a
Secció 6.3.1, «L'ordre apt-cache policy
».
La documentació de referència per als fitxers /etc/apt/preferences
i /etc/apt/preferences.d/
està disponible a la pàgina manual apt.preferences(5), que podeu visualitzar amb man apt.preferences
.
6.2.6. Treballar amb diverses distribucions
Sent apt
una eina tan meravellosa, és temptador triar paquets procedents d'altres distribucions. Per exemple, després d'haver instal·lat un sistema Stable, és possible que vulgueu provar un paquet de programari disponible a Testing or Unstable sense separar-se massa de l'estat inicial del sistema.
Fins i tot encara que a vegades es sorgeixin problemes quan es barregen paquets de diferents distribucions,
apt
gestiona molt bé aquesta coexistència i limita els riscos de forma molt efectiva. La millor manera de procedir és llistar totes les distribucions usades a
/etc/apt/sources.list
(algunes persones sempre posen les tres distribucions, però recordeu que
Unstable està reservat per a usuaris experimentats) i definir la vostra distribució de referència amb el paràmetre
APT::Default-Release
(vegeu
Secció 6.2.3, «Actualització del sistema»).
Suposem que Stable és la vostra distribució de referència, però que Testing i Unstable també apareixen al vostre fitxer sources.list
. En aquest cas, podeu utilitzar apt install paquet/testing
per instal·lar un paquet de Testing. Si la instal·lació falla a causa d'algunes dependències insatisfactibles, possibiliteu resoldre aquestes dependències amb Testing afegint el paràmetre -t testing
. El mateix s'aplica, òbviament, a Unstable.
En aquesta situació, les actualitzacions (
upgrade
i
full-upgrade
) es fan dins amb
Stable excepte els paquets ja actualitzats a una altra distribució: aquests seguiran les actualitzacions disponibles en les altres distribucions. Explicarem aquest comportament amb l'ajuda de les prioritats per defecte establertes per APT a continuació. No dubteu a utilitzar
apt-cache policy
(
Secció 6.3.1, «L'ordre apt-cache policy
») per verificar les prioritats donades.
Tot es centra en el fet que APT només considera paquets de versió més alta o igual que la instal·lada (assumint que /etc/apt/preferences
no s'ha utilitzat per forçar prioritats superiors a 1000 per a alguns paquets).
Suposem que heu instal·lat la versió 1 d'un primer paquet des de Stable i que la versió 2 i 3 estan disponibles respectivament a Testing i Unstable. La versió instal·lada té una prioritat de 100, però la versió disponible a Stable (la mateixa) té una prioritat de 990 (perquè forma part de la versió de destinació). Els paquets Testing i Unstable tenen una prioritat de 500 (la prioritat predeterminada d'una versió no instal·lada). La guanyadora és, per tant, la versió 1 amb una prioritat de 990. El paquet “roman a Stable”.
Prenguem l'exemple d'un altre paquet la versió 2 del qual s'ha instal·lat de Testing. La versió 1 està disponible a Stable i la versió 3 a Unstable. La versió 1 (de prioritat 990 — per tant inferior a 1000) queda descartada perquè és més baixa que la versió instal·lada. Això ens deixa només les versions 2 i 3, ambdues amb prioritat 500. Davant d'aquesta alternativa, APT selecciona la versió més nova, la d'Unstable. Si no voleu que un paquet de Testing migri a la versió d'Unstable, heu d'assignar una prioritat inferior a 500 (490, per exemple) als paquets que vénen d'Unstable. Podeu modificar /etc/apt/preferències
a aquest efecte:
Package: *
Pin: release a=unstable
Pin-Priority: 490
6.2.7. Seguiment dels paquets instal·lats automàticament
Una de les funcionalitats essencials de l'apt
és el seguiment dels paquets instal·lats només a través de dependències. Aquests paquets s'anomenen “automàtics” i sovint inclouen biblioteques.
Amb aquesta informació, quan s'eliminen els paquets, els gestors de paquets poden computar una llista de paquets automàtics que ja no són necessaris (perquè no hi ha paquets “manualment instal·lats” que en depenguin). apt-get autoremove
o apt autoremove
es desfarà d'aquests paquets. L'aptitude
no té aquesta ordre perquè les elimina automàticament tan aviat com s'identifiquen. En tots els casos, les eines mostren un missatge clar llistant els paquets afectats.
És un bon costum marcar com a automàtic qualsevol paquet que no necessiteu directament perquè sigui eliminat automàticament quan ja no sigui necessari.
apt-mark auto paquet
marcarà el paquet indicat com a automàtic, mentre que
apt-mark paquet
fa el contrari.
aptitude markauto
i
aptitude unmarkauto
funcionen de la mateixa manera, tot i que ofereixen més característiques per marcar molts paquets alhora (vegeu
Secció 6.5.1, «aptitude
»). La interfície interactiva basada en la consola d'
aptitude
també fa que sigui fàcil revisar la “marca automàtica” en molts paquets.
Potser algú vol saber per què hi ha un paquet instal·lat automàticament al sistema. Per obtenir aquesta informació des de la línia d'ordres podeu utilitzar aptitude why paquet
(apt
i apt-get
no tenen cap característica similar):
$
aptitude why python3-debian
i aptitude Suggests apt-xapian-index
p apt-xapian-index Depends python3-debian (>= 0.1.14)
Els patrons («patterns») permeten realitzar cerques complexes per a seleccionar els paquets que voleu instal·lar o mostrar. Es van implementar per primera vegada per a l'aptitude (vegeu
Secció 6.5, «Interfícies: aptitude
, synaptic
»), però ara l'APT també en pot fer ús.
Per exemple, podem utilitzar apt list ?automatic
per a llistar tots els paquets instal·lats automàticament. Per a trobar paquets instal·lats automàticament que ja no depenen de cap dels paquets instal·lats manualment es pot utilitzar el patró ?garbage
.
Els patrons lògics es poden combinar amb altres paquets per a formar expressions més complexes. Per exemple, podríem utilitzar un patró com ?and(patró,patró)
. Vegeu apt-patterns(7) i glob(7) per conèixer tots els patrons que podeu utilitzar i les expressions complexes que podeu crear amb ells.