# Advanced Packaging Tool

Advanced Package Tool, o APT, és una interfície d'usuari de programari lliure amb qui treballa sobre les biblioteques bàsiques per gestionar la instal·lació i eliminació de programari a Debian i altres distribucions de Linux. APT simplifica el procés de gestió del programari en sistemes informàtics Unix-like mitjançant l'automatització de la recuperació, configuració i instal·lació dels paquets de programari, ja sigui des de fitxers precompilats o bé des de compilar el codi font.
APT es va dissenyar originalment com a interfície per al dpkg per treballar amb els paquets de Debian .deb, però des de llavors ha estat modificat per treballar també amb els sistema gestor de paquets RPM a partir de APT-RPM. El projecte Fink ha portat APT va macOS per a algunes de les seves pròpies tasques de gestió de paquets, i APT també està disponible a OpenSolaris.

## Ús

Hi ha hagut un programa apt des de la versió 1.0; apt és una col·lecció d'eines distribuïdes en un paquet anomenat apt. Una part important de apt es defineix en a una llibreria de funcions C++; apt també inclou programes de línia d'ordres per fer front als paquets, que utilitzen la biblioteca. Hi ha tres programes apt, apt-get i apt-cache. Són comunament utilitzats en exemples d'apt perquè són senzills i omnipresents. El paquet apt té una prioritat molt "important" en totes les versions de Debian actuals i, per tant, està instal·lat en una instal·lació predeterminada de Debian. Apt es pot considerar un front per a dpkg, més amigable que el més antic programa frontal dselect. Mentre dpkg realitza accions en paquets individuals, l'eina apt gestiona les relacions (especialment les dependències) entre elles, així com l'aprovisionament i gestió de decisions de versions de nivell superior (seguiment de llançaments i fixació de versions).
APT sovint és considerat com una de les millors funcions de Debian, que els desenvolupadors de Debian atribueixen als estrictes controls de qualitat de la política de Debian.
Una característica important en APT és la forma en què crida dpkg - ho fa amb una classificació topològica de la llista de paquets a instal·lar o eliminar i crida al dpkg amb millor seqüència possible. En alguns casos, utilitza l'opció --force a dpkg. Tanmateix, només ho fa quan no es pot calcular com evitar la raó dpkg requereix que l'acció sigui obligada.

### Instal·lació de programari

