Está en la página 1de 113

CURSODECREACINDE

DISTRIBUCIONES:GUADALINEXV3
Proyecto: Monk

Cliente: Sociedad Andaluza para el Desarrollo de la Sociedad de la Informacin.

02206v1.1

06/06/06

monk
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Licencia:
EstaobraestbajounalicenciaReconocimientoNoComercialCompartirIgual2.5deCreativeCommons.
Paraverunacopiadeestalicencia,visitehttp://creativecommons.org/licenses/byncsa/2.5/oenvieunacartaa
CreativeCommons,559NathanAbbottWay,Stanford,California94305,USA.

Autores:
CarlosParraCaramargo
JuanJessOjedaCroissier
RafaelMartndeAgarTirado

Emergya,S.C.A.

2
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

NDICEDECONTENIDO
1.VISINGENERAL.....................................................................................................................................6
1.1.Introduccinalacreacindedistribuciones................................................................................................6
1.1.1.AnlisisyDiseo............................................................................................................................................7
1.1.2.Personalizacin.............................................................................................................................................8
1.1.3.Generacinymantenimiento.......................................................................................................................10
1.2.Personalizacindeladistribucin..............................................................................................................11
1.2.1.Estructurademetapaquetes........................................................................................................................14
1.2.2.DescripcinfuncionaldeCDD..................................................................................................................17
1.2.3.LaaplicacinCDD....................................................................................................................................20
1.2.4.ProcesodeGeneracindelospaquetes....................................................................................................21
1.2.5.Generacindesuplementos.......................................................................................................................28

2.ASPECTOSMODIFICABLESDELADISTRIBUCIN...........................................................................32
2.1.Nombredeladistribucin..........................................................................................................................32
2.1.1./etc/motd......................................................................................................................................................32
2.1.2./etc/issue.....................................................................................................................................................32
2.1.3./etc/lsbrelease............................................................................................................................................32
2.2.Imagen.......................................................................................................................................................34
2.2.1.Isolinux........................................................................................................................................................34
2.2.2.Usplash.......................................................................................................................................................43
2.2.3.Grub............................................................................................................................................................43
2.3.EscritorioGnome.......................................................................................................................................44
2.3.1.Selectordesesin(GDM)...........................................................................................................................44
2.3.2.Fondodeescritorio.....................................................................................................................................44
2.3.3.Imagen"Splash"deliniciodesesin..........................................................................................................45
2.3.4.Mens.........................................................................................................................................................46
2.3.5.Paneles.......................................................................................................................................................48
2.3.6.Temas.........................................................................................................................................................49

3
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

2.3.7.MozillaFirefox.............................................................................................................................................49
2.4.Aadiryquitaraplicaciones.......................................................................................................................50
2.5.Configuracindeaplicaciones...................................................................................................................51

3.SISTEMANOLIVE..................................................................................................................................52
3.1.Obtenertodolonecesario..........................................................................................................................52
3.1.1.Dossabores.................................................................................................................................................52
3.1.2.Cmosehageneradoel.tar?...................................................................................................................52
3.2.Arquitecturadelsistemadegeneracin...................................................................................................56
3.2.1.bin/...............................................................................................................................................................57
3.2.2.debiancd/...................................................................................................................................................60
3.2.3.etc/..............................................................................................................................................................60
3.2.4.ftp/...............................................................................................................................................................60
3.2.5.germinate/...................................................................................................................................................60
3.2.6.log/..............................................................................................................................................................60
3.2.7.scratch/........................................................................................................................................................60
3.2.8.secret/.........................................................................................................................................................61
3.2.9.uda/.............................................................................................................................................................61
3.2.10.windows/....................................................................................................................................................63
3.3.Generacin...............................................................................................................................................63
3.4.Elinstalador..............................................................................................................................................64
3.4.1.Debianinstaller...........................................................................................................................................64
3.4.2.baseconfig................................................................................................................................................67
3.4.3.Fasesdelainstalacin..............................................................................................................................68
3.5.Branding...................................................................................................................................................69
3.5.1.Cambiarmensajedebienvenida:udafirstmessage..................................................................................69
3.5.2.Cambiarimgenesdelasegundafasedelainstalacin:udapostinstall..................................................71
3.5.3.Cambiarentradadegrub............................................................................................................................71
3.5.4.AparicionesdeGuadalinexendebianinstaller...........................................................................................72
3.6.Ejemplosprcticos...................................................................................................................................72

4
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

3.6.1.Incluirunnuevopaquete............................................................................................................................72
3.6.2.Borrarunpaquete......................................................................................................................................73
3.6.3.Cambiareltextodeisolinux........................................................................................................................74
3.6.4.Cambiarlosrepositorios............................................................................................................................74
3.6.5.CambiarlaclaveGPG...............................................................................................................................76

4.SISTEMALIVE.........................................................................................................................................78
4.1.Initramfs:dondetodoempieza...................................................................................................................78
4.1.1.Ques?.....................................................................................................................................................78
4.1.2.Estructura....................................................................................................................................................79
4.1.3.Archivosprincipales....................................................................................................................................81
4.2.SquashfsyUnionfs:msenmenos..........................................................................................................82
4.2.1.Squashfs.....................................................................................................................................................82
4.2.2.Unionfs........................................................................................................................................................83
4.2.3.Squashfs+Unionfs.....................................................................................................................................85
4.3.Sistemadegeneracin:genlive,chroot,etc.............................................................................................85
4.3.1.genlive.........................................................................................................................................................86
4.3.2.Paquetesysoftwareimplicado...................................................................................................................88
4.3.3.Directoriosyarchivosimportantes..............................................................................................................89
4.3.4.Chroot.......................................................................................................................................................101
4.4.Dndepersonalizar?.............................................................................................................................103
4.5.Instaladorlive...........................................................................................................................................104
4.5.1.Ques?...................................................................................................................................................104
4.5.2.Cmofunciona?......................................................................................................................................109
4.5.3.Cmopersonalizarlo?.............................................................................................................................110

5.CONCLUSIONES...................................................................................................................................112

5
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

1.VISINGENERAL.
1.1.INTRODUCCINALACREACINDE
DISTRIBUCIONES
Lacreacindedistribucionesesalgomscomplejoyalavezmenoscomplicadodeloquelagentesuele
pensar.Lacomplicacinladanlacantidaddefactoresqueintervienenyquehayquetenerencuentaparahacer
unaverdaderadistribucin.Unaquerealmentesirvaparaalgomsqueparademostracionesdelapotenciade
GNU/Linux.
Mientrasque,loquehacequeseamenoscomplicadadelosesuelepensareslatecnologaqueseusa.
Unatecnologabastanteavanzadayprobadaqueponealalcancedecasicualquieralacapacidadtcnicapara
llevaracabotalempresa.
Cuandohablamosdeunaverdaderadistribucin,nosreferimosaunaquesepuedausar,quesepueda
instalar,quesepuedaactualizar,queseamantenidaposteriormenteyqueestpensadaparaalgngrupode
usuarios concretos (ciudadano de a pie, alumno de secundaria, profesional del derecho, administrativos de
PYMES,etc)yconalgnfinconcreto.
Peroparaqueladistrollegueaeseniveldeutilidad,necesitaremosunbuendiseoprevioyuntrabajo
posterior. Para dicho diseo no necesitaremos ser programadores, expertos en distribuciones, sistemas de
paqueteraosimilares.Almenosenlasprimerasfases.Lonicoquenecesitamosessentidocomn,despojarnos
denuestraspreferenciasyprejuicios,yconocerbienalosfuturosusuarios.Paraeltrabajoposteriorsesposible
quenecesitemosayudadealgnexpertooserlonosotrosmismos.
Enresumen,elprocesodecreacindeunadistribucinpodramosdividirloenlassiguientesfases:
Fase1:Anlisisydiseo
Fase2:Personalizacin
Fase3:Generacinymantenimiento

6
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

1.1.1.ANLISISYDISEO
Parailustrarestafasetenemosestediagrama(Figura1).
Comopodemosobservar,todoeldiseopartedenuestrogrupodeusuarios,deloquenecesitanydelo
queconocen.

Figura1:Diseoorientadoalusuario

stos sonconceptosmuy bsicos,pero importantes. Nuestra distro no cumplirsu funcinsino le


permitehaceralusuarioloquenecesitahacer.Nitampocosielniveldeconocimientosoexperienciaesmuy
superioroinferioraldeestosusuarios.
Loquevienearepresentareldiagrama(Figura1)eslasecuencialgicayloselementosimplicadosenel
diseodeladistribucin.
Delosusuariosobtenemoslainformacinbsica:conocimientos/experiencia,necesidadesacubrir.
Estoesimportanteporquenoeslomismounusuarioavanzadoyacostumbradoapoderconfigurarlo
todosegnloqueesthaciendo,quealguienconconocimientosofimticosbsicos,quenotengatiemponi
ganasdeaprendercmousaryconfigurarnuevosprogramas.

7
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

As como tampoco es lo mismo lo que puede necesitar un alumno de primaria que un estudiante
universitarioounabogado.
Una vez conocemos las funcionalidades que necesitan cubrir nuestros usuarios ya podemos buscar
aplicacionesquelohagan.Yparaorganizarlasmejordeberamosagruparlasporcaractersticascomunes.
Porejemplo,unarquitectonecesitarhacer,vereimprimirplanos.Necesitarhaceralgnrenderizado
3D,leerymandarcorreo,consultarinformacinenInternet,redactarinformesypresupuestos,gestionarsus
proyectos,mantenersuscitasycontactossincronizadosconsumvily/oPDA.(Estoesslounanlisissimplistay
deejemplo)
Ahoraquesabemosestoyapodemosbuscaralgoquepuedacubrirsusnecesidades.Podraseralgocomo:
Diseodeplanos:QCad
3D:Blender
ConsultarinformacinenInternet:Firefox
Informesypresupuestos:OpenOffice
Gestindeproyectos:Planner
Correo,citasycontactos:Evolution
Ahoratocaagrupar:
DiseoCAD:QCadyBlender
Internet:FirefoxyEvolution
Ofimtica:OpenOffice,PlanneryEvolution
Yconestoterminaramosestaprimerafasedediseo.

1.1.2.PERSONALIZACIN
Aunqueelobjetivoprincipaldeunadistribucineselusuario,intervienenmsactoresenelprocesode
diseoycreacin.Porunladolosdesarrolladores,porotrolosusuariosy,porltimo,laorganizacinparaquien
secrea.stapuedeserdesdeunauniversidadaundepartamentodealgnorganismopblico,oinclusouna
empresaprivada.

8
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Pero lo importante es que stas suelen tener algunos elementos que afectarn al diseo o
configuracionesdeladistribucincomoson:
Imagencorporativa
Configuracionesfsicasdelaorganizacin(topologadered,tipodehardware,serviciosderedcorporativos,
etc)
Todoestosetraduceenconfiguracionesenlasaplicaciones.Asqueelsiguientepasoesinstalaruna
distrobase1,instalarlasaplicacionesquepreviamenteseleccionamosyaplicarleloscambiosnecesariosensus
configuraciones.

Figura2:Aplicaryextraerconfiguraciones

Apartirdeaqu,duranteestafase,slonosquedarextraeresasconfiguracionesyagruparlastalycomo
hicimosconlasaplicaciones.
Porunladotendramoslosgruposdeaplicaciones,queconvertiremosluegoenmetapaquetes2yporotro

1 Unadistromnimasobrelaqueinstalarloquenecesitemos

2 Vercaptulo1.2.1

9
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

tenemoslasconfiguracionesdedichasaplicaciones,tambinagrupadas.Estosgruposdarnlugardespusalos
metapaquetesdeconfiguracin.
Porotraparte,obtendremostambintodoelmaterialnecesarioparaadaptar,tantoladistrocomolos
CDsenlosquesedistribuir,alaimagencorporativadelaorganizacin.

1.1.3.GENERACINYMANTENIMIENTO
Estafaseesotradelasquesesueleolvidarperoquemarcaladiferenciaentreun CDlive yuna
distribucin.
Parahacerunadistribucinnecesitasunobjetivo,undiseo,unasconfiguracionespredeterminadasy
algnmediodedistribucindeladistro.Ydeestoltimotrataestafase.
UnCDliveesunmedioptimoparadistribuirnuestradistroporrazonesdesobraconocidas,perono
podemosquedarnosah.
Qupasasihayfallosdeseguridadyhacefaltaactualizarelsoftwareafectado?Osisacamosuna
nuevaversindeladistro?
Haremosquelosusuariosselareinstalen?Notendramssentidopoderofrecerunosrepositoriosde
paquetesdesdelosquepoderhacerlasactualizacionesoportunas?

Deahlaimportanciadeguardarconfiguraciones,gruposdeaplicacionesainstalarycualquierotra
diferenciaconladistropadre,enpaquetes.Ydespusgenerarnuestrosrepositorios.Aspodremoscontrolary
mantener de forma eficiente nuestra distribucin, usando las herramientas que nos facilita el sistema de
paquetera,desdeunslositio:elrepositorio.

Una vez tengamos el repositorio creado y listo, slo nos quedar generar los CDs para facilitar la
distribucindenuestrosistemaoperativo.

EnGuadalinexv3sehancontemplado2posiblessistemasdedistribucin:uninstaladornolive,basado
enpaquetesyunCDlive,consupropioinstalador.Cadaunoconvenientementeadaptadoanuestraimagen
corporativa(Artwork).

10
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Figura3:CrearunrepositoriodesdedondeinstalarogenerarlosCDsdistribuibles

Conestoseterminaeldiseoycreacindenuestradistro,peroannosfaltaraalgoimportantecomoes
elllevarunseguimientoalamisma(solucindebugs,actualizacionesdeseguridad,etc)ymantenimientodelos
repositorios.

1.2.PERSONALIZACINDELADISTRIBUCIN.
Lapersonalizacindeunadistribucinesunprocesomedianteelcual,apartirdeunadistribucinbase,
se obtiene una nueva adaptada y configurada para unas necesidades concretas previamente definidas. La
adaptacin y configuracin son procesos que se refieren a la obtencin de una distribucin final con las
caractersticassoftwaredeseadas,loqueincluye:

Unconjuntodeaplicacionesdeterminado,seleccionadoparasatisfacerlademandadelconjuntofinalde
usuariosparaelquesedestinaladistribucin.

Configuracinadecuadadelasmismasparafuncionardelaformaquesedesea:idiomacastellano,directorio
donde se almacenan los documentos, y un largo etctera que depende de las caractersticas de cada
aplicacin.

11
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Aparienciadeloselementosgrficos,dondeseincluyelaconfiguracindeltemaquesevaautilizarenel
entornogrfico,seleccindeiconos,fondodeescritorio,imagenquesemuestraduranteelarranquedel
sistema,...

Unadistribucinsecomponefundamentalmentedeelementossoftwareorganizadosenpaquetes,cada
unodeloscualesaportaunafuncionalidadparticularaladistribucin.

Es posible personalizar prcticamente todos los elementos de la distribucin configurando


adecuadamentelospaquetesquelacomponen.Sinembargo,existeunpequeoconjuntodeelementoscuya
configuracinnoselimitaaloanterior,siendostaunpocodiferente.Enestoscasos,esnecesariopersonalizarel
sistemadegeneracin.Porponerunejemplo,steeselcasodeisolinux,queseencargadelarranquedel
sistemaparacomenzarlainstalacin.Conisolinuxsepuedenconfigurardiferentesopcionesdearranqueola
imageninicialquesemuestradeladistribucin.Estoselementosseconfiguranapartirdelsistemadegeneracin
ynoconfigurandolospaquetes.

Peroexceptuandoestospocoscasos,lagranmayoradeelementosdeunadistribucinseconfigurana
partirdelospaquetesqueloscomponen.

Porestemotivo,esnecesarioseleccionarunabuenaestrategiaparallevaracabolaconfiguracindelos
paquetes.

Posibilidadeshaymuchas,cadaunaconsusventajaseinconvenientes.Porcitaralgunosejemplos,se
tiene:

Copiadirectadelasconfiguracionesdelospaquetes:Estemtodoconsisteenpreparartodoslosficherosde
configuracindelosdiferentespaquetesycopiarlosenlasubicacionescorrespondientesparaquesurtan
efecto las configuraciones. Esto se puede hacer, por ejemplo, creando un fichero tar.gz con todas las
configuracionesydescomprimindoloeneldirectorioraz(/)delsistemaquesedeseapersonalizar.Este
mtodoesmuysencilloyrpidodellevaralaprctica.Cuentaconlosinconvenientesdequeesdifcil

12
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

controlarloscambiosqueseaplicanalsistemafinalademsdequeloscambiosqueseestnaplicandono
quedanrecogidosenningnpaquete,porloqueesdifcildeshacerlospararestaurarelsistemaydejarloenel
estado original. Adems, de esta manera es complicado mantener las versiones live y no live
sincronizadas,puestoqueloscambiosnoseaplicanapartirdepaquetes.Asimismo,medianteestemtodo
nosetienencontrolsobrelasaplicaciones(paquetes)queseinstalan,teniendoquellevaracaboestatarea
deformamanual.Esdecir,nohayningunaformadeinstalartodaslasaplicacionesquesedeseenapartirde
la instalacin de algn(os) paquete(s). Esta instalacin de aplicaciones habra que llevarla a cabo
manualmente.

stafuelaaproximacinquesesiguienGuadalinex2004,porponerunejemplo.

