Sin espacio en el dispositivo al instalar un paquete con yaourt

sin espacio yaourt

En mi artículo anterior les platicaba a mis queridos 4 lectores un problema al descargar un paquete desde AUR.

Imaginen ahora el nivel de emoción cuando por fin se logró completar la descarga y luego la frustración que vino después de leer que el paquete no se había podido instalar por falta de espacio en el dispositivo.

Tmp de temporal.

Después de recoger mi cabello del piso tuve que pensar en algo. Bien dice que todo problema nos deja una enseñanza. El mensaje decía que la partición tmp se había quedado sin espacio.

comando df
El comando df al rescate.

Gracias al comando df me pude dar cuenta que el directorio /tmp estaba al 100% (en la imagen apenas muestra un 1% de uso). Vamos, que no le cabía ni un solo bit más y ese era el problema.

También el comando muestra que la carpeta tmp es del tipo tmpfs y eso dice mucho. Los tmpfs no ocupan espacio en ningún disco duro, viven en la memoria RAM. En el caso de manjaro el tamaño por default de esta partición es la mitad de la memoria RAM instalada y parece que 4GB no fueron suficientes para el programa que quería instalar.

Que el directorio tmp sea tmpfs supone varias ventajas. La compilación es mucho más rápida y el espacio se recupera después de reiniciar el equipo y funciona la gran mayoría de las veces excepto cuando no (música triste de violines aquí por favor).

Más espacio por favor.

Tenía dos opciones: Hacer la partición tmp más grande, que ya no fuera tmpfs, por lo tanto, ocuparía algo de espacio en el disco. Pero también tenía un aspecto negativo. Todos los demás programas que quisieran usar la carpeta tmp estarían en el mismo lugar, sin los beneficios de una carpeta temporal en RAM mucho más rápida.

La segunda opción es indicarle a yaourt que usara otra carpeta para la instalación de los paquetes. Al final opté por esto último.

A fin de cuentas solo se usaría cuando instalara paquetes del AUR. No era mucho problema.

Para lograrlo solo hay que indicarle a yaourt que utilice otra carpeta. El archivo a editar es /etc/yaourtrc .

Y ajustar esta línea más o menos así:

TMPDIR="/home/$USER/tmp"

La variable de entorno $USER hará los ajustes para cada usuario del sistema.

¿Creían que eso era suficiente? jajajajaaja, ¡PUES NO!. Me tuve que dar otro tope con la pared y hacer un ajuste más en la configuración de nuestro viejo amigo, el archivo de configuración de Makepkg (léase Mejorar la descarga de programas desde AUR ). Y también decirle que usara una carpeta temporal diferente.

#-- Specify a directory for package building.
BUILDDIR="/home/$USER/tmp/"

Con estos ajustes pude al fin instalar el programa que quería desde AUR.

Los archivos temporales son sólo eso y nada más.

Como un plus al éxito obtenido agregué un comando de limpieza que se ejecutará al iniciar mi sesión de XFCE. De esa forma no acumularía archivos temporales.

borrar temporales
Pasando la escoba.

Usualmente todo funciona bien en Manjaro. Situaciones como esta son casos excepcionales derivado de mis necesidades de programas de AUR. Pero si alguna vez tienen este problema espero que les sea de utilidad esta información.

Enlaces de referencia:

Mejorar la descarga de programas desde AUR

axel aur

La semana pasada tuve muchos problemas para descargar un paquete desde AUR que necesitaba, pero por una u otra razón no lograba descargar.

La descarga del archivo representaba más de 500 MB y una conexión a internet inestable no ayudaba mucho.

Anteriormente había configurado pacman para que usara gestores de descarga como wget o aria2. Pero ese consejo no aplica a yaourt, la herramienta que utilizo en manjaro para descargar programas desde AUR.

Después de una breve investigación logré hacer el ajuste ganador. Curiosamente no fue con curl, ni con wget, tampoco con mi campeón aria2, no, en esta ocasión el ganador fue axel.

Configurar yaourt para que use axel.

Lograr que yaourt utilice axel para manejar las descargas de los archivos no fue difícil. Un detalle curioso, esta modificación no es en el archivo de configuración de yaourt, en su lugar, se edita el archivo de configuración de makepkg que es el que se encarga de las descargas de los archivos.

Para cambiar el gestor de descargas hay que editar el archivo makepkg.conf

sudo gedit /etc/makepkg.conf

Se puede comentar o reemplazar esto…

DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
          'http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
          'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
          'rsync::/usr/bin/rsync --no-motd -z %u %o'
          'scp::/usr/bin/scp -C %u %o')

por esto otro…

DLAGENTS=('ftp::/usr/bin/axel   -n 5 -v -a -s 102400 %u -o %o'
          'http::/usr/bin/axel  -n 5 -v -a -s 102400 %u -o %o'
          'https::/usr/bin/axel -n 5 -v -a -s 102400 %u -o %o'
          'rsync::/usr/bin/rsync -z %u %o'
          'scp::/usr/bin/scp -C %u %o')

Como pueden ver, se cambia el programa encargado dependiendo del protocolo. Axel maneja sin problemas http, https y ftp.

Además con -s 102400 limito la velocidad de la descarga a 100 kbps, para no saturar mi inestable conexión a internet.

Hechos los cambios solo falta descargar los programas que necesitemos en AUR usando yaourt y eso es todo.

Axel tiene la ventaja de acelerar un poco las descargas ya que usa múltiples conexiones (divide y vencerás).  Además de que es bastante tolerante a los problemas de conexión.

Aún con todos estos cambios tuve que hacer varios intentos. Al parecer era un problema en el servidor que tenía alojado el archivo porque después de unos días de intentarlo se descargó sin mayor novedad.

Connection time out | descarga de programas desde AUR
A esto me estaba enfrentando.. “Connection time out” frecuentes.

Son las mismas instrucciones para cambiar el gestor a wget o aria2, pero hay que tener cuidado con los parámetros, porque son distintos para cada programa.

Luego tuve otros problemas, pero eso será tema de otro artículo.

¡Hasta la próxima!.

Enlaces.