Personalizando Scripts en función del SO GNU/Linux


Soy de esas personas que utilizan varias distribuciones GNU/Linux constantemente y por lo tanto a menudo los scripts de una no me valen para la otra. El ejemplo más tonto. Ubuntu/Lubuntu/Kubuntu/Elementary Os etc, crean un usuario con poderes de superusuario para realizar tareas administrativas. En cambio Debian, Fedora, etc proveen del usuario root para este tipo de tareas.



"Imagen aleatoria por que quedaba chachi"


Esto supone un problema, ya que un simple apt-get install a la hora de instalar cien paquetes por ejemplo en Ubuntu le precede un sudo que en Debian no se utiliza por defecto.

Como buen amante del arte y de Python hay librerías como Pillow con las que me gusta trastear. El problema reside en que Pillow require unas librerías que mientras en un lugar se instalan de una forma en otro se instalan de otra.

version=`cat /etc/issue | cut -d " " -f 1`

if (( $version == "Ubuntu" ))
 then
 sudo apt-get install libjpeg-dev libfreetype6-dev zlib1g-dev
 pip install Pillow

elif (( $version == "Debian" ))
 then
 su -c "apt-get install libjpeg-dev libfreetype6-dev zlib1g-dev"
 pip install Pillow
else
 echo "Este script no es compatible con tu SO"
 echo "Las dependencias que necesitas para instalar Pillow son: "
 echo "libjpeg-dev libfreetype6-dev zlib1g-dev"
fi

 Así que dando vueltas y trasteando un ratito pensé en obtener la información de donde estaba de /proc/version y en función de esto determinar la forma de instalación. Pero siendo precisamente para hacer la distinción entre estos dos sistemas era más sencillo utilizar el primer dato de /etc/issue que nombra la distribución -al menos en el caso de Debian y Ubuntu-.

De esta manera almacenamos en version el SO usado y en función de él le decimos unas instrucciones u otras :)


Como siempre Un fuerte abrazo!

Y Feliz Navidad ;) !


No hay comentarios:

Publicar un comentario