Miguel Bolanos mike@rocklinux.org
14 March 1999
Version 1.0 (24/09/2001)
Este documento pretende ser una guia general de ROCK Linux. Cubre una introduccion para aquellos que nunca han escuchado de ROCK antes, un poco de la filosofia de ROCK y una explicacion general de como descargar y crear ROCK.
ROCK le brinda todo lo que ud alguna vez quiso en una distribucion de Linux y mas!
1 Introduccion
____ ___ ___ _ __ _
| _ \ / _ \ / __| |/ / | | _ _ __ _ _ _ _
| . _/| | | | | | '_/ | | |_| '_ \| | | | \/ |
| |\ \| |_| | |__| . \ | |__| | | | | `_' |> <
|_| \_\ ___/ \___|_|\_\ |____|_|_| |_|\___/|_/\_|
[============> http://www.rocklinux.org/ <============]
Este documento pretende ser una guia general de ROCK Linux. Cubre una introduccion para aquellos que nunca han escuchado de ROCK antes, un poco de la filosofia de ROCK y una explicacion general de como descargar y crear ROCK. Este documento esta hecho de los manuales de INSTALL, BUILD y FAQ los cuales estan hechos y dedicados parallevarlo de la A a la Z.
Mucho del material en este documento fue tomado de articulos y discuciones acerca de ROCK. Tambien contiene duplicados, y referencias, de otros documentos de ROCK.
En este punto me gustaria aprovechar la oportunidad para aclarar una equivocacion. ROCK Linux no es dificil de instalar. Las distribuciones binarias son muy faciles y no hay mucho que hacer en la instalacion del codigo.
Hay algunas areas en las que ud necesita ser un usuario experimentado de Linux e.g. todos los paquetes deben ser levantados manualmente y ud debe ser capaz de comprender los archivos de configuracion de los paquetes originales. ROCK no contiene utilidades de administracion del sistema. Pero pienselo de nuevo si persive esto como un problema. Cuando se utilizan herramientas complejas, ud no llega a comprender la arquitectura de Linux y todos sus componentes.
ROCK es limpio y tiene como objetivo hacerlo todo bien. Tambien le permite aprender como hacerlo todo bien. Muchas personas que prueban ROCK no regresan a otras distribuciones.
Este documento es modificado constantemente. Envieme sus ideas (y parches)!
Algunos textos podrian estar duplicados en otros archivos de ayuda de ROCK Es comun el caso de que el texto en el FAQ cubra el mismo tema, pero en ese documento no es tan extenso como me gustaria que fuese.
En algun tiempo tendremos que decidir si extendemos el FAQ (con la posibilidad de hacerlo menos amplio) o duplicar alguna informacion en este texto por razones de lectura. Solo se ve gracioso cubrir un tema tomando el FAQ y luego continuar con detalles.
Espero que encuntre la lectura satisfactoria! La colaboracion fue la que hiso grande al GNU/Linux y es en ese espiritu que ROCK fue creado y evoluciona.
Miguel Bolanos (c) Junio 2001- Septiembre 2001
Nota para novatos de Linux : Instalar y usar Linux involucra una ambiciosa curva de aprendizaje. Sin embargo es una experiencia muy gratificante y despues de algunos meses ud se dara cuenta de que no volvera a ver a atras. Asegurese de que tiene tiempo para sambullirse y comprender de que se trata. Linux es uno de los sistemas operativos mejor documentados en el mundo! Asegurese de aprovechar esos recursos. El ROCK Linux Guide Spanish fue escrito con LaTeX y es parte de la distribucion ROCK Linux . Una (agradable e imprimible) version del ROCK Linux Guide Spanish puede ser creada con el Makefile incluido. La version de desarrollo del ROCK Linux Guide Spanish puede ser encontrada en http://www.rocklinux.org/people/mike/doc/guide.DEV/.
Linux es marca registrada de Linus Torvalds
ROCK Linux es Copyright (C) 1998 - 2001 Clifford Wolf
ROCK Linux Guide Spanish es Copyright (C) 2001 Miguel Bolanos
Lea el archivo 'COPYING' para detalles de licenciamiento
ROCK Linux es una distribucion limpia, especialmente propuesta para administradores de sistemas. Tambien es una muy buena edicion de Linux para estaciones de trabajo. ROCK Linux fue desarrollado desde cero y es mantenido por un grupo de personas que colaboran. Para citar a Clifford Wolf:
Es muy facil crear una nueva distribucion de Linux.
Con toda su experiencia el obviamente puede pensar eso, pero hay solo unas pocas distribuciones escritas desde cero. La mayoria son creadas de distribuciones existentes de RedHat y/o Debian.
ROCK pretende usar en los paquetes tan pocos parches como sea possible
ROCK es diferente, toma la forma de un grupo de scripts para crear e instalar las distribuciones. No hay instaladores irreales (a pesar de que los scripts son muy potentes) y una de las suposiciones basicas es que los paquetes deben ser instalados siguiendo los estandares de sus creadores. Este es un gran contraste con los sistemas parchados creados por otras distribuciones. ROCK solo parcha cuando es realmente necesario.
ROCK no hace suposiciones del pasado
Si ud ha estado usando una de las distribuciones mayoritarias como SuSE o RedHat notara que la mayoria de las cosas estan parchadas. Esto incrementa la dependencia en estas distribuciones (intencionadamente o no). Es dificil para una distribucion grande revertir esta practica por razones de incompatibilidad con versiones anteriores. ROCK parchara algunos codigos. E.g. actualmente un parche es suministrado para binutils, pero solo cuando es realmente necesario.
ROCK contiene las versiones mas actualizadas de los paquetes
Los paquetes, incluyendo el kernel de Linux son descargados de los repositores originales. Para cada paquete la distribucion de ROCK mantiene un archivo que direcciona a su ubicacion ftp y el nombre del archivo. Algunas veces la direccion ftp cambia, mas a menudo que el cambio de numeracion del archivo. A ese punto el archivo debe ser editado. Luego de una descarga exitosa ud debe enviar el parche a los encargados de ROCK Linux - para que otros obtengan una actualizacion automatica.
Un gran aspecto de ROCK usualmente direcciona a los paquetes mas actualizados. Y si ud esta usando la version en desarrollo de ROCK tambien estara usando uno de los ultimos kernels.
Un gran beneficio del Software Libre es que el software tiene actualizaciones constantemente. Con ROCK ud obtiene una herramienta para actualizar su distribucion entera constantemente - en lugar de actualizar el kernel y los paquetes manualmente. Junto con una herramienta como cfengine (GNU Configuration Engine) ud obtiene un ambiente que puede ser actualizado facilmente. De hecho los usuarios de ROCK tienden a correr sistemas muy actualizados.
ROCK es creado optimamente
Con ROCK todos los paquetes son creados con las optimizaciones que ud quiere y la plataforma que ud senale. Otras distribuciones son usalmente creadas para i386 o Pentium genericas. Con ROCK ud puede automaticamente crear X y paquetes como GIMP optimamente para su architectura.
ROCK esta listo para copiar en un CDROM
Despues de crear ROCK desde el codigo ud puede copiar la distribucion ROCK directamente en un CDROM (y pasarcelo a otros).
Los servicios deben ser activados explicitamente (seguridad agregada)
Tambien los paquetes y servicios deben ser activados manualmente. Cuando ud carga una instalacion fresca de ROCK encontrara el minimo de servicios instalados.
Desde la perspectiva de los administradores de sistemas esto es ideal para instalaciones nuevas. Se compara favorablemente con limpiar y cerrar todos los servicios de una inflada distribucion comercial.
ROCK se adhiere a los estandares
ROCK se acerca lo mas posible a los estandares como es posible. Pero con una vista practica. Por ejemplo usa el FHS (File Hierarchy Standard), pero con excepciones (generalmente porque los codigos originales de los paquetes no los acatan). Para mas informacion vea el FAQ y el archivo fhs.txt.
ROCK es completo
La distribucion base de ROCK es ligeramente pequena - y ud puede obtener un sistema compacto y funcional. Sin embargo, con los paquetes completos la distribucion es ligeramente completa. Incluyendo, por ejemplo, los ambientes GNOME y KDE.
ROCK usa pocos recursos
La mayoria de los scripts de instalacion de ROCK son scripts sh (asi que pueden ser interpretados desde bash, csh y ksh). Esto hace posible la creacion de distribuciones simples como las sub-distribuciones de rescue, telnet y router. Una distribucion completa de ROCK (con todos los paquetes) aun facilmente encanja en un simple CDROM.
Extender ROCK es facil
En caso de que ud quiera agregar un paquete a ROCK cree una extencion. Si es un paquete base modifique el archivo de los paquetes y envielo. Extender ROCK nos ayuda a todos. Actualmente ROCK incluye cientos de paquetes incluyendo el ambiente GNOME completo.
Potentes scripts
Debido a que ROCK consiste de un grupo de scripts es facil saber lo que esta sucediendo por detras. Tambien da posibilidades de cambiar la distribucion para sus propias necesidades. Las sub-distribuciones son ejemplos de dichas adaptaciones.
De hecho el sistema demuestra que es muy potente con solo el sistema de scripts. No era esa la filosofia original detras de Unix?
ROCK es flexible
El sistema de paquetes no es especifico para la distribucion ROCK Linux . Como los paquetes son creados de los codigos es posible descargar los scripts de ROCK y solo descargar e instalar un paquete. E.g.:
./scripts/Download -package xpdf ./scripts/Build-Pkg xpdf
Descarga y crea xpdf y todos los paquetes incluidos en la extencion. Esto se ve un poco mas sencillo de lo que es - quiza tenga que crear otros paquetes para hacerse cargo de las dependencias, pero los archivos de salida de la creacion se lo diran (para xpdf ud necesitara crear el paquete tetex tambien).
Actualizar parcialmente un sistema ya existente es posible tambien de esta manera.
Kent Skaar creo una libreria de herramientas GNU para Solaris de esta manera. Muy util si ud quiere usar lo ultimo y grandioso en sistemas Unix.
No existe otra distribucion como ROCK Linux
Ahora debe estar claro que ROCK no se ve como ninguna otra distribucion. Debian, mientras es tambien un esfuerzo colaborativo, es una gran distribucion pero es en muchas maneras mas como las ediciones comerciales. FreeBSD se acerca mas porque maneja la descarga de sus paquetes desde un recurso simple.
Se ha dicho que ROCK Linux es mas BSD con un nucleo GNU que ninguna otra cosa: ROCK tiene una coleccion de puertos (llamados extensiones), un mundo de makes (llamado ./scripts/Build-All) y como lo prefiere OpenBSD el metodo de "desabilitar caracteristicas por default". Esto es lo que hace a OpenBSD el pariente mas cercano de ROCK.
Actualmente un numero de sub-proyectos basados en ROCK existen o estan en desarrollo. Estos son implementados como sub-distribuciones:
La sub-distribucion de rescate es una distribucion minima de ROCK que puede ser usada para crear ROCK Linux. Muy util cuando ud tiene que empezar de cero, o cuando ud necesita crear en un sistema indeseable.
La distribucion rescue tambien puede ayudarle a rescatar un sistema caido.
La sub-distribucion router es una distribucion minima de ROCK para routers.
La sub-distribucion de telnet puede ser ejecutada desde un floppy y bootea en cualquier sistema basado en Intel para que pueda obtener una sesion de telnet.
Otras sub-distribuciones estan en desarrollo. Una implementada por Clifford instala una habitacion completa desde un servidor central. Util para sessiones de capacitacion. Los scripts pueden ser encontrados en la distribucion principal.
Otra en desarrollo++ promueven la alta seguridad con suporte PAM y posiblemente Kerberos. Una combinacion de smart-card y soporte VPN podria ser incluido.
There are also plans to create a distribution which co-operates closely with cfengine. Cfengine es una herramienta de administracion de alto nivel que mantiene su equipo en buenas condiciones. Tambien puede dar facilidades para actualizar facilmente una distribucion completa de ROCK.
ROCK tiene una lista de correo y un archivo de la misma. Es una buena idea suscribirse y decir sus ideas y modificaciones. no como Groucho:
Es mejor mantenerse en silencio y ser pensado torpe, que abrir tu boca y remover toda duda
Este es un punto clave. Clifford es muy centrado en el mantenimiento de ROCK e invierte parte de su tiempo mejorando el sistema y aplicando parches.
Es obvio que despues de algun tiempo en la lista mucha discusion lleva lugar fuera de linea, o en conversaciones privadas via email. Mucha de la filosofia de ROCK puede ser contribuida a la adaptable intuicion de Clifford y el hecho de que ROCK es utilizado en muchos medios de produccion.
Algunas veces hay discucion en IRC - para mas informacion vea la pagina web de ROCK.
Ud puede encontrar un resumen de la lista de correo en: http://www.rocklinux.org/ o descargar un gran archivo de texto por medio de:
# wget http://www.rocklinux.org/mailing-list/mbox
Lo primero que ahi que hacer es encontrar una de las versiones de ROCK Linux y descargarla desde http://www.rocklinux.org/. Las versiones estables son numeros pares en el segundo digito (como 1.4.0). Las versiones en desarrollo son impares (como 1.5.12) y la version actual en desarrollo es llamada 'DEV'. Un tar es mas pequeno que un Megabyte y descarga rapidamente.
Las versiones estables de ROCK van de la mano con las versiones estables del kernel de Linux . Sin embargo muchos usuarios de ROCK usan las versiones en desarrollo de ROCK Linux de todos modos. Un aspecto adicional de ROCK es que usa la ultima version de cada paquete, inclusive el kernel. Las versiones de desarrollo de ROCK han probado ser muy robustas. Sin embargo una version de desarrollo puede potencialmente estropear su sistema.
Descomprima el archivo tar y este desempaca documentacion, scripts de instalacion y el directorio para los paquetes que seran-descargados.
El tamano de ROCK Linux es muy pequeno porque solo contiene el sistema basico (scripts) para descargar el kernel y los paquetes de Internet. El resto de paquetes de la distribucion es descargada en la siguiente fase.
Una vez que haya desempacada la distribucion ud podra ver directorios como:
Los scripts son invocados desde el directorio ROCK . E.g.
# ./scripts/Download -base.
Las ultimas versiones de ROCK vienen con un agradable sistema de ayuda. Si ud inicia un script sin parametros el le dira que hacer. Ud tambien puede ver el directorio de ayuda. E.g.
# ./scripts/Help Download
Descargar una distribucion completa de ROCK Linux tarda un poco - dependiendo que tan rapido puede mover 450 Mb con su coneccion. Mientras espera ud podria ir afuera, dormir, trabajar y pasar por esa rotina de nuevo.
Yo tomo para hacer otra gente interesante
# ./scripts/Download -base
Descarga los paquetes basicos con los que ud puede crear un sistema ejecutable.
# ./scripts/Download -ext
Descarga los paquetes de extension.
El script de descarga podria decirle que ud tiene una version incorrecta de bash y que necesita wget. Yo tuve que descargar ambos porque la distribucion de RedHat tenia una version antigua del primero y no tenia el segundo. Ya sea usando el rpm o compilarlos luego de descargarlos de ftp.gnu.org.
Cuando los archivos no son encontrados Download da un error. Podria se que el archivo haya cambiando de numero de version o que se haya cambiando a otra direccion. Esto ocurre regularmente, pero afortunadamente es manejable.
Paquetes extraviados no son necesariamente un problema. Si ud es consciente de lo que hace el paquete y sabe que no lo necesita puede simplemente ignorar el error. Para los paquetes basicos usualmente es mejor ir por todos ellos.
Lea el FAQ en 'tengo problemas descargando el codigo-del-paquete'.
Es muy util descargar las versiones mas recientes de ROCK porque reflejara el estado mas reciente de los originales.
Otra opcion es tratar uno de los mirrors de ROCK. Ud puede encontrar los paquetes extraviados con:
# ./scripts/Download --mirror url [options]
Por ejemplo:
# ./scripts/Download -mirror \
ftp://ftp.nluug.nl/pub/os/Linux/distr/ROCK/ROCK-Devel/ -base
En la practica seria mejor iniciar con un mirror primero (porque la coneccion podria ser mas rapida).
Para saber cuales archivos estan extraviados ejecute:
# ./scripts/Download -list-missing ; ROCK 1.3.11 # grep missing check.log|less ; Versiones anteriores
Ud puede encontras los urls mirando los archivos en /pkg-config/$packagename/* para los paquetes basicos y /ext-config/$packagename para los paquetes de extension (e.g. parted)
Si la URL no funciona busque el nuevo paquete. Visite el directorio manuamente y revise si el nombre del paquete ha cambiado (usualmente el numero de version). Sino visite un mirror o empiece a buscar un el archivo tar en http://www.freshmeat.net/, http://www.google.com/ etc.
Una vez que tenga el paquete vaya por el por medio del script Download y coloque el chksum al valor que regresa de /scripts/Download -mk-cksum $package.tarball. El formato del paquete es descrito en la segunda parte del ROCK Linux Guide Spanish.
Documentacion del formato de los paquetes puede ser encontrada en: http://www.rocklinux.org/people/ripclaw/articles.
Algunas versiones de ROCK fueron copiadas o contienen un snapshot de una distribucion. Un lugar que podria tratar es ftp://ftp.nluug.nl/pub/os/linux/rock/ (otros mirrors son planeados pronto) y note que ahi estan en formato bz2, solo copielos en su directorio requerido, asegurandose de que esta opteniendo la version correcta. Ud puede hacerlo manualmente o usar el mirror de descarga de ROCK:
# ./scripts/Download -mirror full_url -all
Es util direccionar la salida a un archivo. E.g.:
# ./scripts/Download -all 1>stdout.log 2>stderr.log
Si ud descarga el archivo manualmente, copielo al directorio apropiado y re-ejecute el script de descarga para convertir el archivo en formato bz2.
Si ud tiene contacto con el host, pero el archivo esta extraviado,
haga lo de arriba. Si el archivo ha sido reemplazado por una version
mas recientes, edite: pkg-config/<package>/puzzle.pz
para encajar la nueva version. Luego ejecute: ./scripts/Puzzle
Puzzle necesita mmv (Para renombrar/mover archivos) y si no esta en su sistema ud debe ir por el con:
# wget ftp.unix-ag.org/pub/os/linux/i386/misc/mmv-1.01b.tar.gz
Pero si tiene suerte ya esta en su distribucion:
# ls pkg-archive/mmv*
Como yo estaba creando y compilando en la version RedHat, yo instale la version mmv.rpm (mas rapido que reparar los errores a la hora de compilar).
# wget http://www.tux.org/pub/distributions/SuSE/i386/6.4/suse/ap1/mmv.rpm # rpm -i mmv.rpm
Despues de tratar # ls archive/mmv*
Normalmente yo revisaria en el archivo conf del paquete mmv de ROCK y revisaria lo que hace ROCK cuando compila mmv. Eso daria la respuesta.
Nota: Ahi un parche para mmv en: http://www.rocklinux.org/people/ripclaw/sparc/patches/mmv/ el cual fue creado para el puerto de SPARC pero deberia funcionar en todas las arquitecturas.
Despues de ejecutar Puzzle ud puede re-ejecutar el script Download.
El script Download tiene una facilidad para revisar la integridad de los paquetes descargados:
# ./scripts/Download -check -all
pasa por todos los paquetes y revisa que los checksums encajen. Si un paquete se corrompio, de una forma u otra, regresa un error.
Otro aspecto util de ROCK es revisar los numeros de las versiones modificadas en las ftp de los paquetes con:
./scripts/Internal checkver
La salida puede ser encontrada en los archivos de ./checkver* . Lista todas las versiones disponibles en cada direccion ftp.
En lugar de descargar todos los paquetes cada vez que ud actualiza el script principal de la distribucion ROCK Linux es muy facil desde una descarga anterior. Solo mueva los paquetes bz2 a un nuevo directorio y ejecute el script Download.
Para deshacerse de los paquetes que no se utilizan (de lo contrario su HDD se llenara):
./scripts/Download -list-unknown | xargs rm -vf
La primera vez que ud empieza a crear ROCK es una buena idea no crearlo en su ambiente de trabajo normal porque quiza requiera hacer parches en el kernel y cambios al LILO. Muchos de los aspectos mensionados en este capitulo desaparecen magicamente cuando se crea ROCK . La rason mas importante es que la mayoria de las distribuciones de Linux no estan basadas en devfs. Este problema desparecera proximamente cuando devfs sea completamente adoptado (ya es standard en el kernel de Linux.
Para este momento se dara cuenta de que ya descargo todas las herramientas necesarias para crear un distribucion ROCK . Todos los paquetes requeridos estan en el directorio ./pkg-archive. ./pkg-conf cotiene todos los hints para crear esos paquetes exitosamente.
ROCK crea en un kernel con soporte para devfs. Si ud tiene la ultimas versines del kernel (en pkg-archive) devfs esta incluido. Los sistemas mas viejos deben ser parchados.
Un buen concejo, si tiene suficiente espacio en el disco, es descargar uno de los binarios de rescate de ROCK (50 Mb) lo que le da un sistema de creacion completo. Instalelo y bootelo y practicamente habra terminado. Seria incluso mas sencillo si ud tuviese una imagen de ROCK en CDROM . ROCK crea facilmente en una instalacion existente de ROCK.
Otro aspecto de la creacion es que ud necesita un poco de espacio libre en el disco. Despues de descargar todos los paquetes (1Gb) necesita otros 2.5 Gb para crear todo. Mas tarde necesitara suficiente espacio libre para instalar el nuevo sistema de creacion.
Instalaciones No-ROCK toman un poco mas de preparacion en general. Si tiene que crear en un sistema RedHat o SuSE, por ejemplo, menuconfig el /usr/src/linux y active el dev filesystem (experimental). Tambien descarge (si no esta en el archivo de ROCK ) y cree devfsd.
Los usuarios de SCSI encontraran la pagina de 'devfs y SCSI' de ayuda en: http://www.torque.net/sg/devfs_scsi.html. Para mi requirio recrear el kernel y los modulos (en RedHat) con devfs activado, y auto mount. No olvide incluir los drivers de SCSI en el kernel y ramdisk (y si va a utilizar nfs mounting incluya loopback y soporte de network block device).
Si tiene exito re-creando su kernel y booteando por una u otra razon existe una estrategia mas. Descargue las imagnes floppy de ROCK para que pueda ver las particiones de su disco.
Con devfs todos los discos, sea SCSI, IDE lo que sea, esta cituados bajo la gerarquia /dev/discs:
/dev/discs/disc0 primer disco
/dev/discs/disc1 segundo disco
Cada una de estas entradas es un link simbolico al directerio para ese dispositivo. El directorio del dispositivo contiene:
disc para todo el disco
part1.. para particiones individuales
Algo que se debe de recordar es que la numeraciones originales /dev/sda1 y /dev/hda1 son base 1, devfs es base 0 (exepto por la numeracion de las particiones).
Otra cosa que debe recordar es que, en la venerable plataforma Intel, los drives IDE estan enumerados antes que los drives SCSI.
Para especificar la primera particion scsi o ide directamente use:
/dev/scsi/host0/bus0/target0/lun0/part1
/dev/ide/host0/bus0/target0/lun0/part1
mi configuracion original de LILO del kernel RedHat kernel y el kernel devfs:
# boot=/dev/sda - lilo sin devfs boot=/dev/discs/disc0/disc image=/boot/bzImage label=linux append="root=/dev/discs/disc0/part3" read-only
Donde el kernel fue compilado con devfs y monta devfs al bootear.
Estos parametros tambien pueden ser dados en el prompt de lilo:
lilo: rock root=/dev/ide/host1/bus0/target0/lun0/part1 devfs=mount,nocompat
Las siguientes (utiles) opciones estan disponibles para el boot prompt:
devfs=mount,nomount,compat,nocompat root=/dev/ide/discs/disc0/part1
Los parametros de root toman el lugar su directorio '/'. Si era /dev/hda1 ud puede usar en leguage devfs /dev/ide/discs/disc0/part1. Para SCSI ud puede encontrar /dev/sda1 en /dev/scsi/discs/disc0/part1 (o bien /dev/scsi/host0/bus0/target0/lun0/part1).
Lo cual deberia anular la configuracion del kernel compilado/configuracion del lilo.
Si aun no funciona despues de tratar de usar nocompat y optiene un mensage de erro 'Could not open initial console'. Significa que no existe /dev/console. Normalmente montar /dev seria la primera cosa que el script de init hace. devfs=mount forza el kernel a montarlo automaticamente y asi una consola inicial puede ser abierta.
Eso probablemente no resuelva su problema, pero le dara mas informacion. (Como 'can't start init' o cualquier cosa. Quiza ud haya configurado la particion root equivocada en lilo.conf ...)
Con los ultimos kernel no es necesario usar el daemon devfs (devfsd) si ud usa mount en el boot.
Nota: La combinacion de crear ROCK en un lilo viejo y una instalacion sin devfs puede ser aterrorizante. Una instalacion de RedHat fue existosa despues actualizar el lilo. Con una instalacion de SuSE mas vieja me rendi e instale una version vieja de ROCK desde CDROM para ejecutar la fase creacion. Con el kernel movido a devfs deberia ser mas facil usar una de las distribuciones mas nuevas.
Nota: Solo para complicarlo mas devfs cambio su convecion de nombres al menos una vez. Dado que ROCK fue uno de los primeros en adoptar devfs desde las ediciones mas viejas (incluyendo la estable 1.2.0) usan una notacion diferente:
root=/dev/sda6 Original
root=/dev/scsi/host0/bus0/target0/lun0/part6 Actual
root=/dev/sd/c0b0t0u0p6 Otro
Ultima remarca: Tuve problemas ejecutando fsck en una particion boot (y el el proceso boot solo reinicaba automaticamente). El problema fue que devfs no pudo montar en /dev. Ejecutando lilo con la opcion -b rw arregle eso.
En este punto es una buena idea leer 'BUILD' en la documentacion suministrada con ROCK .
Una vez que tenga el sistema de creacion puede empezar a crear. Cree un archivo Config en su directorio ROCK ejecutando el comando:
# ./scripts/Config menu
o en versiones mas viejas de ROCK :
# ./scripts/Config all
o rapidamente:
# echo "arch=intel" > Config
E invoke el comando Build-All:
# ./scripts/Build-All COPY
El cual crea el directorio ./distr/ donde sera almacenada toda la distribucion. Necesitara suficiente espacio libro en su disco para hacerla (mas de 2.5Gb).
Alternativamente ud pueda usar la (recientemente agregada) edicion LINK de Build-All la cual genera links simbolicos en lugar de copiar los archivos completos:
# ./scripts/Build-All LINK
Si quiere crear en una particion diferente (o maquina) puedo hacerlo con nfs si esta creando con ROCK. de hecho esa manera comun de crear ROCK Linux, parcialmente porque usa menos espacio en el disco y puede ser ejecutada en la red.
Crear con nfs (usando loopback) tiene la ventaje de usar menos espacio en el disco. El nfs mount hace posible el acceso al source de ROCK desde la particion chroot en la cual ROCK crea.
Tambien nfs hace posible la creacion remota mediante una red.
Crear con nfs requiere un numero de pasos. Lea:
# ./scripts/Help Create-Links # ./scripts/Help Build-All
Un paso (opcional) es separa el archivo de los paquetes (el cual puede ser de solo-lectura) del directorio de trabajo.
Se necesitan tres directorios. Un directorio nfs exportado con los scripts originales de la distribucion y los paquetes descargados. En este ejemplo es llamado host:/rock-orig. Donde host puede ser localhost o un host remoto.
Cree el directorio de trabajo /rock-linux (posiblemente en una particion nueva). Para ejecutar la instalacion desde /rock-linux ud puede crear los links simbolicos necesarios con:
# cd /rock-orig # ./scripts/Create-Links /rock-linux # cd /rock-linux # ls -l
El directorio de paquetes debe ser accesible desde nfs. Asi que para ese proposito creamos otro directorio rock-src localmente y montamos el host:/rock-orig en ese:
# mount host:/rock-orig /rock-src
Donde (nuevamente) host puede ser localhost. si tiene problemas con nfs revise que tiene ambos nfs y loopback soportados en el kernel y que mountd, nfsd y portmapper estan ejecutandose. tambien necesita agregar:
# ---- /etc/exports /rock-orig localhost(ro)
al archivo /etc/exports y re-exportar nfs:
exportfs -r
Para futura informacion de nfs lea http://www.linuxdoc.org/HOWTO/NFS-HOWTO.html
Despues de haber colocado los directorios, necesita crear el archivo de configuracion:
# cd /rock-linux # ./scripts/Config menu
Seleccione las opciones para crear ROCK Linux. Si ud esta compilando para una arquitectura diferente a la que esta utilizando para compilar, refierase al archivo BUILD-CROSS.
Ud esta listo para compilar ROCK Linux!
# ./scripts/Build-All localhost:/rock-src
Ahora relajese y disfrute. Esto puede tomar dias si su hardware es lo suficientemente lento.
ahi una cosa que siempre quise hacer antes de salir...retirarme!
Cuando la creacion se rompe ud puede reiniciarla sin borrar todo creando el archivo _nodel_ (tenga en cuenta que necesitara mucho espacio en el disco para usar esta ocion y normalmente no la necesitara dado que ROCK no remueve los targets de la creacion final cuando una compilacion ha sido exitosa):
# touch _nodel_
Durante la fase de creacion el output del compilador es redireccionado a archivos en el directorio ./distr/var/adm/logs para cada paquete. Esto es muy util cuando se necesitan solucionar problemas.
Especialmente con los snapshots de desarrollo quiza hayan paquetes que no compilen apropiadamente - o cuando ud no ha descargado todos los paquetes la creacion podria romperse tambien. Ud puede decirle a ROCK que ignore estos agregando 'abortonerror=0' al archivo ./Config . Despues de finalizar la creacion revise el directorio logs para ver paquetes que fallaron con extension .err.
Revise lo siguiente cuidadosamente:
# ls dist/var/adm/logs/[1-5]*.err
Dado que estos errores se refieren a paquetes en la distribucion base. Si ud necesita recrear algunos paquetes tendra que borrar el archivo 00-dirtree.tar.bz2 primero.
La creacion de ROCK pasa a travez de varias etapas. La primera etapa crea el ambiente del compilador para chroot.
Las fases 2-5 son creadas despues de un chroot.
Los paquetes ext son creados en la fase 'e'.
Ud puede crear las fases por separado con el comando:
# ./scripts/Build-Stage [1-5]
ROCK crea un directorio con el nombre rock-arch-version el cual contiene los binarios en la forma tar.
El directorio info/logs contien los logs de creacion. Ud puede encontrar informacion sobre errores de creacion aqui.
rock-arch-version tambien contiene el binario de instalacion en CD (Install.bin) asi como imagnes de floppy y de rescate.
Con el comando:
# ./scripts/Create-CD source | arch
Una imagen iso para CDROM puede ser creada ya sea los sources o de los paquetes binarios (con el mismo nombre y con la extension .iso).
Un puede probar la imagen iso montandola en loopback. Por ejemplo:
# mkdir test # mount -t iso9660 -o loop rock-i586.iso test
Utilice alguna herramienta de grabacion de CD para hacer el CDROM.
Los paquetes pueden ser creados independientemente de la distribucion base ROCK . Despues de crear e instalar ROCK Linux quisa descubra que quiere agregar otro paquete, o mas, para el ext-archive.
Para crear alguno de ellos simplemente invoke:
# ./scripts/Build-Pkg package-name
Revise que su kernel haya sido creado con:
Y no olvide lo obvio, como soporte para SCSI & (built-in) drivers de bajo nivel (soporte SCSI) cuando se corre con un SCSI HDD.
En algunos sistemas de creacion no-ROCK quiza obtenga un error como 'cannot open linker script file libgcc.map'. Ud debera tratar y crear 'useflwrapper=0' su archivo ./Config .
Para crear los diskettes de instalacion y el sistema de rescate de ROCK se necesita soporte de loopback. Asegurese de que el loopback esta compilado en su kernel o cargue el modulo:
# insmod loop
Quiza se vea como un idiota y hable como un idiota pero no deje que eso le confunda. El realmente es un idiota.
Tambien hay un problema con la version vieja de LILO despues de crear los diskettes de instalacion por lo que la imagen iso no puede ser escrita a un floppy en algunos sistemas. Un truco es desempacar la imagen de instalacion de floppy en una partition fresca y bootear directamente ahi (despues de direccionar LILO a esa particion). Imagenes de floppy vienen con el procedimiento de instalacion completo - funciona.
Finalmente la creacion quiza falle porque ud not tiene bison y/o flex instalado en su sistema. Arregle eso descargando e instalando bison y flex de uno de los mirrors de GNU.
Despues de una exitosa CREACION es hora de instalar. Despues de preparar una particion libre para instalacion de su distribucion ROCK (con fdisk, mke2fs) copie ROCK en un CD, haga los floppies booteables o bien descomprima una de las sub-distribuciones dentro de una particion.
A este punto es sabio leer el documento INSTALL suministrado con la instalacion de ROCK Linux .
Si ud tiene un CDROM booteable, o si creo uno despues de compilar ROCK, la instalacion esta justo en frente (aunque talvez tenga que decirle a su bios que lo haga). Booteelo!
Las imagenes de floppy estan en:
rock-base-<version>/<arch>-floppies. Estas imagenes pueden ser
encontradas tambien en algunos mirrors de ROCK
# dd if=boot-floppy.img of=/dev/fd0 # dd if=root-floppy.img of=/dev/fd0
Los floppies tambien pueden hacerse con los scripts mk-bootdisk.sh y mk-rootdisk.sh que vienen con la distribucion. Esto es conveniente cuando ud necesita usar un tipo especial de kernel (lea el Linux Boot-disk HOWTO para mas informacion [2]).
Tambien es posible copiar las distribuciones de floppy en la particion de un disco y bootear desde ahi para la instalacion.
Por ejemplo (en una particion nueva montada):
# tar xvIf install-disks.tar.bz2 # mv boot-disk/* . # mv root-disk/* .
Lo mismo puede ser logrado con (las recientes ediciones de) la sub-distribucion rescue de ROCK. Descomprima los directorios contenidos y modifique su lilo.conf para que apunte a la nueva particion (para un ejemplo y nombramiento de convenciones con devfs vea.
Con hardware no-estandar ud tendra que instalar los codigos del kernel del Linux y recompilar el kernel usando el ambiente chroot mencionado mas abajo. La edicion de rescate viene con los codigos en/usr/src/kernel. Descomprima el tar de Linux en /usr/src, y (opcionalmente) aplique los parches y copie el archivo config obtenido a .config antes de la compilacion.
Antes de reiniciar desde un lilo cambiado seria una buena idea poner el password de root y crear (y probar) un floppy de rescate para sus sistema existente. O usar una de las imagenes existentes en: http://www.ibiblio.org/pub/Linux/system/recovery/INDEX.html.
Edite lilo.conf y ejecute lilo (en chroot).
BTW: Existe un truco: Si se instala en diferentes discos duros, ud puede usar el (SCSI) bios para seleccionar cual disco bootear para preservar su antigua instalacion (no-devfs). Ud puede tener diferentes registros boot en diferentes discos.
Use fdisk y el comando mk* para crear la particion donde instalara (target) y el espacio swap (vea el documento INSTALL).
Active el espacio swap. E.g.
# swapon /dev/discs/disc0/part3
Monte la particion target
# mount /dev/discs/disc0/part4 /trg
Monte el source (una combinacion con conecciones simbolicas es posible - el script Install le dira como debe verse el path):
# mount /dev/discs/disc0/part1 /src
Ejecute el script Install:
# Install
El cual invoca install.bin con los directorios src y target como sus parametros. Chequeando y compilando la imagen de ROCK encontrara install.bin en el directorio root. Este es el programa de instalacion y puede ser invocado directamente.
Ud puede escribir 'help' en la linea de comandos del instalador para las opciones. Con el comando 'list' ud puede ver que paquetes estan incluidos en su intalacion.
La ruta rapida: escriba 'select */*' seguido de 'install'. Los paquetes de extension pueden ser listados con 'list-ext' e importados con el comando 'import'. Alternativamente ud puede instalar los paquetes de extension mas tarde en el sistema final.
El script Install lo llevara a travez de un numero de preguntas como el tipo de teclado, idioma, etc.
antes de reiniciar lo minimo que ud que tiene que hacer es cambiar el password de root y lilo.
# cd /trg # chroot . /bin/bash --login # passwd # vi lilo.conf
Edite lilo.conf para que apunte a las particiones correctas. Para estar seguro tambien incluya las entradas para su(s) particion(es) antigua(s).
# lilo
Tambiem podria empezar a realizar algunos cambios de utilidad.
Agrege la siguiente linea a su archivo /etc/conf/devfs:
ln -sf /dev/discs/disc0/part3 swap
Agrege la siguiente linea a su archivo fstab:
/dev/swap swap swap defaults 0 0
Cruse los dedos: Reinicie!
Despues de una exitosa instalacion es el momento de configurar el ambiente de red, los servicios, X y los paquetes de extension.
Tambien seria util recompilar el kernel de Linux para el soporte de hardware, opciones de red, etc. Para esto ud debe crear un nuevo archivo config (e.g. usando 'make menuconfig') y diferenciar el archivo config original de este.
Como a los usuarios de ROCK Linux les gusta mantener sus sistemas actualizados ellos usualmente hacen una copia de sus directorios /dev y /home y, con razonable eficiencia, duplican las configuraciones antiguas.
Para encontrar ejemplos de configuracion, ROCK Linux suministra un arbol de ejemplos-de-configuracion que contiene ejemplos de archivos de configuracion de otros usuarios (e.g. configuracion de colores para vim, mutt y configuraciones sencibles de xterm). Es una buena fuente para obtener ideas. Si ud quiere contribuir algunos de sus archivos de configuracion envielos!
Para automatizar la re-creacion de su sistema es posible usar cfengine (the GNU Configuration Engine).
Instalar un paquete de extension puede ser hecho durante el ciclo regular de crear/instalar , pero tambien separado:
# ./scripts/Build-Pkg package
Y descomprimir los paquetes manualmente (si el instalador no lo ha hecho):
# tar -C / xvIf package.tar.bz2
Si el procedimiento de booteo, desde el CDROM o el floppy, se detiene ud debe recompilar el kernel de Linux para su hardware.
Un apagonazo inmediato despues de 'loading Linux kernel' indica que su kernel ha sido creado para el CPU equivocado.
Un mensaje de 'can not load root' indica aque su kernel no puede encontrar su particion root (es comun cuando se mueve a devfs). Indique una particion root en el boot prompt.
Un mensaje de 'can not find tty' indica que la particion root suministrada no tiene un directorio /dev apropiado. Esto causado usualmente por un archivo /etc/fstab que no es devfs. Monte /dev suministrando un root path valido (del tipo /dev/ide o /dev/scsi) y edite el archivo fstab una vez booteado.
Un kernel panic implica que ud esta utilizando un adpatador SCSI para su HDD el cual no ha sido compilado en el kernel.
Desde el momento en que levante tu libro hasta que lo coloque abajo tuve una carcajada. Algun dia intentare leerlo
Ud ha leido la primera parte del ROCK Linux Guide Spanish. La parte de extencion de ROCK y del sistema de paquetes esta siendo preparada. La ultima version en desarrollo puede ser encontrada en http://www.rocklinux.org/people/mike/doc/guide.DEV/.
Mientras cfengine por si mismo, tiene poco que hacer con ROCK Linux vale la pena ponerle atencion en el contexto de la post-instalacion.
Los usuarios de ROCK actualizan constantemente y por ello se encuentran haciendo trabajos de configuracion repetitivos (administradores de sistemas hacen de esto un trabajo de tiempo completo). cfengine, creado por Mark Burgess, es una medicina contra la repericion.
Ud puede levatar su sistema(s) de tal manera que pueda instalar ROCK Linux en una particion fresca, montar los scripts de cfengine y reconfigurar su maquina(s) como antes. Sin intervenir manualmente. Interesante?
Esto es interesante especialmente cuando ud tiene que administrar varias maquinas.
La siguiente seccion solo da una vista rapida. Para mas informacion lea la extensa informacion que viene con el paquete (directorio /opt/cfengine/share/cfengine/).
La teoria es que ud puede tener una maquina en el estado ideal.
cfengine no utiliza if-then-else. Logicamente su funcionalidad esta agrupada en diferentes clases (e.g. servidor de red, workstation, laptop).
cfengine viene como un paquete de la extension de ROCK LinuxDescarguelo y compilelo:
./scripts/Download -package cfengine ./scripts/Build-Pkg cfengine
Cree un enlace simbolico:
ln -s /opt/cfengine/sbin/cfengine /usr/local/sbin/cfengine
Ejecucion de cfengine:
cfengine -f \etc\cfengine\cfengine.conf -v -n
La opcion -n le dice a cfengine que solo pruebe el agua. Importante en esta fase de prueba!
Una vez que ud este convencido de que su cfengine esta configurado correctamente puede ejecutarlo horariamente usando cron.