5/8/15

"Update" script para actualizar Arch y derivados de forma automática.

En otra entrada publiqué un script para actualizar Arch y derivados de forma semiautomática con interfaz gŕafica. Esta vez tenemos un script que lo automatiza todo (para quienes quieran tenerlo todo actualizado cada vez que se enciende nuestro sistema). Aqui no hay opción de elegir paquetes a actualizar puesto que lo actualizará todo.
Este script corrige el fallo que de vez en cuando aparece en /var/lib/pacman/db.lck, que impide actualizar mediante el gestor de paquetes pacman, así que además podremos despreocuparnos al respecto.
Como siempre copiamos y pegamos en un archivo el siguiente código y lo guardamos. En este caso guárdelo como "update.sh" (sin comillas).
#!/bin/bash

# Hasta que tengamos conexión comprobamos la misma.
until ping -c1 google.com &>/dev/null
do
echo "No hay conexión. Reintentando en 5 segundos..."
sleep 5
done

usuario=`whoami`
if [ -f "/var/lib/pacman/db.lck" ]; then
echo $usuario | sudo -S rm /var/lib/pacman/db.lck
fi
# Sincronizamos las bases de datos de los paquetes
echo $usuario | sudo -S pacman -Sy
if [ $(pacman -Qqu | wc -l) = "0" ] # Hay actualizaciones?
then
# No hay que actualizar
echo; echo " No hay actualizaciones disponibles."; echo
else
# Actualizamos
echo $usuario | sudo -S pacman -Syu --noconfirm
fi
sleep 5
A continuación le daremos permisos de ejecución:
chmod +x /ruta del archivo/update.sh
Movemos el archivo al directorio de sistema con:
sudo mv /home/usuario/ruta del archivo/update.sh/usr/bin
A partir de este momento se puede ejecutar desde la terminal de sistema escribiendo el comando update, o bien haciendo que se ejecute al inicio de sesión, editando los comandos que se ejecutan en el mismo.