Recompilacindepaquetes:EstemtodoconsisteenpartirdelconjuntooriginaldepaquetesDebian1dela
distribucin base y recompilarlos para que incluyan directamente la configuracin deseada. sta es la
aproximacinquehaseguidoUbuntuconrespectodeDebian:sehanrecompiladoparaUbuntumuchos
paquetesDebianparaadecuarlosaestanuevadistribucin.Aunqueestemtodopuedeseradecuadoen
muchoscasos,presenta elinconveniente de quecada vezquecambia elpaquete original,sisedesea
aprovecharlasmejorasquesehayanhecho,hayquevolveraaplicarloscambiossobreelmismoyregenerar
elpaquete.Portanto,elmantenimientosepuedecomplicarsielconjuntodepaquetesquehayquemantener
eselevado.Adems,desdeelpuntodevistadeltrabajocolaborativo,estaaproximacinesfactibledefiniendo
responsablesdecadapaquete,queseencargarndemantenersuspaquetesactualizados.Estoesfactible
cuandoelnmerodedesarrolladoreseselevado.Porotraparte,comoenelcasoanterior,tambinhabraque
llevaramanolainstalacindelospaquetesquesedeseendeformamanual,paqueteporpaquete.

dpsycoyCDD:steesunmtodonovedosoeinnovadorquesehautilizadoconxitoenGuadalinexv3.A
grandesrasgos,consisteenimplementarunanuevacapadepaquetes(metapaquetesdeconfiguracin)por
encimadelospaquetesquesedeseanconfigurar.Estosmetapaquetesdeconfiguracinseencargande

1 Enprincipio,sepodrautilizarcualquierotrosistemadegestindepaquetes(rpm,tgz,etc)peroestoquedafueradelobjetivo
deestemanual.

13
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

instalarlasaplicacionesnecesariasy,unavezstassehaninstalado,lasconfigurancomosehayadefinido
guardando una copia de seguridad de la configuracin original. Una de las ventajas que presenta esta
aproximacinesqueapartirdelainstalacindeunnicopaquetesellevaacabolainstalacindelsistema
completo(graciasacomosehaimplementadoCDD).Estopermite,porejemplo,convertirunsistemaUbuntu
enunsistemaGuadalinexv3simplementeinstalandounpaquete,algoquenoesfactibledeformasencilla
conlosmtodosanteriores.Otraventajaesquemedianteestemtodonohayquemodificarningnpaquete
originaldeladistribucinbase,demaneraquelasmejorasycambiosquesellevenacabosobrealgunode
estospaquetessepuedenincorporarenladistribucinfinalsinnecesidadderecompilarningnpaquete.De
esta manera, se simplifican las tareas de mantenimiento. Con este mtodo, el trabajo colaborativo se
simplificaigualmenteporqueesmuysencillotrabajarconCDDapartirdeunrepositoriocomosvn,ynoes
necesariotenerdefinidosresponsablesparacadapaquete.Tambinesinteresantedestacarqueconeste
mtodo,esposiblesepararencomponentesladistribucinfinal,demaneraqueconunadefinicinadecuada
de los componentes, es posible crear una nueva distribucin a base de combinar adecuadamente los
componentesqueyaexistanmsalgunosnuevosquesegeneren.

EstemtodosedescribeconmayorprofundidadenelapartadoEstructurademetapaquetesmsabajo.

1.2.1.ESTRUCTURADEMETAPAQUETES
Sehadesarrolladounsistemadegeneracinautomticademetapaquetesdeconfiguracinllamado
CDD.ParaentenderlaarquitecturadeCDDesnecesarioaclararpreviamentealgunosconceptosbsicoscomo
losmetapaquetes,metapaquetesdeconfiguracinycomponentes.

UnmetapaquetecomotalesunpaqueteDebianvaco(noinstalaningnficheroenelsistemasalvolos
mnimosimprescindiblesqueexigeelsistemadepaquetesdeDebian)quedepende,asuvez,deunconjuntode
paquetes.Deestaforma,lainstalacindelmetapaqueteprovocalainstalacindetodoelconjuntodepaquetes
delquedepende.

Un metapaquete de configuracines un paquete cuya instalacin tiene como objetivo configurar un

14
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

conjuntodeaplicacionesapartirdelainstalacindeunaseriedeficherosdeconfiguracinenelsistema.Estos
ficheros de configuracin dependen, lgicamente, de las aplicaciones concretas que se configuren y son
totalmentedependientesdeellas.

Uncomponenteesunacombinacindemetapaquetesymetapaquetesdeconfiguracinqueseencargan
deinstalaryconfiguraradecuadamenteunapartedelsistema.Porejemplo,sepodrahablardeuncomponente
escritorioquese encargue de instalar el sistema XWindow, Gnome, ofimtica,etc y de configurarlocomo
interese.

Un componente est formado, a su vez, por otros subcomponentes que configuran partes ms
especficasdentrodelreaqueabarcauncomponente.Porejemplo,enuncomponenteescritoriosepodran
tenervariossubcomponentes:oficina,multimedia,internet,...

Sepuedevertodoestodeformagrficaenlafigura4.

Observandolafigura,sepuedever,enprimerlugar,laexistenciadelmetapaquetedeGuadalinexv3.
steeselmetapaquetepadredeladistribucinyelobjetivoesquelleveacabolainstalacindetodoslos
componentesquesehandefinidoparaGuadalinexv3.Portanto,existeunadependenciadedichopaquetede
todosloshijosdel(dependenciasaniveldepaqueteDebian).

15
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Figura4:JerarquadepaquetesymetapaquetesdeGuadalinexv3

Porotraparte,seobservalaexistenciadecuatrocomponentes,asaber:base,escritorio,noescritorio
y extras. Cada uno de estos componentes est formado por un conjunto de subcomponentes. Se puede
observar,porejemplo,queelcomponenteescritoriocontiene,asuvez,lossubcomponentesaccesoriose
internet,ademsdeotrosquenosehandetalladoexplcitamenteenlafigura.

Cadaunodelossubcomponentesestformadospordospaquetesclaramentediferenciados:

Metapaquete,quellevaacabolainstalacindetodoslospaquetes(aplicaciones)queformanpartedel
subcomponente.Enelcasodelmetapaqueteescritorioaccesorios,incluyeensusdependenciaspaquetes
talescomofileroller,gthumb,tomboy,...

16
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Metapaquetedeconfiguracin,quellevaacabolaconfiguracindelasaplicacionesanteriores.Enelcasodel
metapaquete de configuracin escritorioaccesoriosconf se incluyen ficheros tales como
/usr/share/applications/fileroller.desktop,queconfiguralaentradadelmendelpaquetefileroller.

CDDpermitedefinirygenerardeformasencillaestructurasdemetapaquetesycomponentessimilaresala
anterior,pudindoseadaptaralasnecesidadesparticularesdeladistribucinfinal.Esposibledefinirelnmerode
componentesysubcomponentesquesedeseeycadaunodeellospuedeinstalaryconfigurarcuantasaplicacionesse
quiera.Sinembargo,presentaunpardelimitaciones:

Unamismaaplicacinnopuedeestarendossubcomponentesdiferentes,porqueestoprovocaraproblemasde
dependenciasentreellos.

Elnmerodenivelesenlosquesehaestructuradolajerarquaanteriornosepuedemodificar;portanto,nose
puedeampliarodisminuirestenmero.Loquessepuedehacer,comoyasehacomentado,esaadiroquitar
cuantoscomponentessedesee.

1.2.2.DESCRIPCINFUNCIONALDECDD
CDDesunautilidadparacrearpaquetesdeconfiguracinymetapaquetesde unaformasencilla.Eldiseo
deCDDseapoyaendospilaresfundamentales:

SistemadepaquetesdeDebian:estesistemaproporcionarealmentelabasesobrelaquesesustentaCDD.
Permiteestablecerrelacionesdedependenciadelosmetapaquetesentresyconlospaqueteshijoque
instalan,llevaracabouncontroldeversiones,instalaraplicaciones,ejecutarcomandosantesodespusdela
instalacindepaquetes,yunlargoetctera.

dpsyco:Elsistemadpsycoseutilizacomobaseparagenerarlosmetapaquetesdeconfiguracin.Hayque
tenerencuentaqueelsistemadepaquetesdeDebianimpidequeunpaquetesobreescribelaconfiguracin
deotro,porloquenogenerarmetapaquetesdeconfiguracinusandoelsistemadepaquetesdeDebiantal
cual.

17
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Mediantedpsyco,sepuedengenerarmetapaquetesdeconfiguracinquesllevanacabolaconfiguracin
deotrospaquetesinstaladosenelsistema.

Paraello,dpsycofuncionadelasiguientemanera:dentrodeunmetapaquetedeconfiguracin,sealmacena
enunskeltodalaconfiguracindeaplicacionesquesevayaallevaracabo.Cuandoseinstaladicho
metapaquete,todosestosficherosdelskelsealmacenanen/usr/share/dpsyco.Cuandosellevaacabola
postconfiguracin del metapaquete se produce la ejecucin de updatedpsycoskel (una de las
herramientasqueproporcionadpsyco)demaneraquesebuscanlosficherosoriginalesdeconfiguracindel
sistema,seguardaunacopiadeseguridaddelosmismos(en/var/lib/dpsycoskel)ydespussesustituyen
porlosnuevosdelmetapaquete.Deestaforma,lasaplicacionesquedanconfiguradascomosedeseapero
almacenando previamente una copia de seguridad de la configuracin anterior. Si se desinstala el
metapaquetedeconfiguracin,serestauralacopiaanteriordelosficherosdeconfiguracin.

Todoestosepuedeverdeformagrficaenlafigura5.

CDDsehadiseadoparagenerarunconjuntodepaquetesconciertasrelacionesdedependenciaentreellos.
CDDtratacadacomponentedeformaindependientedemaneraquealfinalsegeneraunmetapaquetepor
encimaqueinstalatodosloscomponentesqueformenpartedeladistribucinfinal.

Larelacindedependenciasenelcasodeuncomponenteconcretosemuestraenlafigura6.

Comoseobserva,elmetapaquetepadredelcomponentetienedostiposdedependenciasconloshijos.El
primero deestostiposesuna predependenciaconlosmetapaquetesdelossubcomponenteshijos.El
segundotipoesunadependencianormaldelosmetapaquetesdeconfiguracionesdecadasubcomponente.
Deestamaneraseaseguraquealinstalarelcomponente,primeroseinstalantodaslasaplicacionesque
formanpartedelmismoydespusseproducelaconfiguracin.

18
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Figura5:Funcionamientode"dpsyco"durantelainstalacindeunmetapaquetede
configuracin.

Figura6:EstructuradeuncomponentegeneradoconCDD.

19
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

1.2.3.LAAPLICACINCDD.
CDDseencuentraeneldirectorioapps_sel_and_conf/cdddelrepositoriodeGuadalinex.Estoesloque
contienenlosdiferentesdirectorios:

build/genpackage:Contienescriptsnecesariosparagenerarlospaquetes.Adems,existeundirectorio
debianconlasplantillasdetodoslosficherosnecesariosparagenerarlospaquetesDebian.Estasplantillas
seutilizarnpordefectoenlageneracindelospaquetes.Aunqueesposiblecrearficherosdiferentespara
algncomponenteconcreto.Enestecaso,elficheroquesecreesustituiralqueseincluyepordefecto.Esto
severmsadelante.

build/packages/:Contienelospaquetesgenerados.

conf>Enestedirectorioesdondeseconfiguranlosdistintospaquetes.Contieneundirectorioparacada
componente,que,asuvez,contieneundirectorioparacadasubcomponente.Unejemplosera:

conf/
|-- v3-escritorio (componente escritorio de Guadalinex v3)
| |-- accesorios
| `-- ...
|
`-- v3-mini-base (componente base de Guadalinex v3 mini)
`-- base
|-- DEBDEPENDS
|-- debian
`-- skel
`-- ...

20
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Sinoscentramosenelcomponentev3minibase,sevequestecontieneunnicosubcomponente
base.Sevaadescribirlaestructuradedirectoriosparaelcasodeunodelossubcomponentes,enestecaso,
base:

conf/v3minibase/base/DEBDEPENDS: Contiene una lista de paquetes de los cuales depende el


subcomponente"base",separadosporcomas,demaneraquealinstalarseestepaqueteseinstalarn
todaslasdependencias.

conf/v3minibase/base/debian:Enestedirectoriossepuedenopcionalmentecolocaralgunosdelos
tpicosscriptsdelsistemadepaquetesdeDebian:preinst,postinst,prermypostrm.Encasodeque
seincluyaalgunodeestosscripts,sesustituirelqueseutilizapordefectoenlaplantilla,sloenel
metapaquetedeconfiguracin(noenelmetapaquetededependencias).Elmsutilizadodeestosscripts
suele serpostinstpara realizar algunas tareas de configuracin finales a partir de la ejecucin de
algunoscomandos.

conf/v3minibase/base/skel : Contiene los ficheros de configuracin que se copiarn al sistema,


manteniendo la estructura de directorios. Por ejemplo, el fichero conf/mini/base/skel/etc/issue se
instalarenelsistemaen/etc/issue.

1.2.4.PROCESODEGENERACINDELOSPAQUETES.
Antesquenada,es muyimportante tenerencuentaentodomomentoqueantesdegeneraralgn
paqueteesnecesarioquetodoslosficherosestnsubidosenelsvn.

Veamospasoapasocmoconstruirunpaquetedesdecero.Sirvadeejemplolaconstruccindeuna
nuevadistribucinficticiamidistro(queseraunavariantedeladistribucinpadre,comopodraserporejemplo,
mini,lavarianteparaequiposantiguosdeGuadalinex).Elmetapaquetepadredemidistrodependededos
paquetes,unoalquellamaremoscomponente1yotroquebautizaremoscomocomponente2.stosseranlos
doscomponentesqueformanpartedeladistribucinficticiamidistro.

21
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

El primer componente est formado, a su vez, por dos subcomponentes, subcomponente1 y


subcomponente2. El primero de ellos, instalar las aplicaciones app11a y app11b. El segundo, las
aplicacionesapp21ayapp21b.Cadaunadeestasaplicacionesseconfigurarconunficherodeconfiguracin
quellevarpornombre/etc/app???.conf,correspondientecadaunoacadaaplicacin.Estamismaestructurase
repetirparaelcomponente2.

Enesteescenario,elprocedimientoparalageneracindelospaquetessera:

1) Creamoslaestructuradedirectoriosconlaconfiguracindecadacomponente,talycomosemuestraa
continuacin(Esimportanterecordarquetodosloselementosqueformanpartedelrbolanteriordeben
estarsubidosalrepositoriodesubversion).

conf/midistro-componente1
|-- subcomponente1
| |-- DEBDEPENDS
| |-- debian
| `-- skel
| `-- etc
| |-- app11a.conf
| `-- app11b.conf
`-- subcomponente2
|-- DEBDEPENDS
|-- debian
`-- skel
`-- etc
|-- app12a.conf
`-- app12b.conf

22
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

2) GuardamosenlosficherosDEBDEPENDSdecadacomponenteslaslistasconlasdependenciasde
paquetes que debe instalar cada uno de los componentes. Por ejemplo, en
subcomponente1/DEBDEPENDSsetendr:app11a,app11b.

3) Creamos los ficheros packagesmidistrocomponente1 y packagesmidistrocomponente2 en


build/genpackage,conelsiguientecontenido:

subcomponente1

subcomponente2

Se est indicando que cada componente de la distribucin contiene dos subcomponentes,


subcomponente1ysubcomponente2.

4) Modificamoselficherobuild/genpackage/Makefileparaquecontengalonecesarioparacrearelnuevo
paquete:

Contenidoantesdemodificar(suponemosqueyaexisteunpaquetellamadov3):

v3: packages-v3-base packages-v3-escritorio packages-v3-noescritorio


packages-v3-extras
./build ../../conf/v3-base
./build ../../conf/v3-escritorio
./build ../../conf/v3-noescritorio
./build ../../conf/v3-extras
./buildmeta meta-guadalinex-v3-base meta-guadalinex-v3-
escritorio meta-guadalinex-v3-noescritorio meta-guadalinex-v3-extras

all: v3

23
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Despus:

v3: packages-v3-base packages-v3-escritorio packages-v3-noescritorio


packages-v3-extras
./build ../../conf/v3-base
./build ../../conf/v3-escritorio
./build ../../conf/v3-noescritorio
./build ../../conf/v3-extras
./buildmeta meta-guadalinex-v3-base meta-guadalinex-v3-
escritorio meta-guadalinex-v3-noescritorio meta-guadalinex-v3-extras

midistro: packages-midistro-componente1 packages-midistro-componente2


./build ../../conf/midistro-componente1
./build ../../conf/midistro-componente2

all: v3 midistro

Asseestindicandoqueparaconstruirmidistrohayqueconstruirloscomponentesqueformanparte
ella.

5) Desdeeldirectoriobuild/genpackageejecutamos:

make(paraconstruirtodaslospaquetesdetodaslasdistribucionesdefinidas),obien

makemidistro(paraconstruirlospaquetesslodeladistribucinmidistro)

6) En el directorio build/packages/binaryi386/ se encuentran los paquetes ya creados. En este caso


concreto,setendranlossiguientespaquetesgenerados:

24
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

binary-i386/midistro-componente1
|-- guadalinex-midistro-componente1-subcomponente1-conf_1.0-r1955_all.deb
|-- guadalinex-midistro-componente1-subcomponente1_1.0-r1955_all.deb
|-- guadalinex-midistro-componente1-subcomponente2-conf_1.0-r1955_all.deb
|-- guadalinex-midistro-componente1-subcomponente2_1.0-r1955_all.deb
`-- meta-guadalinex-midistro-componente1_1.0-r1955_all.deb
binary-i386/midistro-componente2
|-- guadalinex-midistro-componente2-subcomponente1-conf_1.0-r1955_all.deb
|-- guadalinex-midistro-componente2-subcomponente1_1.0-r1955_all.deb
|-- guadalinex-midistro-componente2-subcomponente2-conf_1.0-r1955_all.deb
|-- guadalinex-midistro-componente2-subcomponente2_1.0-r1955_all.deb
`-- meta-guadalinex-midistro-componente2_1.0-r1955_all.deb

