Cómo trabajar con APT

Programas para utilizar APT

Disponemos de varios programas para utilizar APT, aunque el que hace todo el trabajo es dpkg (debian package), los demás son frontales que nos hacen la vida más fácil:

  • dpkg, dpkg-reconfigure, apt-get, apt-cdrom, apt-cache y gdebi: comandos del shell.
  • Aptitude: programa en modo texto con menús. Es el mejor, el que toma mejores decisiones, siendo el método recomendado por Debian tanto para instalar paquetes como para actualizar el sistema.

    aptitude

  • Adept-manager (paquete adept): como Aptitude pero en entorno gráfico.
  • Kpackage (paquete kpackage): como Aptitude pero en entorno gráfico.
  • Synaptic (paquete synaptic): como Aptitude pero en entorno gráfico.
  • Adept-installer (paquete adept): asistente para la gestión de aplicaciones por categorías. Considera que un paquete es una aplicación cuando cumple el estándar FreeDesktop y contiene un archivo .desktop para generar una entrada en el menú.

    Adept installer

Buscar paquetes

Podemos buscar paquetes por palabra clave dentro de la lista de paquetes disponibles, en sus nombres y descripciones.

Por ejemplo, para buscar editores de texto, haremos:

# apt-cache search text editor

Obtendremos una lista de paquetes con una pequeña descripción:

nano - free Pico clone with some new features
kate - advanced text editor for KDE
...

Instalar un paquete con sus dependencias

El mejor sistema para instalar un paquete con sus dependencias es Aptitude. Tiene en cuenta todas las dependencias (depende, sugiere, recomienda…) y las recuerda al desinstalar.

También podemos utilizar apt-get: es más rápido, pero sólo tiene en cuenta los depende:

# apt-get install <paquete>

Para reparar enlaces rotos usaremos la opción -f, que impide que queden dependencias sin cumplir (repetiremos hasta que deje de dar errores):

# apt-get -f install <paquete>

Instalar un paquete .deb local

Si tenemos un paquete .deb en el disco duro y queremos instalarlo disponemos de varias opciones:

  • dpkg: ejecutaremos:
    # dpkg -i aterm_1.0.0-4_i386.deb

    Atención, dpkg no instala las dependencias, tendremos que hacerlo manualmente.

    # apt-get -f install
  • Gdebi (paquete gdebi): permite instalar un paquete .deb local (instala las dependencias):
    # gdebi aterm_1.0.0-4_i386.deb

    Gdebi dispone de un frontal gráfico (comando gdebi-gtk):

    Gdebi

  • Xfp (X File Package, xfilepackage): es un instalador de paquetes .deb integrado en el file manager Xfe (X File Explorer, roland65.free.fr/xfe/, paquete xfe):

    Xfp - X File Package

Reconfigurar, reinstalar o actualizar un paquete

Para reconfigurar, reinstalar o actualizar un paquete ya instalado y repetir el proceso de configuración, haremos:

# dpkg-reconfigure <paquete>

Para reinstalar un paquete haremos:

# apt-get --reinstall <paquete>

Y para actualizar la versión instalada de un paquete a la última versión disponible, haremos:

# apt-get install <paquete>

Los paquetes traen archivos de configuración, normalmente con extensión .conf, que se ubican habitualmente bajo /etc/<paquete>. Al reconfigurar/reinstalar/actualizar un paquete, si los archivos .conf han sido modificados no se reinstalarán. Para obligar a que se sobreescriban haremos:

# dpkg -i -force-confnew <paquete-versi&oacute;n.deb>

Desinstalar un paquete

Para desinstalar un paquete usaremos Aptitude, ya que también desinstalará los paquetes que se instalaron por dependencias. Debemos tener en cuenta que Eliminar sólo borra los binarios y los scripts de arranque (no elimina los archivos de configuración). En el shell usaremos:

# apt-get remove <paquete>

Para desinstalar completamente todo lo relacionado con un paquete (binarios, scripts de arranque y archivos de configuración) usaremos Purgar:

# apt-get --purge remove <paquete>

Si intentamos borrar un paquete del que dependen otros, APT se quejará. Si insistimos, los desinstalará todos.

Obtener información sobre los paquetes instalados

