Page suivante Page précédente Table des matières

3. Configuration des logiciels

Voici la liste des fichiers de configuration que nous allons modifier: /etc/profile /etc/bashrc .bashrc .bash_profile .inputrc .less .lessrc .xinitrc .fvwmrc .fvwm2rc95 .Xmodmap .Xdefaults .jedrc. .abbrevs.sl .joerc .emacs. N'ajoutez pas d'utilisateurs avant d'avoir terminé la configuration. Les fichiers dont le nom commence par un point iront dans /etc/skel.

3.1 bash(1)

Pour affiner le comportement de bash, voici les fichiers à éditer :

Voici des exemples de ces fichiers. D'abord le plus important : /etc/profile qui configure beaucoup de propriétés de votre système, comme illustré ci-dessous :


 
# /etc/profile

# Environnement global au système et programmes de démarrage
# Les fonctions et alias vont dans /etc/bashrc

# Ce fichier configure globalement
#
#   o le chemin d'exécution (path)
#   o les invites (prompts)
#   o quelques variables d'environnement
#   o ls en couleurs
#   o comportement de less
#
# Les utilisateurs peuvent écraser ces configurations et en ajouter 
# d'autres dans leur $HOME/.bash_profile

# mettre un chemin d'exécution décent

echo $PATH | grep X11R6 > /dev/null
if [ $? = 1 ] ; then   # ajouter des entrées au chemin
  PATH="$PATH:/usr/X11R6/bin:$HOME/bin:."
fi

# indiquer à l'utilisateur les shells de login. En login, l'invite
# (prompt) est en bleu, autrement en magenta. L'invite de root est rouge

USER=`whoami`
if [ $LOGNAME = $USER ] ; then
  COLOUR=44
else
  COLOUR=45
fi

if [ $USER = 'root' ] ; then
  COLOUR=41
fi

