Configuration HOWTO Di Guido Gonzato, guido@ibogeo.df.unibo.it Versione 1.2.4. 7 Gennaio 1999. Lo scopo di questo HOWTO è quello di rendere la configurazione del vostro nuovo sistema Linux più veloce e più semplice. Qui troverete un insieme di configurazioni per le applicazioni più comuni, così potrete cominciare a lavorare con un sistema facile da usare. 1. Introduzione 1.1. Perché questo HOWTO Ho installato Linux su molti PC e ho notato che le distribuzioni attuali sono ottime ma, purtroppo, mancano di alcune configurazioni di base. Molti programmi funzionano subito, ma altri no. Inoltre, ho notato che le solite domande continuano ad essere postate su c.o.l.setup. Per cercare di porre rimedio a questa situazione e per avere un memorandum per le nuove installazioni, mi sono scritto un elenco di cose da fare che ho poi espanso fino a trasformarlo in questo HOWTO. Qui troverete alcuni esempi di configurazioni per i programmi più comuni, il che dovrebbe farvi risparmiare un bel po' di tempo e lavoro. Alcuni degli esempi di configurazione in questo HOWTO dipendono in qualche modo dalla distribuzione. Ho accesso solo a macchine Red Hat, Caldera e S.u.S.E., quindi non prendete per oro colato i miei suggerimenti se avete Slackware, Debian o altre distribuzioni. Ad ogni modo, leggersi la documentazione e gli HOWTO ripaga sempre, quindi siete comunque invitati a farlo. La mia distribuzione di riferimento è Red Hat; per evitare ripetizioni, ``AQVD'' significa ``Adattate Questo alla Vostra Distribuzione''. Una nota finale: spero che questo HOWTO divenga obsoleto nel più breve tempo possibile. La tendenza delle distribuzioni di Linux è di fornire tool di configurazione, piuttosto che lasciare l'amministratore alle prese con una montagna di documentazione. Quindi, quando possibile vi indicherò un tool appropriato. La versione più aggiornata di questo documento è reperibile presso , comprese alcune traduzioni. 1.2. Cosa configureremo Le configurazioni hardware di un PC sono infinite, ma una è molto comune: un PC con un disco fisso suddiviso in tre partizioni (una per DOS/Windows, una per Linux e una partizione di swap), modem, drive CD--ROM, stampante, mouse. Lo Zip drive in versione per la porta parallela è inoltre assai diffuso. Assumerò che questo è l'hardware che volete configurare, ma è semplice adattare i consigli e gli esempi che vi darò per altre configurazioni. È implicito che dovrete essere root per editare/configurare/pasticciare col sistema. E ora, rimbocchiamoci le maniche. 2. Setup generale del sistema 2.1. Tastiera Prima di tutto, come configurare la tastiera. Se vi siete persi questo passaggio durante l'installazione o avete cambiato tastiera, dovrete: · scegliere un'adeguata mappa di tastiera da /usr/lib/kbd/keytables/; ad esempio, it.map seleziona la tastiera italiana; · editare il file /etc/sysconfig/keyboard in modo che appaia: KEYTABLE="/usr/lib/kbd/keytables/it.map"; · per settare il tasso di ripetizione e il ritardo della tastiera, aggiungete questa linea a /etc/rc.d/rc.sysinit (Red Hat) o /etc/rc.d/rc.boot (Caldera) o /etc/rc.d/boot (S.u.S.E): /sbin/kbdrate -s -r 16 -d 500 # o come preferite Per caricare la nuova mappa di tastiera, date il comando /etc/rc.d/init.d/keytable start (AQVS). Per quanto riguarda altri settaggi relativi ai tasti speciali, troverete istruzioni più avanti. Per abilitare NumLock per default, aggiungete questa linee a /etc/rc.d/rc.sysinit (AQVS): for tty in /dev/tty[1-9]*; do setleds -D +num < $tty done 2.2. Kernel Io credo cha a questo punto la cosa più sensata sia farsi un kernel su misura. È molto semplice, ma per ogni dubbio leggetevi il file README in /usr/src/linux/ o il Kernel HOWTO. Suggerimenti: · considerate le vostre necessità con attenzione. È più produttivo scegliere una configurazione per il kernel, applicare le patch e compilare una volta per tutte, piuttosto che riconfigurare e ricompilare ogni mese; questo vale specialmente se la vostra Linux box è un server. Non dimenticate di aggiungere il supporto per l'hardware che potreste aggiungere in futuro (ad es. SCSI, Zip, schede di rete, etc); · se il vostro PC è basato su CPU Cyrix che non viene riconosciuta come tale dal kernel, ci sono delle patch per incrementarne le prestazioni. Informazioni su ; · gli utenti di portatili possono aumentare le leggibilità dello schermo LCD. Una volta suggerivo di applicare una patch al kernel, ma ora credo che SVGATextMode (vedi Sezione ``SVGATextMode'') sia la soluzione migliore. Per chi vuole, comunque, la patch ``Big Cursor'' si trova all'indirizzo ; · ancora per gli utenti di portatili: se volete usare un modem/fax PCMCIA, non compilate il supporto seriale come modulo, ma direttamente nel kernel. In caso contrario, il modem PCMCIA non funzionerà; · se usate schede PCMCIA, compilate anche i relativi moduli; inoltre, non dimenticate di editare /etc/pcmcia/network.opts se usate una schedina di rete; · se modprobe vi dà quei fastidiosi messaggi di errore indicando che alcuni moduli non ci sono, dovete correggere /etc/conf.modules. Ad esempio, se non usate i moduli ipx e appletalk, aggiungete queste linee: alias net-pf-4 off alias net-pf-5 off · per risparmiare tempo la prossima volta che compilerete il kernel, è consigliabile salvare la configurazione su file e mettere quest'ultimo al sicuro. Attenzione però: se fate l'upgrade del kernel, questo file sarà quasi certamente inutile, perché non contiene le funzionalità del nuovo kernel. 2.3. Blocco di sendmail Su alcuni sistemi, sendmail blocca la macchina per un paio di minuti in fase di boot. Si distinguono due casi: 1) il PC non è direttamente connesso a Internet, 2) lo è, e ha un indirizzo IP fisso. Correzione per il caso 1: assicuratevi che /etc/hosts contenga una linea con scritto 127.0.0.1 localhost Nel secondo caso, il blocco avviene se /etc/hosts contiene questa linea: 127.0.0.1 localhost host_name che dovrete modificare così: 127.0.0.1 localhost w.x.y.z host_name Vedete anche alla sezione ``Hostname''. 2.4. Prestazioni del disco fisso Le prestazioni del vostro disco fisso possono essere notevolmente migliorate con l'uso accorto di hdparm(8). Se la vostra distribuzione di Linux non lo include, lo troverete su ; cercate un file chiamato hdparm-X.Y.tar.gz. Non c'è una formula valida per tutti, poichè molti dettagli dipendono dal disco fisso e dal controller. Visto che si rischia di danneggiare il filesystem, leggete la man page con attenzione prima di usare certe opzioni. Come minimo, potrete aggiungere a /etc/rc.d/rc.sysinit la linea seguente: /sbin/hdparm -c1 /dev/hda # primo drive IDE che abilita il supporto per l'I/O (E)IDE a 32-bit. Per quanto riguarda l'opzione ``-m'', ecco cosa mi ha scritto l'autore di hdparm, Mark Lord: (...) if your system uses components from the past couple of years [< 1997], it will be fine. Older than that, there *may* be a problem (unlikely). The really buggy chips were the CMD0646 and RZ1000 chips, used *extensively* on 486 and (early) 586 motherboards about 2-3 years ago. 2.5. Zip drive per porta parallela Per usare lo Zip drive (versione parallela), potete usare il driver standard fornito con i kernel recenti (2.x.x). Durante la configurazione del kernel, asssicuratevi di includere il supporto per lo SCSI generico e per i dischi SCSI, nel kernel o come modulo. Tenete presente che ci possono essere conflitti tra la stampante e lo Zip drive se usano la stessa porta parallela, quindi compilate il supporto per entrambi come moduli. I dischi Zip sono venduti preformattati sulla partizione /dev/sda4. Per abilitare lo zip, si fa #~ chmod 666 /dev/sda4 # tutti possono accedere allo Zip Drive #~ insmod ppa e lo Zip può essere montato come gli altri dischi (meglio includere la seconda linea in /etc/rc.d/rc.sysinit). Inoltre, potete accedere allo Zip drive tramite mtools aggiungendo questa linea al vostro /etc/mtools.conf: drive z: file="/dev/sda4" exclusive C'è un driver ppa migliore di quello standard: informazioni su . 2.6. Driver di dispositivi Alcuni dispositivi in /dev (o meglio, collegamenti ai veri driver) possono essere assenti. Controllate a quali dispositivi corrispondono il mouse, il modem e il CD--ROM, poi fate: ~# cd /dev /dev# ln -s /dev/ttyS0 mouse /dev# ln -s /dev/ttyS1 modem /dev# ln -s /dev/hdb cdrom Dritta: in molti portatili, il mouse è /dev/psaux: tenetelo presente quando installate X11. Se volete, date chmod 666 a questi device per renderli accessibili a tutti gli utenti. Ci sono problemi di sicurezza! In alternativa, create il gruppo ``cdrom'', date il comando chown root.cdrom /dev/cdrom, quindi aggiungete utenti a questo gruppo. Procedete in modo analogo per gli altri dispositivi. 2.7. Messaggi di login Se volete personalizzare i messaggi di login, controllate se il vostro /etc/rc.d/rc.local sovrascrive /etc/issue e /etc/motd (RedHat lo fa). Se li sovrascrive, dateci sotto con l'editor. 2.8. Hostname Impartire il comando hostname nuovo_host_name non basta. Per evitare il problema del blocco di sendmail, seguite queste istruzioni (valide solo per una macchina non collegata ad Internet permanentemente): · editate /etc/sysconfig/network e cambiate l'hostname qui contenuto (ad es. nuovo_host_nome.localdomain); · editate /etc/HOSTNAME in modo appropriato (ad es., nuovo_host_name.localdomain); · aggiungete il nuovo hostname in questa linea in /etc/hosts: 127.0.0.1 nuovo_host_name.locadomain nuovo_host_name 2.9. Mouse I servizi di gpm sono utili per il taglia e incolla in modo testo, e per usare il mouse in alcune applicazioni. Per Red Hat, controllate se avete un file chiamato /etc/sysconfig/mouse e che ci sia scritto: MOUSETYPE="Microsoft" XEMU3=yes Inoltre, dovete avere un file /etc/rc.d/init.d/gpm, dove aggiungerete parametri addizionali. Nel mio ho inserito: ... daemon gpm -t $MOUSETYPE -d 2 -a 5 -B 132 # mouse a due bottoni ... Ovviamente, accertatevi che la configurazione sia quella giusta per il vostro mouse. Dritta: in molti portatili, MOUSETYPE è ``PS/2''. Per Caldera, per abilitare il mouse basta aggiungere in fondo a /etc/rc.d/rc.boot: /usr/bin/gpm Per S.u.S.E., i parametri per gpm sono in /etc/rc.config; per Debian, si edita /etc/gpm.conf. Se volete usare i menu in console con Ctrl-tasto, configurate anche gpm-root. Editate il menu di default in /etc/gpm-root.conf , quindi lanciate gpm-root da /etc/rc.d/rc.sysinit (AQVD). 2.10. Mount Point È comodo avere dei punti di mount per il floppy, il CD--ROM, la partizione DOS e altri dispositivi. Ad esempio, potreste fare: ~# cd /mnt /mnt# mkdir floppy ; mkdir cdrom ; mkdir win ; mkdir zip ; mkdir server che crea i punti di mount per il floppy in formato DOS/Windows, il CD--ROM, la partizione Windows, lo Zip drive per la porta parallela e una directory NFS. Ora editate il file /etc/fstab e aggiungete queste linee: /dev/fd0 /mnt/floppy vfat user,noauto 0 1 /dev/cdrom /mnt/cdrom iso9660 ro,user,noauto 0 1 /dev/sda4 /mnt/zip vfat user,noauto,exec 0 1 /dev/hda1 /mnt/win vfat user,noauto 0 1 server:/export /mnt/server nfs defaults Come è ovvio, dovete usare il device giusto nel primo campo. I kernel recenti hanno il supporto nativo per le partizioni fat32; oppure troverete informazioni e una patch per il kernel all'indirizzo . man mount per ulteriori informazioni. È consigliabile installare mtools per accedere ai floppy DOS/Windows! 2.11. Lilo(8) e LOADLIN.EXE Molti utenti vogliono poter usare sia Linux che DOS/Windows, e scegliere al boot quale sistema operativo lanciare; questo settaggio dovrebbe avvenire in fase di installazione, ma se nel caso fate come segue. Supponiamo che /dev/hda1 contenga DOS/Windows e che /dev/hda2 contenga Linux. ~# fdisk Using /dev/hda as default device! Command (m for help):a Partition number (1-4): 2 Command (m for help):w ~# Così si rende attiva la partizione di Linux. Scrivetevi quindi questo semplice /etc/lilo.conf: boot = /dev/hda2 compact delay = 50 # message = /boot/bootmesg.txt # scrivetevene uno, se vi va root = current image = /boot/vmlinuz # per default fa partire Linux, la prima entry label = linux read-only other = /dev/hda1 table = /dev/hda label = dos Ora date il comando /sbin/lilo e siete a posto. Visto che LILO è un passaggio cruciale dell'installazione, vi consiglio caldamente di leggervi comunque la sua documentazione. Per fare partire Linux senza resettare, mettete LOADLIN.EXE in una directory (nella partizione DOS!) compresa nel path del DOS; poi copiate il kernel nella directory (ad esempio) C:\TEMP\VMLINUZ. Questo semplice file .BAT fa partire Linux: rem linux.bat smartdrv /C loadlin c:\temp\vmlinuz root=/dev/hda2 ro Se usate Windows 95, impostate le proprietà di questo file .BAT in modo che parta in modalità MS--DOS. 2.11.1. Trucco per la sicurezza Un consiglio: fare una copia del MBR prima di installare Linux può salvarvi dai guai. Usate un floppy rescue e date questo comando: rescue:~# dd if=/dev/hda of=MBR bs=512 count=1 e poi fate almeno due copie del file MBR su altrettanti floppy. Se dovesse capitare il disastro, potrete recuperare il MBR originale dando, sempre con un floppy di salvataggio: rescue:~# dd if=/mnt/MBR of=/dev/hda bs=446 count=1 assumendo che il floppy che contiene MBR sia montato sotto /mnt. In alternativa, usate un floppy rescue DOS o Windows e date il comando FDISK /MBR. 2.12. Mail Capability Di sicuro vorrete leggere anche i messaggi di posta scritti in HTML o che contengono formati di file esotici. Assicuratevi di avere due file: /etc/mime.types e /etc/mailcap. Il primo elenca tipi di file e l'estensione associata, come ad esempio: application/postscript ps eps image/jpeg jpe jpeg jpg text/html html mentre il secondo spiega al client mail come mostrare quel particolare file. Vi potrebbe arrivare posta da gente che usa Microsoft Outlook, i cui messaggi sono in formato MIME multi--part. Queste due linee, aggiunte in /etc/mailcap, dovrebbero rendere leggibili quei messaggi: text/plain; less %s; needsterminal text/html; lynx -force_html %s; needsterminal 2.13. Configurazione della stampante Le distribuzioni che conosco hanno un programma di configurazione per la stampante (printtool o yast); se non ce l'avete, ecco come implementare una semplice configurazione manuale. Supponiamo che abbiate una stampante non-PostScript (e non ``per Windows''!) con cui volete stampare semplice testo (ad es., sorgenti C) e file PostScript tramite Ghostscript, che deve essere già installato. Configurare la stampante richiede alcuni passaggi: · controllate qual è il device parallelo: provate ~# echo "hello, world" > /dev/lp0 ~# echo "hello, world" > /dev/lp1 e segnatevi quale funziona. · create due directory di spool: ~# cd /var/spool/lpd /var/spool/lpd/# mkdir raw ; mkdir postscript · se la vostra stampante, come molte inkjet, presenta l'``effetto scalinata'', vi servirà un filtro. Provate a stampare due linee di testo con ~# echo "prima linea" > /dev/lp1 ; echo "seconda linea" > /dev/lp1 e se l'output è così: prima linea seconda linea salvate questo script col nome /var/spool/lpd/raw/filter: #!/bin/sh # Questo file elimina l'"effetto scalinata" awk '{print $0, "\r"}' e rendetelo eseguibile con chmod 755 /var/spool/lpd/raw/filter. · fate un filtro per l'emulazione PostScript. Scrivete lo script seguente col nome /var/spool/lpd/postscript/filter: #!/bin/sh DEVICE=djet500 RESOLUTION=300x300 PAPERSIZE=a4 SENDEOF= nenscript -TUS -ZB -p- | if [ "$DEVICE" = "PostScript" ]; then cat - else gs -q -sDEVICE=$DEVICE \ -r$RESOLUTION \ -sPAPERSIZE=$PAPERSIZE \ -dNOPAUSE \ -dSAFER \ -sOutputFile=- - fi if [ "$SENDEOF" != "" ]; then printf "\004" fi (in questo esempio, si assume una stampante HP DeskJet. Adattate lo script alla vostra stampante.) · infine, aggiungete queste linee in /etc/printcap: # /etc/printcap lp|ps|PS|PostScript|djps:\ :sd=/var/spool/lpd/postscript:\ :mx#0:\ :lp=/dev/lp1:\ :if=/var/spool/lpd/postscript/filter:\ :sh: raw:\ :sd=/var/spool/lpd/raw:\ :mx#0:\ :lp=/dev/lp1:\ :if=/var/spool/lpd/raw/filter:\ :sh: Per configurazioni più complesse, il Printing-HOWTO vi aspetta. Per gli utenti Red Hat: il device GSDEVICE scelto da Printtool funziona, ma non è necessariamente il migliore per la vostra stampante. Potreste dover editare il file postscript.cfg; ad esempio, ho cambiato GSDEVICE da cdj500 a djet500 e ora le stampe sono molto più veloci. 2.14. SVGATextMode Questa utility, reperibile all'indirizzo , serve per cambiare il font e la risoluzione in modalità testo, nonché la forma del cursore. Gli utenti che usano lettere accentate (ci siamo anche noi italiani) le possono quindi abilitare nelle applicazioni in console, mentre gli utenti di portatili possono ingrandire il cursore per renderlo più visibile. Editate il file /etc/TextConfig o /etc/TextMode, iniziando con la definizione VGA di default. Per abilitare le lettere accentate, assicuratevi di avere queste linee nell'opzione ``LoadFont'': Option "LoadFont" FontProg "/usr/bin/setfont" FontPath "/usr/lib/kbd/consolefonts" FontSelect "lat1-16.psf" 8x16 9x16 8x15 9x15 FontSelect "lat1-14.psf" 8x14 9x14 8x13 9x13 FontSelect "lat1-12.psf" 8x12 9x12 8x11 9x11 FontSelect "lat1-08.psf" 8x8 9x8 8x7 9x7 Quando avete fatto, provate la configurazione col comando ~# SVGATextMode "80x34x9" e se tutto funziona bene, togliete i warning da /etc/TextMode ed aggiungete questa linea in /etc/rc.d/rc.sysinit (AQVD): # SVGATextMode /usr/sbin/SVGATextMode "80x34x9" Da notare che il cursore a blocco funziona solo con alcuni modi schermo; su una delle mie macchine, "80x32x9". 3. Configurazione software Questi sono i file di configurazione che stiamo per personalizzare: /etc/profile /etc/bashrc .bashrc .bash_profile .bash_logout .inputrc .less .lessrc .xinitrc .fvwmrc .fvwm2rc95 .Xmodmap .Xmodmap.num .Xdefaults .jedrc .abbrevs.sl .joerc .emacs Non aggiungete utenti prima di completare la configurazione; metterete infatti i dot file in /etc/skel. 3.1. bash(1) Questo è forse il programma più importante dopo il kernel. Per personalizzare bash, questi sono i file principali da editare: · /etc/bashrc contiene gli alias e le funzioni valide per l'intero sistema; · /etc/profile contiene le variabili d'ambiente per l'intero sistema e i programmi di avvio; · $HOME/.bashrc contiene gli alias e le funzioni dell'utente; · $HOME/.bash_profile contiene le variabili d'ambiente e i programmi di avvio dell'utente; · $HOME/.inputrc contiene definizioni di tasti e altre cosette. Qui sotto ci sono esempi di questi file. Primo, il più importante: /etc/profile. Viene usato per configurare molte cose in una macchina Linux, come vedrete nelle sezioni seguenti. Fate attenzione agli apici inversi! ______________________________________________________________________ # /etc/profile # Variabili di ambiente globali e programmi di avvio # Le funzioni e gli alias vanno in /etc/bashrc # Questo file imposta queste caratteristiche: # # o path # o prompt # o alcune variabili d'ambiente # o ls a colori # o il comportamento di less # o backspace in rxvt # # Gli utenti possono sovrascrivere questi settaggi e/o aggiungerne altri # nel loro $HOME/.bash_profile # imposta un path decente, comprendendo anche KDE PATH="$PATH:/usr/X11R6/bin:/opt/kde/bin:$HOME/bin:." # avvisa l'utente: login o non-login shell. Se e' di login, il prompt e' # colorato in blu; altrimenti in magenta. Il prompt di root e' rosso. # Per una spiegazione dei codici, vedi il Colour-ls mini HOWTO. USER=`whoami` if [ $LOGNAME = $USER ] ; then COLOUR=44 # blu else COLOUR=45 # magenta fi if [ $USER = 'root' ] ; then COLOUR=41 # rosso PATH="$PATH:/usr/local/bin" fi ESC="\033" BOLD=';1' PS1="\[$ESC[$COLOUR;37$BOLD\]$USER:\[$ESC[37;40$BOLD\]\w\\$ " PS2="> " # niente core dump, per piacere ulimit -c 0 # imposta umask if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then umask 002 # non root else umask 022 # root fi # alcune variabili USER=`whoami` LOGNAME=$USER MAIL="/var/spool/mail/$USER" EDITOR=jed HOSTNAME=`/bin/hostname` HISTSIZE=1000 HISTFILESIZE=1000 export PATH PS1 PS2 USER LOGNAME MAIL EDITOR HOSTNAME HISTSIZE HISTFILESIZE # abilita ls a colori eval `dircolors /etc/DIR_COLORS -b` export LS_OPTIONS='-F -s -T 0 --color=yes' # personalizza less LESS='-M-Q' LESSEDIT="%E ?lt+%lt. %f" LESSOPEN="| lesspipe.sh %s" VISUAL=jed LESSCHARDEF=8bcccbcc13b.4b95.33b. # mostra i colori in ls -l | less PAGER=less export LESS LESSEDIT LESSOPEN VISUAL LESSCHARDEF PAGER # aggiusta il backspace per rxvt if [ "$COLORTERM" != "" ] ; then stty erase ^H # alternativa: ^? fi for i in /etc/profile.d/*.sh ; do if [ -x $i ]; then . $i fi done # se c'e' fortune, lancialo if [ -x /usr/games/fortune ] ; then echo ; /usr/games/fortune ; echo fi ______________________________________________________________________ Questo è un esempio di /etc/bashrc: ______________________________________________________________________ # /etc/bashrc # Funzioni e alias globali # Le variabili d'ambiente vanno in /etc/profile USER=`whoami` if [ $LOGNAME = $USER ] ; then COLOUR=44 else COLOUR=45 fi if [ $USER = `root' ] ; then COLOUR=41 fi ESC="\033" BOLD=';1' export PS1="\[$ESC[$COLOUR;37$BOLD\]$USER:\[$ESC[37;40$BOLD\]\w\\$ " export PS2="> " export CDPATH="$CDPATH:~" alias which="type -path" alias ls="ls $LS_OPTIONS" ______________________________________________________________________ Questo è un esempio di .bashrc: ______________________________________________________________________ # $HOME/.bashrc # Prendi le definizioni globali if [ -f /etc/bashrc ]; then . /etc/bashrc fi # questo serve per avvisare l'utente che si trova in non-login shell if [ "$GET_PS1" = "" ] ; then COLOUR=45 ESC="\033" BOLD=';1' export PS1="\[$ESC[$COLOUR;37$BOLD\]$USER:\[$ESC[37;40$BOLD\]\w\\$ " export PS2="> " fi # alias alias cp='cp -i' alias l=less alias lyx='lyx -width 900 -height 700' alias mv='mv -i' alias rm='rm -i' alias x=startx # Alcune funzioni utili inst() # Installa un archivio .tar.gz nella directory corrente { tar -zxvf $1 } cz() # Lista un archivio .zip { unzip -l $* } ctgz() # Lista un archivio .tar.gz { for file in $* ; do tar -ztf ${file} done } tgz() # Crea un archivio .tgz, alla zip { name=$1 ; tar -cvf $1 ; shift tar -rf ${name} $* gzip -S .tgz ${name} } ______________________________________________________________________ Questo è un esempio di .bash_profile: ______________________________________________________________________ # $HOME/.bash_profile # Variabili di ambiente e programmi di avvio utente # Questo file contiene settaggi personalizzati che si sovrappongono # a quelli in /etc/profile # Prendi gli alias e le funzioni if [ -f ~/.bashrc ]; then GET_PS1="NO" # non cambiare il colore del prompt . ~/.bashrc fi # imposta alcune directory di default export CDPATH="$CDPATH:$HOME:$HOME/testi:$HOME/testi/geologia" ______________________________________________________________________ Questo è un esempio di .inputrc: ______________________________________________________________________ # $HOME/.inputrc # combinazioni di tasti "\e[1~": beginning-of-line "\e[3~": delete-char "\e[4~": end-of-line # (F1 .. F5) are "\e[[A" ... "\e[[E" "\e[[A": "info \C-m" set bell-style visible # non fare beep set meta-flag On # permetti le lettere accentate set convert-meta Off # non togliere l'ottavo bit set output-meta On # mostra i caratteri a 8-bit correttamente set horizontal-scroll-mode On # scorri la linea di comando se e' lunga set show-all-if-ambiguous On # dopo aver premuto TAB ______________________________________________________________________ Per fare funzionare i tasti backspace e delete in xterm e altre applicazioni X11, bisogna inoltre: · mettere questo nel vostro .xinitrc: usermodmap=$HOME/.Xmodmap xmodmap $usermodmap · e nel vostro .Xmodmap dovrete inserire: keycode 22 = BackSpace keycode 107 = Delete questo mette a posto la modalità console. · Per mettere a posto xterm, inserite questo nel vostro .Xdefaults: xterm*VT100.Translations: #override BackSpace: string(0x7F)\n\ Delete: string(0x1b) string("[3~")\n\ Home: string(0x1b) string("[1~")\n\ End: string(0x1b) string("[4~")\n\ CtrlPrior: string(0x1b) string("[40~")\n\ CtrlNext: string(0x1b) string("[41~") nxterm*VT100.Translations: #override BackSpace: string(0x7F)\n\ Delete: string(0x1b) string("[3~")\n\ Home: string(0x1b) string("[1~")\n\ End: string(0x1b) string("[4~")\n\ CtrlPrior: string(0x1b) string("[40~")\n\ CtrlNext: string(0x1b) string("[41~") rxvt è un po' più complicato da sistemare, perché alcune opzioni si danno in fase di compilazione. Vedete il /etc/profile qui sopra. Ulteriori informazioni nelle pagine man di bash(1) e readline(3). Non vi aspettate che tutte le applicazioni funzionino! Con joe in xterm, ad esempio, alcuni tasti non funzionano; lo stesso vale per le versioni di rxvt inferiori alla 2.4.5. 3.2. ls(1) ls può mostrare a colori i contenuti delle directory, per evidenziare i diversi tipi di file. Per abilitare questa caratteristica, servono un paio di linee come in /etc/profile qui sopra. Questo però non funziona con rxvt inferiore alla v. 2.21; dovrete usare xterm. Sembra che rxvt abbia un bug che gli impedisce in alcuni casi di ereditare correttamente le variabili di ambiente. rxvt dalla v. 2.4.5 in su funziona bene. Caldera ha un ls che non supporta i colori, ma c'è un comando color-ls che è la stessa cosa. Inserite in /etc/bashrc: alias ls="color-ls $LS_OPTIONS" 3.3. less(1) Con questo eccellente pager si leggono non solo file di testo, ma anche file compressi con gzip, archivi tar e zip, pagine man e altro ancora. La sua configurazione richiede alcuni passaggi: · per abilitare i tasti cursore, scrivetevi questo file .lesskey (è un semplice file ASCII) nella vostra home directory: ^[[A back-line ^[[B forw-line ^[[C right-scroll ^[[D left-scroll ^[OA back-line ^[OB forw-line ^[OC right-scroll ^[OD left-scroll ^[[6~ forw-scroll ^[[5~ back-scroll ^[[1~ goto-line ^[[4~ goto-end ^[[7~ goto-line ^[[8~ goto-end quindi lanciate il comando lesskey, che crea un file binario chiamato .less contenente le definizioni dei tasti. · scrivetevi questo script col nome /usr/local/bin/lesspipe.sh: ___________________________________________________________________ #!/bin/sh # Preprocessore per 'less'. Viene usato quando questa variabile di ambiente # è impostata: LESSOPEN="|lesspipe.sh %s" lesspipe() { case "$1" in *.tar) tar tf $1 2>/dev/null ;; # Vedi i file .tar e .tgz *.tgz|*.tar.gz|*.tar.Z|*.tar.z) tar ztf $1 2>/dev/null ;; *.Z|*.z|*.gz) gzip -dc $1 2>/dev/null ;; # Vedi i file compressi *.zip) unzip -l $1 2>/dev/null ;; # Vedi gli archivi *.arj) unarj -l $1 2>/dev/null ;; *.rpm) rpm -qpil $1 2>/dev/null ;; *.cpio) cpio --list -F $1 2>/dev/null ;; *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1` FILE=`echo $FILE | cut -d ' ' -f 2` if [ "$FILE" = "troff" ]; then groff -s -p -t -e -Tascii -mandoc $1 fi ;; *) file $1 | grep text > /dev/null ; if [ $? = 1 ] ; then # non e' un file di testo di qualche tipo strings $1 fi ;; esac } lesspipe $1 ___________________________________________________________________ e rendetelo eseguibile con chmod 755 lesspipe.sh. · inserite le variabili necessarie, che sono già presenti nel file /etc/profile visto prima. La variabile LESSCHARSET dipende dal fatto che io vivo in Italia e quindi uso il set di caratteri ISO 8859/1. Gli amici americani, giapponesi, russi e altro fanno meglio a non settarla. 3.4. emacs(1) Uso emacs di rado, quindi ho solo un paio di dritte. Alcune versioni di emacs non sono preconfigurate per i colori e l'evidenziazione della sintassi. Scrivete quanto segue nel vostro .emacs: (global-font-lock-mode t) (setq font-lock-maximum-decoration t) Funziona solo in X11. In aggiunta, per abilitare le lettere accentate dovrete aggiungere: (standard-display-european 1) Lascio a voi la lettura di tutta la documentazione di emacs per scoprire come adattarlo ai vostri gusti; potenzialmente, ce n'è per mesi di smanettamenti. Il Dotfile Generator (Sezione ``Software per la configurazione'') vi può dare una mano. 3.5. joe(1) Alcune versioni di joe non funzionano a colori in console, e non vanno nemmeno certi tasti speciali. Che io sappia, nessuno ha trovato una soluzione per questi inconvenienti. Una soluzione svelta (ma inelegante) per il primo problema è questa: ~$ export TERM=vt100 ~$ joe myfile (editate il vostro file) ~$ export TERM=linux Scegliete inoltre la configurazione editando .joerc, .jstarrc o l'emulazione che preferite; potete partire dai file di configurazione in /usr/lib/joe. 3.6. jed(1) Questo è il mio editor preferito: fa quello che mi serve, è più snello e più facile da configurare di emacs ed emula altri editor molto bene. Presso la mia università, molti usano jed in emulazione EDT, l'editor di sistema di VMS. I file di configurazione sono .jedrc e /usr/lib/jed/lib/*; il primo può essere adattato dal file jed.rc che sta nella directory appena indicata. · per fare usare i tasti speciali a jed, create un file di nome /usr/lib/jed/lib/defaults.sl contenente una sola linea: () = evalfile("linux"); · se xjed apparentemente non riconosce il tasto DEL, aggiungete queste linee nel vostro .jedrc: #ifdef XWINDOWS x_set_keysym (0xFFFF, 0, "\e[3~"); setkey (`delete_char_cmd'', "\e[3~"); #endif · editate /usr/lib/jed/lib/linux.sl e scrivete le due linee Info_Directory = "/usr/info"; e UCB_Mailer = "/bin/mail";; · configurare jed per fargli emulare EDT (o altri editor) è semplicissimo: dovete solo cambiare un paio di linee nel vostro .jedrc. Se volete usare il tasto `+' del tastierino numerico per cancellare parole anzichè un singolo carattere, aggiungete in .jedrc: unsetkey("\eOl"); unsetkey("\eOP\eOl"); setkey("edt_wdel", "\eOl"); setkey("edt_uwdel", "\eOP\eOl"); dopo la linea con scritto () = evalfile("edt");. · per fare usare a xjed il tastierino numerico per l'emulazione EDT, inserite quanto segue in .Xmodmap: keycode 77 = KP_F1 keycode 112 = KP_F2 keycode 63 = KP_F3 keycode 82 = KP_F4 keycode 86 = KP_Separator · la scelta dei colori per xjed si fa aggiungendo linee come le seguenti in .Xdefaults: xjed*Geometry: 80x32+150+50 xjed*font: 10x20 xjed*background: midnight blue # eccetera... · la funzionalità delle abbreviazioni fa risparmiare un sacco di tempo. Scrivete un file come questo col nome $HOME/.abbrevs.sl: create_abbrev_table ("Global", "0-9A-Za-z"); define_abbrev ("Global", "GG", "Guido Gonzato"); create_abbrev_table ("TeX", "\\A-Za-z0-9"); define_abbrev ("TeX", "\\beq", "\\begin{equation}"); define_abbrev ("TeX", "\\eeq", "\\end{equation}"); % and so on... quindi battete ESC x abbrev_mode per abilitarlo. Se volete avere le abbreviazioni attivate per default, aggiungete queste entry in .jedrc: define text_mode_hook () { set_abbrev_mode (1); } % define fortran_hook () { set_abbrev_mode (1); use_abbrev_table ("Fortran"); } % e cosi' via... Ulteriori informazioni in xjed.doc, incluso nella distribuzione. 3.7. efax(1) Questo programma è forse il più comodo per una semplice gestione dei fax. Bisogna editare lo script /usr/bin/fax; molto semplice, ma ci sono un paio di stranezze che mi hanno procurato qualche grattacapo: · DIALPREFIX: in Italia (e forse anche altri Paesi) non basta mettere `T' o `P'. Inserite invece `ATDT' o `ATDP'; · INIT and RESET: queste stringhe contengono gli inizializzatori `-i' e `-k', necessari per efax. Se volete aggiungere un comando AT, mettetelo nella stringa appropriata senza `AT' ma col prefisso `-i' o `-k'. Per esempio, per aggiungere `ATX3' a INIT, dovrete mettere `-iX3'. 3.8. TeX e programmi accessori Assumendo che abbiate la distribuzione teTeX, ecco un paio di cosette: · per configurare la sillabazione, modificate il file /usr/lib/texmf/texmf/tex/generic/config/language.dat, e poi date i comandi: ~# texconfig init ; texconfig hyphen · se aggiungete un package di LaTeX, dopo aver aggiunto i file necessari nella directory /usr/lib/texmf/texmf/tex/latex/ date il comando texhash per fare riconoscere a teTeX il nuovo package; · per personalizzare dvips, il file da modificare è /usr/lib/texmf/texmf/dvips/config/config.ps. Attenzione, i campi riguardanti la risoluzione di default toccano anche xdvi; se vi succede che quest'ultimo cerca di ricreare i font ogni volta che lo fate partire, aggiungete in .Xdefault la linea XDvi*mfmode: Questo dovrebbe aiutare. 3.9. Evitate PPProblemi! Si dà per scontato che il vostro kernel ha il supporto per PPP e TCP/IP, che il loopback è abilitato e che avete già il package pppd correttamente installato e magari impostato setuid root. Ovviamente, il vostro ISP deve supportare il PPP. Ci sono due modi per fare funzionare il PPP: 1) configurazione manuale, e 2) un programma di configurazione che faccia tutto lui. Qualunque opzione scegliate, dovrete avere queste informazioni a portata di mano: · il numero di telefono del vostro ISP; · l'indirizzo del name server del vostro ISP; · i server mail e news del vostro ISP; · il dominio del vostro ISP; · i vostri username e password. La configurazione manuale è un fastidio. Si tratta di editare vari file e scrivere degli script; non è troppo difficile, ma è facile fare errori e i nuovi utenti ne sono spesso spaventati. Il PPP HOWTO vi attende. In alternativa, ci sono programmi che vi richiedono le informazioni elencate qui sopra e fanno il lavoro per voi. Ve la passerete meglio se scaricate uno dei programmi seguenti: · EzPPP è un programma per X11, e ha la home page a . Molto facile da usare, ma è necessario scrivere lo script di collegamento; · per la console, provate i programmi che trovate presso . Uno dei migliori è pppsetup-X.XX.tar.gz. Anche qui serve lo script; · i programmi finora più facili di tutti sono sicuramente wvdial e eznet: gli date il numero di telefono, lo username e la password, e siete a posto. Le loro home page sono agli indirizzi e . Io preferisco quest'ultimo. 3.9.1. Partire in fretta con eznet Prima di tutto, create un file /etc/resolv.conf come questo: nameserver w.x.y.z dove inserirete l'indirizzo del name server del vostro provider. Per creare un account con eznet, date questo comando: #~ eznet add service=VOSTRO_ISP user=NOME password=PASSWORD phone=NUMERO quindi provate a chiamare con eznet up VOSTRO_ISP. Se il modem non prende la linea, aggiungete questo comando: #~ eznet change VOSTRO_ISP init0=atx3 Per finire la connessione, il comando è eznet down. Tutto qui! 3.10. POP Client Per prendere la posta dal server POP, si usa un client POP come fetchpop o fetchmail; quest'ultimo è forse l'unica scelta se il PPP server del vostro ISP non supporta il comando LAST. Si trovano su . Per configurare questi client: · fetchpop: la prima volta che lo lanciate, vi verranno chieste delle informazioni. Rispondete alle domande e siete a posto. · fetchmail: adattate questo esempio di file .fetchmailrc: # $HOME/.fetchmailrc poll mbox.supernet.edu with protocol pop3; user pippo there with password _Loo%ny is pippo here Un utente mi ha scritto per dirmi che aggiungendo ``smtphost local­ host'' alla seconda linea, le prestazioni sono molto migliorate. Dovete settare i permessi di questo file con chmod 600 .fetchmailrc, altrimenti fetchmail si rifiuterà giustamente di partire. 3.11. X Window System 3.11.1. Configurare il server X Andiamo, non è più difficile come una volta... Tutte le principali distribuzioni forniscono un programma di configurazione per X11 (ad es. XConfigurator, sax, o almeno xf86config). Ormai l'installazione del server X è pressoché automatica, ma certe schede video possono fare i capricci. In questi casi, seguo questo metodo che ha sempre funzionato: · assicuratevi che il server per la VGA sia installato; · andate su , cd nella sottodirectory di Linux che vi riguarda e scaricate i file XVERSIONEbin.tgz, XVERSIONEset.tgz e tutti i server. Il primo di questi archivi contiene il SuperProbe più aggiornato; · decomprimete XVERSIONEbin.tgz in una directory temporanea, spostatevici e date il comando ./SuperProbe. Se la vostra scheda video viene riconosciuta, è molto probabile che riuscirete a configurarla; altrimenti, peccato. · installate i server e XVERSIONEset.tgz partendo da /usr/X11R6/, quindi eseguite XF86Setup. Anche se ha sempre funzionato per me, potreste avere diversa fortuna. Attenzione che spesso X11 non parte perché avete scelto dei settaggi troppo bassi per il monitor! Partite con settaggi di base, ad es. 800x600 e 256 colori, poi provate ad andare su. Attenzione: queste operazioni sono pericolose e potreste danneggiare il monitor! 3.11.2. Il tastierino numerico Abbiamo visto prima come fare funzionare alcuni tasti speciali. Il file .Xmodmap funziona bene se vogliamo usare Xjed, ma rende inutilizzabile il tastierino numerico. Servirà quest'altro file, che chiameremo .Xmodmap.num: ! Le definizioni si trovano in keycode 77 = Num_Lock keycode 112 = KP_Divide keycode 63 = KP_Multiply keycode 82 = KP_Subtract keycode 86 = KP_Add keycode 79 = KP_7 keycode 80 = KP_8 keycode 81 = KP_9 keycode 83 = KP_4 keycode 84 = KP_5 keycode 85 = KP_6 keycode 87 = KP_1 keycode 88 = KP_2 keycode 89 = KP_3 keycode 90 = KP_0 keycode 91 = KP_Decimal Assicuratevi che /etc/X11/XF86Config non contenga queste tre linee: ServerNumLock Xleds XkbDisable ed in caso, mettetele in commento. Per riabilitare il tastierino, si dà il comando xmodmap .Xmodmap.num. 3.11.3. Login grafico con xdm Per ottenere il login in modalità grafica, si deve editare il file /etc/inittab, che dovrebbe includere una linea come questa: x:5:respawn:/usr/bin/X11/xdm -nodaemon 5 è il runlevel che corrisponde alla modalità X11 (S.u.S.E. usa 4). Modificate la linea che stabilisce il runlevel di default (di solito è 2 o 3), inserendo il valore qui sopra: id:5:initdefault: Il numero di colori si specifica in /etc/X11/xdm/Xserver (AQVD): :0 local /usr/X11R6/bin/X -bpp 16 # 65k colori Se avete già il file .xinitrc, copiatelo nel file .xsession e rendete eseguibile quest'ultimo con chmod +x .xsession. Ora date il comando telinit 5 e siete a posto! 3.11.4. Window Manager Una volta che il server X funziona, ci sono infinite possibilità di configurazione; dipende dal window manager che volete usare, e ce ne sono decine tra cui scegliere. Quasi sempre, si tratta di modificare uno o più file ASCII nella vostra home directory; in altri casi non si deve editare niente e si utilizzano appositi programmini, o addirittura un apposito menu. Alcuni esempi: · fvwm e derivati: copiate il file /etc/X11/fvwm/system.fvwmrc (o altro) nella vostra home col nome adeguato, leggetelo e sperimentate. Potreste perdere molto tempo prima di ottenere quello che desiderate; · WindowMaker: possiede diversi file di configurazione che risiedono in $HOME/GNUstep, oltre ad un ottimo programmino di configurazione; · KDE: qui non è necessario editare nulla, e si configura il tutto da menu. In breve: se non vi spiace editare dei file di configurazione, scegliete icewm, fvwm*, blackbox etc; se invece vi spiace, la scelta è limitata attualmente a KDE e WindowMaker. È importante avere un buon file .xinitrc. Un esempio: #!/bin/sh # $HOME/.xinitrc # metti a posto i tasti speciali usermodmap=$HOME/.Xmodmap xmodmap $usermodmap xset s noblank # togli lo screen saver della console xset s 300 2 # screen saver di X11, parte dopo 5 minuti xsetroot -solid "medium blue" & rxvt -cr green -ls -bg black -fg white -fn 7x14 \ -geometry 80x30+57+0 & if [ "$1" = "" ] ; then # default WINMGR=wmaker else WINMGR=$1 fi $WINMGR Per quanto non mi sembra che sia strettamente necessario, rendetelo eseguibile con chmod +x .xinitrc. Questo .xinitrc consente di scegliere il window manager: provate $ startx startkde # o altro (non funziona con certe versioni di S.u.S.E.). 3.12. Configurazione per gli utenti Quando avete finito di configurare i dot file, copiateli nella directory /etc/skel come già detto alla Sezione ``Configurazione software''. Da notare che .pinerc non può essere personalizzato del tutto; assicuratevi che almeno i campi user-domain, smtp-server e nntp-server siano a posto. 3.13. Fare l'upgrade Se fate l'upgrade, oltre ai soliti backup dovrete ricordarvi di salvare alcuni file addizionali. Alcuni potrebbero essere /etc/X11/XF86Config, /usr/bin/fax, tutto quello che avete messo in /usr/local, la configurazione del kernel, l'intero /etc e la posta in /var/spool/mail. 4. Software per la configurazione Diversi programmi rendono Linux più semplice da configurare. Alcuni stanno diventando più o meno standard: Red Hat, Caldera e altre distribuzioni forniscono utility come printtool, netcfg, usertool, ecc. S.u.S.E. fornisce un elaborato programma di configurazione del sistema chiamato YAST. Altri programmi utili sono: · The Dotfile Generator: buona applicazione per X11 con moduli per configurare emacs, bash, procmail e altri. La sua home page è all'indirizzo ; · Linuxconf: il massimo dei programmi di configurazione. Può fare tutto, sia in console che sotto X11. Andate subito a vederlo all'indirizzo . 5. Fine 5.1. Copyright Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions. All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below. In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs. If you have questions, please contact Tim Bynum, the Linux HOWTO coordinator, at tjbynum@sunsite.unc.edu via email. 5.2. Feedback Forse più ancora di altri HOWTO, questo ha bisogno dei vostri suggerimenti, critiche e contributi. Tutto è benvenuto, anzi necessario. Se pensate che manchi qualcosa o che ci siano errori, mandatemi un'email. Se avete una distribuzione diversa da Redhat o Caldera e i vostri file di configurazione sono diversi dai miei o collocati in altre directory, comunicatemelo, e io aggiungerò i vostri suggerimenti. Il mio scopo è quello di rendere il lavoro con Linux il più semplice possibile. Linux ha un numero enorme di programmi, quindi non posso includere suggerimenti per ciascuno. Cercate di mantenere i vostri suggerimenti nell'ambito dei programmi ``più ragionevoli''; lascio l'interpretazione di questo concetto al vostro buon senso. 5.3. Disclaimer ``Configuration HOWTO'' è stato scritto da Guido Gonzato, guido@ibogeo.df.unibo.it. I miei sentiti ringraziamenti vanno a tutti gli altri autori di HOWTO e di man page, il cui lavoro ho saccheggiato senza vergogna; e a tutte le persone che mi hanno inviato suggerimenti. Questo lavoro è distribuito senza garanzie. Mi sono sforzato di scriverlo con la massima accuratezza, ma usate le informazioni qui contenute a vostro rischio. Non sarò responsabile in alcun caso di danni provocati da questo documento. Spero che troviate utile questo mio lavoro. Ogni volta che installo una macchina Linux, io lo trovo utilissimo... Ciao, Guido =8-) .