Articles

Documentación de Ubuntu

Posted on

(i) Este artículo se aplica a todas las versiones soportadas de Ubuntu

Gestión de paquetes con APT

IconsPage/apt.png La gestión de paquetes a través de apt-get va de la mano del archivo /etc/apt/sources.list. Para información sobre la edición o actualización de su lista de fuentes vea SourcesList.

Introducción

Esta página describe cómo manejar los paquetes en su sistema usando apt-get y comandos relacionados. Por ejemplo, puede instalar un nuevo paquete, eliminar un paquete instalado o actualizar todos los paquetes instalados a las últimas versiones.

Comandos

IconsPage/info.png Todos estos comandos, excepto los de búsqueda, deben ser ejecutados como root o con privilegios de superusuario, vea sudo para más información.

  • IconsPage/example.png Ejemplo:

    sudo apt-get install ubuntu-desktop 

Comandos de instalación

  • apt-get install <package_name> 

    Este comando instala un nuevo paquete.

  • apt-get build-dep <package_name> 

    Este comando busca en los repositorios e instala las dependencias de construcción para <nombre_paquete>. Si el paquete no está en los repositorios devolverá un error.

  • aptitude install <package_name>

    Aptitude es un visor Ncurses de paquetes instalados o disponibles. Aptitude se puede utilizar desde la línea de comandos de forma similar a apt-get. Introduzca man aptitude para más información.

  • APT y aptitude aceptarán múltiples nombres de paquetes como una lista delimitada por espacios. Por ejemplo:
    apt-get install <package1_name> <package2_name> <package3_name>

    IconsPage/note.png Utilice la bandera -s para simular una acción. Por ejemplo: «apt-get -s install <nombre_del_paquete>» simulará la instalación del paquete, mostrando qué paquetes se instalarán y configurarán.

