miércoles, 4 de noviembre de 2009

Script de instalación automatizada

Hace unos días que apareció Karmic Koala y en Slice of Linux apareció una chulada consistente en instalar un montón de software con sólo una línea de comando. Al poco rato va y aparece en Ubusof un post sobre esa misma línea, pero hecha script que pide confirmación con cada una de las aplicaciones a instalar.
Como sé que hay gente recién llegada a Linux que cree que la consola el espeluznante, se me ha ocurrido adaptar ese mismo script para que haga lo mismo, pero con ventanitas y cuadros de diálogo.
Depende de Zenity, una utilidad que viene en la distribución ya incluida. Si no, la puedes instalar desde synaptic, con la gorra.
Copias el texto en un archivo vacío, lo llamas como quieras (Yo le he llamado ubusof-karmic_gui.sh por respetar el nombre original), le das permisos de ejecución y lo ejecutas como root.

Este es el texto:

#!/bin/bash
# Basado en el script original de Ubusof, me he permitido la licencia de añadirle una interface gráfica
# sencilla basada en Zenity.

# La aplicación comprueba si el usuario es administrador y, si no lo es, sale.
if [ $USER != root ]; then
zenity --error --text="Debe ser root para poder instalar software. La aplicación terminará ahora."
exit 0
fi

# A continuación aparece una ventana de información con la descripción de lo que se instalará
# y pide conformidad para continuar
zenity --question --text="Script de instalacion ubusof-karmic_gui 1.0. Este Script esta diseñado para la instalacion comoda de los siguentes paquetes o grupos de paquetes tras la instalación de Karmic Koala:
** Software basico de compilacion(Si queremos compilar nuestro propios binarios),
** Extras restrictivos,
** Repositorios Medibuntu (trae muy buen software multimedia),
** Soporte reproduccion DVD,
** Codecs de windows (Como lo son mp3, wma entre otros),
** Soporte de formatos comprimidos (zip, rar),
** Compiz y efectos 3D,
** Soporte para aplicaciones java,
** Inkscape (Como el corel de winbugs),
** Mensajeria (amsn, emesene, skype),
** Wine (Corre programas de winbugs en GNU/Linux),
** Vlc (A mi parecer un excelente reproductor multimedia),
** Preload (acelera el inicio de ubuntu),
** Navegador Chromium,
** Temas Bigisi (excelentes temas para ubuntu).

Se pueden agregar programas;
Para más informacion enviar un correo a ubuntulibre@googlegroups.com
*** Copyleft Ubusof-nahoj
*** Adaptación para Zenity por Bilbiliblus 03Nov2009
*** http://talquo.blogspot.com


Presione ACEPTAR para continuar o CANCELAR para salir."

# Si se pulsó sobre cancelar en la ventana anterior, la aplicación termina.
if [ ${?} != "0" ]; then
zenity --info --text="¡Que pase buen día...!"
exit 0
fi

# Informa de que se debe actualizar la lista de paquetes disponibles. Mientras lo hace se puede ver una
# barra de progreso que va y viene.
zenity --info --text="La primera tarea de todas consiste en actualizar la lista de paquetes. Pulse ACEPTAR"
sudo apt-get update | zenity --progress --pulsate --auto-close

# A partir de aquí se pregunta por cada paquete o conjunto de paquetes que se desea instalar.
# Si se responde Cancelar, se pasa al siguiente
# Si se responde Aceptar, se procede y se ve una barra de progreso pulsatoria.
zenity --question --text="¿Instalar actualizaciones?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y upgrade | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar Software basico de compilación?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install build-essential | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar los extras restrictivos?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install ubuntu-restricted-extras | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Añadir repositorios Medibuntu?"
if [ ${?} != "0" ]; then
cancel
else
(
sudo wget http://www.medibuntu.org/sources.list.d/karmic.list --output-document=/etc/apt/sources.list.d/medibuntu.list
sudo apt-get update && sudo sudo apt-get install medibuntu-keyring && sudo sudo apt-get update
) | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar soporte para DVD?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install libdvdcss2 | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar Codecs w32codecs?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install w32codecs | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar Soporte de formatos comprimidos?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install unrar | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar COMPIZ y efectos 3D?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install compizconfig-settings-manager emerald | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar Soporte para aplicaciones JAVA?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install sun-java6-fonts sun-java6-jre sun-java6-plugin | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar el editor INKSCAPE?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install inkscape | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar el programa de mensajería EMESENE?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install emesene | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar el programa de mensajería AMSN?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install amsn | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar Skype?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install skype | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar WINE para hacer funcionar las aplicaciones de Windows en Linux?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install wine | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar el reproductor multimedia VLC?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install vlc mozilla-plugin-vlc | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar preload para cargar más rápido las aplicaciones?"
if [ ${?} != "0" ]; then
cancel
else
sudo apt-get -y install preload | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar el navegador Chromium?"
if [ ${?} != "0" ]; then
cancel
else
(
sudo add-apt-repository ppa:chromium-daily
sudo apt-get update
sudo apt-get -y install chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-nonfree chromium-codecs-ffmpeg
) | zenity --progress --pulsate --auto-close
fi

zenity --question --text="¿Instalar los temas de escritorio de Bisigi Project?"
if [ ${?} != "0" ]; then
cancel
else
(
sudo add-apt-repository ppa:bisigi
sudo apt-get update
sudo apt-get -y install zgegblog-themes
) | zenity --progress --pulsate --auto-close
fi

zenity --info --text="Gracias por usar esta aplicación. Visite http://ubusof.blogspot.com "

exit 0




1 comentario:

johan dijo...

Hombre excelente esto es lo que mas me gusta del software libre la colaboracion de todos los interesados salu2