Veamos cómo obtener información sobre los paquetes instalados:

  • Para obtener los nombres y el estado de todos los paquetes instalados en el sistema (muy útil para reinstalar el sistema) haremos:
    # COLUMNS=200 dpkg -l
  • Para listar todos los archivos de un paquete, haremos:
    # dpkg -L <paquete>
  • Para encontrar el paquete que contiene <archivo> (muy útil si tenemos un archivo y no sabemos de dónde vino) haremos:
    # dpkg -S <archivo>
  • Para obtener información sobre un paquete (por ejemplo, la línea Conffiles nos dice cuáles son los archivos de configuración), haremos:
    # dpkg --status <paquete>

Instalar una selección de paquetes

Para instalar una selección de paquetes crearemos con equivs (paquete equivs) un paquete dummy que únicamente contenga dependencias, de manera que al instalarlo éstas se instalen a su vez:

  1. creamos el archivo selections.control, cuyo contenido será:
    Package: selections
    Depends: gpm, kscreensaver, kuser, kdf, kfloppy, kcron,
      gnome-nettool, etherape, ark, ksnapshot, nmap, nmapfe
    Description: Paquete dummy Selections.
      Paquete dummy para instalar una selecci&oacute;n de paquetes.
  2. creamos el paquete selections_1.0_all.deb:
    # equivs-build selections.control

    Esto generará el paquete /tmp/selections_1.0_all.deb.

  3. instalamos selections_1.0_all.deb como un paquete normal:
    # dpkg -i selections_1.0_all.deb

Actualizar todo el sistema

Para actualizar completamente el sistema (excepto el kernel), usaremos Aptitude:

# apt-get update
# aptitude -f -r dist-upgrade

Nota

Existe otra forma de actualizar el sistema, pero es preferible Aptitude:

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade

Borrar los paquetes .deb de la caché

Cuando APT instala un paquete, lo descarga y lo almacena en una caché del disco duro, en el directorio /var/cache/apt/archives.

Para borrar la caché de paquetes haremos:

# apt-get clean

Poderes de Super Vaca de APT

  • Los poderes de Super Vaca de APT (Super Cow Powers) son un huevo de Pascua:
    $ apt-get
    apt 0.5.28.6
    Uso: apt-get [opciones] orden
         apt-get [opciones] install|remove paq1
         apt-get [opciones] source paq1
         ...
    Este APT tiene poderes de Super Vaca.

    Veamos esos super-poderes:

    $ apt-get moo
             (__)
             (oo)
       /------/
      / |    ||
     *  /---/
        ~~   ~~
    "Have you mooed today?"
  • Aptitude dice que no tiene poderes de Super Vaca:
    $ aptitude --help
    aptitude 0.2.15.9
    Uso: aptitude [-S nombre_fichero] [-u|-i]
         ...
    Este aptitude no tiene poderes de Super Vaca.

    Pero sí los tiene:

    $ aptitude moo
    No hay ning&uacute;n huevo de Pascua en este programa.
     
    $ aptitude -v moo
    Realmente no hay ning&uacute;n huevo de Pascua en este programa.
     
    $ aptitude -vv moo
    &iquest;No le he dicho ya que no hay ning&uacute;n huevo de Pascua en este programa?
     
    $ aptitude -vvv moo
    &iexcl;Deje de hacer eso!
     
    $ aptitude -vvvv moo
    Vale, vale, si le doy un huevo de Pascua, &iquest;se ir&aacute;?
     
    $ aptitude -vvvvv moo
    De acuerdo, usted gana.
                                /----
                        -------/      
                       /               
                      /                |
    -----------------/                  --------
    ----------------------------------------------
    &iquest;Contento?
     
    $ aptitude -vvvvvv moo
    &iquest;Qu&eacute; es? Un elefante siendo devorado por una serpiente, por supuesto.

    Recursos

Artículos en la categoría "Instalar software en Linux"

  1. Cómo trabajar con APT
  2. Fuentes de software
  3. Instalar paquetes no-Debian
  4. Construir un paquete Debian desde las fuentes
  5. Paquetes virtuales
  6. El sistema de alternativas
  7. Crear un Live CD en Linux

