====== Librerie e applicazioni Ncurses ====== Installazione e configurazione delle applicazioni e delle librerie Ncurses ===== About ===== Questo capitolo descrive la costruzione e l'installazione di certe applicazioni e librerie ncurses in SliTaz. La procedura consiste nell'andare sotto la directory /src, scaricare i sorgenti delle applicazioni in questione, decomprimerle, leggere i README e INSTALL file, compilare e installare i binari in SliTaz. Una volta che le applicazioni saranno installate, potremo creare un nuovo initramfs, copiarlo nella root del cdrom e generare una nuova ISO. Per far questo si può usare anche "mktaziso" in [[http://doc.slitaz.org/en:cookbook:slitaztools|SliTaz tools]]. ==== 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 ===== ncurses-5.6 - Strumenti e librerie per terminale ===== ncurses ([[http://dickey.his.com/ncurses/|dickey.his.com/ncurses/]]) contiene funzioni per mostrare il testo in modi differenti sullo schermo di un terminale Linux e rende disponibile anche i file terminfo. Le librerie Ncurses sono usate tra gli altri da retawq, nano e certi giochi. Installeremo le librerie in /lib e il resto in /usr/bin con il solito piccolo strip per ripulire gli eseguibili: # cd src # wget ftp://invisible-island.net/ncurses/ncurses-5.6.tar.gz # tar xzf ncurses-5.6.tar.gz # cd ncurses-5.6 # ./configure --prefix=/usr \ --libdir=/lib --sysconfdir=/etc \ --infodir=/usr/share/info --mandir=/usr/share/man \ --with-shared --without-debug --without-ada # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/lib/* # strip -v _pkg/usr/bin/* Copiare le librerie libncurses e alcune applicazioni in SliTaz. Lo strumento reset è usato alla fine dello script di inizializzazione rcS per rimuovere il logo Linux. Se volete potete copiare tutti gli strumenti associati (tic, tack, toe, etc), facendo attenzione a non cancellare i link a BusyBox: # cp -a _pkg/lib/libncurses.so* $fs/lib # cp -ia _pkg/usr/bin/{clear,ncurses5-config,tset,reset} \ $fs/usr/bin Copiamo i file terminfo, ne useremo pochi. Se ne volete di più potete copiare: # mkdir -v $fs/usr/share/terminfo # mkdir -v $fs/usr/share/terminfo/{a,l,r,v,x} # cp _pkg/usr/share/terminfo/a/ansi \ $fs/usr/share/terminfo/a # cp _pkg/usr/share/terminfo/l/linux \ $fs/usr/share/terminfo/l # cp _pkg/usr/share/terminfo/r/rxvt \ $fs/usr/share/terminfo/r # cp _pkg/usr/share/terminfo/x/{xterm,xterm-color,xterm-new,xterm-vt220} \ $fs/usr/share/terminfo/x # cp _pkg/usr/share/terminfo/v/{vt100,vt102*} \ $fs/usr/share/terminfo/v Copiamo i file tabset: # cp -a _pkg/usr/share/tabset $fs/usr/share ===== clex-3.16 - File Manager ===== CLEX (http://www.clex.sk/) è un piccolo file manager basato su ncurses (160 KB). Il file di configurazioni (rc) è ~/clexrc; ~/.clexbm è usato per i segnalibri: # cd .. # wget http://www.clex.sk/download/clex-3.16.tar.gz # tar xzf clex-3.16.tar.gz # cd clex-3.16 # ./configure --prefix=/usr --infodir=/usr/share/info \ --mandir=/usr/share/man # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/bin/clex Install the clex binary in the rootfs of SliTaz: Installiamo i binari di clex nella rootfs di SliTaz: # cp _pkg/usr/bin/clex $fs/usr/bin ==== libs ==== Se eseguiamo "ldd" su clex, dovremmo vedere queste dipendenze: libncurses.so.5 => /lib/libncurses.so.5 (0x40025000) libc.so.6 => /lib/libc.so.6 (0x40064000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) ===== nano-2.0.6 - Advanced Text Editor ===== GNU nano ([[http://www.nano-editor.org/|www.nano-editor.org]]) è un noto ed efficiente editor di testo GNU/Linux che supporta la sintassi colorata. E' l'editor di testo di default di SliTaz: # cd .. # wget http://www.nano-editor.org/dist/v2.0/nano-2.0.6.tar.gz # tar xzf nano-2.0.6.tar.gz # cd nano-2.0.6 # ./configure --enable-all --enable-extra --prefix=/usr \ --infodir=/usr/share/info --mandir=/usr/share/man \ --sysconfdir=/etc # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/bin/nano Copiare il binario di nano e il link rnano in SliTaz: # cp -a _pkg/usr/bin/* $fs/usr/bin Copy the configuration files in _pkg/usr/share/nano to our rootfs: Copiare i file di configurazione in _pkg/usr/share/nano nel nostro rootfs: # cp -a _pkg/usr/share/nano $fs/usr/share ==== libs ==== "ldd" su nano: libncurses.so.5 => /lib/libncurses.so.5 (0x40025000) libc.so.6 => /lib/libc.so.6 (0x40064000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) ==== locale ==== Riguardo il linguaggio, puoi copiare i file .mo creati quando viene installato nano da /usr/share/locale/(fr,en,de,es,etc)/LC_MESSAGES in rootfs. Esempio per il francese: # cp -a _pkg/usr/share/locale/fr/LC_MESSAGES $fs/usr/share/locale/fr ==== Customizzazione di nano ==== Nano si può configurare tramite /etc/nanorc o ~/.nanorc (configurazione per ogni utente). In questo file si possono definire i colori da usare usando i file in /usr/share/nano. Un ampio esempio di come fare è recuperabile nel pacchetto di nano o in [[http://doc.slitaz.org/en:cookbook:slitaztools|SliTaz tools]]. Per un file di configurazione di sistema, puoi copiare il file in SliTaz tools dentro /etc del rootfs: # cd .. # cp -a slitaz-tools-1.1/etc/nanorc $fs/etc ===== retawq-0.2.6c - Web browser testuale ===== retawq ([[http://retawq.sourceforge.net/|retawq.sourceforge.net]]) è un piccolo browser testuale. Con le poche opzioni configurate da noi, retawq necessita solo dei file terminfo, di libncurses e di libthread: # wget http://switch.dl.sourceforge.net/sourceforge/retawq/retawq-0.2.6c.tar.gz # tar xzf retawq-0.2.6c.tar.gz # cd retawq-0.2.6c # ./configure --enable-i18n --enable-local-cgi --path-prefix=/usr \ --path-doc=/usr/share/doc/retawq --path-man=/usr/share/man # make # strip -v retawq Copiare i binari di retawq in SliTaz: # cp retawq $fs/usr/bin ==== libs ==== libncurses.so.5 => /lib/libncurses.so.5 (0x40025000) libpthread.so.0 => /lib/libpthread.so.0 (0x40064000) libc.so.6 => /lib/libc.so.6 (0x40074000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) Per quello che riguarda libthread si può copiare dal sistema host o usare il pacchetto minimo di glibc-2.3.6 distribuito da SliTaz: # cp -a /lib/libpthread* $fs/lib # strip --strip-unneeded $fs/lib/* ==== locale ==== Per la lingua, puoi copiare i file .mo dal path /i18n del pacchetto retawq in /usr/share/locale/(fr,en,es,etc)/LC_MESSAGES. Esempio per il francese, rinominando il file in retawq.mo: # cp -v i18n/fr.mo $fs/usr/share/locale/fr/LC_MESSAGES/retawq.mo ==== Customizzare retawq ==== Per personalizzare retawq si può usare la directory ~/.retawq, contentente il file di configurazione (valido solo per l'utente). Ci si può anche salvare dei segnalibri (html) nella home dell'utente. Al solito sono disponibili esempi nel pacchetto di retawq (o SliTaz tools) che contengono una pagina bookmarks.html con una lista di siti favoriti. Si pososno anche copiare i documenti (/documents) da retawq a /usr/share/doc/retawq. ===== htop-6.0.5 - Visualizzatore di processi di sistema ===== htop ([[http://htop.sourceforge.net/|htop.sourceforge.net/]]) è un software che mostra i processi del sistema usando ncurses. Ritornando alla directory /src, scaricare decomprimenre, configurare, compilare e ripulire con strip: # cd .. # wget http://switch.dl.sourceforge.net/sourceforge/htop/htop-0.6.5.tar.gz # tar xzf htop-0.6.5.tar.gz # cd htop-0.6.5 # ./configure --prefix=/usr --mandir=/usr/share/man # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/bin/htop Copiare i binari in SliTaz: # cp _pkg/usr/bin/htop $fs/usr/bin Per l'icona di htop: _pkg/usr/share/pixmaps. ==== libs ==== libm.so.6 => /lib/libm.so.6 (0xb7f97000) libncurses.so.5 => /lib/libncurses.so.5 (0xb7f55000) libc.so.6 => /lib/libc.so.6 (0xb7e20000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fc9000) --- Tradotto fin qui --- ===== dialog-1.1.20070409 - GUI shell scripts ===== dialog ([[http://invisible-island.net/dialog/dialog.html|invisible-island.net/dialog/dialog.html]]), is a utility to build GUI-based consoles: # cd .. # wget ftp://invisible-island.net/dialog/dialog.tar.gz # tar xzf dialog.tar.gz # cd dialog-1.1-20070409 # ./configure --enable-nls --with-ncurses --prefix=/usr \ --sysconfdir=/etc --mandir=/usr/share/man # make # make DESTDIR=$PWD/_pkg install # strip -v _pkg/usr/bin/dialog Copy dialog binary in SliTaz: # cp _pkg/usr/bin/dialog $fs/usr/bin ==== libs ==== libncurses.so.5 => /lib/libncurses.so.5 (0x40027000) libm.so.6 => /lib/libm.so.6 (0x40066000) libc.so.6 => /lib/libc.so.6 (0x40089000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) ==== locale ==== You can install locale files if you wish: # cp -a _pkg/usr/share/locale/fr $fs/usr/share/locale The dialog configuration file is /etc/dialogrc and/or ~/.dialogrc for each user. There are also full examples of scripts in the /sample directory in the sources of dialog. ===== Ninvaders-0.1.1 - Space Invaders clone ===== ninvaders (http://ninvaders.sourceforge.net/) is a clone of the popular Space Invaders game (46 KB). We begin by placing ourselves in the /src directory, then we download, untar, compile, clean using strip and copy the nInvaders binary in /usr/games of SliTaz: # cd .. # wget http://ovh.dl.sourceforge.net/sourceforge/ninvaders/ninvaders-0.1.1.tar.gz # tar xzf ninvaders-0.1.1.tar.gz # cd ninvaders-0.1.1 # make # strip -v nInvaders # cp nInvaders $fs/usr/games ===== bastet-0.41 - Bastard Tetris clone ===== A game of Tetris (17 KB): # wget http://fph.altervista.org/prog/bastet-0.41.tgz # tar xzf bastet-0.41.tgz # cd bastet-0.41 # make # strip bastet # cp bastet $fs/usr/games # mkdir -p $fs/var/games # touch $fs/var/games/bastet.scores # chmod 666 $fs/var/games/bastet.scores ===== rhapsody-0.28b - IRC chat client ===== Rhapsody (http://rhapsody.sourceforge.net/) is a fast and lightweight chat client supporting the IRC protocol. It provides a menu for managing servers, channels and configuration. It is therefore easy to use: # cd .. # wget http://switch.dl.sourceforge.net/sourceforge/rhapsody/rhapsody_0.28b.tgz # tar xzf rhapsody_0.28b.tgz # cd rhapsody-0.28b # ./configure -i /usr/bin -d /usr/share/doc/rhapsody # make # strip -v rhapsody Install the binary and help files in SliTaz. We must adjust permissions on these files so that everyone can read: # cp rhapsody $fs/usr/bin # mkdir $fs/usr/share/doc/rhapsody # cp -a help $fs/usr/share/doc/rhapsody/help # chmod 644 $fs/usr/share/doc/rhapsody/help/* ==== libs ==== Rhapsody uses the following libraries: libncurses.so.5 => /lib/libncurses.so.5 (0x40026000) libc.so.6 => /lib/libc.so.6 (0x40066000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)) ==== Rhapsody use the following libraries: ==== You can customize rhapsody via ~/.rhapsodyrc or use for options: ===== Generate the initramfs and an ISO image ===== To create a new ISO image, you can use 'mktaziso' in SliTaz tools. Or you can create a new initramfs image, copy it to /boot in the root of the cdrom (rootcd) and finally generate an ISO image with genisoimage: # cd $fs # find . -print | cpio -o -H newc | gzip -9 > ../rootfs.gz # cd .. # cp rootfs.gz rootcd/boot # genisoimage -R -o slitaz-cooking.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 ==== Following chapter ==== The next chapter describes the installation of the [[locale|locales]] and i18n.