7) Elltimopasoconsisteenlageneracindelmetapaquetepadredeladistribucin,queprovocarla
instalacindelosdems.Elprimerpasoconsisteencrearelscriptbuild/genpackage/buildmetamidistro
a partir de, por ejemplo, build/genpackage/buildmeta. Hay que editar el fichero una vez creado y
cambiarelcontenidoparaadaptarloalpaquetedelanuevadistribucin.Enparticular,hayquecambiar:

1. DEBIANSRC=metapkgmidistro

2. Todaslasocurrenciasdemetaguadalinexv3ylasreferenciasaellaporlascorrespondientesala
nuevadistribucin,demaneraquequedaracomometaguadalinexmidistro.

Alfinal,elcontenidodeesteficheroquedaracomosigue:

25
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

#!/bin/bash

. cdd.cfg

DEBIANSRC="meta-pkg-midistro"

if [ ! $# -gt 0 ];then

echo "Usage: $0 depend [depend..]"

exit 1

fi

cd $DEBIANSRC

echo "Source: meta-guadalinex-midistro

Section: misc

Priority: optional

Maintainer: Junta de Andaluca <packmaster@guadalinex.org>

Standards-Version: 3.6.0

Package: meta-guadalinex-midistro

Architecture: all" > debian/control

depends=$(echo $@ | sed -e 's/ /, /g')

echo "Depends: $depends" >> debian/control

echo "Description: Guadalinex midistro metapackage

This metapackage installs a whole Guadalinex midistro distribution." >> debian/control

last_revision=$(cat ../../../conf/.svn/entries |grep revision|sed -e 's/^.*revision="\([0-


9]*\)"\/>/\1/')

dch -v 1.0-r${last_revision} "Auto-generated version increment" || continue

fakeroot debian/rules binary

fakeroot debian/rules clean

cd ..

mv meta-guadalinex-midistro*.deb $CDDPACKAGESDIR

26
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Elsegundopasocosisteencreareldirectoriometapkgmidistroconeldirectoriodebiandentro.Enl,
hay que crear los ficheros changelog y rules a partir de los que hay en metapkg/debian. En
changelogdebehaberunanicaentradacorrespondientealaversininicialdelpaquetejuntoconel
nombre.Elficherorulesnohayquemodificarlo.

Porltimo,hayquemodificarelficherogenpackages/Makefileparaaadirunalneaparagenerarel
metapaquetepadre.Lapartecorrespondienteamidistroquedaraas:

midistro: packages-midistro-componente1 packages-midistro-componente2


./build ../../conf/midistro-componente1
./build ../../conf/midistro-componente2
./buildmeta-midistro meta-guadalinex-midistro-componente1 meta-
guadalinex-midistro-componente2

Yasloquedavolveraejecutarelcomandoparalageneracin,esdecir,makemidistro,yseobtendrn
lospaquetesenbuild/packages/binaryi386.

Esimportante sealarque en elfichero build/genpackage/cdd.cfg sepueden personalizardiversos


elementosdelsistemadepaquetes,comoporejemplo:

CDDFLAVOUR:Nombredelproyecto(porejemplo:guadalinex)

CDDMAINTAINER:Mantenedordelospaquetes.

CDDSVN:URLdelrepositoriodesubversiondelproyecto.

27
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

1.2.5.GENERACINDESUPLEMENTOS.
LossuplementosconstituyenunmecanismoparaaadirsoftwareadicionalaGuadalinexv3deforma
sencillaparaelusuariofinal.Unsuplementoestformadoporunconjuntodepaquetes.AlinsertarelCDenel
sistema,stesereconocerautomticamente,senotificaralusuarioyhabilitarunmecanismosencilloparasu
instalacin.

Parafacilitarlatareadegeneracindesuplementosaaqullosqueestninteresados,sehadesarrollado
unaaplicacinquellevapornombreSuppletoryDiskGenerator(SDG)yquepermitellevaracaboestatareade
formasencilla.Estaaplicacinseencuentraenother_apps/suppletory_disk_generator.

ElprimerpasoparallevaracabolageneracindeunsuplementoconsisteengenerarelpaqueteDebian
parainstalarloenelsistema.Estosehaceejecutando,desdeeldirectoriorazdelaaplicacinenelrepositorio,el
comando:

$ fakeroot dpkg-buildpackage

Elresultadoserlageneracindelpaquete../guadalinexsuppletorydiskgenerator_0.11_i386.deb.

Elsiguientepasoserinstalarelpaqueteenelsistema:

$ sudo dpkg install guadalinex-suppletory-disk-generator_0.1-1_i386.deb

Apartirdeah,yatenemoselsistemapreparadoparapodergenerarsuplementos.

PROCEDIMIENTODEGENERACIN.
1) Crearundirectoriodondesevaaconstruirelsuplemento,porejemplo:

$ mkdir ~/mi_suplemento

28
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

2) Creacindelesqueletodelsuplemento:

$ sdg_new

Segenerarunrboldedirectoriosconlaestructurasiguiente:

.
|-- applications.menu
|-- config
|-- debs
|-- icon.png
`-- master
`-- guadalinex-suplementos-apps
|-- gnome-app-install.glade
|-- icons
`-- template.html

3) Configuracindelsuplemento:

1. El fichero config se utiliza para configurar el suplemento, a travs de las siguientes


variables:

1. NAMExxxx:Aquseconfiguraelnombredelsuplemento.

2. SHORTNAMExxxx:SeutilizaparaconcatenarsealnombredelaISOgenerada.No
debetenermsdeochocaracteres.

3. DESCxxxx:Descripcindelsuplemento(unalnea).

4. METAPACKAGEnombredelmetapaquete:Para lainstalacindeunsuplementohay

29
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

quegenerarunmetapaquetequedependadetodoslospaquetesquedeseeninstalarse
apartirdelsuplemento.

5. PACKAGES:Listadepaquetes,separadosporespacios,queestarndisponiblespara
instalarsedeformaindependienteademsdelmetapaquetedelsuplemento.Sepuede
utilizarparacrearsubsuplementosoinclusollegaralaposibilidaddeinstalacinde
paquetesindependientes.

6. URIrepositorio:Medianteestavariablesepuedenespecificarrepositoriosexternosde
paquetesparadescargaraquellasdependenciasdelospaquetesdelsuplementoqueno
seencuentrenenelpropioCDROM.AlmenosdebeexistirunalneaURI(aunquesea
vaca).Aunquesepuedenespecificartantosrepositorioscomosedesee.

ElformatoeselestndardelosURIsdeDebian:

URIhttp://repositorio.guadalinex.org/guadalinexflamencomainuniversemultiverse

2. Directoriodebs:Enestedirectoriosedebencolocartodoslospaquetesqueformanparte
delsuplemento(incluyendoelmetapaquetepadre).Sialgnpaquetetieneunadependencia
quenoseincluyeenelCDROM,seintentardescargardelosrepositoriosespecificadosen
lasURISdurantelainstalacindelsuplemento.

3. Ficheroicon.png:IconoquesemostrarenelsistemacuandoseintroduzcaelCDROM
del suplemento generado. Hayque cuidareltamao de la imagen para evitar tamaos
demasiadograndes(tamaorecomendado:52x52pxeles).

4) Generacindelsuplemento:Unavezsehaconfiguradoelsuplementocomosedesea,elltimo
pasoconsisteengenerarlaimagenISOparagrabarelCDROM.Estosehaceatravsdela
ejecucindelcomando:

30
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

$ sdg_build

Estecomandohayqueejecutarlodesdeeldirectoriorazdelsuplemento.Traslaejecucin,se
obtendrunfichero.ISOconlaimagendelsuplementoeneldirectoriorazdelsuplemento.

31
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

2.ASPECTOSMODIFICABLESDELA
DISTRIBUCIN.
2.1.NOMBREDELADISTRIBUCIN.
A lo largo de la distribucin podemos encontrar en varios lugares el nombre de Guadalinex. A
continuacinsedescribeloslugaresconmayorrelevanciaquepuedensercambiados:

2.1.1./ETC/MOTD
motdsonsiglasdeMessageOfTheDay,elcontenidodeesteficheroesmostradotrashacerloginde
formacorrectaenelsistemaoperativoGuadalinex.EnGuadalinex,esteficherosemodificadesdeelpaquete
"guadalinexv3basebaseconf", en concreto, el fichero en el repositorio se encuentra en
"guadalinex2005/trunk/apps_sel_and_conf/cdd/conf/v3base/base/skel/etc/motd".

2.1.2./ETC/ISSUE
Esteficherocontieneeltexto,normalmenteusadocomoidentificadordelsistemaoperativo,queser
mostrado junto al login. Se encuentra en el mismo paquete que "/etc/motd", puede encontrarse en
"guadalinex2005/trunk/apps_sel_and_conf/cdd/conf/v3base/base/skel/etc/issue".

2.1.3./ETC/LSBRELEASE
Aligualquelosarchivosdeapartadosanteriores,compartenelmismodirectorio,portantoseencuentra
en "guadalinex2005/trunk/apps_sel_and_conf/cdd/conf/v3base/base/skel/etc/lsbrelease". Dicho fichero posee
informacinsobreladistribucin,enconcretosucontenidoeselsiguiente:

32
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

DISTRIB_ID=Guadalinex

DISTRIB_RELEASE=v3.0.1

DISTRIB_CODENAME=flamenco

DISTRIB_DESCRIPTION="Guadalinexv3"

EsimportantedestacarquesisequisieracambiarelcontenidodelavariableDISTRIB_IDimplicaratocar
unficheropertenecienteagnomesystemtoolsenelcuallistalasdistribucionesdeconfianza.Sinalterardicho
fichero, el escritorio estara "capado" para realizar ciertas funciones puesto que gnomesystemtools no se
relacionabienconlasdistribucionesnolistadasensubasededatosdeconfianza.Noslognomesystemtools
dependedeestainformacin,portantohabraquemodificarestosdatosconsumocuidado.
Para ello, habra que tocar el fichero "/usr/share/setuptoolbackends/scripts/platform.pl" que puede
encontrarse en los metapaquetes de guadalinex, concretamente en
"guadalinex2005/trunk/apps_sel_and_conf/cdd/conf/v3escritorio/gnome/usr/share/setuptool
backends/scripts/platform.pl"yaadirleelnombredeseado.
Breveextractodelactualplatform.pl:

...
"freebsd6"=>"FreeBSD6",
"gentoo"=>"GentooLinux",
"guadalinex2005"=>"Guadalinex",
"vlos1.2"=>"VidaLinuxOS1.2",
"archlinux0.7"=>"ArchLinux0.7",
...

33
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

2.2.IMAGEN.
Haydiferentespartesenunadistribucinquesepuedencambiarypersonalizar,peroloselementosque
siempre querremos tocar sern aquellos relacionados con la imagen de la distro. Es decir, todos aquellos
elementosgrficosqueledanunaidentidadaladistribucinyladiferencianvisualmentedeotra.Estoesloque
suelellamarseartwork.
Dichoartworkpuedetenerqueverconladistribucinunavezinstalada,comoconelementosgrficosdel
CD(tantolivecomonolive).Aqumostraremoslosmsimportantesydeformagenrica,peroenotrosapartados
profundizaremosenalgunodeellos.

2.2.1.ISOLINUX.
Syslinuxesungestordearranquepensadoparadispositivosextrables,preferentemente.PeroSyslinux
contieneprogramasyconfiguracionesespecficosparaalgunosdeestosdispositivos.Porejemplo,paralosCSS,
tieneelIsolinux,queeselquenosotrosusaremosporqueestespecialmentediseadoparaCDs.
NoentraremosenmuchosdetallesenlaformadetrabajardeSyslinuxoIsolinux,perosiexplicaremoslo
suficienteparaentendersusopcionesdeconfiguracinypodermodificarlo,tantoparaelsistemaLivecomopara
elNoLive.
Elarchivodeconfiguracinsellamaisolinux.cfgytieneunapintaparecidaaesta:
defaultlinux
DISPLAYisolinux.txt

TIMEOUT100
PROMPT1

F1isolinux.txt
F2ayudaf2.txt
F3ayudaf3.txt
F4ayudaf4.txt
F5ayudaf5.txt
F6ayudaf6.txt
F7ayudaf7.txt

34
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

F8ayudaf8.txt
F9ayudaf9.txt

KBDMAPes.kbd
FONTfuente.psf

labellinux
kernelvmlinuz
append ramdisk_size=100000 root=/dev/ram0 initrd=initramfs BOOT=live
debugsplashquiet
labeldb
kernelvmlinuz
append ramdisk_size=100000 root=/dev/ram0 initrd=initramfs BOOT=live
debugbreak

ste es un archivo de configuracin de isolinux, que como explicamos ms anteriormente, es el


encargadodehacerqueelordenadorsepaquedebearrancardesdeelCDydondeesttodolonecesario(sector
dearranque,kernel,initramfs)paraquepuedahacerlo.
LaconfiguracindelisolinuxnoesmuydiferentedeladeotrosgestoresdearranquecomoLILOoGrub.
Veamosprimerolaspartescomunesaestosotrossistemas:
default:Eslaopcinpredeterminadaparaarrancar,amenosqueseespecifiqueotracosaentiempode
arranque.
timeout:Eseltiempoqueesperarantesdearrancar.Estobrindadeunossegundos(encasodeque
est especificado) al usuario para seleccionar otro arranque u otras opciones. Este contador se
desactivarencuantoelusuariopulsecualquiertecla.
prompt:Indicasisemuestraalusuariounaposibleentradadeparmetros(boot:)ono.1indicaquese
muestrey0quenosemuestre,anoserquesepulselasteclasAltoMaysculas
label:Sirveparaindicarleunnombrealaopcin.Deestamanerasepuedellamardirectamentedesdela
lneadecomandosmostrada(boot:).
kernel:Indicaculeselnombreypathdelkernel.

35
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

append:Conestaopcinseleindicanlosparmetrosqueselepasarnalkernelenelarranque.stos
quedarnguardadosluegoen/proc/cmdlineparaserusadosporelpropiokerneluotrosprogramas.
Ahoraalgunosparmetrosespecialesdelsyslinux/isolinux:
F#(F1,F2,F3...):Conestasmarcasespeciales,indicamosquearchivomostrarencasodequeelusuario
pulsedichasteclas(F1,F2,F3...).Sinodefinimosalgunatecla,nosemostrarnadaalserstapulsada.
Generalmenteseusanparamostrarayudas.
kdbmap:Leindicalalocalizacinynombredeelmapadetecladoquesedeseausar.Estoestilpara
poderusarcaracteresespecialesyparaquecoincidanlasteclasconnuestrosteclados,envezdelos
tecladoseningls.
font:Conestaopcinpodemosindicarlequeseuseunasdeterminadostiposdeletras,envezdelasque
seusanpordefecto.
Undetalleimportanteesquenodiferenciaentremaysculasyminsculas,asqueeslomismoponer
TIMEOUTotimeout.
Ahoraqueconocemosquesel Isolinux ycomo essuarchivo de configuracin,vamosaverqu
podemospersonalizarycmo.
TenemosvarioselementospersonalizablesenelIsolinux:
Opcionesdelisolinux.cfg:Estaparteessencilla,simplementetenemosqueverqueelementosdelos
quesedefinennosinteresadejarcomoestnyculesqueremospersonalizar.Cosastpicassonlaayuda
(losarchivosqueseconectanaF#)yeldelapantallaprincipal(isolinux.txt),endondeapareceelnombre,
versinyalgndetallemsdeladistribucin.
Imagen del arranque (/media/distro/master/isolinux/splash.rle): La imagen es una de las principales
cosasquequerremoscambiar,perostenoesunaimagennormal.Tieneunascaractersticasconcretas
quedebemoscumplir.Vamosaverlascaractersticasdeestetipodeimgenesydespuselprocesoa
seguirparaconseguirla.
Caractersticas:Imagenenformato lss16 deresolucin 640x400 en modoindexado a 16
colores.
Proceso:

36
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

1CrearunaimagenenelGimp(sepuedehacerenotros,peronosser
msfcilconste)detamao640x400.

Figura7:Crearimagennueva

37
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

2Editarlaimagen

Figura8:Copiandologotipoenlaimagenrecincreadadesdeotroarchivo.
(Estoesunejemplo)

38
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

3Aplanarlaimagen.

39
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

4Convertiramodoindexadocon14colores.Dejaremos2paraeltextoy
elisolinux.Asevitaremossorpresas.

40
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

5GuardarcomoarchivoPPM

41
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

6Convertirenformato.rle.Conelprogramappmtolss16,contenidoenel
paquetesyslinux,pasaremosnuestroarchivodeunformatoaotro:

$ppmtolss16'#d0d0d0=7'<splash.ppm>splash.rle

Conel#d0d0d0=7estamosdefiniendoqueelcolornmero7delapaleta
decolores,queeselqueusael isolinux paraeltexto,sefijealcolor,
definidoenhexadecimal,#d0d0d0.

7Yatenemosnuestroarchivosplash.rle,slonosquedaguardarloenlos
directoriosadecuadostantoparaelCDlive,comoelnolive.

Parahacerpruebasrpidassobreloscambioshechosenlaimagenoenlosarchivosdeayudadel
isolinux,podemosgenerarunaisopequeayprobarlaconelsoftwaredeemulacinqemu(instalablefcilmente
con:sudoaptgetinstallqemu).Conelsiguientescriptsepuedenhacerpruebasmuyrpidayfcilmente:

#!/bin/sh

LIVE_DIR="/usr/share/genlive/isolinux/"
NO_LIVE_DIR="$CDIMAGE_ROOT/uda/isolinux/"

ISOLINUX_DIR="$LIVE_DIR"

mkdir/tmp/master
cpa$ISOLINUX_DIR/{isolinux.*,f*,ayuda*}/tmp/master/
cpa/usr/lib/syslinux/isolinux.bin/tmp/master/

mkisofslrJV"imagetest"hiderrmovedvbisolinux.binc
boot.cat noemulboot bootloadsize 4 bootinfotable o
/tmp/image_test.iso/tmp/master/

qemum32cdrom/tmp/image_test.iso

42
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

SlohayquetenerencuentalavariableISOLINUX_DIR,cuyovalorser$LIVE_DIRo$NO_LIVE_DIR
enfuncindequCDqueramosprobar.Tambinhabrqueasegurarsedesustituirlosarchivosoriginalesporlos
quehemosmodificadonosotros(f#,isolinux.txt,ayudaf#.txt,splash.rle,etc).

2.2.2.USPLASH.
Unavezsehaseleccionadola"Guadalinex",enel"grub",paraarrancar,losiguientequeveremosy
podremospersonalizarserel"usplash".
El"usplash"eselprogramaquemuestraelarranqueenmodogrfico.
Laimagenausartiene unascaractersticassimilaresalasdellaimagenparaelisolinux: 640x480
indexadaa16colores.

2.2.3.GRUB.
El"Grub"eselgestordearranqueusadopor"Guadalinex"yloprimeroqueaparece(traslaBIOS)al
arrancarunequipoinstaladoconstaounaderivada.
Porestaraznesotroelementovisiblequequerremospersonalizar.
Lapersonalizacinhechapara"Guadalinex"consisteencambiarelttulodelaentradaparaelnuevo
sistemainstaladoyaquellosqueseencontraran.Apartedeponerleunaimagendefondo.
Amboscambiossepuedenverenelarchivodeconfiguracindel"grub":"/boot/grub/menu.lst".
Ttulo:

titleGuadalinex,kernel2.6.129386

Imagen:
Enloscaptulosdedicadosalsistema"live"yal"nolive"seexplicardndetocarparainstalarymantener
estoscambios.

43
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

2.3.ESCRITORIOGNOME.
Lamayorpartedelasdistribuciones,hoyenda,usanalgnescritorio,parahacerlelavidamasfcilal
usuario.
Pordiversasrazones,paraGuadalinex,seeligielescritorioGnome.Poresodedicaremossteapartado
adichoescritorio.
Paraprofundizarmsenestetemarecomendamosmirarladocumentacinoficial1(eningls),yaque
aquslosedarnunaspinceladasporloselementosmsfrecuentementecambiadosparaunadistribucincomo
Guadalinex.Hayquetenerencuentaqueesaguaesparalaversinsiguientealaqueestinstaladaen
GuadalinexV3,porloquepuedequealgunascosasnoestntodavaoperativasennuestradistro.
Tambinpuedeserdemuchautilidadinformacinextraunartculo2sobreelsistemadeconfiguraciones
deGnome,quecomplementarlaguaanteriorylainformacinaqudada.
Veamoscmopersonalizarlaspartesmsrelevantes.

2.3.1.SELECTORDESESIN(GDM)
Aunqueel"GDM"noesestrictamentepartedelescritorio,siespartedeGnomeyespersonalizable.
ComocasitodaslaspartesestticasdeGnome,elGDMestbasadoenunsistemadetemas.Lonicoque
necesitamosparacambiarlelaaparienciaalGDM,escrearleuntemayconfigurrselo.
NovamosaexplicarcomocrearomodificaruntemaparaelGDMporquesesaledelalcancedeesta
documentacin.
Elnuevotemaseguardaraen:
/usr/share/gdm/themes/[TEMA]

2.3.2.FONDODEESCRITORIO.
Tantoelfondodeescritorio,comoloscoloresprimarioysecundariodelfondoseindicanenGconf.
Gconfesel"registro"deconfiguracionesdeGnome.

1 http://www.gnome.org/learn/adminguide/2.14/
2 http://www.gnome.org/projects/gconf/

44
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Enesteregistro seguardaquearchivosecogercomoimagendefondodelescritorio(entreotras
muchascosas).Ylohaceconcretamenteenlaclave/desktop/gnome/background/picture_filename,quepara
Guadalinex V3 tiene el valor /usr/share/backgrounds/guadalinex_v3_bg.jpg. Podemos ver los valores
relacionadosconelfondoconelsiguientecomando:

$gconftool2R/desktop/gnome/background
color_shading_type=solid
secondary_color=#2c160a
primary_color=#2c160a
picture_filename=/usr/share/backgrounds/guadalinex_v3_bg.jpg
picture_options=stretched
picture_opacity=100
draw_background=true

Dichosvalorespodemoscambiarlosparatodoelsistemadelasiguienteforma:

$ gconftool2 direct configsource xml:readwrite:/etc/gconf/gconf.xml.defaults type string set


/desktop/gnome/background/picture_filename"/usr/share/pixmaps/splash/backgrounds/mi_distro.jpg"

2.3.3.IMAGEN"SPLASH"DELINICIODESESIN
Laimagen"splash"eslaqueapareceeneliniciodelasesindeGnome,mientrassevancargandolos
diferenteselementosdelescritorio.
Elpredeterminadoseencuentraaqu:

/usr/share/pixmaps/splash/gnomesplash.png

45
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Cambiardicho"splash"puedehacersecambiandodirectamenteestearchivo,ocambiandodichovaloren
el"gconf".

2.3.4.MENS.
Podemos encontrar informacin ms completa sobre en el proyecto ''Freedesktop1, as que aqu
nombraremoslosarchivosydirectoriosmsimportantes:

Archivoendondesedefineelmendeaplicaciones:

/etc/xdg/menus/applications.menu

Ejemplodeentradaparaunsubmen:

<!Education>
<Menu>
<Name>Education</Name>
<Directory>Education.directory</Directory>
<Include>
<And>
<Category>Education</Category>
</And>
</Include>
</Menu><!EndEducation>

1 http://standards.freedesktop.org/menuspec/latest/

46
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Directorio donde se guardan los .directory, responsables de la apariencia y configuracin de las


entradasdelmen:

/usr/share/desktopdirectories/

Ejemplodeun.directory:

education.directory

[DesktopEntry]
Encoding=UTF8
Name=Education
Name[es]=Educacin
Icon=package_edutaiment
Type=Directory

Los.directorysonlosqueconfiguranlaapariencia(icono,nombrequeaparece,traducciones,etc)y
configuracindeunmenosubmen,peroparalasentradasdelasaplicacionesseusael.desktop,queesel
mismoquesirveparaponerlanzadoresdeaplicacionesenelescritoriooelpanel.
Estosarchivospodremosencontrarloseneldirectorio/usr/share/applications/ypodremosencontrar
masdocumentacinsobresuformatoyusoenlaespecificacinoficial1.

1http://standards.freedesktop.org/desktopentryspec/latest/

47
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Peromostraremosunejemplo,detodasformas:

tomboy.dektop

[DesktopEntry]
Encoding=UTF8
Name=Tomboy
Name[es]=Notasdeescritorio(Tomboy)
Comment[es]=Escribanotasenelescritorio
Exec=tomboy
Icon=tomboy
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Utility;

2.3.5.PANELES
ParaconfigurarlospanelesdeGnomesegnnuestrasnecesidades,debemosconfigurarlosparaun
usuariodepruebay capturar,dichaconfiguracin.Estocogertantolos applets,comosuposicin,eltamao,
colorydemspropiedadesdelpanel.
Unaveztenemosconfiguradoelpanelanuestrogusto,solotenemosquevolcarlainformacinaun
archivo:

$gconftool2dump/apps/panel>/usr/share/gnome/panel.entries

Pararestaurarloenlainstalacindelcorrespondientemetapaquetedeconfiguracin:

$ gconftool2 direct configsource xml:readwrite:/etc/gconf/gconf.xml.defaults load


/usr/share/gnome/panel.entries

48
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

2.3.6.TEMAS
TambinpuedencambiarselostemasmediantelaconfiguracindeGnome:

$ gconftool2 direct configsource xml:readwrite:/etc/gconf/gconf.xml.defaults type string set


/apps/metacity/general/theme"Guadalinex"
$ gconftool2 direct configsource xml:readwrite:/etc/gconf/gconf.xml.defaults type string set
/desktop/gnome/interface/gtk_theme"Guadalinex"
$ gconftool2 direct configsource xml:readwrite:/etc/gconf/gconf.xml.defaults type string set
/desktop/gnome/interface/icon_theme"Guadalinex"

Esos,debemosasegurarnosdequeexistaeltemaseleccionadoen:
/usr/share/icons/[TEMA]
/usr/share/themes/[TEMA]

Tema de iconos y tema de Gtk respectivamente. El del gestor de ventanas ("Metacity") se debera
encontraren:
/usr/share/themes/[TEMA]/metacity1/metacitytheme1.xml

AscomosucedaconeltemaparaelGDM,novamosaexplicarcmosecrearaomodificaranestos
temasperopuedeconsultarseaqu:
http://live.gnome.org/GnomeArt/Tutorials/GtkThemes
http://live.gnome.org/GnomeArt/Tutorials/IconThemes
http://developer.gnome.org/doc/tutorials/metacity/metacitythemes.html

2.3.7.MOZILLAFIREFOX
Aunqueelnavegador"Firefox"noespartedeGnome,sespartedelescritorioyunelementobsico
dentrodel.Loselementosmscomunesquesepuedenpersonalizarsonlossiguientes:
/etc/mozillafirefox/pref/firefox.js
/etc/mozillafirefox/profile

49
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

2.4.AADIRYQUITARAPLICACIONES.
Alahoradeaadiroquitaraplicacionesdeunadistribucin,esimportantetenerclaroquaplicaciones
se desea (des)instalar en el sistema y qu repercusiones puede tener en relacin con otras aplicaciones
instaladas.EnunsistemaDebian/Ubuntu(yotrasdistribuciones),lainstalacinydesinstalacindeaplicacionesse
llevaacaboatravsdepaquetes.Esimportanteconoceradecuadamentecmofuncionaelsistemadepaquete
deDebian(DPKG)paragestionaradecuadamentelasaplicacionesquevanaformarpartedelsistemafinal.En
particular,esimportantetenerencuentalasdependenciasyconflictosentreaplicaciones,demaneraquela
(des)instalacindeunaaplicacindeterminadanoafectealbuenfuncionamientodeladistribucinfinal.

Sevanasealaracontinuacinalgunaspautasquedebenseguirsealahoradegestionarpaquetespara
conformarladistribucinfinalyminimizarriesgos:

Sedebeutilizarunadistribucinbaselomsestableposible,comoeselcasodeDebianSargeoUbuntu
Breezy. Utilizar distribuciones inestables (Debian Sid o, en el momento de escribir este documento
(10/05/06),UbuntuDapper)puedeprovocarerrores,problemaseimprevistosvariosnodeseados.

A la hora de seleccionar una aplicacin para su inclusin en la distribucin, hay que controlar en todo
momentoquelasdependenciasdelamismatambinseinstalan.Adems,hayqueconfiarenelsistemade
dependenciasdelospaquetesdeDebian/Ubuntudemaneraquenospreocupemosdequeseinstaleel
paquetepadre(todassusdependenciasseinstalarnautomticamentegraciasaapt).Esdecir,cuandose
deseadisponerdeunconjuntoconcretodeaplicaciones,hayqueseleccionarelmenorconjuntodepaquetes
quegaranticeeldisponerdelasaplicacionesdeseadas(ynopreocuparseporinstalarmanualmentelas
libreras (u otros paquetes) de los que dependen; esto lo gestionar automticamente el sistema de
dependenciasdeDebian).

Cuandosedeseaeliminarunaaplicacindeladistribucinhayqueasegurarse,porunaparte,dequeno
provocaladesinstalacindeotrospaquetesquedependendeellayquepuedanserimportantesparaelresto

50
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

delsistema.Porotraparte,esconvenienteasegurarsedequenoquedanpaqueteshurfanos 1enelsistema
trasladesinstalacindeunaaplicacin.Paraello,esconvenienteutilizardeborphan,unaherramientaque
permitedetectarpaqueteshurfanosenelsistema.

2.5.CONFIGURACINDEAPLICACIONES.
Unavezsehaseleccionadounconjuntoconcretodeaplicacionesparaelsistemafinal,elsiguientepaso
consisteenconstatarqueelfuncionamientoylaconfiguracindelasmismassonlosadecuados.

Paraello,lomsrecomendableesdisponerdeunsistemabasedepruebasy,sobrel,irinstalandouna
aunalasaplicacionesdeseadas.Concadaunadeellas,convienellevaracabounprocesodevalidaciny
pruebasparagarantizarquelaaplicacinfuncionacomoseespera.Estodependerdelaaplicacinconcreta.Por
ejemplo,sisetratadeunaaplicacindeescritorio(pongamosunnavegadorweb),hayquegarantizarquela
entradacorrespondientedelmendeaplicacionessecreacorrectamente,quelaaplicacinselanzaenelidioma
adecuado,queeldirectorioparaguardarlasdescargaseselquesedesea,quelapginaconfiguradacomoinicio
escorrecta,etc.Sinoeselcaso,habrqueanalizarlosficherosdeconfiguracindequeconstalaaplicacinpara
saberquycmollevaracabolapersonalizacinconrespectodelaconfiguracinpordefectodelamisma.

Unavezsehaconstatadoquelaaplicacinfuncionadeacuerdoanuestrasnecesidadeshayqueacotar
losficherosdeconfiguracinquesehanmodificado.Estoserimprescindibleparacontinuarconelprocesode
generacindeladistribucinfinal.Cmoprocederapartirdeestemomentodependerdelsistemadegeneracin
queseestutilizando.EnelcasodeGuadalinexv3,sedescribeenelapartadoPersonalizacindeladistribucin.

1 Unpaquetehurfanoesunpaquetequeseinstalenelsistemaporqueotropaquetedependadelyquesigueexistiendoen
elsistemacuandosedesinstalasupaquetepadre.steeselcaso,normalmente,delibrerasnecesariasparaqueuna
aplicacinfuncione.Cuandoestaaplicacinsedesinstalayningnotropaquetedependedelalibreraanteriorsedicequese
haquedadohurfanas.

51
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

3.SISTEMANOLIVE
3.1.OBTENERTODOLONECESARIO
3.1.1.DOSSABORES
Elsistemadegeneracinsepuedeobtenerdedosformasdistintas:
Un.tardeunsistemayaconfiguradoconideadetrabajarconelenchroot.
Montandoelsistemadegeneracinpartiendodelcdigofuenteexistenteenelsubversion

svncohttp://ws314.juntadeandalucia.es/guadalinex2005/trunk/generation_system/no_live/cdimage/

3.1.2.CMOSEHAGENERADOEL.TAR?
Acontinuacinselistanlospasosseguidosparaobtener,partiendodelcontenidodelrepositoriode
guadalinex,unsistemadegeneracinlistoparausar.

Generaundirectorioguadalinexv3/conunsistemabase:

debootsrapbreezyguadalinexv3/http://es.archive.ubuntu.com/ubuntu

Hacemoschroot:

sudochrootguadalinexv3

52
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Ponemosapuntoelsistemamedianteconfiguracionesvarias:

echo"es_ES.UTF8UTF8">/etc/locale.gen

localegen

echo"127.0.0.1localhost$HOSTNAME">/etc/hosts

Instalacindelasdependencias:

aptgetinstallsubversiondebootstrapdevscriptsbuildessentialpythonbcpythonaptmkisofsg++3.4fakeroot

Aadimosunusuarioyledamospermisos:

adduserguada

echo"guadaALL=(ALL)ALL">>/etc/sudoers

suguada

Realizamosuncheckoutdelaramatrunkdelsubversiondeguadalinex

svncohttp://ws314.juntadeandalucia.es/guadalinex2005/trunk

Nosdesplazamosageneration_system/no_live/cdimage/

53
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Rellenamoscdimage/ftp/con:

dists/

indices/

pool/

ElcontenidodedichosdirectoriospuedeobtenersedesdeunCD.

Seconfiguranlasrutasabsolutasen:

cdimage/uda/conf/di_flamenco.conf

cdimage/uda/conf/flamenco.conf

Generacindeunnuevopaqueteubuntukeyring.
EsnecesariotenerunclaveGPGparafirmarelRelease.gpgdelrepositorioqueseincluyeenelCD.Por
ello,sehageneradounpardeclavespblica/privadaconnombre"Guadalinexderivada"yfingerprint:CADFFC1A
A esta clave generada se le ha importado las claves contenidas en ubuntukeyring (gpg import
fichero.gpg)paraasobtenerunanillodeconfianzamsamplio,esdecir,conlasclavesimportadas,tenemos
confianzasobreelrepositoriodeUbuntuysobreelrepositoriodelaJuntadeAndaluca.
Sustituimoslaclavecontenidaenelpaqueteubuntukeyringporlaclavepblicagenerada:

cp.gpg/pubring.gpgubuntukeyring2005.01.12.1/keyrings/ubuntuarchivekeyring.gpg

54
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Compilamoselpaquete:

cd

cdubuntukeyring2005.01.12.1

debuilducus

Lospaquetesobtenidos.udeby.debsustituyenaloscontenidosencdimage/ftp/pool/main/u/ubuntu
keyring/.Trasincluirlosnuevospaquetes,esnecesariocambiar:
Elfingerprintqueestconfiguradoencdimage/etc/config
LavariableSIGNING_KEYIDcontenidaencdimage/debiancd/CONF.sh

Acontinuacin,copiamoselnuevopardeclavesaldirectoriocdimage/secret/talque:

secret/

`dotgnupg

