ยกHey! Hola, GNU/Linuxeros, hoy vengo con una entrada superรบtil y superrรกpida, que seguramente nos sera muy de utilidad a la hora de estar saltando de una distro (o distribuciรณn) a otra (distro-hopping), o al volver a formatear una PC con la misma distribuciรณn, me dejo de rodeos y empezamos.
Este script sirve para instalar programas automรกticamente al ejecutar el script, muy รบtil para los distro-hoperos como yo.
Con este comando creamos el archivo install.sh, (.sh es un archivo de bash)
touch install.sh
Y con este comando volvemos ejecutable el archivo install.sh, sudo porque sino no nos dejarรญa editarle los permisos
sudo chmod a+x install.sh
Aqui eligen el editor de texto que mรกs les guste: vim, nano, emacs, kate, gedit โฆ bueno ya saben el que mas les guste y sudo para poder guardar los cambios, de mi parte voy a elegir Vim.
sudo vim install.sh
Cuรกndo estemos editando al principio de todo tenemos que escribir
#!/bin/bash
Y despuรฉs
# -*- ENCODING: UTF-8 -*-
Un poco mรกs abajo escribimos el comando para actualizar nuestra distribuciรณn:
Debian, Ubuntu y sus millones de derivadas :
su && apt update && apt upgrade
CentOS y Red Hat like:
sudo yum update
Fedora:
sudo dnf update
OpenSUSE:
sudo zypper update
Arch Linux, Manjaro, Antergos, KaOS โฆ:
sudo pacman -Syu o yaourt -Syua
U otras, como Gentoo o Slackware, usen los comandos de actualizaciรณn y de instalaciรณnโฆ , en mi caso uso Arch Linux por lo que en mi script debe ser:
Despuรฉs de escribir vamos a clasificar los programas a instalar en 7 categorias:
- Utilidades
- Internet
- Juegos
- DE (Desktop Environment, o escritorios)
- Multimedia
- Productividad
- Desarrollo
Escribimos:
# ย Utilidades # ย Desarrollo # ย Internet # ย Juegos # ย DE's y WM's # ย Multimedia # ย Productividad
Esto lo ponemos para clasificar un poco mejor las aplicaciones y utilidades en grupos, mรกs tarde escribimos los comandos de instalaciรณn, segรบn nuestra distribuciรณn, de los paquetes que queramos, normalmente debeis saber cuรกl es vuestra distribuciรณn y como instalar paquetes por lo que instalamos lo que queremos, por ejemplo chromium, steam, y gnome-shell
sudo pacman -S chromium sudo pacman -S steam sudo pacman -S gnome-shell gnome-extra
Al final guardamos nuestro script y:
cd (Donde este el script) && ./install.sh
Un ejemplo es esto:
Bueno, esto ha sido todo por hoy, espero que os sea de mucha utilidad y nos vemos en otras entradas.
Muy buena entrada para los que no tenemos tanta idea, pero nos gusta distro-hoppear, instalar cosas y finalmenete arruinar distribuciones jajaja
Pues esta es la base mas simple, despues se puede hacer mas complicado
Yo tengo el mio para Debian, pero se puede modificar relativamente fรกcil para cualquier otra distro.
https://github.com/xr09/kaos
Gracias por comentar, he visto tu script y a partir de รฉl voy a hacer mi script complejo.
Tambien he visto tu blog y es bueno, si tengo dudad de PyQT, ya se a quien preguntar.
Pues vaya, me alegro te sirva de base, ese script fue inspirado en uno que vi en el trabajo para instalar Fedora que estaba muy bien. El nombre que le puse ยซKaOSยป no tiene nada que ver con la distro, de hecho creo que cuando empecรฉ el script la distro no la habรญan anunciado todavรญa.
Lihuen con el entorno de escritorioโบ LXDE con integraciรณn deโบ LibreOffice
Les quedo Muy Bien es Un รxito Rรกpido y Muy completo estoy instalando a varias Personas y lo Uso Actualmente Esta Versiรณn Son Los รnicos en El Mundo Q an sacado con este Entorno: LXDE tan Eficiente en conjunto con LibreOffice de Todo los Linux Espaรฑol
Tales como: Canaima; Trisquel; GuadaLinex; lliurex estos usan Entornos Muy Pesados y Lentos como GNone y KDE como Predeterminado %
No Posen cualidades Diseรฑo Como Lo Realizaron UD/s son los รnicos en Pensar Hacer Posible Un Linux tan Rรกpido y estable
y con Paquetes de Programas Muy รtiles en Plataformas : 32Bit & 64Bit.
y Dividido en cuatro Necesidades Escritorio Lihuen LXDE y Lihuen Aplicaciones Educativas y Linux Para Estudiantes de Informatica
=Me Imagino un Mundo Usando Entorno como Base: LXDE y Cinnamon
->Los Felicito Excelente Sistema Operativo Sacaron UD/s
Gracias Dios Se los Pague…
ยซOjala el Gobierno de Venezuela Use Este Linux Lihuen y los Ponga en las Canaima y lo Promuevan en Venezuela en la Poblaciรณn y en Las Instituciones Publicas y en los Hogares por Su Rapidez ยป
->Lo Voy Promover en La Universidades de Mi Estado y en mis Amistades&Familiares Me gusto Lo Rรกpido y Fรกcil de instalar la Estupenda
Presentaciรณn Q Tiene
->Gracias q La Pase Bien desde Venezuela->Estado Trujillo.
Q siempre saquen Linux Lihuen Lo Estarรฉ Bajando Y Usando y recomendando a todo Aquel Q Conozca Q Use PC
Una aclaraciรณn, KaOS no usa yaourt, ya que no estรก basada en Arch, usa kcp.
Saludos.
Ya lo se, he utilizado KaOS por un tiempo, decรญa que pacman era el comรบn entre las dos distros, yaourt es propio de Arch y kcp es de KaOS, kcp -i paquete
No se en otras distribuciones pero con Gentoo el tema se facilita un poco ya que para listar todos los programas instalados basta con hacer un
cat /var/lib/portage/world
Por ejemplo, asรญ es como se ve mi archivo world (la categorizaciรณn ya viene incluida).
En cuanto al script, yo lo mejorarรญa un poco usando un array de este modo:
declare -a paquetes
Si bien pareciera que las categorรญas estรกn dentro del array, estas son ignoradas ya que son comentarios
paquetes=(
categorรญa1
paquete1
paquete2
paquete3
categorรญa2
paquete4
paquete5
)
Iteramos sobre el array para instalar los paquetes secuencialmente
for contador in ${!paquetes[@]}
do
sudo apt-get install ${paquetes[$contador]}
done
De este modo tambiรฉn se facilita para cambiar el comando de instalaciรณn (otro tema es si los paquetes mantienen los mismos nombres en distintas distribuciones).
Y para instalar todos los paquetes a la vez se puede cambiar el bucle for del cรณdigo anterior por esto:
sudo apt-get install $(echo ${paquetes[@]})
Seria lo mismo que escribir sudo apt-get install paquete1 paquete2 paquete3...
Si por alguna razรณn se quiere usar cualquier otro carรกcter como separador en lugar del espacio, aquรญ se explican algunas formas de hacerlo.
Al parecer WordPress interpreta los saltos de linea y los numerales/almohadillas como quiere dentro del tag code (o yo hice algo mal). Acabo de poner el cรณdigo del script aquรญ para que se entienda mejor.
Gracias por el aporte
Puedes hacer algo mas completo usando bash por ejemplo , recalco es SOLO UN EJEMPLO :
Puedes hacer algo mas completo usando bash por ejemplo
#!/bin/bash
–– ENCODING: UTF-8 ––
Titulo=ยปActualizador de Distros o Derivadasยป
Pregunta=ยปPor Favor Elige una Opcion : ยป
Distros=(
ยซArchLinuxยป
ยซDebianยป
ยซCentOSยป
ยซFedoraยป
ยซOpenSuSEยป
ยซSalirยป
)
function distro(){
Determinar si existe /etc/issue
if test -f /etc/issue
then
DISTRO_DESTINO="Manjaro Linux"
DISTRO_ISSUE=$(cat /etc/issue | grep "$DISTRO_DESTINO" | cut -d " " -f01,02)
if [ $DISTRO_ISSUE = $DISTRO_DESTINO ] then
DISTRO=ArchLinux
fi
DISTRO_DESTINO="Debian"
DISTRO_ISSUE=$(cat /etc/issue | grep "$DISTRO_DESTINO" | cut -d " " -f01)
if [ $DISTRO_ISSUE = $DISTRO_DESTINO ] then
DISTRO=Debian
fi
DISTRO_DESTINO="Ubuntu"
DISTRO_ISSUE=$(cat /etc/issue | grep "$DISTRO_DESTINO" | cut -d " " -f01,02)
if [ $DISTRO_ISSUE = $DISTRO_DESTINO ] then
DISTRO=Debian
fi
DISTRO_DESTINO="Elementary"
DISTRO_ISSUE=$(cat /etc/issue | grep "$DISTRO_DESTINO" | cut -d " " -f01,02)
if [ $DISTRO_ISSUE = $DISTRO_DESTINO ] then
DISTRO=Debian
fi
DISTRO_DESTINO="Fedora"
DISTRO_ISSUE=$(cat /etc/issue | grep "$DISTRO_DESTINO" | cut -d " " -f01)
if [ $DISTRO_ISSUE = $DISTRO_DESTINO ] then
DISTRO=Fedora
fi
Fin de ยซDeterminar si /etc/issue existeยป
fi
Si no existe , devolver el texto ยซDistro Desconocidaยป
else
echo '
Distro desconocida
'
fi
}
Actualizar_Distro(){
case $1 in
ArchLinux)
sudo pacman -Syu
yaourt -Syua
;;
Debian)Versiones
sudo apt-get update
sudo apt-get -y upgrade
;;
CentOS)
sudo yum update
;;
Fedora)
sudo dnf update
;;
OpenSuSE)
sudo zypper update
;;
esac
}
Esto va al final ๐
echo
echo ‘Por Favor usa un Numero’
echo ‘Para Actualizar la Distro Deseada’
echo
echo ยซ$Tituloยป
PS3=ยป$Preguntaยป
select Opcion in ยซ${Distros[@]}ยป ; do
printf ยซ\nยป
case ยซ$REPLYยป in
1 ) echo "Has escogido la Opcion Numero : $REPLY" $'\n' "$(Actualizar_Distro $Opcion)" $'\n' $'\n\n' "$DISTRO La distro ha sido actualizada por Inukaze (De Venezuela)" $'\n'; break;;
2 ) echo "Has escogido la Opcion Numero : $REPLY" $'\n' "$(Actualizar_Distro $Opcion)" $'\n' $'\n\n' "$DISTRO La distro ha sido actualizada por Inukaze (De Venezuela)" $'\n'; break;;
3 ) echo "Has escogido la Opcion Numero : $REPLY" $'\n' "$(Actualizar_Distro $Opcion)" $'\n' $'\n\n' "$DISTRO La distro ha sido actualizada por Inukaze (De Venezuela)" $'\n'; break;;
4 ) echo "Has escogido la Opcion Numero : $REPLY" $'\n' "$(Actualizar_Distro $Opcion)" $'\n' $'\n\n' "$DISTRO La distro ha sido actualizada por Inukaze (De Venezuela)" $'\n'; break;;
5 ) echo "Hasta La Proxima!" $'\n' && break;;
Salir ) echo "Hasta La Proxima!" $'\n' && break;;
$(( ${#Distros[@]}+1 )) ) echo && echo "Hasta Luego!" && echo; break;;
*) echo "Opcion Invilada. Por Favor Elige Una Opcion Valida." $'\n';continue;;
esac
done
fi
Fin del Ejemplo . yo sugiero que si vas a hacer algo muy trabajado y complejo , en ese caso , mejor uses ยซdialogยป para hacer instaladores textuales , como el que trae Debian
Puedes ver un ejemplo aqui -> http://bash.cyberciti.biz/guide/Bash_display_dialog_boxes
Ya se que se puede hacer con if then fi, coml lo voy a hacer yo, hare un script lo mas conpleto posible, con todas las distros que se,, y gracias por la ayuda, me has aclarado un poco como hacerlo, cuando termine el script, te lo paso
Interesado en Slackware por aca! Alguien que ayude?
Creo que con sabopkg – i paquete en vez de apt get o pacman, y para actualizar no tengo ni idea, aun no he pasado por esa distro.
@erUzama
Que gran GUIร este post, la verdad me gusto mucho, esa es la modalidad mediante comandos que se mueve FreeBSD Unix, ahora voy entendiendo poco a poco sobre los escripts, se podrรก hacer lo mismo en FreeBSD Unix?, ya me gustarรญa una GUIร de como configurar y personalizar en un sistema como Gentoo o Slackware un escritorio Fluxbox y LXDE, pero las wikis son muy confusas para los nuevos usuarios.
Muy buena nota. Hace poco tuve que reinstalar el OS y me encontrรฉ con el problema de reinstalar todo lo que necesitaba, asรญ que cree un post-install script: https://gist.github.com/daverivera/7d47761a98c3dd995225#file-install-sh
Esta hecho para Arch, configura e instala algunos paquetes. Esta hecho sobre funciones que pueden ser comentadas para usar solo la necesaria. De pronto tambiรฉn le puede servir a alguien de base.
Muy interesante este articulo, pienso que lo mejor seria que el script pudiera sacar una lista de lo instalado y guardarla para en un proximo formateo te instalara lo de esa lista, yo por eso no he cambiado de distro ultimamente.
Muchas gracias.
Buen post,10 puntos y a favoritos lince de las montaรฑas.
Voy a profundizar un poco mas en estos scripts pafa crear el mรญo para Ubuntu.
Me acuerdo que en la pagina Slice of Linux solian poner esos scripts en los post de ยซque hacer despues de instlar …ยป
Saludos comunidad..!!
Wow.!!
Veo que este script se puede volver tan complejo y tan completo como se quiera segรบn he leรญdo los comentarios.
Yo por ejemplo encontrรฉ un script post instalaciรณn para xubuntu que incluye hasta cรณdigo de color para hacerlo mas presentable digamos, los cuales incluso me atrevรญ a jugar con ellos.
Aquรญ quiero pensar que puedo hacer un primer script que mediante la condicional if then fi , pueda primero verificar de que distro se trata, y dentro de la condicional respectiva; llamar al script apropiado para la instalacion de paquetes en la distro correspondiente.
Esto con la finalidad de hacerlos lo mas simple posible y que dichos scripts no sean ni tan extensos ni tan complejos y resulten mas facil de mantener/actualizar.