Product SiteDocumentation Site

Capítol 6. Manteniment i actualitzacions: Les eines APT

6.1. Omplint el fitxer sources.list
6.1.1. Sintaxi
6.1.2. Repositoris per a usuaris de Stable
6.1.3. Repositoris per als usuaris de Testing/Unstable
6.1.4. Ús de rèpliques alternatives
6.1.5. Recursos no oficials: mentors.debian.net
6.1.6. Intermediari cau per a paquets Debian
6.2. Les comandes aptitude, apt-get, i apt
6.2.1. Inicialització
6.2.2. Instal·lació i eliminació
6.2.3. Actualització del sistema
6.2.4. Opcions de configuració
6.2.5. Gestió de les prioritats dels paquets
6.2.6. Treballar amb diverses distribucions
6.2.7. Seguiment dels paquets instal·lats automàticament
6.2.8. Patrons APT
6.3. L'ordre apt-cache
6.3.1. L'ordre apt-cache policy
6.4. L'ordre apt-file
6.5. Interfícies: aptitude, synaptic
6.5.1. aptitude
6.5.2. synaptic
6.6. Comprovació de l'autenticitat d'un paquet
6.7. Actualització d'una distribució estable a la següent
6.7.1. Procediment recomanat
6.7.2. Gestió de problemes després d'una actualització
6.7.3. Fent neteja després d'una actualització
6.8. Mantenir un sistema actualitzat
6.9. Actualitzacions automàtiques
6.9.1. Configurar dpkg
6.9.2. Configurar l'APT
6.9.3. Configurar debconf
6.9.4. Gestió de la interacció a la línia d'ordres
6.9.5. La combinació miraculosa
6.10. Cerca de paquets
El que fa que Debian sigui tan popular entre els administradors és la facilitat amb què es pot instal·lar programari i la facilitat amb què es pot actualitzar tot el sistema. Aquest avantatge únic es deu en gran part al programa APT, que els administradors de Falcot Corp van estudiar amb entusiasme.
APT són les inicials d'«Advanced Packaging Tool» o “Eina Avançada de Paquets”. El que fa que aquest programa sigui “avançat” és el seu enfocament sobre els paquets. No només els avalua individualment, sinó que els considera en conjunt i produeix la millor combinació possible de paquets depenent de què està disponible i és compatible d'acord amb les dependències.
APT necessita que se li doni una “llista de fonts de paquets (repositoris)”: el fitxer /etc/apt/sources.list llistarà diferents repositoris que publiquen paquets Debian. APT importarà llavors la llista de paquets publicats per cadascuna d'aquestes fonts. Aquesta operació es duu a terme baixant arxius Packages.xz o una variant com ara Packages.gz o .bz2 (utilitzant un mètode de compressió diferent) en cas d'una font de paquets binaris, i analitzant-ne el contingut. En el cas d'una font de paquets font, APT descarrega arxius Sources.xz o una variant utilitzant un mètode de compressió diferent. Quan ja hi ha una còpia antiga d'aquests arxius, APT pot actualitzar-la només baixant les diferències (vegeu el requadre SUGGERIMENT Actualitzacions incrementals).

6.1. Omplint el fitxer sources.list

6.1.1. Sintaxi

Cada línia activa en el fitxer /etc/apt/sources.list representa una font de paquets (repositori) i està composta d'almenys tres parts separades per espais. Per a una descripció completa del format de fitxer i de les composicions acceptades d'una entrada vegeu sources.list(5).

Exemple 6.1. Exemple del format d'una entrada de /etc/apt/sources.list

