Blog Archives

Simplificar la línea de comandos de administración de paquetes con apt en lugar de apt-get

APT, la herramienta de gestión de paquetes del proyecto Debian involucra el uso de una gran cantidad de herramientas independientes para llevar a cabo diversas tareas. En el pasado, los usuarios necesitaban saber múltiples sintaxis de comandos como apt-get, apt-cache, apt-config, y muchos más para utilizar todas las características de APT.

por Michael Tunnell

simplificar-apt

APT fue creado originalmente para resolver muchos de los problemas de gestión de paquetes como poner fin al infierno de dependencias que muchas personas experimentaron en los primeros días de los sistemas operativos basados ​​en Linux. Por desgracia, APT sufre de un tipo diferente de infierno, algo que yo llamo “el infierno de documentación dispersa” (DDH, por sus siglas en inglés). La documentación relacionada con APT está dispersa en varias herramientas diferentes y en algunos casos, como el comando principal apt, prácticamente imposible de encontrar.

Durante más de una década, prácticamente todos los tutoriales y guías para la instalación y eliminación de paquetes en un sistema basado en Debian / Ubuntu han sugerido apt-get a los usuarios. En el pasado, esa fue la sugerencia correcta porque “apt” como comando no habían existido en ese momento, pero debido al infierno de documentación dispersa muchas personas no son conscientes de que ahora sí existe.

Si quisiera instalar un paquete de casi todas las guías sugieren:

sudo apt-get install package

pero ahora, en cambio, se puede simplificar eso con

sudo apt install package

Algunos pueden argumentar que “apt” no es muy diferente de “apt-get” y eso es cierto, pero creo que el guión en el comando es lo que crea un cuello de botella para muchos usuarios. Usar apt les ahorrará tiempo así como la cantidad de pulsaciones de teclas necesarias para realizar la misma tarea.

Infierno de documentación dispersa

 

documentation-hell

El problema fundamental con la documentación respecto de APT es que depende donde se mire y como se busque, se puede encontrar algo o nada en absoluto. Si buscamos en Google, o DuckDuckGo, por “documentación apt” encontraremos tres tipos de resultados:

  1. Documentación relacionada con apt-get
  2. Información general básica con respecto a APT
  3. Información que no tienen relación

Si se incluye “linux”, “ubuntu”, o incluso “debian” en la búsqueda los tipos de resultados que non va a cambiar. La DDH es tan grave que podemos encontrar documentación de Debian.org marcada como Documentación Obsoleta antes de encontrar algo útil relacionada con el comando “apt”, si es que alguna vez se encuentra algo.

Páginas man

Las páginas man son las páginas de documentación que se pueden utilizar de forma local en el sistema o a través de los directorios en línea. Anotaciones locales pueden estar al día o no en función de la versión de nuestra distribución. Por ejemplo, Ubuntu 15.10 tiene la última página man, pero 14.04 no de manera predeterminada. Sin embargo, si se mantiene la versión 14.04 de Ubuntu actualizada entonces deberíamos tener la página del manual actualizada. Podemos verificar si tenemos la última versión de la página de manual con el siguiente comando.

man apt

Por otro lado, si buscamos la página del manual en línea, entonces casi siempre encontraremos información general vieja. Si seguimos buscando, sin embargo, podemos llegar a encontrar la página man de Ubuntu 15.10 que está actualizada o podemos encontrarnos con la página man de 14.04 que está desactualizada.

Simplificar la línea de comandos con APT

La siguiente lista contiene las opciones más útiles disponibles vía el comando apt y que antiguos comandos simplifican.

  • apt install paquete(s)
    • reemplaza a apt-get install paquete
  • apt remove paquete(s)
    • reemplaza a apt-get remove paquete
  • apt search query
    • reemplaza a apt-cache search query
  • apt show paquete(s)
    • reemplaza a apt-cache show paquete(s)
  • apt update
    • reemplaza a apt-get update
  • apt upgrade
    • reemplaza a apt-get upgrade
  • apt list –installed
    • reemplaza a dpkg –get-selections | grep -v deinstall
    • reemplaza a dpkg -l
  • apt list –upgradable (no se requiere sudo)
    • reemplaza a apt-get -u upgrade –assume-no” (se requiere sudo)
  • apt edit-sources
    • reemplaza a echo ‘nueva línea de texto’ | sudo tee -a /etc/apt/sources.list
    • reemplaza a sudo nano /etc/apt/sources.list

