Minimódulo de ofimática/Marco teórico/Ibuild
iBuild
editarIntellibuild (iBuild) es un sistema de scripts de python diseñado para hacer la creacion/remasterización de un LiveCD Morphix o Knoppix muy simple y fácil.
Intellibuild automatiza el proceso de remasterizado, lo que hace es dividir el proceso principal en varios segmentos pequeos, cada uno de los cuales es bastante independientes de los otros, una vez instalado, usted puede construir un LiveCD desde los pedazos va un comando. Todos los paquetes nuevos son instalados o los archivos de los configuracin se copian sobre la nueva distribucin.
En resumen, Intellibuild permite que usted se concentre en sus propios arreglos para requisitos particulares y preocuparse del resto del proceso de remasterizado "detrs de escena"
- Requerimientos
Se requiere lo siguiente: - Debian testing o inestable (inestable es la prueba primaria) - Al menos 3GB de la espacio libre en disco si usted est remasterizando un CD entero. - Sudo para el usuario (superusuario) - Chroot - Cloop Utils (> 2,0) - Python (> 2,3) con las bibliotecas del xml (paquete python-xml)
- El proceso IBUILD
Las primeras dos cosas que el iBuild hace es descargar dos mdulos base, que son fundamentales para su LiveCD - el principio esencial, por as decir. Los dos scripts iniciales (preparebase.sh
y preparemainmod.sh
) descargan el MorphixBase-0.4-1d.iso
y el BareX.mod.iso
respectivamente. Una vez que se haga eso, usted podra construir el "STL Morphix"estndar corriendo el comando #sudo python intellibuild/manager.py config/stl.xml
La siguiente cosa que usted desea hacer es personalizar su LiveCD para requisitos particulares. Haga una copia de short.xml
o stl.xml
. Usted ver muchas lneas con <patch>packagename</patch>
. Cada <patch> de entrada agrega algo a la base (
BareX.mod.iso
y MorphixBase-0.4-1d.iso
). Es Muy simple <patch>ssh</patch>
corrijalo corriendo simplemente "apt-get install ssh" dentro del chroot de su LiveCD. Usted puede agregar o substraer qu es agregado a su LiveCD agregando o comentando fuera del patch en el config.xml
del archivo (short.xml stl.xml, etc).
Usted puede tambin tener un cambio en el patch, agregar o copiar archivos de su configuracin personal a su LiveCD. Una gran ejemplo es el < patch>kde-skel</patch > patch, que copia un directorio personalizado .kde de /ibuild/data/kde-skel/.kde a su CustomCD/etc/skel/.kde . Esto guarda un wizard de KDE para correrlo cada vez que carga su LiveCD.
Tambin, si usted planea la creacin de estructuras consecutivas, usted desear definitivamente utilizar las caractersticas de proxy/caching incluidas en la versin 12 y posteriores. Cercirese de < patch>proxy</proxy > listadas en su config.xml despus de < patch>MountProc</patch > .
Cercirese de hacer Sudo, Chroot, y tener instalado Cloop-utils y mkisofs.
- Conseguir IBUILD y preparacion:
Para esto digite lo siguiente:
#cd /
#sudo wget http://gand.owca.info/ibuild/ibuild-0.2.tar.gz
#sudo tar -zxvf ibuild-0.12.tar.gz
#sudo rm ibuild-0.12.tar.gz
#cd /ibuild
#sudo /bin/bash preparebase.sh
#sudo /bin/bash preparemainmod.sh
- Config.xml
Cambie cualquier ajuste que usted desee. Si usted desea el bsico MorphixCombined-KDE.iso use stl.xml .
- Turn on Proxy
#cd /ibuild/proxy
#/bin/bash proxy
Nota: Cercirese de tener el < patch>proxy</patch > en la lugar correcto despus de < patch>MountProc</patch > en su config.xml .
- Estructura
En una nueva terminal:
#cd /ibuild
#sudo python intellibuild/manager.py config/stl.xml
- Descarge:
cd / && sudo wget http://gand.owca.info/ibuild/ibuild-0.12.tar.gz && sudo tar -zxvf ibuild-0.12.tar.gz && sudo rm ibuild-0.12.tar.gz
- Prepare:
cd /ibuild && sudo /bin/bash preparebase.sh && sudo /bin/bash preparemainmod.sh
- Turn on Proxy:
cd /ibuild/proxy && /bin/bash proxy.sh
Estructura (en una terminal aparte):
cd /ibuild && sudo python intellibuild/manager.py config/stl.xml
- Descargar iBuild
Siga las siguientes instrucciones:
#cd /
#sudo wget http://gand.owca.info/ibuild/ibuild-0.12.tar.gz
#sudo tar -zxvf ibuild-0.12.tar.gz
#sudo rm ibuild-0.12.tar.gz
Los pasos anteriores descargan y extraen el iBuild a la carpeta /ibuild, que es el path por defecto para los scripts. Usted puede cambiar la localizacin, pero asegrese de cambiar los
paths de los <basesettings> segn lo mencionado abajo en la seccin config.xml.
- Preparebase.sh
Preparebase.sh es un script de shell que hace exactamente lo qu su nombre indica. Descargar el actual MorphixBase.iso y lo extrae en /ibuild/base/1d. ?sta es bsicamente la mnima cantidad de archivos que se han extrado ya de la distribucin de Knoppix. Si usted ya ha descargado la base, usted puede copiarla al directorio /ibuild. Si no, el escript lo descargar y preparar para usted.
- La base actual es MorphixBase-0.4-1d.iso
#cd /ibuild
#sudo /bin/bash preparebase.sh
- Preparemainmod.sh
Preparemainmod.sh es script de shell que descarga el mdulo bsico necesario para obtener una X funcional, llamado BareX.mod.iso. Como con preparebase.sh, si usted lo a ledo y tiene el BareX.mod.iso, simplemente cpielo a /ibuild. Si no, el escript lo descargar y preparar para usted.
#cd /ibuild
#sudo /bin/bash preparemainmod.sh
Usted necesitar correr solamente una vez preparebase.sh y preparemainmod.sh.
- Estructura del config.xml
Como puede ver el archivo de configuración tiene diferentes secciones. Las propiedades globales son fijadas por globalsettings. Esto define donde están los archivos que se están cambiando y la localización de patchs. Estos ajustes son accesibles a todos los patchs. Las siguientes secciones definen qué patchs se utilizan como y en qué orden se ejecutan al hacer una 'estructura' completa. El anterior, LocalSettings, define los ajustes para los patchs individuales.
- Configuracion base
La sección de <basesettings> es en donde usted define los ajustes globales para su iBuild.
- Global settings
Los siguientes son los ajustes globales encontrado en él archivo config.xml. Observe por favor que algunos están bajo "LiveCD identification"
<release> - donde iBuild pondrá el .iso personalizado que es construido.
<basepath> - el directorio que iBuild utilizará para la extracción y trabajo.
<sourcepath> - fuente que el .iso utiliza para la creación. Del directorio de
trabajo.
<releasepath> - información sobre su release personalizado.
<sourceimagepath> - donde iBuild busca el .iso original que usted está
personalizando.
- LiveCD identification
Usted puede cambiar el nombre de su LiveCD.iso a través de 3 pasos:
<title> - su titulo
<id> - su identificación
<mainmod> - como usted quisiera que su MOD sea llamado
- Patches
En resumen, los patchs son escripts de python que residen en el directorio de patchs que hacen todo el "trabajo duro" de personalizar su LiveCD. Los patchs tienen cierta estructura, saber que hay un directorio con un escript control.py en el y cualquier otro archivo usados por el patch. El nombre del directorio del patch es el que usted especifica en el archivo de configuración de xml (aquí referido onfig.xml).
Los patchs son cómo usted introduce al iBuild la personalización que usted quiere hacer. El método más simple de aplicar un patch es simplemente incluir una línea de patch's de la lista de <patch>. Asegúrese de que el patch que usted desea aplicar esté en el directorio <patchsource> apropiado.
- Configuracion local
<label> - usted debe cambiar el nombre del .iso de su distro para reflejar
<mainmodiso> - su módulo principal primario es cambiado / personalizado
- Importante para personalizar patchs:
<patchsource>/ibuild/patches</patchsource> - dice a iBuild dónde buscar patchs
<datapath>/ibuild/data</datapath> - dice a iBuild donde buscar archivos de
configuración personalizados en patchs
- Control.py
Control.py es un script de python que dirige a iBuild en qué hacer con ese patch. Lo encontrará en el directorio /ibuild/patches/mypatch/, en "mypatch" está el nombre del patch que usted se está aplicando. La manera más fácil de aprender es ver un ejemplo.
NOTA: Para Comentar una línea en control.py, usted debe utilizar un # al
inicio de línea.
- Single Package Install
Uno de los patch más simples de iBuild es el que instala el nethack. Abriendo control.py (/ibuild/patches/nethack/control.py), veamos una línea, que es:
apt.install_packages('nethack')
Esto instalará nethack en su LiveCD. Con una pequeña búsqueda (Apt-get install -s nethack) muestra que nethack-common y nethack-x11 seran instalados, esto con el paquete debian nethack.
- Instalar Múltiples Paquetes
pt.install_packages('nethack nethack-console')
Ahora los paquetes de nethack (nethack-common y nethack-x11) y los paquetes nethack-console serán instalados.Usted puede hacer una combinación de cualquier paquete existente en Debian. Apenas este seguro usted hace el Apt-get nombre correcto (es decir, con un simple Apt-get kernel usted puede especificar qué paquete de kernel desea usted).
- Copiado de archivos o Directorios personales
Puede ser que usted a menudo desee copiar un archivo de configuración personal a su LiveCD. Esto es muy fácil con el iBuild. como ejemplo, Vamos a usar el patsh de <patch>kde-skel</patch>. Que está en el control.py, usted verá lo siguiente:
import os
skel = os.path.join(getsetting('sourcepath'),'etc','skel','.kde')
theme = os.path.join(getsetting('datapath'),'kde-skel','.kde')
filesystem.Copy(theme,skel)
En la línea skel (usted puede nombrar el dst o destino, si usted gusta) dice a iBuild a donde el arcivo/directorio será copiado. Este ejemplo dice el destino de /etc/skel/.kde en nuestro LiveCD personalizado.
En la línea thema (usted puede nombrar el src o fuente, si usted gusta) dice a iBuild de donde el archivo/directorio será copiado. El 'datapath' se define en nuestro config.xml (es /ibuild/data por defecto). Este se busca en /ibuild/data/kde-skel/.kde.
filesystem.Copy(theme,skel) (que podría ser (src, dst) o (fuente,destino) si usted está utilizando esos nombres u otros en su lugar ) dice a iBuild copiar de theme a skel el directorio de .kde (usted podría fácilmente definir un como archivo).
El propósito de este patch en particular es fijar el arranque por defecto de KDE. Tener el archivo .kde en /etc/skel guarda un Wizard de configuración de KDE para lanzarle cada vez que arranque su CD.
- EL archivo .desktop
Para un archivo de escritorio de trabajo, vea el patch <patch>stgl-tour</patch>.
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=vncserver
GenericName=vncserver
Comment=
Icon=
Exec=/usr/bin/vncserver
Terminal=false
Categories=Network
Que significa esto :
[Desktop Entry]
Type=Application - probablemente no necesite de cambios.
Encoding=UTF-8 - probablemente no necesite de cambios.
Name=vncserver - el nombre que usted desea que aparezca en el menú.
GenericName=vncserver - una descripción común
Comment= - cualquier cosa que usted quiera
Icon=
Exec=/usr/bin/vncserver - el comando a ejecutar para correr el programa.
Terminal=false - ¿el programa funciona en un terminal?
Categories=Internet - El sub-menú que usted desea. Usted puede también hacer algo
como =Edutainment;Arcade
En lo que respecta a la entrada de las "categorías": Parece que usted debe utilizar una categoría que exista actualmente dentro de la estructura del K menú de KDE para la colocación apropiada. Estamos mirando la manera de cambiar esto, así que siéntase a gusto experimentando, por favor hagamos y dejemos saber. Puede ser un ajuste de skel/.kde, pero no estamos seguros, atm.
- Línea de Comandos
La forma más simple, una vez que usted haga su config.xml , teclee:
#cd /ibuild
#sudo python intellibuild/manager.py config/config.xml
Si usted está ejecutando este comando por segunda vez en el mismo directorio de trabajo, usted recibirá el siguiente error
Error: /ibuild/work/custom/release: directory already exists.
Primero desmonte el dev y proc:
#sudo umount /dev
#sudo umount -l /ibuild/work/custom/source/proc
Solo después se puede borrar el directorio del release.
#sudo rm -rf /ibuild/work/custom
- Shell interactiva
Usted tambin puede interactuar en el proceso de construccin de su LiveCd. De /ibuild, simplemente ejecute:
through the process of building your LiveCd, also.
From /ibuild, simply run:
#sudo python intellibuild/manager.py
Usted puede el basconfig con: load baseconfig config.xml
y ejecutar el proceso entero con: build simplemente construir un a patch: build <patch name>