deb url distribució component1 component2 component3 [..] componentX
deb-src url distribució component1 component2 component3 [..] componentX
El primer camp indica el tipus de font:
deb
font de paquets (repositori) de paquets binaris
deb-src
font de paquets (repositori) de paquets font
El segon camp dóna l'URL base de la font. Combinat amb els noms de fitxer llistats en els fitxers Packages.xz, ha de donar un URL complet i vàlid. Això pot consistir en un mirall Debian o en qualsevol altre arxiu de paquets configurat per un tercer. L'URL pot començar amb file:// per indicar una font local instal·lada a la jerarquia de fitxers del sistema, amb http:// o https:// per indicar una font accessible des d'un servidor web, o amb ftp:// o ftps:// per a una font disponible en un servidor FTP. L'URL també pot començar amb cdrom: per instal·lacions basades en CD-ROM/DVD/Blu-ray, encara que això és menys freqüent, ja que els mètodes d'instal·lació basats en xarxa són més comuns. Altres mètodes com ssh:// o tor+http(s):// estan suportats i es troben explicats a sources.list(5) o a la documentació dels respectius paquets apt-transport-mètode.
La sintaxi del darrer camp depèn de l'estructura del repositori. En el cas més simple, es pot simplement indicar un subdirectori (amb una barra final requerida) de la font desitjada. Sovint es tracta d'un simple “./” que es refereix a l'absència d'un subdirectori. Els paquets es troben directament a l'URL especificat. Però en el cas més comú, els repositoris s'estructuraran com un mirall de Debian, amb múltiples distribucions, cadascuna amb múltiples components. En aquests casos, anomeneu la distribució escollida pel seu «codename» — vegeu la llista a la barra lateral COMUNITAT Bruce Perens, un líder polèmic — o per la corresponent «suite» (oldoldstable,oldstable, stable, testing, unstable) i després els components a activar. Un mirall Debian típic proporciona els components main, contrib, i non-free.
Les entrades cdrom descriuen els CD/DVD-ROMs que teniu. Contràriament a altres entrades, un CD-ROM no sempre està disponible, ja que s'ha d'inserir a la unitat i ja que només es pot llegir un disc alhora. Per aquestes raons, aquestes fonts es gestionen d'una manera lleugerament diferent, i s'han d'afegir amb el programa apt-cdrom, normalment executat amb el paràmetre add. Aquest últim sol·licitarà que el disc s'insereixi a la unitat i navegarà pels seus continguts cercant arxius Packages. Utilitzarà aquests fitxers per actualitzar la seva base de dades de paquets disponibles (aquesta operació es fa normalment amb l'ordre apt update). A partir de llavors, APT pot requerir que el disc s'insereixi si necessita un dels seus paquets.

6.1.2. Repositoris per a usuaris de Stable

Aquí hi ha un sources.list estàndard per a un sistema que executa la versió Stable de Debian:

Exemple 6.2. Arxiu /etc/apt/sources.list per a usuaris de Debian «Stable»

# Security updates
deb http://security.debian.org/ bullseye-security main contrib non-free
deb-src http://security.debian.org/ bullseye-security main contrib non-free

## Debian mirror

# Base repository
deb https://deb.debian.org/debian bullseye main contrib non-free
deb-src https://deb.debian.org/debian bullseye main contrib non-free

# Stable updates
deb https://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src https://deb.debian.org/debian bullseye-updates main contrib non-free

# Stable backports
deb https://deb.debian.org/debian bullseye-backports main contrib non-free
deb-src https://deb.debian.org/debian bullseye-backports main contrib non-free
Aquest fitxer llista totes les fonts de paquets associats amb la versió Bullseye de Debian (l'actual Stable en el moment d'escriure el llibre). En l'exemple anterior, optem per anomenar “bullseye” explícitament en lloc d'utilitzar els corresponents àlies “stable” (stable, stable-updates, stable-backports) perquè no volem que la distribució subjacent s'actualitzi fora del nostre control quan el proper llançament estable surti.
La majoria dels paquets provindran del “repositori base”, que conté tots els paquets però rarament s'actualitza (aproximadament un cop cada 2 mesos per a un “versió menor” o «point release». Els altres repositoris són parcials (no contenen tots els paquets) i poden allotjar actualitzacions (paquets amb versió més recent) que APT podria instal·lar. Les següents seccions explicaran el propòsit i les regles que regeixen cadascun d'aquests repositoris.
Tingueu en compte que quan la versió desitjada d'un paquet està disponible en diversos repositoris, s'utilitzarà el primer que es llista al fitxer sources.list. Per aquesta raó, les fonts no oficials s'afegeixen normalment al final de l'arxiu.
Com a nota addicional, la major part del que diu aquesta secció sobre Stable és també aplicable a Oldstable ja que aquesta darrera és simplement una Stable antiga que es manté en paral·lel.

6.1.2.1. Actualitzacions de seguretat

Debian es pren de debò la seguretat. Les vulnerabilitats de programari conegudes a Debian se segueixen al Security Bug Tracker (Seguiment d'Errors de Seguretat) i normalment es corregeixen en un termini raonable. Les actualitzacions de seguretat no estan allotjades a la xarxa habitual de miralls Debian sinó a security.debian.org, un petit conjunt de màquines mantingudes pel Debian System Administrators (Administradors de Sistemes Debian). Aquest arxiu conté actualitzacions de seguretat preparades per l'equip de seguretat de Debian, «Debian Security Team» i/o pels mantenidors de paquets per a les distribucions Stable i Oldstable.
El servidor també pot allotjar actualitzacions de seguretat per a Testing però això no passa gaire sovint ja que aquestes actualitzacions tendeixen a arribar a la «suite» a través del flux regular d'actualitzacions procedents d'Unstable.
Per a problemes seriosos, l'equip de seguretat emet un Avís de Seguretat Debian(de l'anglès «Debian Security Advisory» o DSA, ) i l'anuncia juntament amb l'actualització de seguretat a la llista de correu (arxiu).

6.1.2.2. Actualitzacions a Stable

Les actualitzacions de Stable no són sensibles a la seguretat però es consideren prou importants per fer-les arribar als usuaris abans de la següent versió menor estable.
Aquest repositori normalment contindrà correccions per a errors crítics o seriosos que no es van poder solucionar abans de la publicació, o que s'han introduït en actualitzacions posteriors. Depenent de la urgència, també pot contenir actualitzacions per paquets que han d'evolucionar amb el temps, com les regles de detecció de correu brossa d'spamassassin, la base de dades de virus de clamav, les regles d'horaris d'estiu de tots els fusos horaris (tzdata), la versió ESR de Firefox(firefox-esr) o conjunts de claus criptogràfiques com debian-archive-keyring.
A la pràctica, aquest repositori és un subconjunt del repositori proposed-updates, acuradament seleccionat pels Stable Release Managers. Totes les actualitzacions s'anuncien a la llista de correu (arxiu) i en qualsevol cas s'inclouran a la següent versió menor d'Stable.

6.1.2.3. Actualitzacions proposades

Un cop publicada, la distribució Stable només s'actualitza una vegada cada 2 mesos. El repositori proposed-updates és on es preparen les actualitzacions esperades (sota la supervisió dels Stable Release Managers).
Les actualitzacions de seguretat i de stable documentades en les seccions anteriors sempre s'inclouen en aquest dipòsit, però també n'hi ha més, perquè els mantenidors de paquets també tenen l'oportunitat de corregir errors importants que no justifiquen un llançament immediat.
Qualsevol persona pot utilitzar aquest dipòsit per provar aquestes actualitzacions abans de la seva publicació oficial. L'extracte a continuació utilitza l'àliesbullseye-proposed-updates que és alhora més explícit i més consistent ja que buster-proposed-updates també existeix (per a les actualitzacions d'Oldstable):
deb https://deb.debian.org/debian bullseye-proposed-updates main contrib non-free

6.1.2.4. Retroportabilitats per a Stable

El repositori stable-backports allotja «paquets “retroportats” (de l'anglès «backport»). El terme es refereix a un paquet d'algun programari recent que ha estat recompilat per a una distribució més antiga, generalment per a Stable.
A mida que la distribució es torna una mica antiquada, nombrosos projectes de programari han llançat noves versions que no estan integrades en la distribució actual Stable, que només es modifica per abordar els problemes més crítics, com ara els problemes de seguretat. Atès que les versions Testing i Unstable poden ser més arriscades, els mantenidors de paquets de vegades ofereixen de forma voluntària recompilacions d'aplicacions de programari recents per Stable, que té l'avantatge per als usuaris i administradors del sistema de limitar la inestabilitat potencial a un petit nombre de paquets seleccionats. La pàgina https://backports.debian.org proporciona més informació.
Les retroportabilitats d' stable-backports només es creen a partir dels paquets disponibles a Testing. Això garanteix que tots les retroportabilitats instal·lades es puguin actualitzar a la versió estable corresponent una vegada que estigui disponible el proper llançament estable de Debian.
Tot i que aquest repositori proporciona versions més noves de paquets, APT no els instal·larà llevat que doneu instruccions explícites per fer-ho (o a menys que ja ho hàgiu fet amb una versió anterior de la retroportabilitat en qüestió):
$ sudo apt-get install package/bullseye-backports
$ sudo apt-get install -t bullseye-backports package

6.1.3. Repositoris per als usuaris de Testing/Unstable

Aquest és un sources.list estàndard per a un sistema que executa la versió Testing o Unstable de Debian:

Exemple 6.3. Arxiu /etc/apt/sources.list per a usuaris de Debian Testing/Unstable

# Unstable
deb https://deb.debian.org/debian unstable main contrib non-free
deb-src https://deb.debian.org/debian unstable main contrib non-free

# Testing
deb https://deb.debian.org/debian testing main contrib non-free
deb-src https://deb.debian.org/debian testing main contrib non-free

# Testing security updates
deb http://security.debian.org/ testing-security main contrib non-free
deb-src http://security.debian.org/ testing-security main contrib non-free

# Stable
deb https://deb.debian.org/debian stable main contrib non-free
deb-src https://deb.debian.org/debian stable main contrib non-free

# Stable security updates
deb http://security.debian.org/ stable-security main contrib non-free
deb-src http://security.debian.org/ stable-security main contrib non-free
Amb aquest arxiu sources.list APT instal·larà els paquets de la distribució Unstable. Si això no és el que es vol, useu la configuració APT::Default-Release (veieu Secció 6.2.3, «Actualització del sistema») per indicar a APT que agafi els paquets d'una altra distribució (en aquest cas, probablement Testing).
Hi ha bones raons per a incloure tots aquests repositoris, encara que amb un de sol hauria de ser suficient. Els usuaris de Testing apreciaran la possibilitat de seleccionar un paquet específic de Unstable quan la versió a Testing es veu afectada per un error molest. Per altra banda, els usuaris d'Unstable afectats per regressions inesperades tenen la possibilitat de desactualitzar els paquets a la versió (aparentment funcional) de Testing.
La inclusió d'Stable és més discutible, però sovint dóna accés a alguns paquets que s'han eliminat de les versions de desenvolupament. També garanteix que s'obtenen les últimes actualitzacions dels paquets que no s'han modificat des de l'última versió estable.

6.1.3.1. El repositori Experimental

L'arxiu de paquets Experimental està present en tots els miralls de Debian, i conté paquets que no estan a la versió Unstable encara a causa de la seva qualitat deficient — sovint són versions de desenvolupament de programari o versions primerenques (alfa, beta, candidats a publicació...). També s'hi pot enviar un paquet després de patir canvis posteriors que poden generar problemes. El mantenidor intenta descobrir-los amb l'ajuda d'usuaris avançats que poden tractar qüestions importants. Després d'aquesta primera etapa, el paquet és mogut a Unstable, on arriba a un públic molt més ampli i on es posarà a prova amb molt més detall.
Experimental és generalment utilitzat per usuaris que no pateixen per trencar el seu sistema i després reparar-lo. Aquesta distribució dóna la possibilitat d'importar un paquet que l'usuari vol provar o utilitzar a mesura que li sorgeixi la necessitat. Així és exactament com Debian ho enfoca, ja que afegir-la al fitxer sources.list d'APT no porta a l'ús sistemàtic dels seus paquets. La línia a afegir és:
deb https://deb.debian.org/debian experimental main contrib non-free

6.1.4. Ús de rèpliques alternatives

Els exemples de sources.list en aquest capítol es refereixen als repositoris de paquets allotjats a deb.debian.org. Aquests URL us redirigiran als servidors que us siguin propers i que són gestionats per la Xarxa de Distribució de Continguts (o, en anglès, «Content Delivery Networks» (CDN)) el rol principal dels quals és emmagatzemar múltiples còpies dels fitxers per tot el món, i lliurar-los tan ràpid com sigui possible als usuaris. Les empreses del CDN amb les quals Debian està treballant són socis de Debian que ofereixen els seus serveis lliurement a Debian. Mentre que cap d'aquests servidors està sota control directe de Debian, el fet que tot l'arxiu estigui segellat per signatures GPG fa que això no sigui cap problema.
Els usuaris exigents que no estan satisfets amb el rendiment de deb.debian.org poden intentar trobar una rèplica millor a la llista de rèpliques oficial:
Però quan no se sap quina rèplica és la millor per a un, aquesta llista no serveix de gaire. Afortunadament per a vosaltres, Debian manté entrades DNS de la forma ftp.codi-de-país.debian.org (p. ex. ftp.us.debian.org per als EUA, ftp.fr.debian.org per a França, etc.) que abasten molts països i que apunten a un (o més) de les millors rèpliques disponibles en aquell país.
Com a alternativa a deb.debian.org, hi havia httpredir.debian.org. Aquest servei identificava una rèplica propera (entre la llista de miralls oficials, utilitzant principalment GeoIP) i redirigiria les peticions d'APT a aquest mirall. Aquest servei ha estat obsoletat a causa de problemes de fiabilitat i ara httpredir.debian.org proporciona el mateix servei basat en CDN que deb.debian.org.

6.1.5. Recursos no oficials: mentors.debian.net

Hi ha nombroses fonts no oficials de paquets Debian creats per usuaris avançats que han recompilat algun programari — Ubuntu ho ha fet popular amb el seu servei Arxiu Personal de Paquets (o, en anglès, «Personal Package Archive» (PPA)) — per a programadors que ho fan disponible per a tothom, i fins i tot per a desenvolupadors de Debian que ofereixen “preversions” del seu paquet online.
El lloc mentors.debian.net és interessant (encara que només proporciona paquets de codi font), ja que recull paquets creats pels candidats a l'estatus de desenvolupador oficial de Debian o per voluntaris que volen crear paquets de Debian sense passar per aquest procés d'integració. Aquests paquets es posen a disposició sense cap garantia sobre la seva qualitat; assegureu-vos de comprovar el seu origen i la seva integritat i després proveu-los abans de considerar utilitzar-los en producció.
La instal·lació d'un paquet significa donar drets de “root” al seu creador, perquè decideixen sobre el contingut dels scripts d'inicialització que són executats sota aquesta identitat. Els paquets oficials de Debian són creats per voluntaris que han estat aprovats i revisats i que poden signar els seus paquets de manera que es pugui comprovar l'origen i la integritat.
En general, desconfieu d'un paquet l'origen del qual no es coneix i que no està allotjat en un dels servidors oficials de Debian: avalueu el grau en què es pot confiar en el seu creador i comproveu la integritat del paquet.

6.1.6. Intermediari cau per a paquets Debian

Quan tota una xarxa de màquines està configurada per utilitzar el mateix servidor remot per descarregar els mateixos paquets actualitzats, qualsevol administrador sap que seria beneficiós tenir un intermediari (o «proxy») actuant com un cau (o «caché») per a la xarxa local (vegeu la barra lateral VOCABULARI Memòria cau).
Podeu configurar APT per utilitzar un intermediari "estàndard" (vegeu Secció 6.2.4, «Opcions de configuració» per la banda d'APT, i Secció 11.6, «Proxy HTTP/FTP» per la banda del servidor intermediari), però l'ecosistema de Debian ofereix millors opcions per resoldre aquest problema. El programari dedicat que es presenta en aquesta secció és més intel·ligent que un simple intermediari caché perquè pot es basa en l'estructura específica dels repositoris APT (per exemple, es coneix quan els fitxers individuals són obsolets o no i, per tant, ajustar el temps durant el qual es mantenen).
apt-cacher i apt-cacher-ng funcionen com els servidors intermediaris cau (o «proxy caché») normals. El sources.list d'APT es deixa igual, però APT està configurat per utilitzar-los com a «proxy» per a sol·licituds de sortints.
approx, d'altra banda, actua com un servidor HTTP que “replica” qualsevol nombre de repositoris remots en els seus URL de nivell superior. El mapatge entre aquests directoris de nivell superior i els URL remots dels repositoris s'emmagatzema a /etc/approx/aprox.conf:
# <name>   <repository-base-url>
debian     https://deb.debian.org/debian
security   http://security.debian.org/debian-security
approx s'executa per defecte al port 9999 via un sòcol de systemd i requereix que els usuaris ajustin el seu fitxer sources.list per apuntar al servidor approx:
# Sample sources.list pointing to a local approx server
deb http://localhost:9999/security bullseye-security main contrib non-free
deb http://localhost:9999/debian   bullseye main contrib non-free