# El Com es fa de l'APT/Tracte amb els paquets
## Actualització del llistat de paquets disponibles

El sistema d'empaquetament usa una base de dades per a seguir quins paquets hi ha instal·lats, quins no i quins estan disponibles. El programa apt-get usa aquesta base de dades per a saber com instal·lar els paquets requerits pel usuari i obtenir la informació necessària dels paquets addicionals que seran necessaris i el seu ordre d'instal·lació perquè un paquet funcioni correctament.
Per actualitzar aquest llistat haureu d'usar el comandament apt-get update. Aquest comandament cercarà els llistats de paquets en els arxius indicats a /etc/apt/sources.list; per a més informació quant a aquest fitxer consulteu El fitxer /etc/apt/sources.list, Secció 2.1.
És una bona idea executar aquest comandament de forma regular per a mantindre-us informats sobre de possibles actualitzacions, en particular les actualitzacions de seguretat.

## Instal·lació de paquets

Finalment, el procés que estàveu esperant! Amb el vostre fitxer sources.list llest i el llistat de paquets disponibles al dia, tot el que haureu de fer és executar apt-get per a obtenir el paquet que desitgeu instal·lar. Per exemple, podeu executar:
APT cercarà a la seva base de dades per a la versió més recent de dit paquet i el descarregarà des de l'arxiu especificat al sources.list. En el cas que aquest paquet depengui de cap altre -com en aquest cas- APT en resoldrà les dependències i instal·larà els paquets necessaris. Vegeu aquest exemple:
El paquet nautilus depèn de les biblioteques compartides citades, així doncs, APT les obtindrà des de l'arxiu. Si prèviament especifiqueu el nom d'aquestes biblioteques a la línia d'ordres de apt-get, APT no us preguntarà si desitgeu continuar; donarà automàticament per fet que accepteu la instal·lació d'aquests paquets.
Això vol dir que APT tan sols demana confirmació si necessita instal·lar paquets que no li heu especificat a la línia d'ordres.
Les següents opcions per a apt-get poden ser d'utilitat:
Es poden seleccionar múltiples paquets per a instal·lar en una sola línia. Els fitxers descarregats des de la xarxa seran ubicats en el directori /var/cache/apt/archives per a la seva posterior instal·lació.
També podeu especificar paquets a eliminar a la mateixa línia d'ordres. Tan sols heu de posar un guionet "-" immediatament després del nom del paquet a eliminar, així:
Per a més detalls sobre la eliminació d'un paquet consulteu la secció Eliminació de paquets, Secció 3.3.
Si d'alguna manera malmeteu cap dels paquets instal·lats o simplement desitgeu reinstal·lar els fitxers d'un paquet amb la versió més nova que hi hagi disponible, podeu usar l'opció --reinstall tal com es mostra:

## Eliminació de paquets

Si ja no requeriu més l'ús d'un paquet, podeu eliminar-lo del vostre sistema usant APT. Per a fer-ho simplement escriviu: apt-get remove paquet. Per exemple:
Tal com podreu apreciar a l'anterior exemple, APT també es fa càrrec d'eliminar paquets que en depenen preguntant-vos si els voleu eliminar. No hi ha cap manera d'eliminar un paquet usant APT sense també eliminar els paquets que en depenen.
Executant apt-get de la manera mostrada causarà que s'eliminin tots els paquets, però els seus fitxers de configuració, si n'hi ha cap, romandran intactes en el sistema. Per a una eliminació completa del paquet, executeu:
Tingueu en compte que l'asterisc "*" després dels noms indica que els fitxers de configuració per a cadascun d'aquests també seran eliminats.
Igual que en el cas del mètode install, podeu usar un símbol amb remove per a invertir la mesura per a un paquet en particular, si afegiu un caràcter "+" a la dreta després del nom del paquet, aquest serà instal·lat en comptes d'eliminat.
Observeu que apt-get llista els paquets addicionals que s'hauran d'instal·lar (és a dir, els paquets que necessita la instal·lació del paquet que heu solicitat), els que s'eliminaran i els que s'instal·laran (incloguen altra vegada als paquets extra).

## Actualització de paquets

