Imagen tomada con screenfetch

Índice

Hace unos meses me decidí a instalar Gentoo en mi portátil por probar cómo iba, y la verdad es que me está gustando bastante. La capacidad de personalización que tiene es tremenda.

Una de las cosas que más me gusta es su gestor de paquetes, emerge y sus programas auxiliares para administrar el sistema (equery, eclean, euse y similares) es por ello que escribo este artículo, para recopilar una lista de las tareas más habituales en el día a día de usar Gentoo. Cómo buscar paquetes a instalar, eliminar paquetes instalados, consultar qué paquetes queremos instalar, limpiar espacio en el sistema, actualizarlo etc. Empecemos:



Comprobar si hay actualizaciones para el sistema

Una de las primeras cosas que hago cuando enciendo el PC es comprobar si hay actualizaciones del sistema, en Gentoo esto podemos hacerlo con el siguiente comando:

$ emerge-webrsync
$ emerge --sync
$ emaint -A sync

Los tres comandos llevan a cabo la misma tarea, pero difieren en varios aspectos:

Actualizar el sistema

Sincronizados con el servidor, deberemos realizar la actualización en sí, en caso de existir. Para esta tarea yo suelo usar el siguiente comando:

$ emerge --update --deep --newuse -atv @world

Desglosemos cada parámetro:

Eliminar un paquete con todas sus dependencias

Para eliminar por completo un paquete, con todas las dependencias:

$ emerge -atv --depclean paquete

Tras eliminar el paquete podemos ejecutar de nuevo:

$ emerge -atv --depclean

para eliminar las dependencias que tuviera el paquete desistalado, pero depclean no eliminará ningún paquete a no ser que todas las dependencias requeridas hayan sido resueltas, por tanto es necesario ejecutar el siguiente comando:

$ emerge --update --newuse --deep @world

En el caso de no haber actualizado la variable USE en nuestro sistema, podemos ahorrar tiempo con:

$ emerge --update --changed-use --deep @world

Buscar paquetes a instalar

Hay varias formas, se puede buscar:

Usando expresiones regulares

$ emerge -s "%^python$" 

Esto buscará paquetes que se llamen exáctamente python, y por tanto solo hay uno:

[ Results for search key : %^python$ ]
Searching...

*  dev-lang/python
      Latest version available: 3.4.3-r1
      Latest version installed: 3.4.3-r1
      Size of files: 14,096 KiB
      Homepage:      http://www.python.org/
      Description:   An interpreted, interactive, object-oriented programming language
      License:       PSF-2

[ Applications found : 1 ]

Buscar paquetes que contengan la palabra x

Para buscar todos los paquetes que contengan la palabra python:

$ emerge -s python

Tras ejecutar este comando, en mi caso aparecen 200 paquetes.

Buscar paquetes basándonos en su descripción

En lugar de buscar por el nombre del paquete, podemos buscar en su descripción:

$ emerge --searchdesc python

También se pueden usar expresiones regulares.

Instalar paquetes

Una vez encontrado el paquete que deaseamos instalar, prodecemos del siguiente modo:

$ emerge -atv paquete

Equery

Equery es parte del paquete gentoolkit, el cual instala una serie de aplicaciones destinadas a la administración de Gentoo, para instalarlo basta con ejecutar:

$ emerge --ask app-portage/gentoolkit

Equery es una aplicación creada con el propósito de hacer tareas comunes en Portage más sencillas, veamos una lista de lo que puede hacer:

Gentoo package query tool
Usage: equery [global-options] module-name [module-options]

global options
 ....

modules (short name)
 (b)elongs               list what package FILES belong to
 (c)hanges               list changelog entries for ATOM
 chec(k)                 verify checksums and timestamps for PKG
 (d)epends               list all packages directly depending on ATOM
 dep(g)raph              display a tree of all dependencies for PKG
 (f)iles                 list all files installed by PKG
 h(a)s                   list all packages for matching ENVIRONMENT data stored in /var/db/pkg
 (h)asuse                list all packages that have USE flag
 ke(y)words              display keywords for specified PKG
 (l)ist                  list package matching PKG
 (m)eta                  display metadata about PKG
 (s)ize                  display total size of all files owned by PKG
 (u)ses                  display USE flags for PKG
 (w)hich                 print full path to ebuild for PKG

Si quisieramos ver el árbol de dependencias de firefox:

$ equery g firefox

Eclean

eclean es otra herramienta parte del paquete Gentoolkit, diseñada para limpiar el sistema del código fuente usado para compilar los paquetes y binarios creados durante el proceso de compilación.

Limpiar el código fuente de los paquetes

Tras instalar paquetes, el código fuente queda guardado junto con los objetos generados por si es necesario recompilar, si no los queremos mantener, es posible eliminarlos con estos comandos:

$ eclean --deep distfiles
$ eclean-dist

eclean-dist es un alias de eclean distfiles, la opción --deep deja únicamente el código fuente necesario para una reinstalación.

Limpiar paquetes binarios

Los paquetes binarios son aquellos que no proporcionan código fuente, como por ejemplo el software privativo, o paquetes precompilados, para borrarlos basta ejecutar:

$ eclean --deep packages
$ eclean-pkg

Apps Recomendadas

Antes de usar Gentoo, utilizaba el comando df para ver el estado de los discos duros, un ejemplo:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda4        20G  7.9G   11G  44% /
tmpfs           1.2G  952K  1.2G   1% /run
dev              10M     0   10M   0% /dev
shm             5.9G   91M  5.8G   2% /dev/shm
cgroup_root      10M     0   10M   0% /sys/fs/cgroup
/dev/sda2       128M   16M  113M  12% /boot
/dev/sda5        87G   38G   45G  46% /home
/dev/sdb1       110G   11G   94G  11% /home/hkr/ssd2
none            5.9G     0  5.9G   0% /run/user/1000

Tras instalar Gentoo descubrí el paquete pydf, similar a df pero visualmente más atractivo, colorea el resultado y muestra una representación gráfica del porcentaje ocupado:

$ pydf  -h
Filesystem Size  Used Avail Use%                                                                                       Mounted on    
/dev/sda4   19G 8043M   10G 41.1 [##################################.................................................] /             
/dev/sda2  128M   15M  112M 12.0 [##########.........................................................................] /boot         
/dev/sda5   87G   38G   45G 43.4 [####################################...............................................] /home         
/dev/sdb1  110G   11G   94G  9.8 [########...........................................................................] /home/hkr/ssd2

Referencias