Linux Mint está mejorando la simplicidad

 

linux-mint

La mayoría de los sistemas operativos recientes basadas en Debian o Ubuntu tienen la versión actualizada de APT que permite simplificar algunas tareas, pero el equipo detrás de Linux Mint decidió que APT podría estar mucho mejor si se tratara de simplificar más tareas. Linux Mint ha creado un script python para hacer APT aún más útil al sustituir en más funciones ese comando APT estándar que aún no había sido abordado. Esta es una decisión que se espera Debian decida adoptar en el futuro para que el comando APT alcance su pleno potencial.

La siguiente lista contiene las opciones adicionales más útiles disponibles a través del comando apt de Linux Mint y qué comandos vieja simplifican. Nota:  de momento la lista siguiente sólo se aplica a los usuarios de Linux Mint.

  • apt autoclean
    • reemplaza a apt-get autoclean
  • apt autoremove
    • reemplaza a apt-get autoremove
  • apt purge paquete(s)
    • reemplaza a apt-get remove –purge paquete(s)
  • apt depends paquete(s)
    • reemplaza a apt-cache depends paquete(s)
  • apt rdepends paquete(s)
    • reemplaza a apt-rdepends paquete(s)
  • apt policy paquete(s)
    • reemplaza a apt-cache policy paquete(s)
  • apt held
    • reemplaza a dpkg –get-selections | grep hold
  • apt hold paquete

    • reemplaza a echo paquete hold | sudo dpkg –set-selections
  • apt unhold paquete

    • reemplaza a echo paquete install | sudo dpkg –set-selections
  • apt download paquete (descar el archivo deb de un paquete)
    • reemplaza a LC_ALL=C apt-cache depends paquete |grep -v “Conflicts:\|Replaces:”|awk ‘{print $NF}’|sed -e ‘s/[<>]//g’|xargs aptitude download -r

APT: Hacer más con mucho menos

El comando apt ha simplificado muchas tareas con la gestión de paquetes desde la linea de comandos en los escritorios Linux (basados en Debian) y con Linux Mint tomando la iniciativa para mejorarla aún más, espero que ayude a la transición de la comunidad para el nuevo método. El único comando cuya ausencia noté en el script apt de Linux Mint es “apt add-repository” para reemplazar el incómodo comando add-apt-repository, así que escribí un parche para agregar esta característica al script. Me complace anunciar que ese parche fue aceptado por lo cual está característica estará disponible en una futura versión de Linux Mint.

 

www.howtogeek.com

Publicado en Distros, Miniguías Etiquetado con: , , ,

Modificando la prioridad de paquetes APT

Esta necesidad surge como consecuencia de intentar actualizar Mariadb en un Debian Wheezy y el hecho de que el paquete libmysqlclient18 de Wheezy para MySQL entra en conflicto con el que está incluido en los repositorios de Mariadb.

El paquete provisto por Maria debería tener una “prioridad” más alta pero si ambos están “empatados” el sistema se decanta por la opción equivocada, esto puede ser verificado de esta manera:

# apt-cache policy libmysqlclient18
 libmysqlclient18:
 Installed: 5.5.24+dfsg-9
 Candidate: 5.5.24+dfsg-9
 Version table:
 5.5.28+dfsg-1 0
 996 http://ftp2.fr.debian.org/debian/ sid/main amd64 Packages
 5.5.28-mariadb1~wheezy 0
 500 http://mirror.jmu.edu/mariadb/repo/5.5/debian/
 wheezy/main amd64 Packages
 *** 5.5.24+dfsg-9 0
 999 http://cdn.debian.net/debian/ wheezy/main amd64 Packages
 100 /var/lib/dpkg/status

El candidato debería ser 5.5.28-mariadb1~wheezy en ese caso, se puede marcar el paquete Mariadb con una prioridad más alta pero esto debería ser corregido para que no sea necesario forzar las prioridades de los paquetes.

Esta es una solución rápida (no olviden ajustar el repo de Maria por el que están usando) :

#echo -e "Package: libmysqlclient18\nPin: origin mirror.jmu.edu\nPin-Priority: 1000" > /etc/apt/preferences.d/mariadb-mysqlclient18

Luego se puede verificar con “apt-cache policy libmysqlclient18” que el paquete candidato es el correcto esta vez y la instalación ahora debería funcionar correctamente.

Base de Conocimiento de mariadb.com

Publicado en Miniguías Etiquetado con: , , ,