|pubring.gpg

`secring.gpg

55
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

3.2.ARQUITECTURADELSISTEMADEGENERACIN
ElsistemadegeneracinmsactualseencuentrabajoelrepositoriodeGuadalinexeneldirectorio
trunk/generation_system/no_live/cdimage,contenidosbajodichodirectorionosencontramoscon:

bin/(Ejecutables)

debiancd/(Contieneel~80%delalgicadetodoelsistemadegeneracin)

etc/(Configuracionesvarias)

ftp/(Contenidosdepaquetes,documentacineimagenes)

germinate/(Aplicacinencargadadegenerarlistas)

log/(Registrodeinformacin)

scratch/(Eldirectoriotemporal)

secret/(ContienelaclaveGPG)

uda/(UDA,UnindeDistribucionesAutnomas)

windows/(Datosdewindows)

56
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Acontinuacin,sedescribirnlosdirectorioslistadosanteriormente.

3.2.1.BIN/
Directorioquecontienescriptsvarios,cabedestacarlaexistenciadeunejecutablellamadogenerate_no
live.sh,dichoejecutableeselpadredetodoslosdemsscriptstiles.
Muchosdelosscriptscontenidosenestedirectorioyanosonusados,ntesequeGuadalinexv3est
basadaenUbuntuBreezy,cuandocomenzeldesarrollodeGuadalinex,Breezyannoeraestableyportanto
eranecesariomantenersincronizadoselconstanteflujodepaquetesquehabaenelrepositoriodepobrezas.Por
estemotivohayvariosejecutablesconfinesdesincronizacindepaquetesqueyanosonusados.

57
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

bin/

|README

|compileconf

|difftasks

|findmirror

|functions.sh

|generate_nolive.sh<Script"padre"

|germinatetotasks

|listseeds

|nextbuilddate

|notused(Scriptsnousados)

||anonftpsync

||buildimageset

||...

|rungerminate

|updatedebs

|updatedist

|updateindices

|updateinstalleri386

|updatelocalindices

|updatepool

|updatetasks

|updateudebs

`upgrader

58
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

GENERATE_NOLIVE.SH
Eselencargadodegestionartodoelproceso,obtienelaslistasnecesarias,lasconvierteentareas,
actualizalosdatosdelrepositoriolocalydapasoadebiancd.

UPDATEUDEBS
DentrodeesteficherohayunavariableMIRROR.Sidisponedeunmirrorlocal,cambieestavariable.Al
ejecutarestescript,sedescargarantodoslos.udebnecesariosyseactualizarnlosyaexistentes.Todoslos
.udebseirncolocandoenftp/pool/

UPDATEDEBS
DentrodeesteficherohayunavariableMIRROR.Sidisponedeunmirrorlocal,cambieestavariable.
Al ejecutar este script, se descargaran todos los .deb necesarios excluyendo los listados en
uda/lists/exclude
Todoslos.debseirncolocandoenftp/pool/

UPDATEINSTALLERI386
Sincronizaporrsynceldirectorioftp/dists/breezy/main/installeri386

UPDATEINDICES
Sincronizaporrsynceldirectorioftp/indices

UPDATEPOOL
Enmascaraatodoslosscriptsanteriores:

updatepoolall(Actualizatodo)

updatepooludebsdebs(nicamenteactualizalospaquetes)

updatepoolindices(nicamenteactualizaindices)

59
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

3.2.2.DEBIANCD/
ConjuntodeherramientasparagenerarCDsinstalablesbasadosendebianinstaller.

3.2.3.ETC/
Bajoestedirectorioseencuentraelficheroconfig,enelcualsedefinenvariablesvarias:nombredel
proyecto,keyid,...

3.2.4.FTP/
Enestedirectorioesdondeseencuentranlospaquetes,ladocumentacinylasimgenesaincluir.Hade
serrellenadocon:
dists/
pool/
indices/

3.2.5.GERMINATE/
Consisteenunprogramaenpythonqueobtienelistasdepaquetes,lalgicaescomplejaperoesmuytil
paragenerarlaslistasdeformajerrquica.Alpasarlevariospaquetes,germinategeneraunaseriedelistasen
funcindedichospaquetesqueserntilesparagenerartareasposteriormente.Aunquepodraprescindirdel,
esrecomendableusarloporqueayudaenlagestindedependencias.

3.2.6.LOG/
Enestedirectorioseescribeelregistrodelaltimageneracin.

3.2.7.SCRATCH/
Estedirectorioesdecontenidovariable:

60
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

scratch/

guadalinex/

apt/

debiancd/

i386/

____.list

MD5SUMS

____.iso

debootstrap/

germinate/

tasks/

tmp/

3.2.8.SECRET/
EstedirectorioestcontenidalaclaveGPGusadaparafirmarelReleasedelrepositoriodelcd.

secret/

`dotgnupg

|pubring.gpg

`secring.gpg

3.2.9.UDA/
Bajoestedirectorio,nosencontramosconcuatrosubdirectoriosqueintentanfacilitaralgunastareasala

61
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

horaderealizarcambios.

conf/

isolinux/

lists/

pkgs/

CONF/
Enestedirectoriosepodrnencontrardiversosficheros.confusadosporbin/updatedistparagenerar
ficherosvarios(Release,Release.gpg,Packages.gz)queestarncontenidosenftp/dists/

ISOLINUX/
Todoslosarchivoscontenidosenestedirectoriosustituirnalosgeneradospordebiancd.

LISTS/
Enestedirectoriohaytreslistasbiendiferenciadas:
exclude
Todopaqueteenestalistanoseincluirnenelcd.NtesequeelsistemaestbasadoenlosCDsde
breezy,estalistaserunlistadodeaplicacionesqueseincluyenenelcddebreezyperoquenose
incluirnenelcddeunadistribucinuda.
include_breezy
Estlistaserincluidaenelcd,estalistaestarcontenidaportodopaquetequeseencuentreenel
repositoriodebreezyperoquenoseencuentrenenelcddebreezypordefecto.
include_uda
Tambinserincluidaenelcdestalistaqueestcontenidaportodopaquetequenoseencuentreen
elrepositoriodebreezy.

62
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

PKGS/
Estedirectorioesdevitalimportancia.Alincluirun.debenestedirectorio,bin/upgrader(lanzadodesde
generate_nolive.sh)locopiaralpool/sinoexisteya,oenelcasodequeexistierasecopiarasifuerauna
versinmsactualquitandodelpool/laversinmsantigua.Slosecopiarsielpaqueteesmayorestrictoque
laversinexistenteenelpool.

3.2.10.WINDOWS/
Bajoestedirectorioestcontenidounaseriededatosyunscriptquelanzaunnavegadorconayuda
sobreguadalinexenwindows.

3.3.GENERACIN
Primero,enunchroot,colocamosalusuariocorrecto,enellugarindicado:

sudochrootguadalinexv3

suguada

cd~/no_live/cdimage/

Podrahacerseconelusuarioroot,peropormotivosdeseguridadespreferibletrabajarconunusuario
sinpermisosdeadministracin.
Posteriormente,desdeeldirectorio.../cdimage/realizamoslacargadelarchivo"poner_a_punto".

.poner_a_punto

Ejecutamoselcomandonirvana:

generate_nolive.sh

63
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Recogemoslaisoqueseencuentraen/scratch/guadalinex/debiancd/i386
Quesloquehaocurrido?generate_nolive.shhallamadoaunaseriedeejecutablesqueponentodo
apuntoparaquedebiancdgenereunaisocorrecta.

3.4.ELINSTALADOR
LainstalacindeGuadalinexsecomponededosfasesbiendiferenciadas:
Primerafase:Debianinstaller
Segundafase:baseconfig
El cdigo fuente ms actualde los paquetes del instalador de Guadalinex puede encontrarse en el
subversionbajoeldirectorio:/guadalinex2005/trunk/no_live_installer/default/src.

3.4.1.DEBIANINSTALLER
La primera fase de la instalacin es gobernada por debian installer con algunas modificaciones
realizadasporUbuntualasqueasuvez,selehanrealizadoalgunasmodificacionesparaGuadalinex.Escomn
verescritodebianinstallercomodiytambinescomnverreferenciasaubuntuinstaller(ui).

64
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Laprincipalvirtuddedebianinstalleressugranmodularidad.Todoendebianinstalleresunudeb
(oficialmentesepronunciamicrodeb).Prcticamente,esigualqueunpaquetedebianestndarperoselepermite
infringirlapolticadedebianenciertospuntosparaqueelpaqueteseamsligero.Apartirdeahoracuando
hablemosdeunmduloendebianinstaller,estaremoshablandodeunudebyviceversa.
Acontinuacin,sedarnunasnocionesbsicassobrelosprincipalesrolesdentrodelinstalador:
debconf
mainmenu
anna
discover

DEBCONF
Todaconfiguracindeunpaquetesehaceatravsdedebconf,estacapaesdevitalimportancia.
Cadaconfiguracintiene:
Unaopcinpordefectoconfigurable.
Una prioridad, dicha prioridad puede tener valor: low, medium,high y critical.Silaprioridaddel
sistema es critical, slo se mostrarn las preguntas de debconf con prioridad de critical, si la
prioridaddelsistemaeshigh,semostrarnlaspreguntasdedebconfhighycritical...Esdecir,segn
la prioridad del sistema, se mostrarn las preguntas con dicha prioridad y todas las de mayor
relevancia.ElinstaladordeGuadalinextienelaprioridaddelsistemaacritical.

65
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Gracias al sistema de prioridades podemos facilitar la vida al usuario evitando preguntarle


configuraciones.
Otro punto de que posee un gran potencial es su variedad de frontends: texto, ncurses, gtk (en
desarrollo),...
Comoconsecuenciadeestesistema,podemospasaralinstaladorunficherodetextoplano(llamado
preseed)conconfiguracionesvariasparadistintosprogramas,Guadalinextienedospreseedquesecarganen
funcindelosparmetrosdearranque.Seencuentranencdimage/debiancd/data/breezy/preseedconnombres
uda.seedyudacheck.seed,esteltimoeselquesecargaalarrancarelinstaladordeGuadalinexenmodo
"testcd".nicamentedifierenenestalinea:

dicdromchecker/startbooleantrue

Elficherouda.seedeselpreseedquesecargapordefecto,algunosejemplos:
baseconfigtzconfig/choose_country_zone_multiplestringEurope/Madrid(mainland)

baseconfigbaseconfig/installlanguagesupportbooleantrue

xserverxorgxserverxorg/config/inputdevice/keyboard/layoutstringes

Laprimeralineaseleccionalazonahoraria,lasegundahacequeseinstaleelsoportedelenguajesyla
terceralineaseleccionapordefectoeltecladoespaol.

MAINMENU
Laimportanciadeesteelementoenlaprimerafasedelainstalacinresideenqueeselgestordetodo
mdulocargadoendebianinstaller.Cadamdulotieneunadependencia,porejemplo,nopodemosconfigurar
grubsiannosehadesempaquetadoelsistemabase.mainmenuseencargadegestionarquemduloes
accesibleencadamomentosegnsusdependenciasydapasoalsiguientemdulosegnsuprioridad.

66
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

ANNA
Susignificadoes:Anna'sNotNearlyApt,eselAPT(AdvancedPackagementTool)dedebianinstaller
enfocadoasermuchomsligeroyconnicamentelasfuncionesnecesariasparaelinstalador.

DISCOVER
Por ltimo, mencionar una pieza clave de debian installer que se encarga de la autodeteccin de
hardware,discoverreconoceyproponeatravsdedebconfconfiguracionessegnelhardwaredetectado.

3.4.2.BASECONFIG
Enelprimerarranquetraslaprimerafasedelainstalacin,baseconfigtomarelcontroldelsistemay
harlasconfiguracionesfinales.
El fichero pkgsel contenido en guadalinex2005/trunk/no_live_installer/default/src/baseconfig/base
config2.67uda/lib/menu/dirigelamayorpartedelasegundafasedelainstalacin,dentrodeesteejecutable,se
llamaasuvezavarioscomponentes:
udapostinstall
Seencargadademostrarlabarradeprogresodelainstalacin.
udapostconfig
Seencargadepreguntardatosalusuario.
udapostconfigbackend
Seencargadedardealtaelusuario,configurarlared,ponerlosrepositorios,...
udagoodbye
Muestraunmensajededespedida.

67
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

3.4.3.FASESDELAINSTALACIN
bienvenida
particionado
instalacindelospaquetesmsbsicos
copiadepaquetesaldisco
instalacindelcargadordearranque
instalacindelrestodepaquetes
Altadeusuario

68
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

3.5.BRANDING
3.5.1.CAMBIARMENSAJEDEBIENVENIDA:UDAFIRSTMESSAGE
udafirstmessageesunmdulodesarrolladoporGuadalinexparamostrarunmensajealiniciodela
instalacin. El cdigo fuente de este udeb se puede encontrar en
guadalinex2005/trunk/no_live_installer/default/src/udafirstmessage/udafirstmessage0.05/ Una vez en el
directorioindicadodebemoseditareltemplatequeseencuentraeneldirectoriodebian/conelnombreuda
firstmessage.templates.
Trasrealizarlasmodificacionespertinentesrecompilamoselpaquete:

debuilducus

Acontinuacinhemosdeinsertaresteudebdentrodelinitrdporquealserunodelosprimerosudebs
quesecarganenelsistema,esnecesarioqueseencuentreenestecomponente.Por tantoprocedemosa
generarunnuevoinitrdconesteudeb,paraellousaremosunpaquetellamadodebianinstaller.

69
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Nosdesplazamosaldirectorioguadalinex2005/trunk/generation_system/no_live/debianinstaller/debian
installer20050317ubuntu19/buildyvemoselcontenidodedirectoriolocaludebs/

$lslocaludebs/

mainmenu_1.07ubuntu1_i386.udeb

udafirstmessage_0.05_i386.udeb

udaprepartmanmessage_0.01_i386.udeb

Como podemos observar, hay contenidos tres paquetes: mainmenu, udafirstmessage y uda
prepartmanmessage,dichosudebshansidogeneradosporyparaGuadalinexparaaadirmensajesextras
duranteelprocesodeinstalacin.
Acontinuacindebemoscopiarel.udebquehabamosgeneradoeneldirectoriolocaludebs/ygenerar
denuevoisolinux,paraelloejecutaremoseneldirectoriobuild/
Cambiamosaldirectoriobuild/yejecutamos:

dpkgscanpackages./dev/null>Packages

Ashemosregeneradolaslistasdepaqueteslocales,consecuentemente,elsistemasabrquepaquetes
haynuevosomodificados.Trasello,ejecutamos:

fakerootmakebuild_cdrom_isolinux

Alfinalizar,obtendremosundirectoriodest/queasuvez,contieneundirectoriocdrom/esteltimoes
elquenecesitamoscambiar.Paraello,realizamoslosiguiente:

70
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

rmrf../../../cdimage/ftp/dists/breezy/main/installeri386/current/images/cdrom/

cprdest/cdrom../../../cdimage/ftp/dists/breezy/main/installeri386/current/images/

Llegadosaestepunto,yanoesnecesariotocarnadams,debiancdseencargardeusarlosdatos
quelehemosdejadoparagenerarlasimgenesdearranquecorrectamente.

3.5.2.CAMBIARIMGENESDELASEGUNDAFASEDELA
INSTALACIN:UDAPOSTINSTALL
Las imgenes que se muestran durante la segunda fase de la instalacin estn contenidas en
guadalinex2005/trunk/no_live_installer/default/src/udapostinstall/udapostinstall0.21/src/branding/Guadalinex/es,
trasmodificarlas,habraqueregenerarelpaqueteeincluirloenelrepositorio,paraello,unavezeneldirectorio
udapostinstall0.21/recompilamoslasfuentes:

debuilducus

Y sustituimos los paquetes contenidos en pool/main/u/udapostinstall/ por los generados: uda


postinstall_0.211_i386.debyudapostinstallguadalinexbranding_0.211_i386.deb

3.5.3.CAMBIARENTRADADEGRUB
Siobservamoslospaquetescontenidosbajo/guadalinex2005/trunk/no_live_installer/default/srcveremos
quehaydospaquetesrelacionadosconelcargadordearranque:grubygrubinstaller.Ladiferenciaesquegrub
installeresunudebqueenlaprimerafasedelainstalacinseencargadepreparareldiscoparaarrancary,por
tanto,nospermiteaccederalasegundafasemientrasquegrub,eselpaquete.debqueseinstalaenlasegunda
fasedelainstalacin.
Esdecir,siqueremoscambiarlaentradadegrubparaquenoseveaenelprimerarranquelaentradaoriginalde
Guadalinexesnecesariocambiargrubinstaller.Desdeeldirectoriosrc/ejecutamoselcomando:

71
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

GUADA_FICHEROS=$(fgreprGuadalinexgrub*|grepv.svn|awk'BEGIN{FS=
":"}{print$1}')

NosdevuelvetodoslosficherosquecontenganGuadalinex.Podemoshacerlasustitucindelasiguiente
forma:

sedi"s/Guadalinex/Guadalinexparapeluqueros/g"$GUADA_FICHEROS

Tras ello, nos queda regenerar cada paquete y sustituir a los actuales, se encuentran en
cdimage/ftp/pool/main/g/grubycdimage/ftp/pool/main/g/grubinstaller.

