Avanti Indietro Indice

4. 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 file dot in /etc/skel.

4.1 bash(1)

Questo è forse il programma più importante dopo il kernel. Per personalizzare bash, questi sono i file principali da modificare:

Qui sotto ci sono esempi di questi file. Primo, il più importante: /etc/profile. Viene usato per configurare molte caratteristiche 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 queste impostazioni e/o aggiungerne altre
# nel loro $HOME/.bash_profile

# imposta un path decente
PATH="$PATH:/usr/X11R6/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"
PROMPT='\h'    # hostname
STYLE=';1m'    # grassetto
# PROMPT='\u'  # nomeutente
# STYLE='m'    # testosemplice
PS1="\[$ESC[$COLOUR;37$STYLE\]$PROMPT:\[$ESC[37;40$STYLE\]\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
else
  umask 022
fi

# alcune variabili
USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"  # sendmail, postfix, smail
# MAIL="$HOME/Mailbox"        # qmail
NNTPSERVER=news.myisp.it      # inserite il vostro qui
VISUAL=jed
EDITOR=jed
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
HISTFILESIZE=1000
export PATH PS1 PS2 USER LOGNAME MAIL NNTPSERVER
export VISUAL 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"
LESSCHARDEF=8bcccbcc13b.4b95.33b. # mostra i colori in ls -l | less
PAGER=less
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARDEF

# aggiusta il backspace per rxvt/xterm
CTRL_H="\010"
NULL_STRING=" $CTRL_H" # spazio + backspace
if [ "$NULL_STRING" != "" ] ; then
  stty erase ^?
else
  stty erase ^H
fi

# imposta il titolo xterm title: path completo
case $TERM in
  xterm*)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
    ;;
esac

