# Script auto-instalación Gentoo

## DaRkaHT

Muy buenas señores:

Me gustaría compartir con ustedes mi trabajo de 3 años. Se trata de un script, el cual instala automáticamente nuestra querida distribución Gentoo. Es mi primer script de envergadura, y seguramente tendrá algún que otro fallo, por ello me gustaría que los "maestros scripteros" le echen un vistazo y den su opinión. Tengo entendido que hay aplicaciones gráficas que tienen el mismo fin, pero dudo que sean tan configurables como un script.

El script debe ir acompañado de los ficheros: stage, portage, 02locale, consolefont, hwclock, keymaps, rc.conf, package.mask, package.unmask, package.use y opcionalmente, fichero .config para construir el kernel.

Dejo el codigo en pastebin. EDITADO:

http://pastebin.com/HyDpbaWh (v1.1)

http://pastebin.com/1RZbbScW (v1.0)

Espero que les guste! Saludos!Last edited by DaRkaHT on Sun Apr 21, 2013 11:59 pm; edited 2 times in total

----------

## pelelademadera

q gran aporte... siempre tuve ganas de hacer algo asi y por cuestiones de tiempo siempre se me complico.

muy copado, me parece igual q a mejorar seria el tema de hacer un par de preguntas y automaticamente configurar el make.conf y las use...

mi idea era preguntar, si iba a usar kde o gnome, si quiere usar paquetes nuevos o los 100% estables, q seleccione el procesador y demas, y compilar el kernel genericamente, de esa manera que el usuario tenga gentoo corriendo rapidamente, despues que optimize el kernel y demas, o sea, mostrarle las flags que se van a activar y permitirle que las edite a su gusto y demas...

de todas maneras debo felicitarte por el trabajo que te tomaste

muchas gracias, te lo van a agradecer los novatos....

----------

## DaRkaHT

Bueno, el tema de configurar el make.conf y las use flags lo veo un tanto complicado... si alguien me ayuda a hacerlo estupendo.

Ahora la complicación está en que si deseo añadir más código... ya va por casi 1200 lineas... y más contenido aún, puede hacer que leer y analizar el script se convierta en una auténtica odisea. Para ello creo que una buena opción sería hacerlo todo modular como pensé en un principio, y dividir la instalación en varios scripts (sistema base, xorg, entorno grafico, hardware...). 

El problema en este caso, sería que todos los scripts tendrían que tener las funciones en cada uno de ellos... algo demasiado redundante a mi parecer... no me gusta jaja. He leido que en circunstancias normales, se pueden exportar funciones a otro script, pero habiendo un "chroot" de por medio, las funciones se pierden, ¿no?. Con las variables más de lo mismo, la única manera que he encontrado de exportarlas entre los entornos "chroot" es escribiendo un fichero y luego leerlo a base de "grep" y "cut".

Con la elección del entorno gráfico, pienso que no merece la pena, puesto que varían muchos paquetes y muchas flags entre uno y otro... demasiado código y demasiado lio... cuando se supone que la persona que use este script sabrá modificarlo y/o instalar otro entorno gráfico manualmente.

Cabe destacar que mi objetivo NO es conseguir la automatización completa de la instalación para novatos, sino una herramienta destinada a usuarios con conocimientos medios/altos para facilitar un poco el trabajo.

En cuanto al kernel, ya existe la opción de que el usuario pueda elegir entre la instalación de un núcleo personalizado (copiando un fichero ".config" o bien ejecutando "menuconfig") o bien, un núcleo genérico.

Acepto todo tipo de ideas, y por supuesto de ayuda jajaja, saludos.

----------

## ZaPa

Hola.

Muy buen trabajo, he estado hechandole un vistazo al script y la verdad es que esta muy bien, sencillo y a la vez muy util.

Si quieres, yo te podria hechar una mano para ir mejorandolo un poco. 

Mandame un privado con tu correo y hablamos, seguro se pueden hacer grandes cosas  :Very Happy: .

Un saludo.

----------

## DaRkaHT

Buenass señores:

Tras varios días de intenso trabajo...(si tokaba aquí, fallaba allí... ¬¬ ya me entendeiss...) he aquí una nueva versión con ciertos fallos corregidos, más funcionalidad y menos líneas de código. Venga, 100 puntos a quien encuentre un fallo! jajaja. Saludos!

http://pastebin.com/HyDpbaWh (v1.1)

ChangeLog v1.1:

- Nueva barra de progreso, hecha con una función e invocando a la mísma donde se desea mostrar el progreso.

- Añadida verificación de conexión a internet, dentro y fuera del entorno "chroot".

- Reconstruido menú de selección de interfaces de red con "select". Detección automática de interfaces. Escaneo de redes wifi.

- Eliminada opción de instalación off-line. No creo que sea útil.

- Reconstruido menú de selección de discos duros. Detección automática de discos.

- En un principio me flipé poniendo verificaciónes de "$?" para seguir con la siguiente orden o no, cuando en ocasiones con un simple "&&" es suficiente. Ya está simplificado.

- Reconstruido formulario de contraseña de root con "while".

- Reconstruido formulario de datos del primer usuario. También con "while".

- Añadido "eselect news --read" tras "emerge --sync" para eliminar molestos mensajes durante la instalación.

- Arreglado fallo en la copia del núcleo. La "función copiar" no copiaba la imagen del núcleo correctamente debido a que lo hacía recursivamente.

- Retoques varios, optimizar y reducir líneas innecesarias, comentarios...

----------

## Arctic

Lo del make.conf a que te refieres por complicación, a seleccionar las cflags para la arquitectura ????? Se me ocurren varios modos sencillos de implementarlo ,inclusive ir mas allá automatizando uses , mirrors, etc...... pero igual supondria un aumento indiscriminado de lineas   :Rolling Eyes: 

Salu2

----------