L'usuari indica que s'instal·larà un o més paquets. Cada nom del paquet es transforma com la part del nom del paquet, no un nom de fitxer completament qualificat (per exemple, en un sistema Debian, libc6 seria l'argument proporcionat, no libc6_1.9.6-2.deb). Notablement, Apt obre automàticament i instal·la paquets en els quals depèn el paquet indicat (si cal). Aquesta era una característica distintiva original dels sistemes de gestió de paquets basats en apt, ja que evitava la fallada de la instal·lació a causa de les dependències que faltaven, un tipus de dependències de l'infern.
Una altra d'aquestes distincions és la recuperació remota de paquets. apt utilitza el fitxer de configuració a la ubicació (/etc/apt/sources.list) per localitzar els paquets desitjats, que poden estar disponibles a la xarxa o en un mitjà d'emmagatzematge extraïble, per exemple, i recuperar-los, i també obtenir informació sobre els paquets disponibles (però no instal·lats).
apt proporciona altres opcions de comandament per anul·lar les decisions preses pel sistema de resolució de conflictes apt-get. Una opció és forçar una versió particular d'un paquet. Això pot rebaixar un paquet i fer que el programari dependent no funcioni, de manera que l'usuari ha de tenir cura.
Finalment, el apt_preferences és el mecanisme que permet a l'usuari crear una política d'instal·lació alternativa per als paquets individuals.
L'usuari pot especificar paquets per expressions regulars de POSIX.

### apt-get

apt-get és l'eina de gestió de paquets a la línia d'ordres subministrat amb el paquet Debian apt. APT fa una cerca a la llista de paquets emmagatzemada a la memòria cau i llista les dependències que s'han d'instal·lar o actualitzar.
Els desencadenadors són el tractament de les accions diferides.
APT recupera, configura i instal·la les dependències automàticament.

#### Update, upgrade i dist-upgrade

Altres ordres utilitzades amb apt-get:
* update s'utilitza per resincronitzar el fitxer de l'índex de paquets de les seves fonts. Les llistes dels paquets disponibles són obtinguts des de les ubicacions especificades a /etc/apt/sources.list. Per exemple, quan s'utilitza un arxiu de Debian, aquesta ordre recupera i escaneja els fitxers Packages.gz, perquè hi hagi informació sobre paquets nous i actualitzats.
* upgrade s'utilitza per instal·lar les versions més noves de tots els paquets instal·lats actualment al sistema a partir de les fonts enumerades a /etc/apt/sources.list. Els paquets instal·lats actualment amb les noves versions disponibles són recuperats i actualitzats; en cap cas es disposen els paquets instal·lats actualment o els paquets que ja no s'han instal·lat han estat recuperats i instal·lats. Les noves versions dels paquets instal·lats actualment que no es poden actualitzar sense canviar l'estat d'instal·lació d'un altre paquet quedaran a la seva versió actual.
* dist-upgrade, a més de realitzar la funció d'actualització, també gestiona de manera intel·ligent dependències canviants amb noves versions de paquets; apt-get té un sistema de resolució de conflictes "intel·ligent" i intentarà actualitzar els paquets més importants a costa d'altres menys importants si és necessari. El fitxer /etc/apt/sources.list conté una llista d'ubicacions des d'on es recuperen els fitxers de paquets desitjats. aptitude té una característica més intel·ligent que dist-upgrade anomenada full-upgrade.

### apt-file

apt-file és una ordre per trobar quin paquet inclou un fitxer específic, o per a enumerar tots els fitxers inclosos en un paquet. Està empaquetat separadament de les principals utilitats APT.
Exemple per trobar un paquet:

## Configuració i fitxers

/etc/apt té les carpetes i fitxers de configuració d'apt.
apt-config és el programa de la Configuració de Consultes APT. apt-config dump mostra la configuració.

### Fitxers

* /etc/apt/sources.list: Fonts per obtenir els paquets.
* /etc/apt/sources.list.d/: Fragments de la llista de fonts addicionals.
* /etc/apt/apt.conf: Fitxer de configuració d'APT.
* /etc/apt/apt.conf.d/: Fragments de fitxers de configuració APT.
* /etc/apt/preferences: fitxer de preferències de la versió. Aquí és on s'especifica les "fixacions", és a dir, una preferència per obtenir certs paquets d'una font diferent o d'una versió diferent d'una distribució.
* /var/cache/apt/archives/: àrea d'emmagatzematge dels fitxers de paquets recuperats.
* /var/cache/apt/archives/partial/: àrea d'emmagatzematge dels fitxers de paquets en trànsit.
* /var/lib/apt/lists/: àrea d'emmagatzematge per a la informació de l'estat per a cada recurs del paquet especificat sources.list
* /var/lib/apt/lists/partial/: àrea d'emmagatzematge d'informació estatal en trànsit.

## Repositoris

APT es basa en el concepte de repositoris per trobar programari i resoldre dependències. Per a apt, un repositori és un directori que conté paquets juntament amb un fitxer d'índex. Aquests es pot especificar com a ubicació en xarxa o CDROM. El projecte Debian manté un repositori central de més de 25.000 paquets de programari preparats per a la descàrrega i la instal·lació.
Es pot afegir qualsevol nombre de repositoris addicionals al fitxer de configuració d'APT sources.list (/etc/apt/sources.list) i després ser consultada per APT. Els front-ends gràfics sovint permeten modificar el sources.list més simple (apt-setup). Una vegada que s'ha especificat un repositori de paquets (com durant la instal·lació del sistema), els paquets en aquest repositoris es poden instal·lar sense especificar una font i es mantindran actualitzats automàticament.
A més dels repositoris en xarxa, els discs compactes i altres mitjans d'emmagatzematge (memòries USB, discs durs...) i es poden utilitzar, utilitzant apt-cdrom o afegint file:/ al fitxer de la llista de fonts. Apt-cdrom pot especificar una carpeta diferent d'un cd-rom, utilitzant l'opció -d (és a dir, un disc dur o una memòria USB). Els CD de Debian disponibles per a descarregar contenen dipòsits de Debian. Això permet que les màquines que no siguin a la xarxa actualitzin. També es pot utilitzar apt-zip.
Els problemes poden aparèixer quan diverses fonts ofereixen el mateix paquet(s). Els sistemes que tinguin possibles fonts conflictives poden utilitzar l'establiment d'APT per controlar quines fonts s'han de preferir.

## Fixació APT

La característica Fixació d'APT permet als administradors obligar a APT a triar versions particulars de paquets que poden estar disponibles en diferents versions de diferents repositoris. Això permet als administradors garantir que els paquets no s'actualitzin a versions que puguin estar en conflicte amb altres paquets del sistema o que no s'hagin provat prou per a canvis no desitjats.
Per fer això, la fixació en el fitxer de configuració d'APT (/etc/apt/preferences) ha de ser modificat, tot i que els fronts gràfics solen fer-ho més simple.

## Frontals

Hi ha diversos altres frontals a APT, que proporcionen funcions d'instal·lació més avançades i interfícies més intuïtives. Això inclou:
* Synaptic, una interfície gràfica d'usuari GTK+
* Centre de programari de l'Ubuntu, una interfície gràfica d'usuari GTK+ desenvolupat pel projecte Ubuntu
* aptitude, un client amb consola CLI i basat en ncurses amb interfícies TUI
* KPackage, part de KDE
* Adept Package Manager, una interfície gràfica d'usuari per a KDE (deb, rpm, bsd)
* PackageKit, un frontal de freedesktop.org.
* Gdebi, una eina basada en GTK+ patrocinada per a Ubuntu. (També hi ha una versió de Qt, disponible en els repositoris d'Ubuntu, gdebi-kde).
* apt-cdrom, una forma d'afegir un nou CDROM a la llista d'APT disponible a sources.lists (llista de repositoris disponibles). Cal utilitzar apt-cdrom per afegir CD al sistema APT, no es pot fer a mà.
* apt-zip, una forma d'utilitzar apt amb un suport extraïble de dades, específicament unitats flash USB.
* aptURL, un paquet de programari d'Ubuntu que permet que les aplicacions de l'usuari final s'instal·lin amb un sol clic.
* Cydia (programari), un gestor de paquets per a jailbroken iOS basat en APT (portat a iOS com a part del projecte Telesphoreo).
* gnome-apt, un frontal GTK+/giny basat en GNOME gràfic. Desenvolupat per Havoc Pennington
* Muon Discover (anteriorment Muon Software Center), una interfície gràfica d'usuari basada en Qt
* Hildon Application Manager (Maemo Application), un frontal de Maemo
* apticron, un servei dissenyat per ser executat a través del cron per enviar notificacions per correu electrònic de les actualitzacions pendents d'un sysadmin.
* APT Daemon, una interfície que funciona com a servei per permetre als usuaris instal·lar el programari a través de Polkit i és al seu torn el marc utilitzat per al Centre de programari de l'Ubuntu (juntament amb el gestor de programari de Mint de Linux).
Els frontals APT poden:
* Cerca nous paquets.
* Actualitza els paquets.
* Instal·la o elimina paquets.
* Actualitza tot el sistema a un nou llançament.
Els frontals d'APT poden llistar les dependències dels paquets que s'instal·len o s'actualitzen, pregunteu a l'administrador si també s'han d'instal·lar paquets recomanats o suggerits per paquets instal·lats, instal·lar dependències automàticament i realitzar altres operacions al sistema, com ara eliminar fitxers o paquets obsolets.

## Història

L'esforç original que va conduir al programa apt-get era el reemplaçament dselect amb el projecte de conegut pel seu nom en clau deity. Aquest projecte va ser encarregat per Brian White, el Debian Release Manager de l'època. La primera versió funcional de apt-get es va denominar dpkg-get i només es pretenia ser un programa de prova per a les funcions principals de la biblioteca que donarien suport a la nova interfície d'usuari.
Gran part del desenvolupament original de l'APT es va fer a IRC, per la qual cosa s'han perdut registres. Els arxius de la llista de correu 'Deity Creation Team' només inclouen els principals punts destacats.
El nom de Deity va ser abandonat com el nom oficial del projecte a causa de les preocupacions sobre la naturalesa religiosa del nom. El nom de l'APT es va decidir després d'una discussió interna i pública considerable. Finalment, el nom es va proposar a IRC, acceptat i després finalitzat a les llistes de correu.
L'APT es va introduir el 1998 i es van distribuir comprovacions de prova originals a l'IRC. La primera versió de Debian que la va incloure era Debian 2.1, publicada el 9 de març de 1999.
Al final, l'objectiu original del projecte Deity de reemplaçar la interfície d'usuari (UI) de dselect va ser un fracàs. Es va abandonar el treball de la part de l'IU del projecte (els directoris de la interfície d'usuari es van eliminar del sistema CVS) després del primer llançament públic de apt-get. La resposta a APT com a mètode dselect i una utilitat de línia d'ordres va ser tan bona i positiva que tots els esforços de desenvolupament es van centrar en mantenir i millorar l'eina. No va ser fins molt tard que diverses persones independents van construir una IU a més de libapt-pkg.
Finalment, un nou equip va recollir el projecte, va començar a crear noves funcions i va llançar la versió 0.6 d'APT que va introduir la funció APT Segura, utilitzant forts signatures criptogràfiques per autenticar els repositoris dels paquets.

## Referències

* 1 2 «apt-get(8) - Linux man page» (en anglès). [Consulta: 17 febrer 2018].
* ↑ Matilainen, Panu. «APT-RPM» (en anglès). Arxivat de l'original el 2008-04-21. [Consulta: 21 febrer 2018].
* ↑ «Fink - About». [Consulta: 21 febrer 2018].
* ↑ «WebCite query result» (en anglès). Arxivat de l'original el 2010-04-07. [Consulta: 21 febrer 2018].
* ↑ «From the archives: the best distros of 2000 | TuxRadar Linux». Arxivat de l'original el 2013-04-24. [Consulta: 21 febrer 2018].
* ↑ «WebCite query result». Arxivat de l'original el 2011-05-12. [Consulta: 21 febrer 2018].
* ↑ «MobileTux - Mobile Linux», 07-10-2011. Arxivat de l'original el 2011-10-07. [Consulta: 21 febrer 2018].
* ↑ Srivastava, Manoj. «Why Linux? Why Debian?» (en anglès). [Consulta: 21 febrer 2018].
* ↑ «Debian Policy Manual v4.1.3.0». [Consulta: 21 febrer 2018].
* ↑ «apt-get(8) - Linux man page» (en anglès). [Consulta: 21 febrer 2018].
* ↑ «Debian User Forums • View topic - apt-get dist-upgrade vs apt-get full-upgrade» (en anglès). [Consulta: 21 febrer 2018].
* ↑ «APT-CONFIG». [Consulta: 21 febrer 2018].
* ↑ «Query APT Configuration Using apt-config | Debian Admin» (en anglès). [Consulta: 21 febrer 2018].
* ↑ «apt-cdrom». [Consulta: 22 febrer 2018].
* ↑ i.e. Deb file:/mnt/install stable main contrib. non-free.
* ↑ «AptPreferences - Debian Wiki». [Consulta: 22 febrer 2018].
* ↑ «AptUrl - Ubuntu Wiki». [Consulta: 22 febrer 2018].
* ↑ «apt:foo | OzOs | apt:foo», 10-02-2008. Arxivat de l'original el 2008-02-10. [Consulta: 22 febrer 2018].
* ↑ Jurick, David; Stolarz, Adam; Stolarz, Damien. iPhone Hacks: Pushing the iPhone and iPod touch Beyond Their Limits (en anglès). "O'Reilly Media, Inc.", 2009-04-02. ISBN 9780596555689.
* ↑ «Android, Schmandroid: Linux on the iPhone | Mobile | LinuxInsider» (en anglès). Arxivat de l'original el 2015-01-17. [Consulta: 23 febrer 2018].
* ↑ Inc, AUUG. AUUGN (en anglès). AUUG, Inc., 2001-12.
* ↑ «"dselect" replacement project ("deity")». [Consulta: 28 febrer 2018].
* ↑ «It's working». [Consulta: 28 febrer 2018].
* ↑ «Re: 2 things (!)». [Consulta: 28 febrer 2018].
* ↑ «A Brief History of Debian - A Detailed History». Arxivat de l'original el 2014-08-19. [Consulta: 28 febrer 2018].
* ↑ «SecureApt - Debian Wiki». [Consulta: 28 febrer 2018].

## Vegeu també

* GNU Guix

## Enllaços externs

* apt(8)
* APT HOWTO Arxivat 2012-02-08 a Wayback Machine.
* Tutorial d'Apt
* Chapter 2 .- Debian package management - Debian Reference