for i in /etc/profile.d/*.sh ; do
  if [ -x $i ]; then
    . $i # attenzione - le variabili e gli alias potrebbero sovrapporsi!
  fi
done

# se c'è 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
# Inserite qui le definizioni PS1 se si verificano problemi.

export CDPATH="$CDPATH:~"

# alias comuni
alias cp='cp -i'
alias l=less
alias ls="ls $LS_OPTIONS"
alias mv='mv -i'
alias rm='rm -i'
alias rmbk='/bin/rm -f .*~ *~ *aux *bak *log *tmp 2> /dev/null'
alias u='cd ..'
alias which="type -path"
alias x=startx

# Alcune funzioni utili
c ()    # cd per la nuova directory ed elenco del contenuto
{
  cd $1 ; ls
}

inst()  # Installa un archivio .tar.gz nella directory corrente
{
  if [ $# != 0 ]; then tar zxvf $1; fi
}

cz()    # Elenca il contenuto di un archivio .zip
{
  if [ $# != 0 ]; then unzip -l $*; fi
}

ctgz()  # Elenca il contenuto di un archivio .tar.gz
{
  for file in $* ; do
    tar ztf ${file}
  done
}

tgz()   # Crea un archivio .tgz alla zip.
{
  if [ $# != 0 ]; then
    name=$1.tar; shift; tar -rvf ${name} $* ; gzip -9 ${name}
  fi
}

crpm()  # elenca le informazioni in un file .rpm
{
  if [ $# != 0 ]; then rpm -qil $1 | less; fi
}

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"; STYLE=';1m';  # STYLE='m'
  USER=`whoami`
  export PS1="\[$ESC[$COLOUR;37$STYLE\]$USER:\[$ESC[37;40$STYLE\]\w\\$ "
fi

# alias personali
alias backup='tar -Mcvf /dev/fd0'
alias dial='eznet up myisp'
alias f='cd ~/fortran'
alias hangup='eznet down'
alias lyx='lyx -width 580 -height 450'
alias restore='tar -M -xpvf /dev/fd0'

# funzioni personali
xj()    # Lancia xjed e un file in background
{
  xjed $1 &
}

Questo è un esempio di .bash_profile:


# $HOME/.bash_profile

# Variabili di ambiente e programmi di avvio utente
# Questo file contiene impostazioni 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 input a 8-bit (ad esempio 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:

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 alcune versioni di rxvt.

4.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 in alcune versioni di rxvt; dovrete usare xterm. Sembra che rxvt abbia un bug che gli impedisce in alcuni casi di ereditare correttamente le variabili di ambiente.

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"

4.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:

4.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. Inoltre, 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.

4.5 joe(1)

Alcune versioni di joe non funzionano a colori in console, e non vanno nemmeno certi tasti speciali. Una soluzione svelta (ma inelegante) per il primo problema è questa:

~$ export TERM=vt100
~$ joe myfile
   (modificate il vostro file)
~$ export TERM=linux

Per fare in modo che i tasti speciali funzionino, modificate .joerc, .jstarrc o l'emulazione che preferite; potete partire dai file di configurazione in /usr/lib/joe. Fate riferimento alla quarta sezione (binding dei tasti) che abilita i tasti Home e End:

bol ^[ [ 1 ~    Go to beginning of line
eol ^[ [ 4 ~    Go to end of line

Scoprite le sequenze di escape desiderate digitando cat seguito dai tasti speciali.

4.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.

4.7 pine(1)

Modificate la configurazione globale in /usr/lib/pine.conf, tenendo in considerazione almeno i campi seguenti: user-domain, smtp-server e nntp-server. Notate che inbox-path dipende dal vostro MTA: se utilizzate sendmail o postfix, sarà var/spool/mail/$USER; con Qmail, /home/$USER/Mailbox (ma la root userà /var/qmail/alias/Mailbox.

4.8 minicom(1)

Gli utenti possono servirsi di minicom se non è stata creata una configurazione globale dalla root. Ricordatevi di farlo.

4.9 efax(1)

Questo programma è forse il più comodo per una semplice gestione dei fax. È necessario modificare lo script /usr/bin/fax; molto semplice, ma ci sono un paio di stranezze che mi hanno procurato qualche grattacapo:

Dopo questa operazione, ci sono alcuni permessi da stabilire per fare in modo che gli utenti non-root inviino e ricevano fax. Le directory /var/lock e /var/spool/fax devono essere modificabili. Per fare questo, create il gruppo faxusers, aggiungetevi gli utenti e digitate:

~# chown root.faxusers /var/lock
~# mkdir /var/spool/fax
~# chown root.faxusers /var/spool/fax; chmod g+w /var/spool/fax

4.10 Ghostscript

Questo tool essenziale pone un piccolo intralcio. A causa delle note regole di esportazione degli Stati Uniti, l'utility pdf2ps non funziona in file .pdf crittografati. Ma questo non importa: digitate nel browser l'indirizzo http://www.ozemail.com.au/~geoffk/pdfencrypt, scaricate il file pdf_sec.ps e sostituitelo al file con lo stesso nome che è disponibile con la distribuzione di Ghostscript.

4.11 TeX e programmi accessori

Presumendo che abbiate la distribuzione teTeX, ecco un paio di cosette:

4.12 Evitate PPProblemi!

Si dà per scontato che il vostro kernel abbia il supporto per i protocolli PPP e TCP/IP, che il loopback sia abilitato e che disponiate già del pacchetto pppd correttamente installato e magari impostato suid root. Ovviamente, il vostro ISP deve supportare il protocollo 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:

La configurazione manuale è un fastidio. Si tratta di modificare 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.

Gnome è KDE includono, rispettivamente, gnome-ppp e kppp che sono molto semplici da installare. In alternativa, suggerisco che diate un'occhiata a un paio di tool basati su testo semplice, wvdial ed eznet. Dovete fornire loro il numero di telefono dell'ISP, il vostro username, la vostra password ed è fatta. Le relative home page sono disponibili agli indirizzi http://www.worldvisions.ca/wvdial e http://www.hwaci.com/sw/eznet. Entrambi sono molto utili, ma preferisco l'ultimo.

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, eseguite questo comando:

#~ eznet add service=VOSTRO_ISP user=NOME password=PASSWORD phone=NUMERO

che crea il file /var/eznet/eznet.conf della root.root con permessi 600; modificatelo in 666 se desiderate che tutti lo possano leggere. 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!

Partire in fretta con wvdial

L'installazione di wvdial è ancora più breve. Digitate wvdialconf /etc/wvdial.conf, quindi modificate il file risultante per includere il vostro username, la password e il numero di telefono. Provate wvdial e tenete le dite incrociate. Per finire la connessione, arrestatela con Ctrl-C.

4.13 POP Client

Per ricevere la posta dal server POP3, si usa un client POP come fetchpop o fetchmail; quest'ultimo è il più avanzato, ma richiede l'esecuzione di sendmail. Si tratta di una specie di sovrapposizione nelle macchine con specifiche minime. Si trovano su ftp://metalab.unc.edu/pub/Linux/system/mail/pop .

Per configurare questi client:

4.14 Sistema X Window (XFree86)

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, XF86Setup 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:

Anche se ha sempre funzionato per me, potreste avere diversa fortuna. Attenzione che spesso X11 non parte perché avete scelto impostazioni troppo elevate per il monitor! Iniziate con impostazioni di base, ad es. 800x600 e 256 colori, poi provate ad aumentarle. Attenzione: queste operazioni sono pericolose e potreste danneggiare il monitor!

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 <X11/keysymdef.h>

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

e nel caso, mettetele in un commento. Per riabilitare il tastierino, si dà il comando xmodmap .Xmodmap.num.

Login grafico con xdm

Per ottenere il login in modalità grafica, si deve modificare 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 :0 -bpp 16 vt07  # primo server X, colori a 65 kb
:1 local /usr/X11R6/bin/X :1 -bpp 32 vt08  # secondo server X, true colour

Se avete già il file .xinitrc, copiatelo nel file .xsession e rendete eseguibile quest'ultimo con chmod +x .xsession. Ora eseguite il comando telinit 5 e siete a posto!

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 modificare nulla e si utilizzano appositi programmini, o addirittura un apposito menu.

Alcuni esempi:

In breve: se non vi dispiace modificare dei file di configurazione, scegliete icewm, fvwm*, blackbox etc; se invece non è di vostro gradimento, la scelta è limitata attualmente a KDE, Gnome, WindowMaker e XFCE.

È importante avere un buon file .xinitrc. Un esempio:

#!/bin/sh
# $HOME/.xinitrc

usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap

xset s noblank  # disattiva lo screen saver
xset s 300 2    # screen saver che parte dopo 5 minuti
xset m 10 5     # imposta l'accelerazione del mouse

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 in alcune versioni di S.u.S.E.).

Impostazioni di default per le applicazioni X11

Scoprite dove si trova la directory app-defaults (dovrebbe essere in /usr/X11R6/lib/X11/app-defaults). Numerose applicazioni conservano qui un file di configurazione.

4.15 Configurazione per gli utenti

Quando avete finito di configurare i file dot, copiateli nella directory /etc/skel come già detto alla Sezione Configurazione software.

4.16 Creazione di .rpms

rpm è un metodo talmente utile per il controllo dei pacchetti che sono riluttante a installare gli archivi .tar.gz, ma solo in pochi casi speciali (ad esempio, per la sicurezza). Ogni volta che installate un tarball, considerate di trasformarlo in un archivio .rpm, quindi reinstallatelo; fate riferimento al RPM HOWTO. Inoltre, se utilizzate le versioni di gcc aggiornate, quali egcs o pgcc, può essere consigliabile immettere quanto segue in /etc/rpmrc:

optflags: i386 -O2 -mpentium

4.17 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.

È quindi il momento di fare l'upgrade (in rari casi, downgrade!) delle applicazioni della distribuzione e di aggiungere ulteriori pacchetti. Mantenete un elenco di questi ultimi.


Avanti Indietro Indice