auto-apt

  • auto-apt run <command_string>

    Este comando ejecuta <command_string> bajo el control de auto-apt. Si un programa intenta acceder a un archivo que se sabe que pertenece a un paquete desinstalado, auto-apt instalará ese paquete usando apt-get. Esta característica requiere apt y sudo para funcionar.

  • Auto-apt mantiene bases de datos que deben mantenerse actualizadas para que sean efectivas. Esto se consigue llamando a los comandos auto-apt update, auto-apt updatedb y auto-apt update-local.
  • Ejemplo de uso
    • IconsPage/example.png Estás compilando un programa y, de repente, se produce un error porque necesita un archivo que no tienes. El programa se autoapunta y te pide que instales los paquetes si son necesarios, deteniendo el proceso correspondiente y continuando una vez instalado el paquete.

       # auto-apt run ./configure

      Entonces pedirá instalar los paquetes necesarios y llamará a apt-get automáticamente. Si está ejecutando X, una interfaz gráfica sustituirá a la interfaz de texto por defecto.

    • Comandos de mantenimiento

      • apt-get update

        Ejecute este comando después de cambiar /etc/apt/sources.list o /etc/apt/preferences . Para obtener información sobre /etc/apt/preferences, consulte PinningHowto. Ejecute este comando periódicamente para asegurarse de que su lista de fuentes está actualizada. Esto es el equivalente a «Reload» en Synaptic o «Fetch updates» en Adept.

      • apt-get upgrade

        Este comando actualiza todos los paquetes instalados. Es el equivalente a «Marcar todas las actualizaciones» en Synaptic.

      • apt-get dist-upgrade

        Lo mismo que lo anterior, excepto que añade la casilla «smart upgrade». Indica a APT que utilice un sistema «inteligente» de resolución de conflictos, y que intentará actualizar los paquetes más importantes a costa de los menos importantes si es necesario.

        IconsPage/note.png «apt-get dist-upgrade» no actualiza desde una versión anterior de Ubuntu. Para más información sobre la actualización desde una versión anterior de Ubuntu vea http://www.ubuntu.com/getubuntu/upgrading .

      • apt-get check

        Este comando es una herramienta de diagnóstico. Hace una actualización de las listas de paquetes y comprueba si hay dependencias rotas.

      • apt-get -f install

        Este comando hace lo mismo que Edit->Fix Broken Packages en Synaptic. Haga esto si recibe quejas sobre paquetes con «dependencias no satisfechas».

      • apt-get autoclean

        Este comando elimina los archivos .deb de los paquetes que ya no están instalados en su sistema. Dependiendo de sus hábitos de instalación, la eliminación de estos archivos de /var/cache/apt/archives puede recuperar una cantidad significativa de espacio en disco.

      • apt-get clean

        Lo mismo que lo anterior, excepto que elimina todos los paquetes de la caché de paquetes. Esto puede no ser deseable si tienes una conexión a Internet lenta, ya que hará que vuelvas a descargar cualquier paquete que necesites para instalar un programa.

        • La caché de paquetes está en /var/cache/apt/archives . El comando

          du -sh /var/cache/apt/archives

          te dirá cuánto espacio consumen los paquetes en caché.

      • dpkg-reconfigure <package_name>

        Reconfigura el paquete con nombre. Con muchos paquetes, se te plantearán algunas preguntas de configuración que quizá no sabías que estaban ahí.

        • IconsPage/example.png Por ejemplo:

          dpkg-reconfigure fontconfig-config

          te presentará un «asistente» de configuración de fuentes en Ubuntu.

      • echo "<package_name> hold" | dpkg --set-selections

        Este comando pone en espera el paquete deseado.

      • echo "<package_name> install" | dpkg --set-selections

        Este comando elimina el estado de «retención» o «paquete bloqueado» establecido por el comando anterior. La nota anterior sobre el uso de sudo se aplica a este comando.

      Comandos de eliminación

      • apt-get remove <package_name>

        Este comando elimina un paquete instalado, dejando los archivos de configuración intactos.

      • apt-get purge <package_name>

        Este comando elimina completamente un paquete y los archivos de configuración asociados. Los archivos de configuración que residen en ~ no suelen verse afectados por este comando.

        • + operador
          • IconsPage/example.png Si desea eliminar el paquete1 e instalar el paquete2 en un solo paso:

            apt-get remove <package1> <package2>+

            .

      • apt-get autoremove

        Este comando elimina los paquetes que fueron instalados por otros paquetes y ya no son necesarios.

        • apt-get autoremove <package_name>

          Este comando elimina un paquete instalado y sus dependencias.

      • Aunque no hay una forma incorporada de eliminar toda la información de configuración de los paquetes eliminados, puede eliminar todos los datos de configuración de cada paquete eliminado con el siguiente comando.
        dpkg -l | grep '^rc' | awk '{print $2}' | xargs dpkg --purge
      • Comandos de búsqueda

        • apt-cache search <search_term>

          Cada paquete tiene un nombre y una descripción. Este comando lista los paquetes cuyo nombre o descripción contiene <search_term>.

        • dpkg -l *<search_term>*

          Esto encontrará paquetes cuyos nombres contengan <search_term>. Similar a la búsqueda de apt-cache, pero además muestra si un paquete está instalado en tu sistema marcándolo con ii (instalado) y un (no instalado).

        • apt-cache show <package_name>

          Este comando muestra la descripción del paquete <nombre_del_paquete> y otra información relevante incluyendo versión, tamaño, dependencias y conflictos.

        • dpkg --print-avail <package_name>

          Este comando es similar a «apt-cache show».

        • dpkg -L <package_name>

          Este comando listará los archivos del paquete <nombre_paquete>.

        • dpkg -c foo.deb

          Este comando lista los archivos del paquete «foo.deb». Tenga en cuenta que foo.deb es un nombre de ruta. Utilice este comando en paquetes .deb que haya descargado manualmente.

        • dlocate <package_name>

          Este comando determina qué paquete instalado posee <nombre_del_paquete>. Muestra los archivos de los paquetes instalados que coinciden con <nombre_de_paquete>, con el nombre del paquete del que proceden. Considere esto como una utilidad de «búsqueda inversa».

          IconsPage/info.png Para poder utilizar este comando, el paquete dlocate debe estar instalado en su sistema.

        • dpkg -S <filename_search_pattern>

          Este comando hace lo mismo que dlocate, pero no requiere la instalación de ningún paquete adicional. Es más lento que dlocate pero tiene la ventaja de estar instalado por defecto en todos los sistemas Debian y Ubuntu.

        • apt-file search <filename_search_pattern>

          Este comando actúa como dlocate y dpkg -S, pero busca todos los paquetes disponibles. Responde a la pregunta, «¿qué paquete proporciona este archivo?»

          • El archivo apt necesita ser actualizado regularmente como apt-get. Utiliza el comando:

            apt-file update

          IconsPage/info.png Para poder utilizar este comando, el paquete apt-file debe estar instalado en tu sistema.

        • apt-cache pkgnames

          Este comando proporciona un listado de todos los paquetes del sistema

        • Una nota general sobre la búsqueda: Si la búsqueda genera una lista demasiado larga, puede filtrar los resultados pasándolos por el comando grep. Ejemplos:

          • apt-cache search <filename> | grep -w <filename>

            mostrará sólo los archivos que contengan <filename> como palabra entera

          • dpkg -L package | grep /usr/bin 

            listará los archivos ubicados en el directorio /usr/bin, útil si buscas un ejecutable en particular.

        Para más información sobre apt-get, apt-cache y dpkg consulte sus páginas de manual utilizando el comando man. Estos manuales le proporcionarán un mayor alcance de información además de todas las opciones que puede utilizar con cada programa.

        • IconsPage/example.png Ejemplo:

          man apt-get

          .

        Ejemplo de uso típico

        Quiero sentir el viento en mi pelo, quiero la adrenalina de la velocidad. Así que vamos a instalar un juego de carreras. Pero, ¿qué juegos de carreras hay disponibles?