Les actualitzacions de paquets són una de les millors aportacions del sistema APT. Es poden realitzar des d'una única línia d'ordres: apt-get upgrade. Podeu usar aquest comandament per actualitzar els paquets de l'actual distribució, o bé, per actualitzar a una de nova, millor usar el comandament apt-get dist-upgrade; per a més detalls consulteu la secció Actualització a una nova versió, Secció 3.5.
El seu ús és de molta utilitat junt amb l'opció -u. Aquesta opció causa que APT mostri la llista completa de paquets a actualitzar. Sense, estareu actualitzant a cegues. APT descarregarà les últimes versions de cada paquet i llavors els instal·larà en l'ordre adequat. Tot i que cal ressaltar que és molt important executar prèviament el comandament apt-get update. Consulteu la secció Actualització del llistat de paquets disponibles, Secció 3.1. Observeu aquest exemple:
El procés és molt simple. Tingueu en compte que en les primeres línies apt-get indica alguns paquets que seran mantinguts. Això significa que hi ha una versió més nova però que no seran actualitzats per algun motiu. Possiblement siga per culpa a dependències trencades (un paquet del qual depenen no disposa d'una versió més nova per actualitzar) o dependències noves (el paquet ara depèn de nous paquets que no pas la versió anterior).
No hi ha una solució clara per al primer cas. Per al segon, n'hi ha prou amb executar apt-get install per al paquet en qüestió, de manera que és descarregaran les dependències. Una solució encara millor és la d'usar dist-upgrade. Consulteu la secció Actualització a una nova versió, Secció 3.5.

## Actualització a una nova versió

Aquesta característica d'APT us permet actualitzar tot un sistema Debian d'una sola vegada a través de l'Internet o des d'un CD (comprat o descarregat com a imatge ISO).
també s'usa quan es fan canvis entre les relacions dels paquets instal·lats. Amb apt-get upgrade, aquests paquets serien omesos (mantinguts).
Per exemple, suposem que esteu usant la revisió 0 de la versió stable de Debian i que compreu un CD amb la revisió 3. En aquest punt podeu usar APT per actualitzar el vostre sistema des del nou CD. Per a fer-ho usareu apt-cdrom (consultar la secció Afegir un CD-ROM al fitxer sources.list, Secció 2.4) per afegir el CD al vostre /etc/apt/sources.list i executareu un apt-get dist-upgrade.
És important fer menció que APT sempre cercarà la versió més recent dels paquets. Així doncs, si el vostre /etc/apt/sources.list tingués llistat un arxiu amb una versió més recent que la del CD, APT descarregaria el paquet des d'allí.
A l'exemple mostrat a la secció Actualització de paquets, Secció 3.4, observem que alguns paquets són mantinguts. Resoldrem aquest problema amb el mètode dist-upgrade:
Observeu que ara els paquets s'actualitzaran, i que hi ha nous paquets que també seran instal·lats (les noves dependències del paquets). Tingueu també en compte que lilo seguirà mantingut. Probablement tinga un problema més seriós que una simple nova dependència. Això ho podrem esbrinar si executem:
Tal com es veu a sobre, lilo té un nou conflicte amb el paquet debconf-tiny, el qual vo dir que no podrà ser instal·lat (o actualitzat) sense eliminar debconf-tiny.
Per a saber què manté o elimina un paquet podeu usar:
D'aquesta manera és fàcil advertir que el paquet python1.5-dev no pot ser instal·lat degut a una dependència insatisfeta: python1.5.

## Eliminació dels fitxers de paquet no usats: apt-get clean i autoclean

Quan instal·leu un paquet, APT descarregarà els fitxers necessaris des de les màquines llistades al /etc/apt/sources.list, llavors els desa en un repositori local (/var/cache/apt/archives/), i des d'allí procedeix a la seva instal·lació, consulteu Instal·lació de paquets, Secció 3.2.
Amb el passar del temps, dit repositori local pot créixer considerablement i ocupar una preuada quantitat d'espai en disc. Afortunadament, APT proveeix d'eines per a gestionar el seu repositori local: els mètodes apt-get clean i autoclean.
apt-get clean ho elimina tot a excepció dels fitxers de blocat de /var/cache/apt/archives/ i /var/cache/apt/archives/partial/. D'aquesta manera, si necessiteu reinstal·lar un paquet APT haurà de descarregar-lo una altra vegada.
apt-get autoclean tan sols elimina els fitxers de paquet que no poden ser descarregats de nou.
El següent exemple mostra com funciona la neteja automàtica d'apt-get:
A /var/cache/apt/archives hi ha dos fitxers per al paquet logrotate i un per al paquet gpm.
apt-show-versions mostra que logrotate_3.5.9-8_i386.deb proveeix la versió d'actualització de logrotate, de manera que logrotate_3.5.9-7_i386.deb ja no és necessari. També ens indica que gpm_1.19.6-11_i386.deb tampoc no és necessari atés a que ja es pot descarregar una versió més recent del paquet.
Finalment, apt-get autoclean tan sols elimina els fitxers antics. Per a més informació quant a apt-show consulteu Com actualitzar paquets des de versions específiques de Debian, Secció 3.9.

## L'ús d'APT amb dselect

dselect és un programa d'ajuda a l'usuari per a la selecció de paquets Debian per a l'instal·lació. És considerat com un mica complicat i un xic avorrit, però amb la pràctica podreu usar la seva interfície de ncurses basada en consola.
Una de les característiques de dselect és que coneix com usar la capacitat dels paquets Debian per a "recomanar" i "suggerir" l'instal·lació d'altres paquets. Per a usar el programa, executeu "dselect" com a root. Escolliu "apt" com al vostre mètode d'accés. Això últim no és realment necessari, però si no esteu usant un CD-ROM i desitgeu descarregar els paquets des de l'Internet, la millor mode és usant dselect.
Per a entendre millor el seu ús, llegiu la seva documentació que es troba en la pàgina de Debian http://www.debian.org/doc/ddp.
Després de seleccionar els paquets amb dselect, useu:
com al següent exemple:
Compareu-ho amb el que es veu en executar «apt-get dist-upgrade» en el mateix sistema:
Observeu que la majoria de paquets seran instal·lats per causa d'un "suggeriment" o "recomanació" d'altres paquets. D'altres s'estan instal·lant o eliminant (com per exemple en el cas de lbxproxy) per les seleccions que hem realitzat mitjançant la navegació a través del llistat de paquets de dselect. Dselect pot ser una poderosa eina usada en conjunció amb APT.

## Com mantenir un sistema híbrid

Algunes vegades la gent està interessada en usar una de les versions de Debian com a distribució del sistema principal i un o més paquets d'una altra branca.
Per a establir quina és la vostra versió de Debian principal haureu d'editar el /etc/apt/apt.conf amb una línia com la següent:
A on versió serà la versió de Debian que voleu usar com a distribució principal. Les versions que podeu usar són stable, testing i unstable. Per a instal·lar paquets des d'una altra versió podeu usar APT de la següent manera:
Perquè això funcioni, almenys necessitareu incloure una línia font per a APT en el vostre /etc/apt/sources.list per a la distribució de la qual voleu el paquet, i dit paquet haurà d'existir en la font.
També podreu requerir una versió específica d'un paquet usant la següent sintaxi:
Per exemple, a la línia de a sota s'instal·larà la versió 2.2.4-1 del paquet nautilus:
IMPORTANT: La versió "unstable" de Debian és la versió en la que primer es pugen els paquets de Debian. En definitiva és la que veu tots els canvis que aniran als paquets, uns petits i d'altres més dràstics doncs afectaran a tot el sistema. Per aquest motiu, aquesta versió de la distribució no hauria de ser emprada per usuaris sense experiència o pels que necessiten proveir-se d'un sistema estable.
La distribució "testing" no és necessàriament millor que "unstable", això és deu a que no reb ràpidament les actualitzacions de seguretat. Per a servidors i d'altres sistemes en producció sempre s'hauria d'usar stable.

## Com actualitzar paquets des de versions específiques de Debian

apt-show-versions proveeix d'una manera segura per actualitzar sistemes híbrids sense tenir que obtenir una distribució menys estable de la que tenien pensada. Per exemple, és possible actualitzar tan sols els vostres paquets de unstable després de tenir instal·lat el paquet apt-show-versions:

## Com mantenir versions específiques de paquets instal·lats (complex)

Possiblement tindreu l'ocasió de modificar quelcom en un programa i no disposareu de prou temps per a portar dits canvis cap a la nova versió del programa. O, podria ser que hàgiu actualitzat la vostra distribució de Debian a 3.0, però alguns paquets tingan que continuar amb la versió que hi ha a la Debian 2.2. Podeu "marcar" la versió que ha de restar instal·lada de manera que aquesta no siga actualitzada.
L'ús d'aquest recurs és simple. Sols necessitareu editar el fitxer /etc/apt/preferences.
El format és simple:
Per exemple, per a mantenir el paquet sylpheed que he modificat per a usar "reply-to-list" en la seva versió 0.4.99, afegeixo:
Observeu que he usat un * (asterisc). Aquest és un "jòquer", el qual especifica que desitjo que aquesta "marca" siga vàlida per a totes les versions que comencin per 0.4.99. Això és fa així per culpa de les versions Debian d'aquest paquet amb una "revisió Debian" i quan no desitjo bloquejar l'instal·lació de les esmentades revisions. Així doncs, les revisions 0.4.99-1 i 0.4.99-10 seran instal·lades tan aviat com estigan disponibles. Tingueu en compte que si vàreu modificar el programa no voldreu fer això.
El camp Pin-Priority és opcional; si no s'especifica, està per omissió a 989.
Ara veurem com funcionen les prioritats de "marca". Una prioritat menor que 0 indica que el paquet no hauria d'instal·lar-se mai. Les prioritats de 0 a 100 denoten paquets que no estan instal·lats i que no tenen versions disponibles. Aquests no estaran presents en el procés d'escollir versions. La prioritat 100 és assignada a un paquet instal·lat - per a la versió instal·lada que serà reemplaçada per una versió diferent, el reemplaç haurà de tenir una prioritat major que 100.
Les prioritats majors que 100 indiquen que el paquet ha de ser instal·lat. Típicament, la versió instal·lada d'un paquet només canvia al ser actualitzada a una nova versió. Qualsevol prioritat entre 100 i 1000 (inclusiu) indica aquest típic comportament. Un paquet amb dita prioritat no serà degradat per una versió anterior disponible cap a un número de versió menor. Per exemple, si teniu instal·lat sylpheed 0.5.3 i definiu la marca com a sylpheed 0.4.99 amb prioritat 999, el paquet 0.4.99 no serà instal·lat per a satisfer dita marca. Per a fer "degradable" a un paquet, satisfent la marca, aquesta necessita posseir una prioritat major que 1000.
Una marca pot ser especificada sobre la versió, versió de Debian o a l'origen d'un paquet.
Marcant sobre una versió, tal com hem vist, suporta els números de versió literalment així com l'ús de jòquers per a especificar diversos números de versió a la vegada.
L'opció release dependrà del fitxer Release d'una rèplica APT o del d'un CD. Aquesta opció podria no ser de molta utilitat si esteu usant repositoris de paquets que no proveeixin aquest fitxer. Podeu veure el contingut dels fitxers Release que teniu en /var/lib/apt/lists/. Els seus paràmetres són: a (arxiu), c (components), v (versió), o (origen) i l (nivell).
Un exemple:
En aquest exemple, escollim la versió 2.2* of Debian (la qual pot ser 2.2r2, 2.2r3 -- això són "versions puntuals" que típicament inclouen adobs de seguretat i d'altres actualitzacions importants), el repositori stable, secció main (com a oposada a contrib o non-free) i origen i nivell de Debian. L'origen (o=) defineix qui va crear el fitxer Release, el nivell (l=) defineix el nom de la distribució: Debian per a Debian mateix i Progeny per a Progeny, per exemple. Exemple d'un fitxer Release:
* Crèdits de la versió original - Projecte de documentació de Debian
* APT HOWTO
* 1.8.5 - Juliol de 2003
* Gustavo Noronha Silva kov@debian.org
* Traduït per: Antoni Bella Perez bella5 AT teleline DOT es
* Revisat per: Orestes Mas orestes AT tsc.upc DOT es