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. APT Patterns
6.3. L'ordre apt-cache
6.3.1. The apt-cache policy Command
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 is the abbreviation for Advanced Packaging Tool. What makes this program “advanced” is its approach to packages. It doesn't simply evaluate them individually, but it considers them as a whole and produces the best possible combination of packages depending on what is available and compatible according to dependencies.
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
The second field gives the base URL of the source. Combined with the filenames listed in the Packages.xz files, it must give a full and valid URL. This can consist in a Debian mirror or in any other package archive set up by a third party. The URL can start with file:// to indicate a local source installed in the system's file hierarchy, with http:// or https:// to indicate a source accessible from a web server, or with ftp:// or ftps:// for a source available on an FTP server. The URL can also start with cdrom: for CD-ROM/DVD/Blu-ray disc based installations, although this is less frequent, since network-based installation methods are eventually more common. More methods like ssh:// or tor+http(s):// are supported and are either described in sources.list(5) or their respective apt-transport-method package documentation.
The syntax of the last field depends on the structure of the repository. In the simplest case, you can simply indicate a subdirectory (with a required trailing slash) of the desired source. This is often a simple “./” which refers to the absence of a subdirectory. The packages are then directly at the specified URL. But in the most common case, the repositories will be structured like a Debian mirror, with multiple distributions, each having multiple components. In those cases, name the chosen distribution by its “codename” — see the list in sidebar COMUNITAT Bruce Perens, un líder polèmic — or by the corresponding “suite” (oldoldstable, oldstable, stable, testing, unstable) and then the components to enable. A typical Debian mirror provides the components main, contrib, and 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
This file lists all sources of packages associated with the Bullseye version of Debian (the current Stable suite as of this writing). In the example above, we opted to name “bullseye” explicitly instead of using the corresponding “stable“ aliases (stable, stable-updates, stable-backports) because we don't want to have the underlying distribution changed outside of our control when the next stable release comes out.
Most packages will come from the “base repository”, which contains all packages but is seldom updated (about once every 2 months for a “point release”). The other repositories are partial (they do not contain all packages) and can host updates (packages with newer version) that APT might install. The following sections will explain the purpose and the rules governing each of those repositories.
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.
The server can also host security updates for Testing but this doesn't happen very often since those updates tend to reach that suite via the regular flow of updates coming from 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.
Anyone can use this repository to test those updates before their official publication. The extract below uses the bullseye-proposed-updates alias which is both more explicit and more consistent since buster-proposed-updates also exists (for the Oldstable updates):
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).
There are good reasons to include all those repositories, even though a single one should be enough. Testing users will appreciate the possibility to cherry-pick a fixed package from Unstable when the version in Testing is affected by an annoying bug. On the other hand, Unstable users bitten by unexpected regressions have the possibility to downgrade packages to their (supposedly working) Testing version.
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

The sources.list examples in this chapter refer to package repositories hosted on deb.debian.org. Those URLs will redirect you to servers which are close to you and which are managed by Content Delivery Networks (CDN) whose main role is to store multiple copies of the files across the world, and to deliver them as fast as possible to users. The CDN companies that Debian is working with are Debian partners who are offering their services freely to Debian. While none of those servers are under direct control of Debian, the fact that the whole archive is sealed by GPG signatures makes it a non-issue.
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