# mettez un vrai caractère échappement (Escape) au lieu de ^[
# Pour cela: sous emacs: ^Q ESC   sous vi: ^V ESC   sous joe: ` 0 2 7
# sous jed: `ESC
# Enlevez ";1" si vous n'aimez pas l'attribut "gras".
ESC=^[
PS1='$ESC[$COLOUR;37;1m$USER:$ESC[37;40;1m\w\$ '
PS2="Continue> "

# pas de core dump svp
ulimit -c 0

# positionner le umask (permission par défaut des nouveaux fichiers)

if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
        umask 002
else
        umask 022
fi

# quelques variables

USER=`id -un`
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

# ls en couleurs

eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -s -T 0 --color=tty'

# configuration de less

LESS='-M-Q'
LESSEDIT="%E ?lt+%lt. %f"
LESSOPEN="| lesspipe.sh %s"
VISUAL=jed
LESSCHARSET=latin1
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET

# configurer globalement d autres programmes
for i in /etc/profile.d/*.sh ; do
        if [ -x $i ]; then
                . $i
        fi
done

Voici le fichier /etc/bashrc :


   
# /etc/bashrc
# Fonctions et alias globaux au système
# les variables d'environnement vont en /etc/profile
alias which="type -path"
alias d="ls"
alias dir="d"

Et voici un exemple de .bashrc :


    
# Sourcer les definitions globales

if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# Ceci est nécessaire pour notifier les utilisateurs qu'ils se trouvent dans un shell sans login

if [ "$GET_PS1" = "" ] ; then
  COLOUR=45
# mettre un vrai caractère échappement (Escape) au lieu de ^[
  ESC=^[
  PS1='$ESC[$COLOUR;37m`whoami`:$ESC[37;40m\w\$ '
  export PS1
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

# Quelques fonctions utiles

inst() # Installer une archive .tar.gz dans le repertoire courant
{ gzip -dc $1 | tar xvf - }

cz() # Lister le contenu d'une archive .zip
{ unzip -l $* }

ctgz() # Lister le contenu d'une archive .tar.gz
{
  for file in $* ; do
    gzip -dc ${file} | tar tf -
  done
}

tgz() # Créer une archive .tgz à la zip.
{
  name=$1 ; tar -cvf $1 ; shift
  tar -rf ${name} $*
  gzip -S .tgz ${name}
}

Voici un exemple de .bash_profile :


 
# fichier $HOME/.bash_profile

# Environment et programmes de démarrage propres à l'utilisateur
# Ce fichier contient des configurations définies par l'utilisateur
# écrasant celles dans /etc/profile

# configurer les alias et fonctions propres à l'utilisateur
if [ -f ~/.bashrc ]; then
        GET_PS1="NO"  # Ne pas changer la couleur de l'invite
        . ~/.bashrc
fi

# quelques répertoires "par défaut"
export CDPATH="$CDPATH:$HOME:$HOME/text:$HOME/text/geology"

# pour réparer l'espace arrière sous rxvt 2.45
if [ "$COLORTERM" != "" ] ; then
  stty erase ^?
  ESC=^[  # put a real escape character instead of ^[
  echo -n "$ESC[36l"
fi

Voici un fichier ~/.inputrc :


 
# fichier $HOME/.inputrc

# liaison des touches du clavier

"\e[1~": beginning-of-line
"\e[3~": delete-char
"\e[4~": end-of-line
# les touches (F1 .. F5) sont "\e[[A" ... "\e[[E"
"\e[[A": "info \C-m"

set bell-style visible         # sans bip sonore
set meta-flag On               # permettre les caractères à 8 bits (accentués)
set convert-meta Off           # .. ne pas les convertir
set output-meta On             # .. les afficher correctement
set horizontal-scroll-mode On  # parcourir les longues lignes de commandes
set show-all-if-ambiguous On   # après avoir pressé TAB

Pour que les touches arrière (backspace) et suppr (delete) fonctionnent correctement dans xterm et d'autres applications X11, il vous faut également :

Pour corriger xterm :

Pour rxvt, c'est un peu plus compliqué, vu que certaines options de compilation influent sur son comportement. Voyez le fichier .bash_profile ci-dessus.

Voir les pages du manuel (commande man) de bash(1) et readline(3) pour plus de détails.

N'espérez pas voir toutes les applications fonctionner correctement. Si vous lancez joe sous xterm par exemple, certaines touches ne fonctionnent pas; c'est vrai aussi pour les versions de rxvt antérieures à la 2.21.

3.2 ls(1)

La commande ls peut afficher les répertoires avec des couleurs pour différencier les types de fichiers. Pour configurer cette option, ajoutez les lignes suivantes dans /etc/profile:

eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -T 0 --color=tty'

(Si vous n'avez pas de fichier /etc/DIR_COLORS, enlevez la référence à ce fichier de la première ligne). Ceci positionne la variable d'environnement LS_COLORS selon les listes de couleurs définies dans /etc/DIR_COLORS. Note: ne me demandez pas pourquoi, mais ça ne marche pas dans certaines anciennes versions de rxvt (antérieures à 2.21); utilisez alors xterm ou un programme similaire. Il semble que rxvt ait un bogue l'empêchant dans certains cas d'hériter correctement des variables d'environnement.

Le ls de Caldera n'a pas de couleurs, mail il existe un équivalent: color-ls. Ajoutez ceci à /etc/bashrc:

alias ls="color-ls $LS_OPTIONS"

3.3 less(1)

Avec cet excellent pagineur, vous pouvez visualiser non seulement des fichiers de texte ordinaires, mais aussi des fichiers comprimés par gzip, des archives tar ou zip, des pages de manuel (commande man), etc. Sa configuration prend quelques étapes :

3.4 emacs(1)

Je n'utilise pas emacs, donc je n'ai qu'un seul conseil à vous donner. Certaines distributions d'emacs ne sont pas préconfigurées pour les couleurs et la décoration syntaxique. Ajoutez ce qui suit dans votre ~/.emacs

;; dans fichier $HOME/.emacs
(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)

Ceci ne marche qu'avec X11. Je vous laisse lire attentivement toute la documentation d'emacs pour découvrir comment l'adapter à vos besoins. Cela peut prendre des mois de bidouillage!

3.5 joe(1)

Certaines personnes rapportent que joe fonctionne en couleurs sous X11, mais pas sur la console. De plus, certaines touches spéciales ne fonctionnent pas. À ma connaissance, personne n'a réussi à résoudre le premier problème; certains ont suggéré de bidouiller /etc/termcap.

Si vous rencontrez ce problème, voici une solution rapide (et peu élégante):

~$ export TERM=vt100
~$ joe monfichier
   (éditez votre fichier)
~$ export TERM=linux

3.6 jed(1)

C'est mon éditeur favori; il fait ce dont j'ai besoin, mais est plus léger et plus facile à configurer qu' emacs, et à mon humble avis émule mieux les autres éditeurs. Beaucoup d'utilisateurs de mon université veulent jed pour émuler EDT, l'éditeur de VMS.

Les fichiers de configuration sont .jedrc et /usr/lib/jed/lib/*. Le premier est adapté du fichier jed.rc de ce répertoire-là.

3.7 efax(1)

Ce paquetage est probablement le plus pratique pour envoyer et recevoir simplement des fax. Vous allez devoir adapter le script /usr/bin/fax; c'est facile, mais quelques particularités m'ont causé un gros mal de crâne:

3.8 TeX et compagnie

Je suppose que vous avez la distribution TeTeX. Quelques trucs ici :

3.9 PPP

Je suppose que votre noyau est compilé avec le support de PPP et TCP/IP, avec support du loopback et que votre logiciel pppd est correctement installé et setuid root. Bien sûr, votre FAI doit utiliser PPP.

Il y a dorénavant deux façons de faire fonctionner PPP : a) une configuration manuelle, et b) utiliser un programme de configuration "auto-magique". Que vous choisissiez l'un ou l'autre moyen, vous aurez besoin des informations suivantes:

La configuration manuelle est un casse-tête. Il s'agit d'éditer des fichiers et d'écrire des scripts; pas trop de travail, mais les erreurs sont faciles à faire, et les nouveaux utilisateurs sont souvent intimidés. Si vous voulez vous y lancer, le PPP HOWTO est là pour vous. Sinon, il existe des logiciels qui vous demandent les informations ci-dessus et qui font tout le travail eux-mêmes.

Le mieux est certainement de trouver un ami déjà connecté et de télécharger les outils suivants:

3.10 Client POP

Pour aller chercher votre courrier électronique sur un serveur POP, utilisez un client POP tel que fetchpop ou fetchmail. Ce dernier est plus avancé, et c'est probablement la seule alternative si le serveur PPP de votre fournisseur a des problèmes avec la commande LAST.

Pour configurer ces clients :

Vous devez mettre les permissions de ce fichier avec chmod 600 .fetchmailrc autrement fetchmail refusera avec raison de démarrer. Cet exemple est très rudimentaire, et suppose que sendmail tourne chez vous; les possibilités de configuration sont infinies. Reportez-vous à http://www.ccil.org/~esr/fetchmail.

3.11 Système de Fenêtrage X

Une fois que vous avez réussi à faire marcher X11 (bonne carte graphique, etc.), il existe d'inombrables possibilités de configuration; cela dépend de votre gestionnaire de fenêtres (window manager). Dans tous les cas, il s'agit d'éditer un ou des fichier[s] textuel[s] de votre répertoire utilisateur. Selon le gestionnaire de fenêtres:

De plus, soyez certain d'avoir un .xinitrc correct. Par exemple:

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

# configurer le clavier correctement
usermodmap=$HOME/.Xmodmap
xmodmap $usermodmap

xset s noblank  # turn off the screen saver
xset s 300 2    # screen saver start after 5 min
xsetroot -solid "medium blue" &

# rxvt est économe en mémoire, mais les versions
# antérieures à la 2.21 souffrent de bogues affectant
# les couleurs et la récupération de l'environnement.
# Prenez une version plus récente ou utilisez xterm

xterm -ls -bg black -fg white -sb -sl 500 -j -ls -fn 10x20 -fb 10x20bold \
-title "xterm en Couleurs" -geometry 80x25+150+0 &

fvwm95-2

3.12 Fortran

D'après moi, une bonne alternative à g77 est le traducteur Fortran vers C f2c et son interface yaf77.

Vous pouvez obtenir yaf77-X.Y.tgz depuis ftp://sunsite.unc.edu/pub/Linux/devel/languages/fortran et ses miroirs (NdT: notamment ftp://ftp.lip6.fr/pub/linux/sunsite/devel/languages/fortran en France).

3.13 Configurations utilisateurs

C'est une bonne idée de fournir aux nouveaux utilisateurs quelques fichiers de configurations déjà prêts à leur première connexion. Pour cela, mettez dans /etc/skel/ : .bashrc, .bash_profile, .bash_logout, .inputrc, .less, .xinitrc, .fvwmrc, .fvwm2rc95, .Xmodmap, .Xdefaults, .jedrc, .abbrevs.sl, .joerc, et .emacs.

Remarquez que .pinerc n'est pas complètement adaptable. Vérifiez toutefois que les champs user-domain, smtp-server et nntp-server y sont corrects.

3.14 Mise à jour

Si vous faites une mise à jour complète de votre machine, pensez à sauvegarder quelques autres fichiers auparavant, par exemple /etc/X11/XF86Config et /usr/bin/fax.


Page suivante Page précédente Table des matières