apt-cache search racing game

Me da muchas respuestas. Veo un juego llamado «torcs». Vamos a buscar más información sobre este juego.

apt-cache show torcs

Hmmm… parece interesante. Pero ¿este juego no está ya instalado en mi ordenador? Y cuál es la versión disponible? De qué repositorio es (Universo o Principal)?

apt-cache policy torcs

Bien, pues ahora, ¡a instalarlo!

apt-get install torcs

¿Cuál es el comando que debo escribir en la consola para lanzar este juego? En este ejemplo, es sencillo («torcs»), pero no siempre es así. Una forma de encontrar el nombre del binario es mirar qué archivos tiene el paquete instalado en «/usr/bin». Para los juegos, el binario estará en «/usr/games». Para los programas administrativos, estará en «/usr/sbin».

dpkg -L torcs | grep /usr/games/

La primera parte del comando muestra todos los archivos instalados por el paquete «torcs» (pruébalo). Con la segunda parte, pedimos que sólo se muestren las líneas que contengan «/usr/games/».

Hmmm, ese juego es genial. Quizá haya alguna pista extra?

apt-cache search torcs

Pero me estoy quedando sin espacio. ¡Voy a borrar la caché de apt!

apt-get clean

Oh no, mi madre me ha pedido que elimine todos los juegos de este ordenador. Pero quiero conservar los archivos de configuración para poder simplemente reinstalarlo más adelante.

apt-get remove torcs

Si quiero eliminar también los archivos de configuración :

apt-get purge torcs

Configuración de apt-get para usar un http-proxy

Estos son tres métodos para usar apt-get con un http-proxy.

Sesión proxy temporal

Este es un método temporal que puede usar manualmente cada vez que quiera usar apt-get a través de un http-proxy. Este método es útil si sólo quiere utilizar temporalmente un http-proxy.

Introduzca esta línea en el terminal antes de usar apt-get (sustituya sus datos por su dirección de proxy y su puerto de proxy).

export http_proxy=http://yourproxyaddress:proxyport

Si normalmente usas sudo para ejecutar apt-get necesitarás iniciar sesión como root primero para que esto funcione a menos que también añadas algunas configuraciones de entorno explícitas a /etc/sudoers, e.g.

Defaults env_keep = "http_proxy https_proxy ftp_proxy"

Método del archivo de configuración de apt

Este método utiliza el archivo apt.conf que se encuentra en su directorio /etc/apt/. Este método es útil si sólo quieres que apt-get (y no otras aplicaciones) use un proxy http permanentemente.

IconsPage/info.png En algunas instalaciones no habrá ningún archivo apt-conf configurado. Este procedimiento editará un archivo apt-conf existente o creará un nuevo archivo apt-conf.

gksudo gedit /etc/apt/apt.conf

Agrega esta línea a tu archivo /etc/apt/apt.conf (sustituye tus datos por tuproxyaddress y proxyport).

Acquire::http::Proxy "http://yourproxyaddress:proxyport";

Guarda el archivo apt.conf.

Método rc de BASH

Este método añade dos líneas a su archivo .bashrc en su directorio $HOME. Este método es útil si quieres que apt-get y otras aplicaciones, por ejemplo wget, usen un proxy http.

gedit ~/.bashrc

Añade estas líneas al final de tu archivo ~/.bashrc (sustituye tus datos por tuproxyaddress y proxyport)

http_proxy=http://yourproxyaddress:proxyportexport http_proxy

Guarda el archivo. Cierra la ventana de tu terminal y luego abre otra ventana de terminal o accede al archivo ~/.bashrc:

source ~/.bashrc

Prueba tu proxy con sudo apt-get update y cualquier herramienta de red que desees. Puedes usar firestarter o conky para ver las conexiones activas.

Si te equivocas y vuelves a editar el archivo de nuevo, puedes cerrar el terminal y volver a abrirlo o bien puedes hacer un source de ~/.bashrc como se muestra arriba.

source ~/.bashrc

Cómo iniciar la sesión de un usuario proxy

Si necesitas iniciar la sesión en el servidor Proxy, esto se puede conseguir en la mayoría de los casos utilizando el siguiente esquema al especificar la dirección del proxy en http-proxy. (sustituya sus datos por el nombre de usuario, la contraseña, yourproxyaddress y proxyport)

http_proxy=http://username:password@yourproxyaddress:proxyport

Paquetes adicionales útiles

  • Deborphan

  • Debfoster

Enlaces adicionales enlaces

  • Repositorios/Línea de comandos

  • PinningHowto

  • AutoDeb

  • Gestor de paquetes Synaptic

  • Foros de la comunidad de Ubuntu: Instalaciones y actualizaciones

  • Cómo acelerar las actualizaciones de paquetes usando apt-fast

Solución de problemas

  • https://help.ubuntu.com/community/PackageManagerTroubleshootingProcedure

CategoríaGestión de paquetes CategoríaLínea de comandos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *