Comprendre APT, APT-Cache i les seves ordres d'ús freqüent
Si alguna vegada heu utilitzat Debian o una distribució basada en Debian com Ubuntu o Linux Mint, és probable que hàgiu utilitzat el sistema de paquets APT per instal·lar o eliminar programari. Fins i tot si mai no heu treballat amb la línia d'ordres, el sistema subjacent que alimenta la vostra GUI del gestor de paquets és el sistema APT.
Avui, donarem un cop d'ull a algunes ordres familiars i endinsar-nos en algunes ordres APT d'ús menys o més freqüent, i donarem una mica de llum sobre aquest sistema de disseny brillant.
Què és l'APT?
APT significa Advanced Package Tool. Es va veure per primera vegada a Debian 2.1 l'any 1999. Essencialment, APT és un sistema de gestió per a paquets dpkg, com es veu amb l'extensió *.deb. Va ser dissenyat no només per gestionar paquets i actualitzacions, sinó per resoldre molts problemes de dependència en instal·lar determinats paquets.
Com qualsevol que feia servir Linux en aquells dies de pioners, estàvem massa familiaritzats amb el terme infern de dependència quan intentàvem compilar alguna cosa des de la font, o fins i tot quan tractem amb diversos fitxers RPM individuals de Red Hat.
APT va resoldre tots aquests problemes de dependència automàticament, fent que la instal·lació de qualsevol paquet, independentment de la mida o el nombre de dependències, fos una ordre d'una línia. Per a aquells que hem treballat durant hores en aquestes tasques, aquest va ser un d'aquells moments del \sol que separa els núvols de la nostra vida Linux!
Entendre la configuració de l'APT
Aquest primer fitxer que veurem és un dels fitxers de configuració d'APT.
$ sudo cat /etc/apt/sources.list
deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise main deb-src http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise main deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise-updates main deb-src http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise-updates main deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise universe deb-src http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise universe deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise-updates universe deb-src http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ precise-updates universe deb http://security.ubuntu.com/ubuntu precise-security main deb-src http://security.ubuntu.com/ubuntu precise-security main deb http://security.ubuntu.com/ubuntu precise-security universe deb-src http://security.ubuntu.com/ubuntu precise-security universe
Com probablement podeu deduir del meu fitxer sources.list, estic fent servir Ubuntu 12.04 (Precise Pangolin). També estic utilitzant tres repositoris:
- Repositori principal
- Repositori de l'Univers
- Repositori de seguretat d'Ubuntu
La sintaxi d'aquest fitxer és relativament simple:
deb (url) release repository
La línia que l'acompanya és el dipòsit de fitxers font. Segueix un format similar:
deb-src (url) release repository
Aquest fitxer és pràcticament l'únic que haureu d'editar amb APT, i és probable que els valors predeterminats us serviran bastant bé i no haureu d'editar-lo mai.
Tanmateix, hi ha vegades que potser voldreu afegir repositoris de tercers. Simplement els introduïu amb el mateix format i, a continuació, executeu l'ordre d'actualització:
$ sudo apt-get update
NOTA: Tingueu molt en compte d'afegir repositoris de tercers!!! Afegiu només de fonts fiables i de bona reputació. Afegir dipòsits poc fiables o barrejar versions pot fer malbé el vostre sistema!
Hem donat un cop d'ull al nostre fitxer sources.list i ara sabem com actualitzar-lo, així que què passa? Instal·lem alguns paquets. Diguem que estem executant un servidor i volem instal·lar WordPress. Primer cerquem el paquet:
$ sudo apt-cache search wordpress
blogilo - graphical blogging client drivel - Blogging client for the GNOME desktop drupal6-mod-views - views modules for Drupal 6 drupal6-thm-arthemia - arthemia theme for Drupal 6 gnome-blog - GNOME application to post to weblog entries lekhonee-gnome - desktop client for wordpress blogs libmarkdown-php - PHP library for rendering Markdown data qtm - Web-log interface program tomboy-blogposter - Tomboy add-in for posting notes to a blog wordpress - weblog manager wordpress-l10n - weblog manager - language files wordpress-openid - OpenID plugin for WordPress wordpress-shibboleth - Shibboleth plugin for WordPress wordpress-xrds-simple - XRDS-Simple plugin for WordPress zine - Python powered blog engine
Què és APT-Cache?
Apt-cache és una ordre que simplement consulta la memòria cau APT. Li vam passar el paràmetre de cerca, indicant que, òbviament, el volem cercar a APT. Com podem veure més amunt, la cerca de \wordpress va retornar una sèrie de paquets relacionats amb la cadena de cerca amb una breu descripció de cada paquet.
A partir d'això, veiem el paquet principal de \wordpress - gestor de blocs web, i volem instal·lar-lo. Però no seria bo veure exactament quines dependències s'instal·laran juntament amb ell? APT ens pot dir que també:
$ sudo apt-cache showpkg wordpress
Versions: 3.3.1+dfsg-1 (/var/lib/apt/lists/us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_precise_universe_binary-amd64_Packages) Description Language: File: /var/lib/apt/lists/us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_precise_universe_binary-amd64_Packages MD5: 3558d680fa97c6a3f32c5c5e9f4a182a Description Language: en File: /var/lib/apt/lists/us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_precise_universe_i18n_Translation-en MD5: 3558d680fa97c6a3f32c5c5e9f4a182a Reverse Depends: wordpress-xrds-simple,wordpress wordpress-shibboleth,wordpress 2.8 wordpress-openid,wordpress wordpress-l10n,wordpress 2.8.4-2 Dependencies: 3.3.1+dfsg-1 - libjs-cropper (2 1.2.1) libjs-prototype (2 1.7.0) libjs-scriptaculous (2 1.9.0) libphp-phpmailer (2 5.1) libphp-simplepie (2 1.2) libphp-snoopy (2 1.2.4) tinymce (2 3.4.3.2+dfsg0) apache2 (16 (null)) httpd (0 (null)) mysql-client (0 (null)) libapache2-mod-php5 (16 (null)) php5 (0 (null)) php5-mysql (0 (null)) php5-gd (0 (null)) mysql-server (2 5.0.15) wordpress-l10n (0 (null)) Provides: 3.3.1+dfsg-1 - Reverse Provides:
Això ens mostra que wordpress 3.3.1 és la versió que s'ha d'instal·lar, el repositori des del qual s'ha d'instal·lar, les dependències inverses i altres paquets dels quals depèn, més els seus números de versió.
NOTA: (nul significa que la versió no està definida i s'instal·larà la darrera versió del repositori.)
Ara, l'ordre d'instal·lació real:
$ sudo apt-get install wordpress
Aquesta ordre instal·larà WordPress-3.3.1 i totes les dependències que no estiguin instal·lades actualment.
Per descomptat, això no és tot el que podeu fer amb APT. Algunes altres ordres útils són les següents:
NOTA: És una bona pràctica executar apt-get update abans d'executar qualsevol sèrie d'ordres APT. Recordeu que apt-get update analitza el vostre fitxer /etc/apt/sources.list i actualitza la seva base de dades.
Desinstal·lar un paquet és tan fàcil com instal·lar-lo:
$ sudo apt-get remove wordpress
Malauradament, l'ordre apt-get remove deixa tots els fitxers de configuració intactes. Per eliminar-los també, voldreu utilitzar apt-get purge:
$ sudo apt-get purge wordpress
De tant en tant, podeu trobar-vos amb una situació en què hi ha dependències trencades. Això sol passar quan no executeu apt-get update correctament, alterant la base de dades. Afortunadament, APT té una solució:
$ sudo apt-get –f install
Com que APT baixa tots els fitxers *.deb del dipòsit directament a la vostra màquina (els emmagatzema a /var/cache/apt/archives), potser voldreu eliminar-los periòdicament per alliberar espai al disc:
$ sudo apt-get clean
Aquesta és només una petita fracció d'APT, APT-Cache i algunes de les seves ordres útils. Encara hi ha molt per aprendre i explorar algunes ordres més avançades a l'article següent.
- 25 ordres útils i avançades d'APT-GET i APT-CACHE
Com sempre, si us plau, fes una ullada a les pàgines de manual per veure encara més opcions. Un cop s'ha familiaritzat amb APT, és possible escriure scripts de Cron fantàstics per mantenir el sistema actualitzat.