10 Comments:

  1. Ha sido muy útil!! Tenía varias dudas, y lo de la Super Vaca no lo conocía :)

  2. “Hola, Mundo!”

    Gracias a ustedes ahora quiero mucho mas a mi sistema GNU+linux

  3. hola amigos,
    tengo sarge 3.1,
    quiero tener el servicio rshd,
    solo encuentro paquetes pero son para versiones etch o lenny,
    ¿Me puede servir?
    ¿no se pueden instalar paquetes de versiones distintas?
    gracias!

  4. Soy practyicamente nuevo en Debian, lo lei y se ve bastante interesante. Espero esto solucione mis problemas. Saludos

  5. Hola , les escribo porque tengo un problema con maquina resulta que tengo instalado DEBIAN lenny y no me deja instalar los paquetes ni por el gestor de paquetes ni por consola .
    yo coloco en consola lo siguiente
    r# apt-get install pgadmin3 , como usuario root y despues me aparece

    ¿Desea continuar [S/n]? s
    AVISO: ¡No se han podido autenticar los siguientes paquetes!
    pgadmin3-data pgadmin3 pgagent
    ¿Instalar estos paquetes sin verificación [s/N]? s
    Err http://172.17.90.152 lenny/main pgadmin3-data 1.8.4-3
    No pude conectarme a 172.17.90.152:80 (172.17.90.152), expiró tiempo para conexión
    Err http://172.17.90.152 lenny/main pgadmin3 1.8.4-3
    No pude conectarme a 172.17.90.152 http:
    Err http://172.17.90.152 lenny/main pgagent 1.8.4-3
    No pude conectarme a 172.17.90.152 http:
    Imposible obtener http://172.17.90.152/lenny/pool/main/p/pgadmin3/pgadmin3-data_1.8.4-3_all.deb No pude conectarme a 172.17.90.152:80 (172.17.90.152), expiró tiempo para conexión
    Imposible obtener http://172.17.90.152/lenny/pool/main/p/pgadmin3/pgadmin3_1.8.4-3_i386.deb No pude conectarme a 172.17.90.152 http:
    Imposible obtener http://172.17.90.152/lenny/pool/main/p/pgadmin3/pgagent_1.8.4-3_i386.deb No pude conectarme a 172.17.90.152 http:
    E: No se pudieron obtener algunos archivos, ¿quizás deba ejecutar
    apt-get update o deba intentarlo de nuevo con –fix-missing?

    y mi archivo etc/apt/sources.list

    #
    # deb cdrom:[Debian GNU/Linux 5.0.2a _Lenny_ - Official i386 DVD Binary-1 20090817-00:51]/ lenny contrib main

    #deb cdrom:[Debian GNU/Linux 5.0.2a _Lenny_ - Official i386 DVD Binary-1 20090817-00:51]/ lenny contrib main

    # Line commented out by installer because it failed to verify:
    #deb http://security.debian.org/ lenny/updates main contrib
    # Line commented out by installer because it failed to verify:
    #deb-src http://security.debian.org/ lenny/updates main contrib

    # Line commented out by installer because it failed to verify:
    #deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib
    # Line commented out by installer because it failed to verify:
    #deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib

    # deb cdrom:[Debian GNU/Linux 5.0.2a _Lenny_ - Official i386 DVD Binary-1 20090817-00:51]/ lenny contrib main

    #deb cdrom:[Debian GNU/Linux 5.0.2a _Lenny_ - Official i386 DVD Binary-1 20090817-00:51]/ lenny contrib main

    deb http://security.debian.org/ lenny/updates main contrib
    deb-src http://security.debian.org/ lenny/updates main contrib

    deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib
    deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib
    deb http://172.17.90.152/lenny lenny main contrib non-free
    deb http://172.17.90.152/multimedia_l lenny main
    deb http://172.17.90.152/security_l lenny/updates main contrib

    en este ultimo se establece la direccion ip que el esta pidiendo, pero no me deja descargar paquetes , estoy nueva en linux plis ayudeme a solucionarlo plis

    Gracias espero respuestas

  6. primero verifica si en ets direccion hay repos para tu debian, pero pq no usas los repos oficiales? mirros.kernel.org por ejemplo saludos.

  7. Excelente!!! no pudo ser mejor.. Felicitaciones

  8. que bueno lo de los poderes de super vaca.. a mi me salía con aptitude

  9. Me ha sido muy útil (a falta de probarlo) eso de no tener internet es un poco complicado para un novato.

    Creo que ahora sí sabré instalar un paquete local. Gracias!

  10. hola estoy trabajando en debian squazee, instale ANT manualmente(variables de entorno y codigo) pero me manda este error cuanto ejecuto desde el sh$ ant

    Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher
    Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.launch.Launcher
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    Could not find the main class: org.apache.tools.ant.launch.Launcher. Program will exit.

    alguien podria ayudarme