El Com es fa de l'APT/Obtenir informació quant als paquets

Hi ha alguns programes d'interfície per al sistema APT que fan significativament fàcil l'aconseguir llistats dels paquets que estan disponibles per a la instal·lació o que ja ho estan, així com cercar la secció d'un paquet, prioritat, descripció, etc.

Però... el nostre objectiu aquí és el d'usar APT en estat pur. Així que: Com podreu conèixer el nom d'un paquet que voleu instal·lar?

Disposem d'un gran nombre de recursos per a realitzar aquesta tasca. Començarem exposant a apt-cache. Aquest programa és usat pel sistema APT per a manipular la seva base de dades. Nosaltres tan sols veurem algunes de les seves aplicacions més pràctiques.

Descobrir els noms dels paquets modifica

Per exemple, suposem que voleu reviure l'època daurada de l'Atari 2600. Voleu usar APT per a instal·lar un emulador Atari, i després descarregar-vos alguns jocs. Podeu fer el següent:

    # apt-cache search atari
    atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
    circuslinux - The clowns are trying to pop balloons to score points!
    madbomber - A Kaboom! clone
    tcs - Character set translator.
    atari800 - Atari emulator for svgalib/X/curses
    stella - Atari 2600 Emulator for X windows
    xmess-x - X binaries for Multi-Emulator Super System

Hem trobat diversos paquets relacionats amb el que estem cercant, junt amb les seves descripcions curtes. Per aconseguir més informació quant a un paquet específic, podem fer el següent:

    # apt-cache show stella
    Package: stella
    Priority: extra
    Section: non-free/otherosfs
    Installed-Size: 830
    Maintainer: Tom Lear <tom@trap.mtview.ca.us>
    Architecture: i386
    Version: 1.1-2
    Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1)
    Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
    Size: 483430
    MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
    Description: Atari 2600 Emulator for X windows
     Stella is a portable emulator of the old Atari 2600 video-game console
     written in C++.  You can play most Atari 2600 games with it.  The latest
     news, code and binaries for Stella can be found at:
     http://www4.ncsu.edu/~bwmott/2600

En aquesta eixida teniu molt detallada quant al paquet que voleu (o que no voldreu) instal·lar, junt amb una completa descripció del mateix. Si el paquet ja estigués instal·lat al vostre sistema i hagués una versió més recent, veuríeu l'informació d'ambdues versions. Per exemple:

    # apt-cache show lilo
    Package: lilo
    Priority: important
    Section: base
    Installed-Size: 271
    Maintainer: Russell Coker <russell@coker.com.au>
    Architecture: i386
    Version: 1:21.7-3
    Depends: libc6 (>= 2.2.1-2), debconf (>=0.2.26), logrotate
    Suggests: lilo-doc
    Conflicts: manpages (<<1.29-3)
    Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
    Size: 143052
    MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
    Description: LInux LOader - The Classic OS loader can load Linux and others
     This Package contains lilo (the installer) and boot-record-images to
     install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
     .
     You can use Lilo to manage your Master Boot Record (with a simple text screen)
     or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
    
    Package: lilo
    Status: install ok installed
    Priority: important
    Section: base
    Installed-Size: 190
    Maintainer: Vincent Renardias <vincent@debian.org>
    Version: 1:21.4.3-2
    Depends: libc6 (>= 2.1.2)
    Recommends: mbr
    Suggests: lilo-doc
    Description: LInux LOader - The Classic OS loader can load Linux and others
     This Package contains lilo (the installer) and boot-record-images to
     install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
     .
     You can use Lilo to manage your Master Boot Record (with a simple text screen)
     or call Lilo from other Boot-Loaders to jump-start the Linux kernel.

Observeu que la primera en la llista és la del paquet disponible i que la segona correspon al paquet que ja està instal·lat. Per a informació més general quant a un paquet, podeu usar:

    # apt-cache showpkg penguin-command
    Package: penguin-command
    Versions:
    1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)
    
    Reverse Depends:
    Dependencies:
    1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3)
    Provides:
    1.4.5-1 -
    Reverse Provides:

I per a saber els paquets del que depèn:

    # apt-cache depends penguin-command
    penguin-command
      Depends: libc6
      Depends: libpng2
      Depends: libsdl-mixer1.1
      Depends: libsdl1.1
      Depends: zlib1g

En resum, tenim una gran varietat d'armes que podem usar per a esbrinar el nom d'un paquet que desitgem instal·lar.

L'ús de dpkg per a cercar noms de paquet modifica

Una de les maneres per a localitzar el nom d'un paquet és coneixent el nom d'un fitxer important que es trobi dins d'aquest paquet. Per exemple, per a esbrinar el paquet que proveeix un fitxer ".h" en particular que necessiteu per a una compilació podeu executar:

    # dpkg -S stdio.h
    libc6-dev: /usr/include/stdio.h
    libc6-dev: /usr/include/bits/stdio.h
    perl: /usr/lib/perl/5.6.0/CORE/nostdio.h