3.5.4.APARICIONESDEGUADALINEXENDEBIANINSTALLER
Estamosanteuncasoidnticoalanteriorapartado,nosdesplazamosalcdigofuentedemainmenu:
guadalinex2005/trunk/no_live_installer/default/src/mainmenu/mainmenu1.07ubuntu1yejecutamos:

sedi"s/Guadalinex/Guadalinexparaella/g"$(fgreprGuadalinex*|grepv.svn)

Trasello,recompilamoseludebyhabraqueincluirloenisolinux,portantohabraqueseguirlospasos
descritos en "Cambiar mensaje de bienvenida: udafirstmessage". Tambin apariciones de Guadalinex en
partman,elprocedimientoseraequivalente.

3.6.EJEMPLOSPRCTICOS
3.6.1.INCLUIRUNNUEVOPAQUETE
Sepuedendardoscasos:
1. Cambiarunpaquetecuyonombreyversinesigualquelaquehayenelpool/
Enestecaso,lomsfcileshacerloamano,paraellosimplementecolocaremoselpaqueteensu

72
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

directoriocorrespondientebajopool/main/{carcter}opool/main/lib{carcter},siendocarcterla
inicialcorrespondientedelpaquetefuente.Ntesequelaestructuracorrectadistinguelosdirectorios
dondeestncontenidaslaslibreras(lib{carcter})conelrestodepaquetes({carcter}).Eldirectorio
donde debe estar contenido un paquete debe ser: ftp/main/{carcter}|lib{carcter}/{nombre del
paquetefuente}/.
Porejemplo,elpaquetebinariomounttienecomopaquetefuenteutillinux,portantodebera
encontrarseenftp/main/u/utillinux.
2. Incluirunnuevopaqueteoincluirunaversinmsnuevadelaquehayactualmente.Paraello,se
puedehaceramanoodeunaformaunpocomscmodaqueescolocarelpaquetedeseadoen
guadalinex2005/trunk/generation_system/no_live/cdimage/uda/pkgs,yaquetodopaquetecontenido
bajoesedirectorioserindexadoycolocadocorrectamenteenelrepositorio.

NOTAIMPORTANTE:Paraqueunpaqueteseaincluidoenelcd:
elpaquetehadeestarenpkgs/

debe estar en el pool/ y a la vez listado en uno de los dos archivos siguientes:
guadalinex2005/trunk/generation_system/no_live/cdimage/uda/lists/include_breezy o
guadalinex2005/trunk/generation_system/no_live/cdimage/uda/lists/include_uda
Trasloscambiosrealizados,ejecutaramosgenerate_nolive.sh

3.6.2.BORRARUNPAQUETE
Antesdeborrarunpaquetedebemosestarsegurodeloqueestamoshaciendopuestoquesialgn
paquetequevayaainstalarsedependededichopaquete,lainstalacinfallar.Elerrorqueseobtendraseraun
pantallazoennegroenlasegundafasedelainstalacin.
Siestamossegurosdequenovamosaromperlascosas,nicamenteesnecesarioborrarlodelpool/
aunque tambin sera recomendable borrarlo de la lista en la que estuviera contenido
cdimage/uda/lists/include_breezyocdimage/uda/lists/include_uda).Otraopcinseranoborrarelpaquetedel

73
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

pool/sinoquenicamenteborrarlodelalista,aselpaquetenoseincluiraenelcd.

3.6.3.CAMBIARELTEXTODEISOLINUX
Para cambiar el texto de isolinux simplemente editamos el archivo
guadalinex2005/trunk/generation_system/no_live/cdimage/uda/isolinux/isolinux.txt.
Todoslosarchivoscontenidosbajocdimage/uda/isolinuxsecopiarancadavezquesegenereunnuevo
cd,portanto,cualquiercambioalaimagen(splash.rle)oalostextosdeayuda(f1.txt,f2.txt,...)tendrnefecto
inmediato.

3.6.4.CAMBIARLOSREPOSITORIOS
Losrepositoriossecolocanprcticamentealfinaldelasegundafasedelainstalacin.Noesfactible
ponerestaslistasdentrodeunpaqueteparaquealdesempaquetarlosecoloquenensusitiocorrectamente(Por
ejemplo,sources.listen/etc/apt/)puestoqueusamosaptparalainstalacindelospaquetesysidurantela
instalacindeunconjuntodepaquetessecambiaelsources.listaptdaraerror.
Portantohayquecambiarlosrepositoriosunavezterminadalainstalacindetodoslospaquetes.Esto
se hace en udapostinstall, para ello, nos desplazamos al cdigo fuente de dicha aplicacin
guadalinex2005/trunk/no_live_installer/default/src/udapostinstall/udapostinstall0.21, editamos src/uda
postconfigbackend.sh,ycambiamoslassiguienteslineas:

74
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

echo'#TITLE:SitioprincipaldeGuadalinexenlaJuntadeAndalucia'>>/etc/apt/sources.list.uda

echo'#ID:jda'>>/etc/apt/sources.list.uda

echo "deb http://repositorio.guadalinex.org/ubuntubreezy breezy main restricted universe multiverse" >>


/etc/apt/sources.list.uda

echo"debhttp://repositorio.guadalinex.org/guadalinexflamencoflamencomain">>/etc/apt/sources.list.uda

echo"debhttp://repositorio.guadalinex.org/guadalinexflamencoflamencoupdatesmainrestricteduniversemultiverse">>
/etc/apt/sources.list.uda

echo"debhttp://repositorio.guadalinex.org/guadalinexflamencoflamencosecuritymainrestricteduniversemultiverse">>
/etc/apt/sources.list.uda

echo"debhttp://repositorio.guadalinex.org/guadalinexflamencoflamencobackportsmainrestricteduniversemultiverse">>
/etc/apt/sources.list.uda

echo'#END'>>/etc/apt/sources.list.uda

Acordeanuestrasnecesidades,podramosaadirnuevosrepositoriosomodificarloyaexistentes.Enel
mismonivelqueelejecutableudapostconfigbackend.sh,seencuentranlossiguientesficheros:
repositorio.guadalinex.org_guadalinexflamenco_dists_flamencobackports_main_binaryi386_Packages

repositorio.guadalinex.org_guadalinexflamenco_dists_flamencobackports_multiverse_binaryi386_Packages

repositorio.guadalinex.org_guadalinexflamenco_dists_flamencobackports_restricted_binaryi386_Packages

repositorio.guadalinex.org_guadalinexflamenco_dists_flamencobackports_universe_binaryi386_Packages

...

75
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

76
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Dichosficheroscontienenlabasededatosdepaquetesqueseactualizaalhacerun"aptgetupdate".
Coloquemosenunsistemadebiancualquieralosrepositoriosquevayamosausarenladistribuciny
actualizamos la lista de paquetes con "aptget update". Tras ello, recogemos las listas descargadas que se
encuentran en "/var/lib/apt/lists/" y las colocamos en el directorio
"guadalinex2005/trunk/no_live_installer/default/src/udapostinstall/udapostinstall0.21/src" sustituyendo o
aadiendosegnconvenga.
Dentrodelscriptyamencionado"udapostconfigbackend.sh"hayunalineaquecontiene:

mv/usr/share/udapostinstall/backend/repositorio*/var/lib/apt/lists

DichalineatendraquesereliminadaenelcasodequenoseusaranlosrepositoriosdeGuadalinexy
habraqueaadirunanuevaquecopielaslistasaadidas.Estosarchivosnopertenecenaunpaquete(seponen
afuego)comoentodadistribucindebianporquesondatosvariables.

3.6.5.CAMBIARLACLAVEGPG
Escomnqueunaderivadaquieratenersupropiaclaveprivadasinquenadiemslaposea,porellose
describecomogenerarunanuevaclave,recompilarlospaquetesnecesariosyloscambiosquehabraquehacer
enelsistemadegeneracin.
Conelpaquetegnupginstaladoejecutamos:

gpggenkey

Elegimostodaslasopcionespordefectoycuandopreguntelaclavepulsaremosintro.Obtendremosen
nuestrodirectorio$HOME/.gnupg/unpardeclavespblica(pubring.gpg)yprivada(secring.gpg).Esimportante
recalcarlaimportanciadenotraspasarelarchivosecring.gpganadie.
Siejecutamosgpg$HOME/.gnupg/secringobtendremosinformacindelaclave,porejemplo:

77
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

sec1024D/5318812F20041119CarlosParraCamargo<carlospc@gmail.com>

uidCarlosParraCamargo<cparra@emergya.info>


Enestecaso,elKEYIDdelaclavees5318812F.Elsiguientepasovendraporrecompilarelpaquete
ubuntukeyringconlanuevaclaveyconfigurarelsistemadegeneracin.Estospasosestndescritosenla
primeraseccin,enelapartado"Cmosehageneradoel.tar?".

78
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

4.SISTEMALIVE
4.1.INITRAMFS:DONDETODOEMPIEZA
4.1.1.QUES?
Elinitramfseslaversinmodernadelantiguoinitrd.Peroseguroqueestononosdicegrancosa.

Ysidecimosqueesunsistemamnimoquesemontaenlamemoria,antesdemontarelsistema
(instaladoono)quesearrancardespus,yasabemosalgoms.Aunque,probablemente,annospreguntemos
quinlomonta,porqu,qusehaceahyquetienetodoestoqueverconlossistemaslive.

Figura9:Arranquedeunsistemaoperativocualquierayelde
GNU/Linux

79
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Puesbien,paraaclararnosunpoco,lomejoresempezarporelprincipio:Cmoarrancaunsistema
operativoyenconcretoGNU/Linux?(Figura9)

SegnvemosenlaFigura9,unavezescargadoelkernelenmemoria,juntoconlsecarga(siexiste)el
initramfs,selanzalaejecucindelkernelystebuscadndedebearrancarladistribucin.Sisecargaun
initramfs,steleservirdesistematemporaldesdeelquedetectareldiscodondeestladistroyhacerms
comprobaciones.

Elinitramfses,enconclusin,unconjuntomnimodedirectoriosyarchivosconlosqueelkernel,
durantesusprimarasfasesdecargayejecucin,montaunpequeosistemalinuxtemporal,enlamemoria,quele
permitehacerdeteccionesdehardwarebsicas.Ascomoejecutarpequeosprogramasoscripts.

Enrealidadesunpequeosistemalivequesirvealkernelparapodersermsflexibleysoportarms
hardware.Tambinparalanzarprogramastipousplash,paratenerarranquesgrficossintenerqueparchearel
kernel.

Figura10:DelasBIOSal"init"

Unavezselocalizaelsistema(instaladoolive),semontaysearrancasuprogramaprincipal,esdecir,el
init.ElencargadodearrancarlossistemasGNU/Linuxactuales.

Lautilidadparaunsistemalivedeuninitramfsesobvia,elinitramfseselsistemaliveporexcelencia.
Yalotieneyhacetodo.Slonecesitamospasarleunadistroquearrancaryconvencerle(4.2.3 Squashfs+
Unionfs)dequeesunsistema instalado yquelopuedearrancar.Estoesbsicamentenecesarioparapoder
arrancarladistrocompleta,enmemoria,ynoslounsistemamnimocomoeselinitramfs.

4.1.2.ESTRUCTURA
ParaGuadalinexv3secreunsistemalivebasadoenelinitramfsdeUbuntuysuestructura(Figura11),

80
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

/
|bin
|conf
||halt
||initramfs.conf
||install.desktop
|`modules
|etc
|init
|lib
|modules
|sbin
|scripts
||functions
||initbottom
||initpremount
||`acpid
||inittop
||`usplash
||live
||livebottom
|||adduser
|||ejectcd
|||fstab
|||hacks
|||hwdetect
|||init
|||log
||`md5
||livepremount
|||local
|||setup_image
||`tmpfs
`usr
`lib
`usplash

Figura11:Estructuradelinitramfs
(simplificada)

queaadauntipodearranque(LIVE)alosyasoportadosporestesistema(LOCAL:paraarrancardesdediscos
conectadoslocalmentecomodiscosdurosIDE,SCSI,SATA,usb,firewire,etc;y NFS:paraarrancarsistemas
remotosvaLTSP).

Elscript/init(dentrodelinitramfs)eselprimeroenejecutarsealcargarseelinitramfsyelqueselleva
elpesoycontroldetodoloquepasahastaquesecambiaalsistemafinal(instaladoolive).

Y su forma de funcionar es anloga al propio init de un sistema GNU/Linux normal. Es decir, va


ejecutandoscriptsporniveles,estandostosdistribuidosendirectorios.

81
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Figura12:Secuenciadeejecucindel"init",dentrodel"initramfs"

4.1.3.ARCHIVOSPRINCIPALES
Hagamosunrepasodelosarchivosprincipalesdelinitramfs.Unossonimportante porquerealizan
tareasimportantesyotrosporquesonlosquepodremosusarparapersonalizaciones.

/etc/mkinitramfs/initramfs.conf:Eselarchivodeconfiguracindelprogramamkinitramfsquegenera
elarchivoinitramfs.Hayquetenerencuentaqueestearchivoestaubicadoenelsistemadesdeelque
seejecutaelmkinitramfs,generalmentedesdeelquesegeneraladistribucin,nodesdelapropia
distribucinqueseestgenerando.
[initramfs]/init:Esteeselscriptprincipaldentrodelinitramfs.Llevaelcontroldelaejecucindentrodel
initramfs.
[initramfs]/scripts/live : Script donde se monta el sistema live con unionfs. Aqu est la funcin
mountroot,llamadadesdeel/inityencargadadelestablecerelpuntodemontajedondeestarel

82
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

sistemafinal.
[initramfs]/scripts/livepremount/:
local:EstescriptseencargadelocalizarladistribucinenCDs,discoslocales,conectadospor
USB,etc.BuscaelarchivoMETA.squashfs
setup:Montalaimagencomprimidadeladistribucin,parapoderserusadaposteriormente.
[initramfs]/scripts/livebottom/:
init :Aqusecambialonecesariodelsistemadescriptdeiniciodeladistribucinparaevitar
ejecutarscriptnonecesariosopeligrososenunsistemalive.
hwdetect :Eselencargadodedetectaryconfigurarelhardwaredelamquinaenlaquese
arranque.
hacks : Sirve para meter soluciones a bugs temporales, o cosas especficas de nuestra
distribucin. Cualquier cosa que no cuadre en ningn otro script, que sea temporal o muy
especfico,deberamosponerloaqu.
[initramfs]/tmp/initramfs.debug>/var/log/initramfs.debug:Esteeselarchivodondeseguarda(sise
le pasa al arranque la opcin debug) la informacin de depuracin de los scripts. Aqu podremos
encontraralgunapequeaayudaaentenderloquepasa,encasedefallaralgoenelarranque.

4.2.SQUASHFSYUNIONFS:MSENMENOS
4.2.1.SQUASHFS
Squashfsesunsistemadeficheroscomprimido.Bien,pero...yesoqusignifica?
Vayamosporpartes.Unsistemadeficheros,grossomodo,esunarelacinentreelespacioundiscoy
lainformacinquecontiene.Eso,msinformacinsobrelaposicindecadadato,surelacinconotrosdatosyun
sistemadepermisos.Esloquehacequeloqueenrealidadesunmontnde bytes agrupadosen clusters,
sectoresydems,tantoelsistemaoperativo,comolosprogramasynosotrosmismos,lovemoscomoarchivos,
directoriosyespaciolibre.

83
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Peronoesmsqueunamaneradeveresainformacin,unatraduccinaunaspectomsentendiblepor
nosotros.
Sabiendoesto,podemosdecir,queunsistemadeficheroscomprimido,esaquelcuyainformacinesta
comprimida,peroquenosotroslavemoscomosinoloestuviera.Esdecir,latraduccinyanoesdeclustersy
dems,sinodeporcionesdeinformacincomprimidaaarchivos,directorios,etc.
Esteprocesoesrelativamenterpidoyfcildehacer.Eldeleerdatosdeunsistemacomprimido.Pero
escribir, ya es ms complejo, ya que implicara reorganizar toda la informacin, hacer las modificaciones
pertinentesyvolveracomprimir.Porestarazngeneralmentelossistemasdeestetipo,sonsistemade slo
lectura.Estoquieredecir,quesepuedeleer,peronosepuedeescribirenellos.
Contodaestaintroduccintericaloquequeremosdeciresqueelsquashfsesunsistemadeficheros
conelquepodemosguardarmuchainformacinenpocoespacio,alguardarsedeformacomprimida.Peroque
esainformacin,unavezguardadaenesteformato,nopodemosmodificarla,sloaccederaellayleerla.
Claro,quesiemprepodremosregenerarelarchivocreadoconsquashfsapartirdelainformacinoriginal,
unavezmodificada.
Estetipodesistemastienegrandesventajasdecaraalossistemaslive,yaquenospermitemeter
distribucionescompletasenunCDnormal.Yentrelossistemasexistentesactualmente,steeselquenosha
dadomejorrendimiento,mejorratiodecompresin(mayorcantidaddedatosenelmenosespacioposible)yms
estable.
Peronoslosirveparasistemaslive,aunquesuusoenestetipodesistemassehadisparadoenlos
ltimos2aos.Deecho,secreooriginariamenteparasistemasmuypequeosempotradoscomoAccessPoints
pararedesWiFi(inalmbricas)ydispositivossimilares.

4.2.2.UNIONFS
Ya explicamos antes lo que es un sistema de ficheros, as que iremos directamente a explicar las
peculiaridadesdesteenconcreto.
Siunsistemadeficherosestndar(ext3,xfs,vfat,ntfs,etc)interpretaytraducelosclusters,sectoresy
bytes en ficheros ydirectorios,el unionfs loquehaceesinterpretardosomsdirectorios,consucontenido,y

84
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

