Linux Base - Capitolo n. 15
Edizioni ByteMan (15-05-2005)
revisione: 25/01/2008
Rimasterizzare una Kanotix ....
Dopo aver provato tante distribuzioni Linux, alcune Live altre tradizionali, sono giunto alla
conclusione che è meglio provare a farsi la propria distribuzione. Questo è anche il bello di Linux!
Convinto sostenitore dell'impostazione data dagli sviluppatori del progetto Debian, entusiasta
dell'idea geniale dell'autore di Knoppix, ho finito per adottare come distribuzione preferita Kanotix
2005-3, derivata dalla Knoppix, ma ottimizzata per l'installazione sull'hard-disk.
Tutto bene quindi, tranne per la scelta dei pacchetti presenti nella versione originale. Ecco la voglia
di rimasterizzare con una scelta personale dei pacchetti installati, ecco cos'è Livix.
Requisiti
Preparazione
Editing
Modifiche 1
Requisiti di Sistema per la versione CD-ISO
Sistema Operativo Linux già installato sull'hard-disk.
Una copia del LiveCD di sicura affidabilita' (scaricabile da www.kanotix.org).
Almeno 1 GB di memoria libera disponibile: RAM+SWAP (es.: 256M ram + 750M swap)
Circa 3 GB di spazio libero in una partizione formattata con filesistem Linux (ext2, ext3,
reiserfs, xfs, etc.).
Principali caratteristiche del sistema usato
Scheda madre: ASUS P4P800-E
CPU: Intel Pentium 4 dual a 3 GHz
Scheda grafica: nVidia GeForce FX 5200
RAM: 2 GB
Hard-Disk: hda = Samsung SP1604N da 160 GB
Hard-Disk: hdc = Maxtor 6Y120 da 120 GB
Swap area: hda5 da 2.4 GB
Distribuzione: Kanotix 2005-3 installata su hda7 da 37.7 GB formattata con reiserfs
Partizione di lavoro: hdc1 da 12 GB formattata con reiserfs
Masterizzatore: LG DVDRAM GSA-4120B
Router ADSL: Ericsson HN294dp, connessione Alice 4 Mbit/s
Livix - Preparazione
1
Scopo di questa fase è la preparazione dell'ambiente di lavoro per ospitare il materiale sorgente con
cui costruire la nuova distribuzione. Poichè il software presente sul CD Live è in forma compressa (2
GB circa) è necessario provvedere a scompattarlo. Ci sono alcuni modi per raggiungere lo scopo, la
modalità utilizzata in questa esperienza sfrutta lo stesso sistema Live che, dopo l'avvio, crea con
l'aiuto della RAM una cartella /KNOPPIX contenente virtualmente l'intero sistema operativo. Con
un'operazione di copia si obbliga quindi l'effettiva scompattazione di tutto il sistema.
Ecco come procedere:
Boot da LiveCD Kanotix 2005-3
Apertura di una shell root tramite Menu: Kmenu -->Knoppix -->Root Shell
da questa shell verranno dati tutti i comandi seguenti (se non altrimenti specificato).
(Opzionale) Qualora si rendesse necessario eseguire operazioni che richiedano esplicitamente
la password, meglio impostare adesso una password di root:
passwd
Enter new UNIX password:
Retype new UNIX password:
password updated successfully
(Opzionale) Verifica della connessione internet:
ping www.google.it
PING www.l.google.com (66.249.85.99) 56(84) bytes of data.
64 bytes from 66.249.85.99: icmp_seq=1 ttl=244 time=113 ms
64 bytes from 66.249.85.99: icmp_seq=2 ttl=244 time=113 ms
.....
Ctrl-C
Predisposizione della partizione hdc1, formattata reiserfs (o altrimenti), montandola in
lettura/scrittura:
mount -rw /dev/hdc1 /mnt/hdc1
cd /mnt/hdc1
Creazione di due directory di lavoro per contenere il sistema in sviluppo:
mkdir -p knx/source/KNOPPIX
mkdir -p knx/master/KNOPPIX
L'opzione -p evita la visualizzazione di errori in caso di preesistenza delle directory.
source/KNOPPIX contiene il sistema da modificare
master/KNOPPIX conterrà la copia compressa del nuovo sistema,
knx conterrà il file immagine ISO da masterizzare: knoppix.iso
Tenendo presente che il boot e' avvenuto da LiveCD e che quindi il sistema operativo si trova
installato in RAM occorre copiare l'intero contenuto della directory /KNOPPIX (decompresso
dinamicamente in RAM) in knx/source/KNOPPIX:
cp -Rp /KNOPPIX/* knx/source/KNOPPIX
L'opzione -p preserva gli attributi specificati (mode, ownership, timestamps,...). L'intera
operazione di copiatura ricorsiva (-R) può durare una decina di minuti (dipende dalla velocità
del computer).
Il CD live e' per la maggior parte occupato dalla directory /KNOPPIX (circa 697 MB). Bene
occorrera' copiare il poco che resta in knx/master:
cp -ar /cdrom/boot knx/master/boot
cp /cdrom/*.* knx/master
2
Tutto il materiale necessario e' adesso sistemato in knx, distribuito nelle sottodirectory
source e master, ma prima di passare alla fase successiva non è una cattiva idea quella di
creare una copia di riserva (spazio permettendo) della struttura fin qui creata:
cp -ar knx dupknx
Si potrebbe, a questo punto, procedere con le modifiche al sistema, ma poichè questa è una attività
che sicuramente verrà svolta a più riprese è meglio effettuarla avviando il computer normalmente:
da hard-disk. Quindi chiudiamo questa fase con il CD-Live e procediamo allo spegnimento del
sistema.
Livix - Editing
La messa a punto della distribuzione viene spesso fatta nel corso di parecchie sedute, occorre infatti
decidere cosa togliere alla distribuzione e cosa aggiungere, preparare nuovo materiale, correggere,
provare. Quindi questa attività verrà svolta con il normale sistema operativo installato su hard-disk.
L'ipotesi di lavoro è quella di disporre di un sistema di avvio Debian o derivato da essa (Knoppix,
Kanotix, Ubuntu, etc.). Nel seguito supporremo di utilizzare un sistema con installato Kanotix
2005-3 nella partizione hda7.
Boot da Hard-Disk
Apertura di una shell root tramite Menu: Kmenu -->Knoppix -->Root Shell
da questa shell verranno dati tutti i comandi seguenti (se non altrimenti specificato).
umount /mnt/hdc1
mount -rw /dev/hdc1 /mnt/hdc1
cd /mnt/hdc1
Nel seguito supporremo sempre di partire da questo punto prima di ogni aggiornamento. Le
modifiche da apportare al nuovo sistema sono essenzialmente di due tipi:
1. Aggiunta/Sostituzione/Eliminazione di file
2. Installazione/Rimozione di applicativi e configurazioni a caldo
Mentre per il primo tipo si procede con i normali comandi (cp, rm), per il secondo tipo occorre prima
effettuare un cambio della directory radice.
Cambio della directory radice
Occorre utilizzare una funzione di sistema che permette di far funzionare un processo in un file
system ridotto, in cui una certa directory diventa temporaneamente la sua nuova directory radice. Si
tratta della funzione chroot() che può essere utilizzata solo da un processo che abbia i privilegi
dell'utente root. In sostanza viene circoscritto l'ambiente di un determinato processo (e dei suoi
discendenti), e si richiede l'indicazione della directory che diventerà la nuova directory radice. Il
processo da avviare in questo ambiente deve trovare lì tutto quello che gli può servire, per esempio
le librerie, o altri programmi se il suo scopo è quello di avviare altri sottoprocessi. Ecco come operare:
a) Entrata in chroot
root = /mnt/hdc1/knx/source/KNOPPIX
viene montata /proc
chroot /mnt/hdc1/knx/source/KNOPPIX
mount -t proc /proc proc
b) Esecuzione modifiche di tipo 2 (install/remove)
o altre operazioni con l'uso di internet
3
c) Uscita da chroot
smontaggio /proc
uscita da chroot
umount /proc
exit
Verifica connessione internet
Prima di cominciare le modifiche al sistema occorre verificare che la connessione internet sotto
chroot funzioni correttamente. Pertanto occorrerà entrare in chroot ed eseguire un ping:
ping www.google.it
PING www.l.google.com (66.249.85.99) 56(84) bytes of data.
64 bytes from 66.249.85.99: icmp_seq=1 ttl=244 time=113 ms
64 bytes from 66.249.85.99: icmp_seq=2 ttl=244 time=113 ms
.....
Ctrl-C
Se tale verifica dovesse risultare negativa occorrera' uscire da chroot ed eseguire la copia del
seguente file:
cp /etc/dhcpc/resolv.conf /mnt/hdc1/knx/source/KNOPPIX/etc/dhcpc/resolv.conf
Rientrare in chroot e riverificare la connessione con ping, come prima. Adesso tutto dovrebbe
funzionare correttamente, e si è in grado di procedere ad effettuare le modifiche di tipo 1 e di tipo 2.
Livix - Modifiche Tipo 1
Questo genere di modifiche si effettua normalmente da terminale con i privilegi di root e posizionati
in /mnt/hdc1. Vengono coinvolti file di immagini, script, documentazione. Per comodità ho
predisposto alcune directory di servizio sotto /mnt/hdc1, si tratta delle cartelle: img, doc, dosprg,
contenenti materiale per personalizzare la distribuzione.
Supporto a dosbox
Livix eredita da Kanotix il pacchetto dosbox che consente l'emulazione di applicativi dos all'interno di
un'apposita finestra. A supporto di questo pacchetto verranno inseriti alcuni tools dos, in una
apposita directory:
mkdir knx/source/KNOPPIX/usr/share/dosprg
cp dosprg/* knx/source/KNOPPIX/usr/share/dosprg
Da notare che la directory /mnt/hdc1/dosprg contiene i tools desiderati, nel nostro caso:
asm.ng debug.com lkbit.com ng.exe q.exe tasm.exe tlib.exe tlink.exe tpc.exe
turbo.tpl
A proposito di debug.com, ho dovuto trovarne una release che non effettua la verifica della versione
DOS perchè altrimenti non funzionerebbe in dosbox.
Immagini, sfondi, temi
Sostituzione immagine di default dello sfondo:
cp img/livix.png knx/source/KNOPPIX/usr/local/lib/kanotix.png
4
pdf ludendum ....
Produrre file pdf è semplicissimo con OpenOffice, da qualunque applicativo (writer, calc, impress,
...), basta esportare in pdf ed il gioco è fatto. Ma spesso occorrono degli interventi, più o meno forti,
sia sui file prodotti in proprio, sia su file pdf di terze parti e di cui non si possiedono i sorgenti. Lo
scopo di questa miniguida è la presentazione di alcuni strumenti utili in simili circostanze:
pstill
pdftk
psutils
pstill
L'utility pstill svolge quello che in ambiente Classic è il compito del più conosciuto Acrobat Distiller,
cioè la creazione di documenti Pdf, con l'aggiunta anche del trattamento dei file EPS (previa presenza
dell'estensione .eps). Con opzioni precise, quasi quanto il concorrente più blasonato, pstill svolge il
lavoro con inaspettata velocità, mostrando solo qualche imbarazzo con gli archivi di font.
Installazione ed utilizzo
Ho scaricato il pacchetto dal sito http://www.pstill.com/, prelevando la versione 1.72.7 per
Linux/i386, trattandosi di un file .tar.gz l'ho scompattato in una cartella d'appoggio, nella quale mi
sono poi posizionato. Lette le istruzioni, allegate nel file INSTALL, ho eseguito le seguenti operazioni:
Creazione della cartella /usr/local/pstill_dist, con tutto il contenuto della cartella appoggio
mkdir /usr/local/pstill_dist
cp -r -p * /usr/local/pstill_dist
cd /usr/local/pstill_dist
Verifica ed aggiornamento della variabile PATH, in modo che contenga la nuova cartella.
Ad esempio aggiungendo la riga seguente in ~/.bashrc
export PATH=$PATH:/usr/local/pstill_dist
e rendendo subito operativa la variazione con il comando:
source ~/.bashrc
Installazione dei fonts, con i comandi:
cd PSFonts
../linkAllFonts.sh
cd ..
./pstill -vI
L'impiego principale di pstill è la conversione in .pdf di file .ps, provenienti generalmente dalle
operazioni di stampa su file. Ecco alcune tipiche righe:
pstill -o file.pdf file.ps
base
pstill -2 -o file.pdf file.ps
compatibilità Livello 2
pstill -c -c -c -c -2 -o file.pdf file.ps
con aggiunta di compressione
Come fonte di aiuto, oltre al già citato file INSTALL, risulta utilissima la consultazione e la
stampa dell'help interno:
pstill --help
su video x consultazione
pstill --help > help.txt
su file x la stampa
Il programma è gratuito per uso personale o didattico, mentre per uso commerciale è
5
richiesta una appropriata registrazione.
Ho trovato necessario includere, in coda a ~/.bashrc, la seguente riga:
export PSTILL_PATH=/usr/local/pstill_dist
per evitare le ripetute richieste di definizione di PSTILL_PATH, ad ogni nuova sessione di
Linux. Forse potrebbe esserci una diversa soluzione, ma ho risolto comunque così il problema.
Ho notato che l'esportazione di pagine HTML in PDF risulta più efficacemente gestibile, anche
se con un processo più lungo, tramite un passaggio intermedio al formato PS (stampa su file)
e poi con l'uso di pstill per ottenere il PDF.
pdftk
Si tratta di una utility a riga di comando, reperibile su http://www.accesspdf.com/pdftk/, che
serve per il trattamento dei file pdf. Come recita il sito, è possibile manipolare i document PDF in
molti modi, ovvero:
unirli/spezzarli, criptarli/decriptarli, aggiungergli allegati, impostare un marchio, spezzarli
in pagine singole, e tanto altro ancora ...
Per chi non gradisce la linea di comando, esiste anche una interfaccia grafica, reperibile presso:
http://dpaehl.dp.funpic.de/portal/?GUI_for_PDFTK. Personalmente preferisco le utility a riga di
comando per la possibilità di realizzare facilmente degli script per le operazioni ripetitive.
Installazione ed utilizzo
Il pacchetto è disponibile in formato Debian e si installa facilmente con il classico:
apt-get install pdftk
La principale funzione, che è quella che inizialmente mi interessava maggiormente, consente di
concatenare più file PDF in uno solo. Ecco un esempio per unire f1.pdf ed f2.pdf:
pdftk f1.pdf f2.pdf cat output ftot.pdf
Per estrarre, invece, un gruppo di pagine da due file, per ottenerne un terzo con una selezione di
pagine, agiremo così:
pdftk A=f1.pdf B=f2.pdf cat A1-7 B1-5 A8 output f3.pdf
In pratica: A è il primo file, B il secondo. Con cat si estraggono le pagine 1-7 dal primo, poi la 1-5 dal
secondo e infine la 8 ancora dal primo. Il tutto viene concatenato nel file f3.pdf.
Usare il comando seguente, per spezzettare il file fx.pdf in tutte le sue pagine:
pdftk fx.pdf burst
verranno generati tanti file (pg_0001.pdf, pg_0002.pdf, ...), ciascuno contenente una singola
pagina del file fx.pdf.
Si può ancora aggiungere una password al file fx.pdf, con il comando:
pdftk fx.pdf output fxcrp.pdf user_pw psw
ma, attenzione a non dimenticarla !
Volendo, si può ancora aggiungere uno sfondo, a mo' di filigrana, a ciascuna pagina del file fx.pdf,
con il comando:
pdftk fx.pdf background sfondo.pdf output fxbis.pdf
dove sfondo.pdf è l'immagine desiderata preventivamente convertita in formato pdf.
6
Per maggiorni informazioni, infine, è meglio leggere/stampare attentamente l'help interno:
pdftk --help
pdftk --help > help.txt
su video x consultazione
su file x la stampa
che contiene, oltre alla descrizione di tutte le possibilità offerte dal programma, moltissimi esempi
pronti all'uso.
psutils
E' un insieme di programmi di utilità per manipolare file PostScript, ottenuti generalmente con il
comando stampa su file. Il pacchetto è disponibile in formato Debian e si installa facilmente nel
modo classico:
apt-get install psutils
I programmi di utilità contenuti in psutils sono: psbook, psselect, pstops, psnup, psresize, epsffit,
getafm, showchar, fixdlsrps, fixfmps, fixmacps, fixpsditps, fixpspps, fixscribeps, fixtpps, fixwfwps,
fixwpps, fixwwps, extractres, includeres, psmerge.
Descriversli tutti non è lo scopo di queste note, informazioni dettagliate su ciascuna utility sono
consultabili tramite le pagine man, ad esempio:
man psbook
man psnup
oppure consultando gli Appunti di Informatica Libera alla voce Rielaborazione PostScript. Ecco un
rapido cenno ad alcune delle funzioni più importanti:
psresize: riadatta le dimensioni pagina in funzione dello standard di carta usato, in base a
quanto specificato con le opzioni, e genera un nuovo file.
psselect: estrae, anche selettivamente, alcune pagine, in funzione delle opzioni, e genera un
nuovo file con queste.
psnup: genera un file in cui diverse pagine di origine sono assemblate in un'unica pagina
finale. In pratica permette una reimpaginazione con due o più pagine in un'unica facciata.
psbook: rielabora un file PostScript generando un altro file in cui la sequenza delle pagine
risulta alterata in modo da poter favorire la stampa a libretto. Per esempio, nel caso della
stampa di gruppi di quattro pagine, la sequenza generata è 4-1-2-3, in modo da poter
stampare un foglio in cui sul fronte (recto) appaiano le pagine 4-1 e sul retro (tergo) le pagine
2-3. Questo permette di piegare il foglio e di leggerlo a modo di libretto. In tal caso si hanno
legature (segnature) di un solo foglio.
Attenzione: a volte alcuni dei programmi di psutils producono dei file PostScript non conformi allo
standard di Adobe DSC. CUPS (il gestore delle stampanti) potrebbe stampare tali file in modo
inesatto.
7
Scarica

Linux Base - Capitolo n. 15