Imprimir

Instalar paquetes Debian

Veamos cómo instalar paquetes Debian:
 - Qué es APT
 - Programas para utilizar APT
 - Cómo trabajar con APT
 - Poderes de Super Vaca de APT

Qué es APT

APT (Advanced Package Tool) es el sistema de Debian para gestionar el software. Se encarga de mantener nuestra computadora sin software inservible o medio instalado e impedir conflictos entre librerías.

Busca ante todo la estabilidad del sistema y la facilidad de uso, y es en gran parte el responsable de la estabilidad de las máquinas Debian. Después de un tiempo te preguntarás cómo has podido vivir sin él.

¿Qué ocurre cuando instalamos un programa? APT se conecta a los repositorios de paquetes .deb que figuran en /etc/apt/sources.list y descarga el paquete según las instrucciones de /etc/apt/preferences, lo instala poniendo cada archivo en su sitio y actualiza la base de datos de paquetes añadiendo una entrada con el paquete instalado y su versión.

Es muy recomendable leer la documentación de Debian:

Atención

APT utiliza el sistema de criptografía GPG para validar los paquetes .deb descargados y asegurarse de que no han sido alterados. A esto se le llama Secure APT...

Leer más: APT seguro: Secure 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), Kpackage (paquete kpackage) y 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