mostrarlossuperpuestoscomootrodirectorio,consucontenido.
Peroelcontenidodeesteltimodirectorioresultanteesladiferenciaentrelosdirectoriosqueseest
interpretando.Paraverlomsclaro,tenemosestegrfico:

Figura13:AbstraccindelfuncionamientodelUnionfsysuvista
resultanteparaelusuarioylasaplicaciones.

85
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

4.2.3.SQUASHFS+UNIONFS
Haceyaalgntiempoquesevieneusandoel"squashfs"paralossistemaslive,porrazonesobvias.Pero
usarsistemasdeficherosydispositivosde"slolectura"tienebastanteslimitaciones.
Porejemplo,nopodemosmodificarconfiguracionesdeprogramasoinstalarnuevasaplicaciones.Esosin
contarconqueprepararelsistemaparafuncionarenmodolivesevuelvealgobastantecomplejoylioso.
ConlasumadeSquashfsyUnionfs,conseguimosmeterunadistribucinenteraenunCDyconseguir
arrancarlos en modo live, de forma sencilla y pudiendo escribir sobre la distro (cambiar configuraciones a
programas,instalaraplicaciones,etc).Estoaporteunenormevaloraadidoanuestradistribucinyfacilitamucho
latareademantenimientoymejorasdelpropiosistemalive.

4.3.SISTEMADEGENERACIN:GENLIVE,CHROOT,ETC
Paralageneracindeversioneslivedeladistribucinsehancreadosistemarudimentarioperoefectivo,
quenosautomatizarcasitodoelproceso.Estonoesnecesarioperosialtamenterecomendable.Principalmente
pordosrazones:
Deestamaneranosresultarmscomplicadoolvidarnosdepartesdelproceso.
Sitenemosalgnfallo,alserunmtodoestandarizado,sermsrpidamenteidentificableporcualquier
otrapersonaquenospudieraayudar.
Dentrodelelsistemadegeneracinhaydospartesimportantes.Porunladotenemoselsoftwareconel
quesegeneranlasimgenesyporotradndeycomosepreparaladistribucinparapodercrearstasimgenes.
Asquedividiremosyexplicaremoselsistemaenestasdospartes:
Genlive
Chroot

86
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

4.3.1.GENLIVE
Esunpequeoysencilloscriptquenosfacilitalatareadeejecutarciertoscomandos,paranotenerque
memorizarsusopcionesypoderautomatizarunpocomselprocesodegeneracindelaimagendelCDlive.
Esimportanteestarsegurosdehaberlimpiadobienlosrestosquepodamoshaberdejado,depruebasy
dems,enlossources(/media/distro/sources/,lugardondehemosinstaladoyconfiguradonuestradistro).Estolo
haremosconelscriptclean.shqueseproporciona(/usr/share/genlive/clean.sh)ycuyousoexplicaremosdespus.
Elscriptsellamagenliveysuusoeselquesigue:
$genlive[opciones]

Comosepuedeobservar,noescomplicado,puestoqueenlamayoradeloscasosnoesnecesario
pasarleningunaopcinalscript.
Pero,qupasacuandoejecutamosestescript?
Pues,almargendelascomprobacionesbsicasdesiexistenlosarchivosydirectoriosnecesariospara
crearsecorrectamenteladistro,loquesehaceescrearel initramfs paraconfiguradoparaarrancarenlive,un
archivocomprimidoconelcontenidodeladistribucinygenerarlaimagendelCD.
Portantolaspartesmsimportantes(bueno,lascomprobacionestambinloson...)delscriptson:
Primerosecopiaelkernelysegeneraelinitramfsadecuado:
cpa/boot/vmlinuz${KERNEL}${MASTER}/isolinux/vmlinuz
mkinitramfso${MASTER}/isolinux/initramfs${KERNEL}

Despussegeneralaimagencomprimidadeladistroinstaladaen/media/distro/sources:
mksquashfs${SOURCES}${MASTER}/META/META.squashfs

Y,porltimo,segeneralaimagendelCDquenospermitirarrancarenmodolive:
mkisofs l r J V "${VOLUMENAME}" hiderrmoved v b
isolinux/isolinux.bin c boot.cat noemulboot bootloadsize 4 bootinfo
tableo${OUTPUTIMAGE}${MASTER}

Ladefinicindelasvariablesusadasenlasotraspartes,seencuentranalprincipiodelscript:
KERNEL="2.6.129386"
SOURCES="/media/distro/sources"

87
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

MASTER="/media/distro/master"
ISOS="/media/distro/isos"
IMAGEPREFIX="gl_v3"
OUTPUTIMAGE=${ISOS}/${IMAGEPREFIX}$(date+%Y%m%d%H%M).iso
LOG_FILE="/var/log/installer.log"
SPLASH_IMAGE=""
VOLUMENAME="GuadalinexLiveSystem"

Claroqueestosvalorespuedensermodificadosdirectamenteenelscript(lomscmodoysegurosison
cambiosquesevanadarsiempre)opasndoleciertasopcionesal genlive.Aquseexplicanlasopciones
disponiblesycualesmodificanesosdatos:
Opciones:
h:verlasopciones.
x :noregeneralaimagencomprimidadeladistribucin.tilcuandoyahemosgeneradolaimagen
comprimida de la distribucin y tenemos que generar otra iso, porque hemos cambiado cosas del
initramfs, del isolinux, o de los extras, pero no de la distro. Esto nos ahorrar mucho tiempo en la
regeneracindelCD.
y:noregeneraelinitramfs.tilcuandoyasabemosquestaestayageneradaynoqueremosperder
tiempoconesooarriesgarnosaquesegeneremal.
k<kernelversion>:especificarunaversindekernel.Sesustituirlaversinpredeterminada(2.6.129
386)porlaespecificadaaqu.
s<splashimage>:especificarlaimagendelarranque.Secopiarelarchivodeimagenparaisolinux
especificadoenellugarcorrectoparapoderserusado.
o<outputimage> :especificar elnombre delarchivo iso. Esto incluye su path, porsupuesto. (Ej:
/tmp/mi_iso.iso)
v<volumename>:especificarelnombredelCD(esconelqueseidentificaelCDyqueapareceren
elnautilusalserstemontado).
p<imageprefix>:especificarelprefijodelnombredelaiso.Elnombrepordefectoessimilara"gl_v3
200605081050.iso"(cambiandolafechayhora,naturalmente).Siespecificramosotroprefijo,comopor

88
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

ejemplo"test",elresultadoseraunnombredelarchivoisotalque:"test200605081050.iso".
Lasltimascincoopcionespuedendefinirsedemanerapermanentedentrodelscriptenlasvariables
especificadasantes.

4.3.2.PAQUETESYSOFTWAREIMPLICADO
genlive:
clean.sh: ste es un script sencillo que se encarga de limpiar un poco el directorio donde
tenemosinstaladaladistribucinparaquenodeconflictosalarrancaroinstalarsedesdeelLive.
Est localizado en /usr/share/genlive/clean.sh, instalado ah por el paquete genlive, y es
convenienteejecutarloantesdegenerarunaimagen.
mksquashfs:Esteprogramanospermitegenerarlasimgenescomprimidasdelasdistribucininstalada.
Esusadoporgenliveysumododeempleofueradeesteentornomuysencilloesmuysimple.Slohace
faltaindicarledosparmetros:dequdirectoriovaahacerlaimagenyelnombredelarchivoagenerar:
$ mksquashfs /media/distro/sources
/media/distro/master/META/META.squashfs

mkisofs:Porelnombresepuedededucirquenovieneasermuydiferentequeelanterior,
aunqueparaarchivosiso,noparacomprimircon Squashfs.Aqulasopcionessonmuchasy
variadas,dependiendodequetipodeCDycomoeselcontenidodelmismo.Poresolomejores
dejarquegenliveelijalasopcionescorrectaspornosotros.
Syslinux(>Isolinux):ElpaqueteSyslinuxcontieneelprogramaIsolinuxysusarchivosdeconfiguracin.
Esungestordearranquepensadoparadispositivosextrables,preferentemente.Esdecir,paradisquetes,
CDs,usbs,etc.NosotrosusaremosenconcretoelIsolinuxqueestespecialmentediseadoparaCDs.
initramfstools(guadalinexlive):staesunaversinrealizadaparaGuadalinexv3delpaqueteoficialde
UbuntuBreezyconelmismonombre.Setratadeunpaquetequecontienelonecesarioparagenerarlos
initramfs delsistema.Ladiferenciaentreelnuestroyeloriginalesquelehemosaadidolosscriptsy
programasnecesariosparaquesepuedaarrancar,tambin,enmodolive.Nonosextenderemosmucho
msaquyaqueexisteunsubapartadoenteroparaelinitramfs.

89
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

busyboxinitramfs(guadalinexlive):Aligualqueelpaqueteanterior,steesunaversindeloriginaldel
UbuntuBreezy.Elpaquetecontieneelprogramabusyboxcompiladoconlasopcionesnecesariasparaun
initramfs.Ennuestraversin,sehanaadidoalgunasms,parapoderusarloenmodolive.
Elbusyboxesunaminishellquecontienedentrodelmismoarchivoejecutablemuchosprogramas.Es
unamaneradetenerdentrodelashelllosprogramasynodependerdeprogramasexternos.
Existendosformasdeusarlosprogramascompiladosdentrodeesta cajallena.Unaesllamandoal
busybox,seguidoporelcomandoquequeremoslanzar:
$/usr/lib/initramfstools/bin/busyboxls
[listareldirectoriocomosihubiramosejecutadounlsnormal]

Ylaotraescrearunenlacealbusyboxconelnombredelcomandoquequeremosusar:
%lns/usr/lib/initramfstools/bin/busybox/tmp/ls
%/tmp/ls
[listareldirectoriocomosihubiramosejecutadounlsnormal]

4.3.3.DIRECTORIOSYARCHIVOSIMPORTANTES
AhoraanalizaremoslosarchivosydirectoriosprincipalesdelsistemadegeneracindelCDlive.Esbueno
queestemosfamiliarizadosconstos,porsidebemosmodificaralgo,bienenlapersonalizacin,bienporque
queramoshacermejoras.

DIRECTORIOS
/media/distro/sources
Eseldirectoriodondeseguardarelcontenidodenuestradistro.Esdecir,nuestradistro,unavezya
instaladaapartirdelospaquetesymetapaquetes.Puedesertantoundirectorioquecontengaladistro(porquela
hemoscopiadodealgnsitiodondeestabainstalada,obienporquehemosinstaladoapartirdeundebootstrap)
comounaparticin,endondehemosinstaladonuestradistribucinyquehemosmontadoenesedirectorio.
/media/distro/master
EnestedirectoriosealmacenarelcontenidofinaldelCD.Esloqueseusarcomomasteralahorade
crearunaimagendelCD.Eldirectoriomastercontiene,asuvez,otrossubdirectorios:

90
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