o:

    # dpkg -S /usr/include/stdio.h
    libc6-dev: /usr/include/stdio.h

Per a esbrinar els noms dels paquets instal·lats en el vostre sistema, el qual és d'utilitat, per exemple, si planegeu netejar el vostre disc dur, podeu executar:

    # dpkg -l | grep mozilla
    ii  mozilla-browse 0.9.6-7        Mozilla Web Browser

El problema amb aquest comandament és que pot "trencar" el nom del paquet. A l'anterior exemple, el nom complet del paquet és mozilla-browser. Per adobar això, podeu usar la variable d'entorn COLUMNS de la següent manera:

    [kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla
    ii  mozilla-browser             0.9.6-7                     Mozilla Web Browser - core and browser

o la descripció o part d'aquesta de la següent manera:

    # apt-cache search "Mozilla Web Browser"
    mozilla-browser - Mozilla Web Browser

Com instal·lar paquets "sota demanda" modifica

Esteu compilant un programa i de sobte, boom! Apareix un error perquè necessita una fitxer .h que no teniu. El programa auto-apt pot prevenir-vos d'aquestes situacions. Us demanarà d'instal·lar certs programes que són requerits, aturant els processos rellevants i continuant-los una vegada el paquet estiga instal·lat.

El que es fa, és bàsicament executar:

    # auto-apt run comandament

A on "comandament" és el comandament que al ser executat podria necessitar d'alguns fitxers no disponibles. Per exemple:

    # auto-apt run ./configure

Llavors us demanarà per a instal·lar els paquets necessaris i cridarà automàticament a apt-get. Si esteu executant X, una interfície gràfica substituirà a la interfície per defecte (mode text).

Auto-apt manté una sèrie de bases de dades que necessiten estar al dia perquè això siga efectiu. El qual es pot aconseguir cridant als comandaments auto-apt update, auto-apt updatedb i auto-apt update-local.

Com esbrinar a quin paquet pertany un fitxer modifica

Si voleu instal·lar un paquet i no podeu esbrinar com s'anomena aquest cercant-lo amb apt-cache, però coneixeu el nom d'un fitxer del mateix programa o el de cap altre fitxer que pertanyi a aquest paquet, llavors podeu usar apt-file per a cercar el nom del paquet. Això es fa de la següent manera:

    $ apt-file search nom_fitxer

Funciona de mode similar a dpkg -S, però també us mostra paquets no instal·lats que contingan el fitxer. També pot usar-se per a esbrinar quins paquets contenen els fitxers "include" necessaris per a la compilació de certs programes, tot i que per aquests casos auto-apt és una solució millor per aquests casos, consulteu Com instal·lar paquets "sota demanda", Secció 5.3.

També podeu llistar el contingut d'un paquet executant:

    $ apt-file list nom_paquet

apt-file manté una base de dades amb els fitxers que contenen tots els paquets, de la mateixa manera que ho fa auto-apt i per això necessita estar actualitzada. Això s'aconsegueix executant:

    # apt-file update

Per defecte, apt-file usa la mateixa base de dades que auto-apt, consulteu Com instal·lar paquets "sota demanda", Secció 5.3.

Com mantindràs informat quant als canvis en els paquets. modifica

Cada paquet instal·la en el seu directori de documentació (/usr/share/doc/nom_paquet) un fitxer anomenat changelog.Debian.gz el qual conté una llista dels canvis realitzats al paquet des de l'última versió. Podeu llegir aquests fitxers amb l'ajuda de zless, per exemple, però no és gaire simple que després d'una actualització s'hagin d'estar cercant aquests registres de canvis per a cadascun dels paquets actualitzats.

Hi ha una manera per automatitzar aquesta tasca mitjançant una eina que s'anomena apt-listchanges. Per a començar primer es requereix que instal·leu el paquet apt-listchanges. Durant la seva instal·lació, Debconf la configurarà. Respongueu les preguntes com desitgeu.

L'opció "Voldreu que apt executi automàticament apt-listchanges?" és realment útil perquè mostra una llista dels canvis que s'han realitzat per a cadascun dels paquets que està instal·lant apt durant una actualització i us permet analitzar-los abans de continuar. L'opció "Tindrà apt-listchanges que demanar confirmació després de mostrar els canvis?" és d'utilitat perquè us demana si desitgeu continuar l'instal·lació després de llegir la llista de canvis. Si decidiu no continuar, apt-listchanges retornarà un error i avortarà l'instal·lació.

Una vegada instal·lat apt-listchanges, tan aviat com els paquets hagin estat descarregats (o llegits des d'un CD o dic muntat) per APT, es mostraran les llistes de canvis realitzats a dits paquets abans d'instal·lar-los.


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