Cómo trabajar con APT

  • Versiones de Debian: Debian mantiene disponibles simultáneamente tres versiones, stable, testing y unstable (para entendernos, tres sabores: "un poco pasado de moda", "moderno" y "suicida"):
    1. stable (estable): está muy probada y se considera libre de errores críticos. A esta versión no se añaden nuevos paquetes ni se modifican los existentes, sólo se añaden parches de seguridad que se descargan automáticamente desde security.debian.org al actualizar el sistema. Por su estabilidad y seguridad es la más recomendable para servidores, nuevos usuarios y aquellos que dan preferencia a la estabilidad del sistema, aunque las versiones del software no sean las más actuales.
    2. testing (en pruebas): la versión testing pasará a ser stable en un futuro no muy lejano, y contiene los paquetes sin fallos de unstable. Esto tiene varias consecuencias:
      • contiene más paquetes que stable.
      • las versiones son bastante más modernas que las de stable.
      • es mucho más estable que unstable aunque bastante menos que stable. De hecho es tan estable como las demás distribuciones y no nos dará problemas de inestabilidad.
      • hay una cuestión muy importante a tener en cuenta: los fallos en testing no se corrigen con parches de seguridad, como ocurre en stable. Cuando se detecta un bug, se corrige el paquete correspondiente en unstable, y sólo cuando transcurra un cierto tiempo pasará el paquete corregido a testing y podremos disponer de él. Esto provoca una lenta solución de los fallos de seguridad en testing.
      • dado que los paquetes están en constante revisión, cada vez que actualicemos el sistema se nos instalarán gran cantidad de paquetes, cosa que puede resultar pesada.

      Todas estas características hacen que sea una versión interesante sólo para usuarios avanzados que necesitan las nuevas prestaciones de las últimas versiones del software, pero no para servidores en producción o nuevos usuarios.

    3. unstable (inestable): es la versión en desarrollo. Puede tener bugs porque lleva las últimas versiones de los programas, y se pone a disposición de los usuarios para que la prueben e informen sobre errores. Incluso puede fallar el sistema de gestión de paquetes por dependencias insatisfechas cuando en los repositorios de software se actualizan gran número de paquetes. Una vez corregidos los fallos iniciales los paquetes pasan a testing. En unstable tampoco hay parches de seguridad: cuando se detecta un bug se corrige directamente en el paquete, que se enviará a testing al cabo de algún tiempo. Al igual que en testing, cada vez que actualicemos el sistema se nos instalarán gran cantidad de paquetes. Por todo ello esta versión sólo es adecuada para desarrolladores y aventureros.

    Resumiendo:

    • stable significa muy estable.
    • testing significa tan estable como las demás distribuciones.
    • unstable significa realmente inestable.
  • Fuentes de software: para poder instalar software APT necesita saber dónde encontrarlo. El archivo donde figura la lista de fuentes de software es /etc/apt/sources.list. Su contenido será similar a:
    deb cdrom:[Debian 3.1 r1 _Sarge_ - i386]/ sarge main contrib
    deb ftp://ftp.debian.org/debian/ stable main non-free contrib
    deb-src ftp://ftp.debian.org/debian/ stable main non-free contrib
    deb ftp://ftp.debian.org/debian/ testing main non-free contrib
    deb-src ftp://ftp.debian.org/debian/ testing main non-free contrib
    deb http://security.debian.org/ stable/updates main

    Para añadir nuevas fuentes de software editaremos /etc/apt/sources.list:

    • los repositorios oficiales, mantenidos por Debian, figuran en la página debian.org/mirrors/list.
    • un repositorio no oficial muy utilizado (imprescindible si utilizamos aplicaciones multimedia), es el mantenido por Christian Marillat (debian-multimedia.org):
      deb http://www.debian-multimedia.org stable main
    • otro es el repositorio Backports (backports.org): contiene paquetes de testing (mayoritariamente) o unstable pero recompilados con las librerías de stable. De esta manera, podemos instalar un paquete moderno (testing) sin que se reinstale todo el sistema:
      deb http://www.backports.org/debian/ sarge-backports main
    • en apt-get.org encontraremos fuentes no oficiales de paquetes .deb: permite buscar un paquete y obtener las líneas a agregar en /etc/apt/sources.list.
    • para añadir como fuente de software un CD ejecutaremos:
      # apt-cdrom add
  • Pinning: veamos cómo funciona el sistema de prioridades o Pin-Priority.
    • Cada fuente de software que tengamos en /etc/apt/sources.list tiene asignada una prioridad (Pin).
    • Cuando instalamos un paquete, si APT encuentra varios con el mismo nombre instalará el que proceda de la fuente con mayor prioridad (a igual prioridad instalará la última versión del paquete).
    • Por defecto, la Pin-Priority de las fuentes de software es 500, pero podemos cambiarlo estableciendo otros valores en el archivo /etc/apt/preferences.
    • Podemos saltarnos las prioridades e instalar un paquete desde una fuente de baja prioridad:
      # apt-get install <paquete>/<fuente_baja_prioridad>

      Para instalar desde una fuente de baja prioridad tanto el paquete como sus dependencias haremos:

      # apt-get install -t <fuente_baja_prioridad> <paquete>
    • Los significados de las Pin-Priority son:
      • < 0: un paquete con esta prioridad nunca se instalará.
      • 0-1000: el paquete se instalará si es una versión más moderna.
      • > 1000: el paquete se instalará aunque sea una versión anterior.
      • 100: prioridad de los paquetes instalados.
      • 500: prioridad por defecto de las fuentes de software.
      • 0-99: este paquete no actualizará a un paquete instalado.
      • 990: prioridad de la opción -t.
    • Para asignar una Pin-Priority a una fuente la identificaremos con los parámetros release a=<archivo> y origin <dominio>. Algunos ejemplos:
      • para dar prioridad a los paquetes de Marillat y que al actualizar no se sobreescriban con los paquetes oficiales con el mismo nombre:
        Package: *
        Pin: origin www.debian-multimedia.org
        Pin-Priority: 900
      • para que Backports no tenga prioridad sobre los repositorios oficiales:
        Package: *
        Pin: release a=sarge-backports
        Pin-Priority: 200

        De esta manera, para instalar un paquete desde Backports tendremos que saltarnos la Pin-Priority:

        # apt-get install <paquete>/sarge-backports
      • para permanecer en stable, instalándose paquetes de testing y unstable si no existen en stable:
        Package: *
        Pin: release a=stable
        Pin-Priority: 500
         
        Package: *
        Pin: release a=testing
        Pin-Priority: 60
         
        Package: *
        Pin: release a=unstable
        Pin-Priority: 50
      • para pasar a testing: stable 500, testing 600, unstable 50
      • para pasar a unstable: stable 500, testing 600, unstable 700
      • para volver a stable: stable 1100, testing 600, unstable 700
      • si en vez de Package: * ponemos Package: <paquete> podemos asignar una Pin-Priority específica a un paquete. Por ejemplo, para que la versión prioritaria de Mutt sea unstable:
        Package: mutt
        Pin: release a=unstable
        Pin-Priority: 900
    • Para consultar las Pin-Priority de cada fuente ejecutaremos el comando:
      # apt-cache policy
  • Actualizar la lista de paquetes: para sincronizar nuestra lista local de paquetes con los paquetes disponibles en los servidores de software que figuran en /etc/apt/sources.list usaremos el comando:
    # apt-get update

    Atención

    • Antes de instalar paquetes siempre debemos actualizar la lista ejecutando:
      # apt-get update
    • También debemos actualizar la lista de paquetes siempre que modifiquemos /etc/apt/sources.list o /etc/apt/preferences.
    • Si tenemos muchas fuentes de software en /etc/apt/sources.list la cache de APT será demasiado pequeña y obtendremos el error:
      E: Dynamic MMap ran out of room

      Para evitarlo, incluiremos en el archivo /etc/apt/apt.conf la línea:

      APT::Cache-Limit "100000000";
  • Buscar paquetes: podemos buscar 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 .deb local: si tenemos un paquete .deb en el disco duro y queremos instalarlo usaremos dpkg, por ejemplo:
    # dpkg -i aterm_1.0.0-4_i386.deb

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

    # apt-get -f install

    Otra opción para instalar un paquete .deb local es Gdebi (paquete gdebi), que sí instala las dependencias:

    # gdebi aterm_1.0.0-4_i386.deb

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

    Gdebi

    El file manager Xfe (X File Explorer, roland65.free.fr/xfe/, paquete xfe) dispone de un instalador integrado de paquetes .deb, Xfp (X File Package, xfilepackage).

    Xfp - X File Package

  • Instalar un paquete con sus dependencias: el mejor sistema 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>
  • 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
  • Reconfigurar, reinstalar o actualizar un paquete: para repetir el proceso de configuración de un paquete ya instalado 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ón.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
  • Desinstalar

    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.

  • Información sobre 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ó;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

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ún huevo de Pascua en este programa.
     
    $ aptitude -v moo
    Realmente no hay ningún huevo de Pascua en este programa.
     
    $ aptitude -vv moo
    ¿No le he dicho ya que no hay ningún huevo de Pascua en este programa?
     
    $ aptitude -vvv moo
    ¡Deje de hacer eso!
     
    $ aptitude -vvvv moo
    Vale, vale, si le doy un huevo de Pascua, ¿se irá?
     
    $ aptitude -vvvvv moo
    De acuerdo, usted gana.
                                /----\
                        -------/      \
                       /               \
                      /                |
    -----------------/                  --------\
    ----------------------------------------------
    ¿Contento?
     
    $ aptitude -vvvvvv moo
    ¿Qué es? Un elefante siendo devorado por una serpiente, por supuesto.

    Recursos

9 Comentarios en “Instalar paquetes Debian”

  • Albert dice:

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

  • salva dice:

    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!

  • Azazel dice:

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

  • carmen dice:

    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

  • Lilith dice:

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

  • oie dice:

    Excelente!!! no pudo ser mejor.. Felicitaciones

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

  • Àngel dice:

    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!

  • Noe dice:

    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

Deja un comentario