/media/distro/master/
|META/
|extras/
||disquete/
|`info/
|`documentos/
`isolinux/

Figura14:rboldedirectoriosdelsistemadegeneracindela
versinLive

META/:EseldirectoriodondeseguardaladistribucincomprimidaenelarchivoMETA.squashfs.
extras/:Esundirectorioopcionalyprescindible,aunquetileinteresante,paraponerinformacinsobre
ladistro,documentacin,archivosdeejemplooloquesequiera.
isolinux/:ste eseldirectorio en donde se guardar el kernel,el initramfs y todoslosarchivosde
configuracindelisolinux.
/media/distro/isos
AquseguardarnlasimgenesdeCDs(isos)generadas.

ARCHIVOS
/media/distro/master/META/META.squashfs=distro
Este archivo es una imagen comprimida de la distribucin que previamente hemos instalado en
/media/distro/sources.Elarchivocontienetodaladistribucin,consujerarquadedirectoriosincluido,peroenun
archivodeslolectura(sobreelquenosepuedeescribir),queestcomprimidopermitiendo,porejemplometerel
contenidodeunadistribucinqueinstaladaocupa2GB.,enunarchivodepocomsde600MB.
/media/distro/master/isolinux/initramfs=initramfs
Comosehaexplicadoencaptulosanteriores,el initramfs eslapiezaclavedelsistemaliveyaques
dondeseguarda.Logeneraryguardaraquelgenlive.
/media/distro/master/isolinux/isolinux.bin=sectordearranque
Eselsectordearranquedelsistema Isolinux,quepermiteindicaranuestroordenadorquepodemos

91
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

arrancardesdeelCDROM.Sinstearchivoysinqueseespecifiquealgenerarlaiso,nosepodraarrancarel
CD.
/media/distro/master/isolinux/isolinux.cfg=configuracin
defaultlinux
DISPLAYisolinux.txt

TIMEOUT100
PROMPT1

F1isolinux.txt
F2ayudaf2.txt
F3ayudaf3.txt
F4ayudaf4.txt
F5ayudaf5.txt
F6ayudaf6.txt
F7ayudaf7.txt
F8ayudaf8.txt
F9ayudaf9.txt

KBDMAPes.kbd
FONTfuente.psf

labellinux
kernelvmlinuz
append ramdisk_size=100000 root=/dev/ram0 initrd=initramfs BOOT=live
debugsplashquiet
labeldb

kernelvmlinuz
append ramdisk_size=100000 root=/dev/ram0 initrd=initramfs BOOT=live
debugbreak
labelsingle
kernelvmlinuz
append ramdisk_size=100000 root=/dev/ram0 initrd=initramfs BOOT=live

92
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

debuginit=/bin/sh
labelfailsafe
kernelvmlinuz
append ramdisk_size=100000 root=/dev/ram0 initrd=initramfs BOOT=live
debugnoapicnolapicacpi=offpci=noacpivga=normalxdriver=vesa
labeltestcd
kernelvmlinuz
append ramdisk_size=100000 root=/dev/ram0 initrd=initramfs BOOT=live
debugmd5splashquiet

steeselarchivodeconfiguracindeisolinuxparaelCDlive.Lasopcionesgeneralesdelisolinuxyahan
sidovistasanteriormenteenelapartadosobrelamodificacindeladistribucin,asqueahoranoscentraremos
exclusivamenteenlosdetallesqueafectenalsistemalive.
Perodentrodelosparmetrosqueselepasanalkernel(conelappend)hayalgunosquesloexistenen
nuestrosistemaliveyotrosquesonparmetrosnormales,aunquenecesariosparaqueestofuncione.Vamosa
explicarlosporseparado,empezandoporestosltimos:
ramdisk_size=100000:Esteparmetroespecificaeltamao,enKB.,delsistemainicialquesemontaen
lamemoriaram.Generalmentenecesitamosespecificarunomayorqueelpredeterminado(4096KB.=4
MB.),poresoloespecificaremos.
root=/dev/ram0:Elrootindicalaparticinfsicaendondesemontarelsistemaraz(/),queparanuestro
sistemaliveserlamemoriaram,poresonecesitaremosindicar/dev/ram0.
initrd=:Aquseespecificaelarchivo initrd o initramfs queseusar.Ennuestrocasoesel initramfs
generadoycontodolonecesarioarpamontarelsistemalive.
quiet:Siseespecificadichoparmetro,nosemostrarntodoslosmensajesdelkernelalarrancar,slo
loserroresymensajesmsimportantes.
debug:Esteparmetrolousanlosscriptsdel initramfs paraversiqueremosirviendoyguardando
informacindeloquesevaejecutandoyloserroresqueseden.Esunaopcinparadepurarerrores.Si
existe el parmetro se activar este modo de depuracin, en caso contrario no se mostrar esa
informacin.Encasodequesepararalaejecucinenel initramfs,podremosverestainformacinen

93
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

/tmp/initramfs.debug.
splash:Siexisteesteparmetroenlalneadelappend,semostrarelarranquegrfico,sinofueseas,
semostraraelarranquenormal,enmodotexto.
break:Dentrodel initramfs,hayunpuntointermedioenlaejecucinenquesecompruebasiseha
pasadoestaopcin.Deseras,sedetendrlaejecucinenesepunto,mostrandounaconsolacon
comandosmnimos,parapoderhacerpruebasydepurar.Estilparaladepuracindeciertaspartes.
Yaquestnlosexclusivosdelsistemalive:
BOOT=live:Elsistemadescriptsdel initramfs soportavariostiposdearranque(local ynfs),quese
indicanconestavariablequesepasaalkernel,peronosotroshemosaadidounnuevotipodearranque,
queeselarranqueliveyqueseespecificacomoahseindica(BOOT=live).
xdriver=:ConestavariablesepuedeespecificarundriverdeterminadoparalasX.Estopuedesertilen
equiposcondificultadesparadetectardichodriveroenlosquelatarjetagrficanoestbiensoportada.
Enesteltimocaso,selepuedeindicareldrivergenricovesa,quenooptimizarsurendimiento,pero
asegurarquearranque.
md5:staesunaopcinqueleindicaalinitramfsquedebehacerunacomprobacindelaintegridadde
losarchivoscontenidosenelCD.Paraellosecompruebaunalistade sumasmd5 (checksum)delos
archivosdelCD,quevieneincluidoenelmismo.
/media/distro/master/isolinux/splash.rle=imagendelarranque
EstearchivosecorrespondeconlaimageninicialqueaparececuandosecargaelCD.Paravercomose
modificaraestaimagenvaselaseccinsobreelIsolinuxenelcaptulodepersonalizacin.
/media/distro/master/isolinux/ayuda#.txt=archivosdeayuda
Existenvariosarchivosdeayuda,cadaunoestasignado(comovimosenelarchivodeconfiguracin
isolinux.cfg)aunatecladefuncin(F2,F3,F4,etc).Sepuedenreconocerfcilmenteporelnombreyporestar
especificadosenelcitadoarchivodeconfiguracin.
Estos archivos, al igual que el presentacin (isolinux.txt) pueden tener, y de hecho tienen, algunos
cdigosespecialesparaformateareltexto.Enlosarchivosdeejemploaqumostradossepuedeverclaramente.
Soncdigosdeltipo:09,07,0d...

94
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

VanseaqulosarchivosdeayudadeGuadalinexv3,amododeejemplo:
isolinux.txt
^Xsplash.rle

^O07BienvenidoaGuadalinexv3(live),pulseINTROparacontinuar.
Paraverlaayuda,pulseF2.

ayudaf2.txt
09ndicedeayuda07

Disponedevariaspginasdeayuda:

0dF107.............0dPantallainicial07
0dF207.............0dndicedeayuda07
0dF307.............0dQuesGuadalinex?07
0dF407.............0dIniciandoGuadalinexv307
0dF507.............0dConfiguracinadicional07
0dF607.............0dParmetros07
0dF707.............0dOpcionesdearranque07
0dF907.............0dGuadalinexenInternet07

Presione0dINTRO07parainiciarGuadalinexv307

95
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

ayudaf3.txt
09QuesGuadalinex?07

Bienvenido/a al sistema operativo GuadaLinex, una distribucin de


0dGNU/Linux
07elaboradaporla0dJuntadeAndaluca07.

Puedeutilizarestadistribucincuantasvecesquieraenmodo0d"Live"07,
loquesignificaquenosemodificarnadaensudiscoduro.
Cuando reinicie el ordenador y extraiga el CDROM de la unidad, podr
acceder
asusistemaoperativodesiempre,sinrastroalgunodeGuadaLinex.

Entodomomentodisponedelaposibilidaddeinstalarestesistema
operativoensudiscoduro,conviviendoconelrestodesistemas
operativosquetengainstalados.Paraello,slotienequepulsar
elbotn0d"InstaladordeGuadaLinex"07enelescritorio.

07Pulse0dF207paravolveralndicedeayuda
Presione0dINTRO07parainiciarGuadalinexv307

96
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

ayudaf4.txt
09IniciandoGuadalinexv307

IniciarGuadalinexv3enmodo0d"live"07(desdeelCD)esmuysencillo,
nicamentedebeinsertarelCDROMenelordenadoryreiniciar.
Selemostrarunapantalladepresentacinyenunossegundossecargar
elsistemaoperativo.

SiGuadalinexnoseiniciasecorrectamente,esposiblequedebamodificar
el 0dorden de arranque07 de los dispositivos en la 0dBIOS07 de su
ordenador.
Esteprocedimientovaraligeramenteentredistintosmodelosasquese
recomienda consultar en el manual del ordenador la forma correcta de
hacerlo.

07Pulse0dF207paravolveralndicedeayuda
Presione0dINTRO07parainiciarGuadalinexv307

97
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

ayudaf5.txt
09Configuracinadicional07

Guadalinexv3estpreparadoparadetectardeforma0dautomtica07el
hardwaredesuordenadorpero,enalgunasconfiguraciones,esposible
queelarranquefalle.Enestoscasos,esnecesarioindicarleal
sistemaoperativoalgunosdatossobrenuestroordenadorparafacilitar
elarranque.

ParapasarleestainformacinaGuadalinexsedebeutilizarel
indicador0d"boot:"07situadoenlaparteinferiordelapantalla.
Enesteindicadordebemosescribir0d"linux"07seguidodelos
parmetrosdeseados.

PuedeconsultarlosposiblesvaloresenlaseccinParmetros
(tecla0dF607).

07Pulse0dF207paravolveralndicedeayuda
Presione0dINTRO07parainiciarGuadalinexv307

98
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

ayudaf6.txt
09Parmetros07

0dacpi=off07:DeshabilitaelsoporteparacontroldeenergaporACPI
Ej:linuxacpi=off
0dnoapic07:DeshabilitadoelmdulodetemporizacinAPIC
Ej:linuxnoapic
0dnolapic07:Pruebeesteopcinsilaanteriorfalla
Ej:linuxnolapic
0dnousb07:DeshabilitaelsubsistemaUSB
Ej:linuxnousb
0dxdriver=07:EstableceeldriverparaelsistemaXWindow
Ej:linuxxdriver=vesa

(Msayuda...F7)

Se pueden 0dcombinar07 varios parmetros separndolos por espacios, por


ejemplo:
linuxacpi=offnoapicnolapicnousb

07Pulse0dF207paravolveralndicedeayuda
Presione0dINTRO07parainiciarGuadalinexv307

99
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

ayudaf7.txt
09Opcionesdearranque07

0dfailsafe07: Esto no es un parmetro, sino una opcin completa


preconfigurada
para ordenadores con muchos problemas (no carga usplash entre otras
cosas).
Sitieneproblemasconelarranque,utiliceestaopcindirectamente.

0dsingle07:Conestaopcin,Guadalinexarrancaenmodomonousuariosin
ejecutarmuchosdelosprogramasquecargahabitualmente(incluyendoel
entorno grfico). Utilice esta opcin si tiene problemas cargando el
modo
grfico.

0ddb07: Esta es una opcin para usuarios experimentados y


desarrolladores
que se utiliza para iniciar el sistema hasta la primera etapa del
proceso
dearranque.

0dtestcd07:ConestaopcinsecompruebalaintegridaddelCD,paraver
queno
estmalgrabadooenmalestado.

07Pulse0dF207paravolveralndicedeayuda
Presione0dINTRO07parainiciarGuadalinexv307

100
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

ayudaf9.txt
09GuadalinexenInternet07

ElproyectoGuadalinexdisponedeunsitio0dweb07enInternetdondepodr
descargarlas0dnuevasversiones07,consultardocumentacin,participaren
forosylistasdecorreo,etc.

LadireccindeGuadalinexes:
0dhttp://www.guadalinex.org07

07Pulse0dF207paravolveralndicedeayuda
Presione0dINTRO07parainiciarGuadalinexv307

101
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

4.3.4.CHROOT
Unaveztenemosnuestradistribucindebemosinstalarlaparaprobarla.Apartirdeaquentraremosen
unafasedemuchaspruebasydeconfiguracionesquenosayudarnacrearlospaquetesdefinitivosyapartirde
estos,lasversionesfinalesdeladistribucin.Ensusdosfacetas:"live"y"nolive".
Haydiversasmanerasdehaceresto,perolaquerecomendamosesinstalar,apartirdelinstalador"no
live"enunaparticindeldiscoqueusaremosparagenerarnuestrasdistros.
Laideaesquepodamosmontaresaparticin,yainstalada,ennuestrosistemadetrabajoyaspoder
hacerpruebas,cambiosygenerarapartirdeesedirectorio("/media/distro/sources")nuestrosCDs"live".
Ylaformamsfcilycmodaparahacerpruebas,instalarpaquetes,cambiararchivosdeconfiguracin,
etc,enesaparticinsintenerquereiniciartodoelratoesusarelprograma"chroot".Elcualsirveparapoder
ejecutarotrasaplicacionesdentrodeundirectorioindicadocomosistefueraeldirectoriorazdelsistema.
Esdecir,quesiejecutramosunprograma,porejemplo,una"shell"(elprogramapredeterminadosinose
indica otro) estaremos en una "shell" dentro de ese directorio, sin posibilidad de subir niveles u obtener
informacinsobrenadaqueestporencimadenuestro,ahora,directorioraz.
Dichoprogramaesmuytilparapoderinstalarpaquetesenunsistemainstaladoenundirectorio,como
sisehubierahechoarrancandoesaparticin.
Laformadeusareseprogramaes:
$chroot/path/del/directorio/[comando]

Elcomandopodemosomitirlosiloquequeremosesuna"shell"dentrodelsistema.Esos,deberemos
serrootparapoderusaresteprograma.
Peronotodoesbonitoymaravillosoconel"chroot".Nosiramuybienparainstalarpaquetes,hacer
cambiosenarchivosdeconfiguracinydems,peropodradarnosproblemassijugamosconlasXoestamos
arrancandoyparandoservicios.tambinsijugamosconelkernel,queporotroladodebeserelmismoenambos
sistemas.Nopodemosarrancarunadistrodentrodeotrayaarrancada,conkernelsdiferentes.
Estaslimitacionessedebenaqueambossistemas,el"anfitrin"yel"husped",compartenelmismo
kernel,variablesdeentornoeinformacindel"proc".Asquesiusamosotocamosdichainformacinenuno,

102
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

podremosestarhacindoloenelotro.
Tambindeberemosteneralgunascosasencuentaalahoradeusarel"chroot"paraentrarenun
sistemacomosiloarrancramosyqueramoshacercosasdentrodel.Comoporejemplo,debemosacordarnos
demontarelsistemadeficherosvirtual"proc"eneldirectorio"/proc".
El"proc"eslainterfazdecomunicacinentreelkernel,elhardwareylosprogramasqueseejecutanen
elsistema.Enelpodemosver,amododeficherosydirectorios,informacinsobrelosdistintosdispositivos
conectadosanuestroequipoydelosqueelkerneltieneconocimiento.Tambinpodemosverlos"procesos"que
seestnejecutandoennuestrosistema(existeundirectorio,consucorrespondientenmero,porcadaproceso),
ascomoinformacindeltipo,propietariodelproceso,tiempodeejecucin,recursosqueestusando,otros
procesosdelosquedepende,etc.
Yestainterfazesusadapormuchosprogramasparaobtenerinformacindelsistema.steeselcasode
programastanbsicosynecesarioscomo"mount","apt",etc.
Peronodebemosolvidarnosdedesmontardichodirectoriocuandoacabemos.Denohacerloas,no
podramosdesmontarlaparticinqueusamosparanuestradistro,opodramoscopiarunmontndearchivosen
laimagendelsistema"live",quenoharanmsqueocuparbastanteespacioypodrancausarproblemasenla
distroarrancada.
Asquelasecuencialgicaparausarel"chroot"ennuestropropsitosseralasiguiente:

$chroot/media/distro/sources/
[yaestamosdentro]
chroot$mounttprocnone/proc
[instalamosymodificamosagusto]
chroot$aptgetinstall[algo]
...
chroot$umount/proc
chroot$exit
[yaestamosfuera]

103
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Otrodetalleatenerencuentaesqueprobablementeenelsistemaquetengamosinstaladoenese
directorio ("/media/distro/sources"),no tengamosconfiguradoslosservidores de nombres ("DNS"), as que si
intentamosusarel"aptget",nospodradarunerror.Esosearreglafcilmentecopiandoelcontenidodenuestro
archivo"/etc/resolv.conf"dentrodeldeladistroinstalada"/media/distro/sources/etc/resolv.conf".

4.4.DNDEPERSONALIZAR?
Ya hemos estado viendo algunos sitios donde se puede modificar el sistema live, pero vamos a
mencionar alguno ms en esta seccin. stos seran cosas bastante especficas del sistema live como las
siguientes:
Usplash:Enelcaptulodedicadoalosaspectosmodificablesdeladistro,sehacomentadoyacomose
cambiaopersonalizael"usplash",peroloquequeremosrecalcaraquesqueesenelsistemaendonde
segeneraladistribucin,dondetienequeestarinstaladaesaimagenausarparael"usplash".
Es decir, si nosotros tenemos un ordenador con un sistema linux instalado, en el que hemos
instaladoel"genlive"ydemspaquetesparagenerarunadistribucin,esenesesistemaendonde
tendremosqueinstalaresepaqueterecompiladodel"usplash".

Porsupuesto,ladistribucindebellevarelpaqueteyamodificado,tambin.

[initramfs]/scripts/livebottom/hacks:Estescriptseencuentradentrodel"initramfs"ysufuncines
facilitarnoselaadircambiosdepruebaonoestndares,paraelarranquedelsistemalive.
Algunosejemplosdeestopuedenser,aadiruniconoalescritoriodelusuarioquesearranca,lanzar
unservicio("SAMBA","apache",etc)antesdeabrirlasesindelusuario.Cambiarelescritoriocon
queseinicialasesindelusuario,etc.

/etc/mkinitramfs/initramfs.conf:Enestearchivoexisteunavariablequesepuedeconfigurar,queesel
nombrequetendrelusuarioalarrancarelsistemalive.Lavariablees"USERNAME=".

104
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

4.5.INSTALADORLIVE
4.5.1.QUES?
Lobuenodeunsistemaliveesquesepuedeprobarantesdeinstalar,perotambinquesepuede
instalardemaneramsrpidaysencillaparaelusuario.Haymuchosinstaladoresparasistemaslive,aunquecasi
todostienenunalimitacinprincipal,queselimitanacopiarladistribucinyconfiguraciones.Esdecir,queno
usanelsistemadepaqueteraoherramientaspropiasdeladistribucinparaconfigurarprogramasyhardware.

Esto puede generar muchos problemas, como por ejemplo en las actualizaciones. Si hay algo
configuradoporunscriptpropio,puedequeelsistemanoseaconscientedeellosylomachaquealactualizarel
paquetealquepertenece.

Porestaraznhemosdiseadouninstaladorqueuseen,lamedidadeloposible,lasherramientasdela
distribucinbase,paraconfigurarladistrocopiadaaldisco.Ademsdecrearunsistemadeparticionadobastante
inteligente que facilita una de las tareas que ms miedo produce a un usuario a la hora de instalar. Y
aprovechandoquedisponemosdeunadistribucincompletaarrancada,hemoscreadounainterfazdeusuario
agradableysencilla,parafacilitarlelavidaalusuario.Eliminandotodaslaspreguntasquenoseanabsolutamente
necesarias.

105
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

106
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

107
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

108
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

109
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

4.5.2.CMOFUNCIONA?
ElinstaladordeGuadalinexv3estdiseadodetalformaquelalgicadelinstalador(backend)est
separada de la parte que interacta con el usuario para pedirle datos(frontend).De esta forma, sepodra
fcilmentecreardiferentesinterfacesdeinteraccinconelusuario.

Para nuestro caso hemos elegido una interfaz grfica usando las libreras Gtk, ya que el entorno
GuadalinexesGnomeyGtk.YtantoelbackendcomoelfrontendestnprogramadosenPython,parafacilitar
sudesarrollo,mantenimientoyporsuflexibilidad.

Lapartequemsnosinteresar,sinduda,serelfrontend,queeslaquepodemospersonalizaryque
eslaqueveelusuario.DichainterfazgrficaestadiseadaconGlade,unprogramaparadisearinterfaces
grficasparaGnome/Gtk.Conelnoseracomplicadomodificarlaaparienciadelinstalador,aunquesinotenemos
cuidado,puededarnosmsproblemasqueayudas.

Loidealesusarloselementospreparadosparaserpersonalizados.

110
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

4.5.3.CMOPERSONALIZARLO?
Comomencionamosantes,hayciertoselementospreparadosparapoderserpersonalizados,comopor
ejemplo,laimagendelacabecera,oeltextodebienvenida.Vamosaenumerarloseindicardondepodemos
encontrarlos:

Nombredeladistro:Estodebeestarconfiguradoenel/etc/lsbreleaseporelcorrespondientepaquete,ya
queelinstalador,buscardeaquelnombredeladistribucin.EnconcretobuscarelDISTRIB_ID,pero
ponindolotodoenminsculas.Conestenombreexistirnvariosdirectoriosdentrodeldirectoriofuentedel
paquetequesedescribenacontinuacin.

glade/locale/[nombre_distro]:Contienelastraduccionesyayudasdelostextosmostradosenlainterfaz
grfica.

glade/pixmaps/[nombre_distro]:Contienelasimgenesdelacabecera,ylascapturasdeaplicacionesque
semuestranenelprocesodecopiaaldisco.Lasprimerasquerremoscambiarlasseguramente,lassegundas
dependerdelcaso.

Quizsqueramosaadiralgunaaplicacin,quitarotra,oactualizarejemplos.Encualquiercasodebemosque
tenerencuentaelarchivomessages.txt,enelcualsedescribecadaunadeesascapturas.

Debeponerseunprrafoporcapturadeaplicacinyhayquetenerencuentaqueirnapareciendoenel
orden puesto en el archivo, luego habr que coordinar el nmero de lnea con el nmero de captura
(snapshot1.png,snapshot2.png,snapshot3.png,etc).

htmldocs/[nombre_distro]:Aqusepondrlapresentacinenhtmlqueaparecealprincipio.

111
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

Conestoselementospersonalizados,lehabremoscambiadolacaraalinstalador,dndoleunaspecto
profesionalanuestradistribucin,queestarlistaparaserprobadaeinstalada.

112
CURSODECREACINDEDISTRIBUCIONES:GUADALINEXV3

Cod.02206v Ref.monk

5.CONCLUSIONES
ElequipodedesarrollodeGuadalinexv3ylosdocentesdelcursolesanimamosaquepruebanlos
diversossistemasqueaqusemuestran.Sabemosqueelconocimientoesextensoyescomplicadoasimilarloen
uncursotanreducido,peroestamosabiertosacualquierdudamediantelaslistasoficiales1delproyecto2.

Asimismorecomendamosquecualquierproyectoquesehagabasadoenste,seintentedesarrollaren
esteentorno(laforjadeGuadalinex)oquesemantengainformadoalequipodedesarrolloyalacomunidad
mediantelaslistas.

Estoesimportanteparapoderreaprovechareltrabajodetodosenbeneficiodetodosyparaevitarquese
tenganquepelearconcosasquepuedenestaryaresueltasporotrapersona.

Encualquiercaso,quedamosasudisposicinparacualquierduda,consultaosugerencia.

1 http://forja.guadalinex.org/mailman/listinfo/forja.guadalinex2005distro

2 http://forja.guadalinex.org/repositorio/projects/guadalinex2005/

113

También podría gustarte