venerdì 1 febbraio 2013

Creare una live personalizzata di Fedora 18 (LXDE)

Fedora mette a disposizione una serie di strumenti per creare facilmente live cd personalizzati; in questo esempio vi mostrerò come realizzare un proprio "remix" di LXDE, includendo pacchetti non compresi nella live ufficiale.Le istruzioni possono essere facilmente adattate per creare la propria versione di qualunque spin di Fedora (KDE, XFCE, ecc.)

Iniziamo installando i pacchetti necessari:
# yum install fedora-kickstarts livecd-tools createrepo
  Creiamo la nostra directory di lavoro:
$ mkdir ~/iso
$ cd ~/iso
copiamo i file di configurazione ("kickstart") relativo alla spin di LXDE
 $ cp /usr/share/spin-kickstarts/fedora-livecd-lxde.ks .
Il file, a sua volta, richiede altri due file di configurazione, fedora-live-base.ksfedora-live-minimization.ks. Potete verificarlo aprendo fedora-livecd-lxde.ks con un editor di testo e cercando le istruzioni %include.
Copiamo quindi i due file:
$ cp /usr/share/spin-kickstarts/{fedora-live-minimization.ks,fedora-live-base.ks} .
 Cominciamo il nostro lavoro di personalizzazione, aprendo il file fedora-live-base.ks e correggendo le impostazioni relative alla localizzazione; trovate all'inizio del file le seguenti righe:
lang en_US.UTF-8
keyboard us
timezone US/Eastern
Sostituite con:
lang it_IT.UTF-8
keyboard it
timezone Europe/Rome
dopodiché salvate e chiudete il file.
Passiamo ora alla parte più importante e interessante: l'aggiunta di pacchetti extra in base alle nostre preferenze.
In questo nostro esempio affronteremo tre possibili casi:
  • aggiunta di pacchetti contenuti nei repo ufficiali
  • aggiunta di pacchetti contenuti in repo NON ufficiali
  • aggiunta di pacchetti non contenuti in nessun repo
Apriamo il file fedora-livecd-lxde.ks, cerchiamo il tag %packages  e inseriamo, al di sotto, il nome
dei pacchetti che vogliamo inserire nel nostro live cd (in aggiunta a quelli standard). Supponiamo, per esempio, di avere il seguente elenco:
%packages
motif
icedtea-web
adobe-release-i386
flash-plugin
ICAClient
skype
...
I pacchetti motif (necessario per ICAClient) e icedtea-web provengono dai repository ufficiali di Fedora, quindi non è richiesta alcuna configurazione aggiuntiva per l'inclusione nella nostra live. Possiamo aggiungere in questa sezione qualunque altro pacchetto ufficiale senza il minimo problema. Non è necessario preoccuparci nemmeno delle dipendenze: verranno risolte ed installate automaticamente in fase di creazione della nostra immagine iso (come vedremo più avanti)
Passiamo ora ad adobe-release-i386 e flash-plugin: i due pacchetti (ipotizziamo di essere in un sistema a 32 bit, in caso contrario vi servirà il pacchetto adobe-release-x86_64) non sono inclusi nei repo ufficiali, dobbiamo quindi indicare esplicitamente all'interno del nostro file kickstart l'indirizzo del repo extra da cui andare a prelevarli.
La procedura è semplicissima: spostiamoci all'inizio del file fedora-livecd-lxde.ks e sotto le istruzioni %include aggiungiamo la seguente riga:
repo --name=adobe-linux-i386 --baseurl=http://linuxdownload.adobe.com/linux/i386/
Le informazioni (--name e --baseurl) relativi ad eventuali altri repo extra che volete aggiungere, possono essere reperite all'intero della directory /etc/yum.repos.d/ (a patto che, ovviamente, stiate utilizzando tali repo sulla vostra Fedora).
Eccoci ora all'ultimo caso: ICAClient e skype. Come detto prima questi pacchetti non sono presenti nei repo ufficiali; dovremmo quindi creare un repo locale in cui andare a mettere gli rpm dei due software (dopo averli scaricati dai rispettivi siti)
Anche in questo caso la procedura è banale; creiamo la directory che conterrà il nostro repo locale:
$ mkdir ~/iso/myrepo/
e copiamo all'interno di myrepo i pacchetti che ci interessano. Al  termine diamo:
$ createrepo ~/iso/myrepo/
e il nostro repo è pronto! Non ci resta che aggiornare il file fedora-livecd-lxde.ks, aggiungendo la seguente riga:
repo --name=myrepo --baseurl=file:///home/utente/iso/myrepo
Ok, fatto questo siamo praticamente pronti a creare la nostra iso! Un problema che ho riscontrato è che la live si avvia con il layout di tastiera  en_US (inglese americano), anche dopo averlo settato su "it" nel file fedora-live-base.ks.
Si può correggere questo comportamento con un piccolo workaround: sempre all'interno del file fedora-livecd-lxde.ks cerchiamo la seguente porzione di testo:

cat > /etc/xdg/lxsession/LXDE/autostart << FOE
/usr/libexec/gam_server
@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
/usr/libexec/notification-daemon
FOE
e correggiamola in questo modo:

cat > /etc/xdg/lxsession/LXDE/autostart << FOE
/usr/libexec/gam_server
@lxpanel --profile LXDE
@pcmanfm --desktop --profile LXDE
/usr/libexec/notification-daemon
@setxkbmap it  <---aggiungere questa riga!
FOE
A questo punto non ci resta che lanciare la creazione della nostra iso: dalla directory ~/iso, come root, diamo:
# livecd-creator --verbose --config=./fedora-livecd-lxde.ks \
   --fslabel=Fedora-LiveCD  --cache=/var/cache/live
Al termine della operazione (che può richiedere diverso tempo) nella directory corrente troveremo la nostra immagine Fedora-LiveCD.iso pronta per essere masterizzata o scritta su un pendrive.
Se scegliete quest'ultima opzione, potete usare il comando livecd-iso-to-disk specificando il device di destinazione, ad esempio:
# livecd-iso-to-disk Fedora-LiveCD.iso /dev/sdb1
È tutto per questa prima mia guida sull'argomento, spero vi possa risultare utile! :-)

Nessun commento:

Posta un commento