SliTaz GNU/Linux official and community documentation wiki.
.png
Translations of this page:

Applicazioni base

Installazione e configurazione delle librerie e delle applicazioni base.

Abstract

Questo capitolo descrive le librerie di supporto e le applicazioni da linea di comando fornite con SliTaz.

Assegnare una variabile d'ambiente ($fd)

Una variabile d'ambiente non può specificare il percorso di una directory, ma solo il suo nome. Inizializzeremo una variabile '$fs' per indicare il path del nostro sistema root (rootfs). Per farlo, entreremo nella directory SliTaz e scriveremo:

 # export fs=$PWD/rootfs

Per testarla:

 # echo $fs

bc-1.06 - Calcolatrice in modalità testuale

The application bc (www.gnu.org/software/bc/) provides a small calculator. When compiling the utility, dc is also built, but not installed by SliTaz. Note that dc is also available with BusyBox. If you decide to copy dc, you need to delete the link to BusyBox (if it exists). We use a directory _pkg (package) for installation, use strip to clean the executables and copy the utilities:

L'applicazione bc (www.gnu.org/software/bc/) fornisce una piccola calcolatrice. Quando viene compilata si ha il build anche di dc, che però non viene installato da SliTaz. notare che dc è fornito anche da BusyBox. Se decidete di copiare dc, dovete cancellare il link a BusyBox (se esiste). Usando la directory _pkg (package, pacchetti) per l'installazione usiamo strip per ripulire gli eseguibili e copiamo le utility:

 # cd src
 # wget http://ftp.gnu.org/pub/gnu/bc/bc-1.06.tar.gz
 # tar xzfv bc-1.06.tar.gz
 # cd bc-1.06
 # ./configure --prefix=/usr --infodir=/usr/share/info \
   --mandir=/usr/share/man
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip -vs _pkg/usr/bin/*
 # cp -avi _pkg/usr/bin/bc $fs/usr/bin

libs

ldd su bc produce:

          libc.so.6 => /lib/libc.so.6 (0x40029000)
          /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

zlib-1.2.3 - Librerie di compressione

Il pacchetto zlib (http://www.zlib.net/) fornisce funzioni di compressione e decompressione usate, tra gli altri dal server SSH (Dropbear) e dal server X:

 # cd ..
 # wget http://www.gzip.org/zlib/zlib-1.2.3.tar.bz2
 # tar xjfv zlib-1.2.3.tar.bz2
 # cd zlib-1.2.3
 # ./configure --shared --prefix=/usr
 # make
 # strip -vs libz.so*
 # cp -av libz.so* $fs/usr/lib

pcre-7.4 - Espressioni regolari compatibili perl

Il pacchetto pcre (http://www.pcre.org/) fornisce le librerie con le funzioni per le espressioni regolari compatibili perl, usate, tra gli altri, dal web server Lighttpd:

 # cd ..
 # wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.4.tar.gz
 # tar xzfv pcre-7.4.tar.gz
 # cd pcre-7.4
 # ./configure --prefix=/usr
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip -vs _pkg/usr/bin/*
 # strip -vs _pkg/usr/lib/*
 # cp -av _pkg/usr/bin/* $fs/usr/bin
 # cp -av _pkg/usr/lib/*.so* $fs/usr/lib

e2fsprogs-1.39 - strumenti di amministrazione del file system

e3fsprogs (http://e2fsprogs.sourceforge.net/) fornisce strumenti per gestire filesystem ext2 e ext3. Non prenderemo tutti gli strumenti per non occupare troppo spazio. Bisogna anche dire che per fsck verrà usato quello in BusyBox:

 # cd ..
 # wget http://puzzle.dl.sourceforge.net/sourceforge/e2fsprogs/e2fsprogs-1.39.tar.gz
 # tar xzf e2fsprogs-1.39.tar.gz
 # cd e2fsprogs-1.39
 # ./configure --prefix=/usr --with-root-prefix="" \
   --enable-elf-shlibs --disable-evms --sysconfdir=/etc \
   --infodir=/usr/share/info --mandir=/usr/share/man
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip -vs _pkg/sbin/*
 # strip -vs _pkg/lib/*
 # strip -vs _pkg/usr/bin/*
 # strip -vs _pkg/usr/sbin/*
 # strip -vs _pkg/usr/lib/*

Install the utilities, configuration files and libraries in the rootfs of SliTaz. Be careful if you used fsck, that you didn't destroy the link to BusyBox:

Bisogna installare gli strumenti, i file di configurazione e le librerie nel rootfs di SliTaz. Anche qui bisogna stare attenti, nel caso si sia recuperato fsck, che questo non abbia rotto il link a BusyBox:

 # cp -i _pkg/sbin/{badblocks,blkid,dumpe2fs,e2fsck,e2image} $fs/sbin
 # cp -i _pkg/sbin/{e2label,findfs,logsave,mke2fs,mkfs.*} $fs/sbin
 # cp -i _pkg/sbin/{resize2fs,tune2fs} $fs/sbin
 # cp -a _pkg/lib/* $fs/lib
 # rm -rf $fs/lib/libss*
 # cp -a _pkg/etc/* $fs/etc
 # cp -a _pkg/usr/bin/* $fs/usr/bin
 # cp -a _pkg/usr/sbin/* $fs/usr/sbin
 # cp -ad _pkg/usr/lib/*.so $fs/usr/lib
 # rm -rf $fs/usr/lib/libss*

Per portarsi dietro una localizzazione (nell'esempio qui, quella francese):

 # mkdir $fs/usr/share/locale
 # cp -a _pkg/usr/share/locale/fr $fs/usr/share/locale

Dropbear-0.50 - Client/Server SSH light

Dropbear (http://matt.ucc.asn.au/dropbear/dropbear.html) è un piccolo e sicuro sistema client/server che supporta SSH 2. Dropbear è compatibile con OpenSSH e usa ~/.ssh/authorized_keys per gestire le chiavi pubbliche. Dropbear fornisce anche una sua versione di scp, che va compilata con 'make scp':

 # cd ..
 # wget http://matt.ucc.asn.au/dropbear/releases/dropbear-0.50.tar.gz
 # tar xzf dropbear-0.50.tar.gz
 # cd dropbear-0.50
 # ./configure --prefix=/usr
 # make
 # make scp
 # make DESTDIR=$PWD/_pkg install
 # strip -v scp
 # strip -v _pkg/usr/bin/*
 # strip -v _pkg/usr/sbin/*

Installare il client e gli strumenti in /usr/bin, e il server in /usr/sbin:

 # cp scp $fs/usr/bin
 # cp -a _pkg/usr/bin/* $fs/usr/bin
 # cp -a _pkg/usr/sbin/* $fs/usr/sbin

libs

          libutil.so.1 => /lib/libutil.so.1 (0x40025000)
          libz.so.1 => /usr/lib/libz.so.1 (0x40028000)
          libcrypt.so.1 => /lib/libcrypt.so.1 (0x4003b000)
          libc.so.6 => /lib/libc.so.6 (0x40068000)
          /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Copiare la libreria libutil.so.1 in $fs/lib, se non è già stato fatto. Le altre librerie dovrebbero esserci già, se sono state seguite correttamente le istruzioni relative al setup del sistema base:

 # cp -a /lib/libutil* $fs/lib

Configurare Dropbear

I file di configurazione authorized_keys e known_hosts sono in ~/.ssh. Questa directory e il file known_hosts vengono creati automaticamente la prima volta che un utente lancia dbclient. I file di configurazione del server dropbear sono in /etc/dropbear:

 # mkdir $fs/etc/dropbear

Deve essere generata una chiave di sicurezza prima di avviare il server Dropbear su SliTaz. Puoi usare dropbearkey con i seguenti comandi:

 # dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
 # dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key

Su SliTaz, puoi avviare il server SSH con il comando:

 # /etc/init.d/dropbear start

lighttpd-1.4.18 - HTTP Web server

Lighttpd (www.lighttpd.net) è un server web leggero, sicuro e molto potente. Il progetto è molto attivo e la sua configurazione molto semplice. Supporta i VirtualHost, gli script CGI e permette una gestione intelligente della CPU:

 # cd ..
 # wget http://www.lighttpd.net/download/lighttpd-1.4.18.tar.gz
 # tar xzf lighttpd-1.4.18.tar.gz
 # cd lighttpd-1.4.18
 # ./configure -enable-shared --disable-ipv6 --prefix=/usr \
   --libdir=/usr/lib/lighttpd --mandir=/usr/share/man
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip -vs _pkg/usr/bin/*
 # strip -vs _pkg/usr/sbin/*
 # strip -vs _pkg/usr/lib/lighttpd/*

Installa il server e le librerie generate. A questo punto copiamo anche alcuni moduli (9):

 # cp _pkg/usr/bin/* $fs/usr/bin
 # cp _pkg/usr/sbin/* $fs/usr/sbin
 # mkdir $fs/usr/lib/lighttpd
 Modules :
 # cp _pkg/usr/lib/lighttpd/mod_access.so $fs/usr/lib/lighttpd
 # cp _pkg/usr/lib/lighttpd/mod_accesslog.so $fs/usr/lib/lighttpd
 # cp _pkg/usr/lib/lighttpd/mod_alias.so $fs/usr/lib/lighttpd
 # cp _pkg/usr/lib/lighttpd/mod_auth.so $fs/usr/lib/lighttpd
 # cp _pkg/usr/lib/lighttpd/mod_cgi.so $fs/usr/lib/lighttpd
 # cp _pkg/usr/lib/lighttpd/mod_compress.so $fs/usr/lib/lighttpd
 # cp _pkg/usr/lib/lighttpd/mod_rewrite.so $fs/usr/lib/lighttpd
 # cp _pkg/usr/lib/lighttpd/mod_status.so $fs/usr/lib/lighttpd
 # cp _pkg/usr/lib/lighttpd/mod_userdir.so $fs/usr/lib/lighttpd

libs

Dovrebbe esserci una libreria libdl.so.2; Se manca possiamo copiare:

 # cp -a /lib/libdl* $fs/lib

/var/www - root dei documenti serviti

/var/www è la directory dei documenti serviti per default. E' accessibile all'url http://localhost una volta che lighttpd è avviato. La directory contiene un index.html che viene automaticamente visualizzato in caso di una richesta. Creeremo una directory /var/www per vedere cosa piazzarci dentro:

 # mkdir -p $fs/var/www

lighttpd.conf - Il file di configurazione di lighttpd

Il file di configurazione principale di Lighttpd è posizionato a /etc/lighttpd ed è chiamato lighttpd.conf. Il file di configurazione che fornisce SliTaz è abbastanza auto-esplicativo, è sufficiente scorrerlo. Si possono trovare altri esempi di come scriverlo sul sito di Lighttpd così come un file di configurazione d'esempio sotto /doc nell'archivio di Lighttpd.

 # cp -a ../slitaz-tools-1.1/etc/lighttpd $fs/etc

Creiamo una directory per i files di log:

 # mkdir $fs/var/log/lighttpd

Utente e gruppo www

Aggiungeremo un utente e un gruppo per il web server. Questa policy permette di avere una maggior sicurezza e non c'è alcun bisogno che il server giri come root. L'utente di default usato su SliTaz è www, ma può essere cambiato via file di configurazione lighttpd.conf. L'applicazione BusyBox adduser ha alcuni limiti, quindi aggiungeremo l'utente 'www' manualmente. Cambieremo anche di conseguenza i permessi della directory dei log (che deve essere scrivibile da www, pena non far partire il server).

 # echo "www:x:80:80:www:/var/www:/bin/sh" >> $fs/etc/passwd
 # echo "www:*:13509:0:99999:7:::" >> $fs/etc/shadow
 # echo "www:*:13509:0:99999:7:::" >> $fs/etc/shadow-
 # chroot $fs /bin/ash
 /# addgroup -g 80 www
 /# chown www.www /var/log/lighttpd
 # exit

Attenzione. Nella SlITaz completa (4.0) lighttpd non è preinstallato. Il sistema usa, come webserver, il server base fornito da BusyBox. Lighttpd è comunque recuperabile come pacchetto.

iptables-1.3.7 - Netfilter, Linux firewall

Netfilter (www.netfilter.org) è un modulo che fornisce funzioni per il firewall del kernel linux, per le connesioni di rete condivise (NAT) e per archiviare le informazioni del traffico di rete. Il comando iptables permette di configurare Netfilter. iptables-restore e iptables-save permettono di salvare o ripristinare configurazioni di Netfilter:

 # cd ..
 # wget http://www.netfilter.org/projects/iptables/files/iptables-1.3.7.tar.bz2
 # tar xjf iptables-1.3.7.tar.bz2
 # cd iptables-1.3.7
 # make KERNEL_DIR=../linux-2.6.20 BINDIR=/sbin \
   LIBDIR=/lib MANDIR=/usr/share/man
 # make KERNEL_DIR=../linux-2.6.20 BINDIR=/sbin \
   LIBDIR=/lib MANDIR=/usr/share/man \
   DESTDIR=$PWD/_pkg install
 # strip  _pkg/sbin/*
 # strip  _pkg/lib/iptables/*

Installazione di iptables* e delle librerie utili a fornire un firewall di base:

 # cp -a _pkg/sbin/iptables* $fs/sbin
 # mkdir $fs/lib/iptables
 # cp -a _pkg/lib/iptables/{libipt_standard.so,libipt_conntrack.so} \
   $fs/lib/iptables
 # cp -a _pkg/lib/iptables/{libipt_tcp.so,libipt_udp.so} $fs/lib/iptables

Per soddisfare le dipendenze di iptables, bisogna copiare le librerie libnsl:

 # cp -va /lib/libnsl* $fs/lib/tls
 # strip $fs/lib/libnsl*

sqlite-3.5.1 - Un piccolo motore SQL

Questo pacchetto fornisce sqlite3 (www.sqlite.org) e le librerie sqlite3.so*. SQLite è veloce ed efficiente e si integra direttamente con i programm via file di database.

 # cd ..
 # wget http://www.sqlite.org/sqlite-3.5.1.tar.gz
 # tar xzf sqlite-3.5.1.tar.gz
 # cd sqlite-3.5.1
 # ./configure --prefix=/usr --disable-tcl
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip _pkg/usr/lib/*.so*
 # strip _pkg/usr/bin/*

Installiamo sqlite3 e le sue librerie nel rootfs di SliTaz:

 # cp -a _pkg/usr/lib/*.so* $fs/usr/lib
 # cp -a _pkg/usr/bin/* $fs/usr/bin

cdrkit-1.1.5 - Strumenti per manipolare CD e immagini ISO

cdrkit (www.cdrkit.org) fornisce strumenti per manipolare cdroms. SliTaz installa di default wodim per scrivere e genisoimage per creare immagini ISO. La compilazione è leggermente differente perché usa cmake, ma non dovrebbe dare problemi:

 # cd ..
 # wget http://cdrkit.org/releases/cdrkit-1.1.5.tar.gz
 # tar xzf cdrkit-1.1.5.tar.gz
 # cd cdrkit-1.1.5
 # make
 # make install PREFIX=$PWD/_pkg/usr
 # strip -v _pkg/usr/bin/*
 # strip -v _pkg/usr/sbin/*
 # cp _pkg/usr/bin/genisoimage $fs/usr/bin
 # cp _pkg/usr/bin/wodim $fs/usr/bin

Copiare la libreria libcap.so.1 richiesta da wodim:

 # cp -a /lib/libcap.so* $fs/lib

cpio-2.8 - Strumento d'archivio

“cpio” (http://www.gnu.org/software/cpio/) fornisce strumenti per manipolare archivi cpio. Questo formato di archiviazione è usato per i pacchetti e per l'immagine initramfs del cdrom (come spiegato nei capitoli precedenti). E' da notare che BusyBox fornisce una versione di cpio utile solo per la decompressione:

 # cd ..
 # wget ftp://sunsite.cnlab-switch.ch/mirror/gnu/cpio/cpio-2.8.tar.gz
 # tar xzf cpio-2.8.tar.gz
 # cd cpio-2.8
 # ./configure --prefix=/usr --bindir=/bin \
   --libexecdir=/usr/bin --mandir=/usr/share/man \
   --infodir=/usr/share/info
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip -v _pkg/bin/*
 # strip -v _pkg/usr/bin/*

Installazione di “cpio” in /bin e “rmt” in /usr/bin. Anche qui si possono aggiungere gli eventuali file di localizzazione (l'esempio è ancora in francese):

 # cp -a _pkg/bin/* $fs/bin
 # cp -a _pkg/usr/bin/* $fs/usr/bin
 # cp -a _pkg/usr/share/locale/fr $fs/usr/share/locale

microperl-5.8.8 - Un piccolo Perl

Microperl è una piccola implementazione di perl fatta tenendo conto di tutte le funzioni base del linguaggio. Si possono trovare maggiori informazioni su esso nell'archivio dei sorgenti, nel file “README.micro”. Usiamo un piccolo file di configurazione che cerca i moduli microperl in /usr/lib/perl5. Creiamo anche un link dell'eseguibile microperl come perl, per poter utilizzare script con la shebang line standard: #! /usr/bin/perl

 # wget http://ftp.funet.fi/pub/CPAN/src/perl-5.8.8.tar.gz
 # tar xzf perl-5.8.8.tar.gz
 # cd perl-5.8.8
 # sed -i s/'usr\/local'/'usr'/ uconfig.sh
 # sed -i s/'perl5\/5.9'/'perl5'/ uconfig.sh
 # sed -i s/'unknown'/'i486-pc-linux-gnu'/ uconfig.sh
 # make -f Makefile.micro regen_uconfig
 # make -f Makefile.micro
 # strip microperl
 # cp microperl $fs/usr/bin
 # chroot $fs /bin/ash
 /# cd /usr/bin
 /# ln -s microperl perl
 /# exit

module-init-tools-3.2 - Strumenti per manipolare i moduli del kernel

module-init-tools da kernel.org: modprobe, insmod, rmmod and lsmod. Abbiamo scelto di usare questi così possiamo compilare modutils/modprobe in modo tale da supportare moduli compressi (in gz) così da risparmiare spazio. Per fare questo usiamo l'opzione –enable-zlib, ripuliamo e copiamo i binari. Non prenderemo tutto quello che verrà creato, solo quello che ci servirà: depmod, insmod, modinfo, modprobe e rmmod in /sbin e lsmod in /bin:

 # cd ..
 # wget http://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2
 # tar xjf module-init-tools-3.2.tar.bz2
 # cd module-init-tools-3.2
 # ./configure --enable-zlib --prefix=/usr --sbindir=/sbin --bindir=/bin \
   --sysconfdir=/etc --infodir=/usr/share/info --mandir=/usr/share/man
 # make
 # make DESTDIR=$PWD/_pkg install
 # strip -v _pkg/sbin/{depmod,insmod,modinfo,modprobe,rmmod}
 # strip -v _pkg/bin/lsmod
 # cp -i _pkg/sbin/{depmod,insmod,modinfo,modprobe,rmmod} $fs/sbin
 # cp -i _pkg/bin/lsmod $fs/bin
 # cd ..

Copia dei moduli del kernel

Copiare file da linux-2.6.20/_pkg:

 # cp -a linux-2.6.20/_pkg/lib/* $fs/lib

Comprimere i moduli del kernel

Comprimere i moduli dovrebbe permetterci di risparmiare il 50% dello spazio disopnibile. Cominciamo andando in rootfs, quindi cerchiamo per tutti i file con estensione “.ko” e li comprimiamo. Si può anche usare lo script gzmodtaz.sh, che si trova negli SliTaz tools:

 # cd $fs

Con 'gztazmod.sh':

 # cp -v ../src/slitaz-tools-1.1/utils/gztazmod.sh sbin
 # ./sbin/gztazmod.sh lib/modules/2.6.20-slitaz

A manina:

 # cd lib/modules/2.6.20-slitaz
 # find . -name "*.ko" -exec gzip '{}' \;
 # sed 's/\.ko/.ko.gz/g' modules.dep > tmp.dep
 # rm modules.dep
 # mv tmp.dep modules.dep

Generare initramfs e l'immagine ISO

Per creare una nuova ISO, si può usare mktaziso in SliTaz tools. O si può creare una nuova immagine initramfs, copiarla in /boot nella root del cdrom (rootcd) e infine generare la ISO con genisoimage:

 # cd $fs
 # find . -print | cpio -o -H newc | gzip -9 > ../rootfs.gz
 # cd ..
 # cp rootfs.gz rootcd/boot
 # genisoimage -R -o slitaz-test.iso -b boot/isolinux/isolinux.bin \
   -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
   -V "SliTaz" -input-charset iso8859-1 -boot-info-table rootcd

Testiamo la iso:

 # qemu -cdrom slitaz-test.iso

Prossimo capitolo

Il prossimo capitolo è chiamato Base Ncurses. Riguarda l'installazione degli strumenti e delle librerie ncurses.

 
it/scratchbook/base-apps.txt · Last modified: 2012/06/30 22:14 by cymon