Chapitre 10. Particularités de SUSE LINUX

Table des matières

10.1. Informations relatives à certains paquetages logiciels spéciaux
10.2. Consoles virtuelles
10.3. Disposition du clavier
10.4. Adaptations régionales et linguistiques

Résumé

Vous trouverez dans ce chapitre des informations sur les différents paquetages logiciels ainsi que sur les consoles virtuelles et la disposition du clavier. En conclusion, vous trouverez une section consacrée aux adaptations locales et linguistiques (I18N et L10N).

10.1. Informations relatives à certains paquetages logiciels spéciaux

10.1.1. Le paquetage bash et /etc/profile

Le programme bash lit et évalue dans cet ordre les fichiers d'initialisation lorsqu'il est appelé comme interpréteur de commandes à la connexion (shell de login) :

  1. /etc/profile

  2. ~/.profile

  3. /etc/bash.bashrc

  4. ~/.bashrc

Les utilisateurs peuvent ajouter leurs propres lignes dans ~/.profile ou dans ~/.bashrc. Pour modifier ces fichiers comme il se doit, il est indispensable de recopier les paramètres de base de /etc/skel/.profile ou de /etc/skel/.bashrc dans le répertoire utilisateur. Il est donc recommandé, après avoir effectué une mise à jour, de copier la configuration à partir de /etc/skel. Exécutez les commandes suivantes depuis un terminal afin de conserver une copie des modifications que vous avez réalisées :

mv ~/.bashrc ~/.bashrc.old
cp /etc/skel/.bashrc ~/.bashrc
mv ~/.profile ~/.profile.old
cp /etc/skel/.profile ~/.profile
  

Vous devez alors copier vos adaptations personnelles depuis les fichiers *.old.

10.1.2. Le paquetage cron

Les tables cron se trouvent maintenant dans /var/spool/cron/tabs. Le fichier /etc/crontab sert de planificateur horaire pour tout le système. Entrez le nom de l'utilisateur qui doit exécuter une commande directement après le tableau des horaires. Dans Exemple 10.1, « Exemple de déclaration dans /etc/crontab », l'utilisateur root est entré. Des tableaux se rattachant à un paquetage en particulier ont le même format et se trouvent dans le répertoire /etc/cron.d.

Exemple 10.1. Exemple de déclaration dans /etc/crontab

1-59/5 * * * * root test -x /usr/sbin/atrun && /usr/sbin/atrun
   

Le fichier /etc/crontab ne peut pas être édité à l'aide de la commande crontab -e mais il doit être chargé directement dans un éditeur pour y recevoir les modifications prévues et y être enregistré.

Un certain nombre de paquetages installent dans les répertoires /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly et /etc/cron.monthly des scripts shell dont les instructions sont gérées par /usr/lib/cron/run-crons. Toutes les quinze minutes, la table principale (/etc/crontab) appelle /usr/lib/cron/run-crons, ce qui permet de rattraper éventuellement les étapes qui n'ont pas pu être traitées à temps.

Pour plus de clarté, les travaux de maintenance exécutés quotidiennement sur le système sont répartis sur plusieurs scripts. Ils sont contenus dans le paquetage aaa_base. Ainsi, le répertoire /etc/cron.daily comporte, par exemple, les composants backup-rpmdb, clean-tmp ou clean-vi.

10.1.3. Fichiers journaux — le paquetage logrotate

De nombreux services système (« démons ») ainsi que le noyau lui-même enregistrent régulièrement l'état du système et d'éventuels incidents dans des fichiers journaux (logfiles). L'administrateur peut ainsi déterminer de façon fiable dans quel état le système se trouvait à un instant donné, identifier les erreurs ou les dysfonctionnements et réagir de façon appropriée. Ces fichiers journaux se trouvent, conformément au standard FHS, dans le répertoire /var/log et grossissent de jour en jour. On peut contrôler la croissance de ces fichiers à l'aide de logrotate.

10.1.3.1. Configuration

Le fichier de configuration /etc/logrotate.conf définit le comportement d'ensemble. La directive include permet de nommer les fichiers supplémentaires devant être chargés. Il est prévu que les différents paquetages de SUSE LINUX installent des fichiers dans /etc/logrotate.d. (par exemple syslog et YaST procèdent ainsi).

Exemple 10.2. Exemple de fichier /etc/logrotate.conf

# see "man logrotate" for details 
# rotate log files weekly weekly 
# keep 4 weeks worth of backlogs rotate 4 
# create new (empty) log files after rotating old ones create 
# uncomment this if you want your log files compressed 
#compress 
# RPM packages drop log rotation information into this directory 
include /etc/logrotate.d 
# no packages own lastlog or wtmp - we'll rotate them here 
#/var/log/wtmp { 
#    monthly 
#    create 0664 root utmp 
#    rotate 1 
#} 
# system-specific logs may be also be configured here.
   

logrotate lui-même est contrôlé par cron et déclenché quotidiennement par /etc/cron.daily/logrotate.

[Important]Important

L'option create lit les préférences éventuelles de l'administrateur dans les fichiers /etc/permissions*. Assurez-vous que cela n'entre pas en conflit avec vos réglages.

10.1.4. Les pages de manuel

Pour un certain nombre de programmes GNU (par exemple tar), les pages de manuel ne sont plus tenues à jour. Utilisez alors l'option --help pour obtenir une présentation rapide ou les page d'info. Le programme info constitue le système hypertexte du système GNU. La commande info info donne accès à une première aide à l'utilisation. Les pages info peuvent être vues dans Emacs en exécutant emacs -f info ou bien directement dans une console à l'aide de la commande info. Vous pouvez également utiliser les applications tkinfo, xinfo ou le système d'aide SUSE pour visualiser les pages info.

10.1.5. La commande locate

locate, qui permet de trouver rapidement des fichiers, ne fait pas partie des logiciels installés par défaut. Installez-le (find-locate) si vous souhaitez l'utiliser. Le processus updatedb sera alors démarré quotidiennement de façon automatique, la nuit ou environ 15 minutes après l'amorçage du système.

10.1.6. La commande ulimit

La commande ulimit (user limits) permet de fixer des limites à l'utilisation des ressources système et d'afficher ces dernières. ulimit est utilisé notamment pour limiter la mémoire allouée aux applications. Ainsi, on peut éviter qu'une application ne monopolise la majeure partie ou la totalité de la mémoire et ne gèle le système.

Le programme ulimit peut être exécuté avec différentes options. Pour restreindre l'utilisation de la mémoire, utilisez les options affichées dans Tableau 10.1, « ulimit : configuration des ressources de l'utilisateur ».

Tableau 10.1. ulimit : configuration des ressources de l'utilisateur

-m

taille maximale de la mémoire physique

-v

taille maximale de la mémoire virtuelle

-s

taille maximale de la pile

-c

taille maximale des fichiers Core (de vidage mémoire)

-a

affichage des limites fixées

La configuration pour tout le système peut être définie dans le fichier /etc/profile. Activez-y la création de fichiers core dont les programmeurs ont besoin pour le « débogage ». Les utilisateurs normaux ne sont pas autorisés à augmenter les valeurs fixées par l'administrateur système dans /etc/profile. Ils peuvent toutefois saisir des paramètres particuliers dans leur propre fichier ~/.bashrc.

Exemple 10.3. Paramètres ulimit dans ~/.bashrc

# Limitation de la mémoire réelle
ulimit -m 98304

# Limitation de la mémoire virtuelle
ulimit -v 98304
   

La mémoire doit être exprimée en Ko. Pour plus de précisions, reportez-vous à la page de manuel man bash.

[Important]Important

Tous les interpréteurs de commandes (shells) ne prennent pas en charge les directives ulimit. Dans le cas où vous auriez besoin de définir des paramètres globaux fixant ces limitations, vous pouvez utiliser PAM (par exemple pam_limits) qui offre des possibilités de configuration avancées.

10.1.7. La commande free

La commande free prête quelque peu à confusion lorsqu'il s'agit de déterminer comment la mémoire vive est utilisée à un moment donné. On trouve les informations correspondantes /proc/meminfo. De nos jours, cela ne devrait préoccuper aucun utilisateur d'un système d'exploitation moderne comme Linux. Le concept de mémoire vive disponible remonte à l'époque où la gestion unifiée de la mémoire (unified memory management) n'existait pas encore. Le slogan La mémoire disponible est de la mauvaise mémoire (free memory is bad memory) s'applique bien à Linux. En conséquence, Linux s'est toujours efforcé de trouver un équilibre entre les caches sans jamais accepter la présence de mémoire réellement libre ou inutilisée.

Le noyau n'a aucune idée des programmes ou des données utilisateurs. Il gère les programmes et les données utilisateurs dans la mémoire cache. Lorsque la mémoire commence à être saturée, une partie est écrite dans la partition d'échange (swap) ou dans des fichiers à partir desquels elle peut être initialement lue à l'aide de la commande mmap (voir mmap).

À côté de cela, le noyau utilise également d'autres zones de caches, comme le slab cache, qui contient les caches utilisés pour l'accès réseau. C'est ce qui permet d'expliquer d'éventuelles différences entre les valeurs dans /proc/meminfo. On peut accéder à pratiquement tous ces caches via /proc/slabinfo.

10.1.8. Le fichier /etc/resolv.conf

La résolution de noms est gérée par l'intermédiaire du fichier /etc/resolv.conf. Voyez Chapitre 24, La résolution de noms.

Ce fichier est actualisé par le script /sbin/modify_resolvconf exclusivement. Aucun autre programme n'est autorisé à manipuler directement le fichier /etc/resolv.conf. Cette règle doit être respectée pour assurer la cohérence entre la configuration réseau et les fichiers appropriés.

10.1.9. Configuration de GNU Emacs

GNU Emacs est un environnement complexe. Pour de plus amples informations, consultez http://www.gnu.org/software/emacs/. Dans les sections suivantes, nous passerons en revue les fichiers de configuration sur lesquels GNU Emacs se base au démarrage.

Au démarrage, Emacs lit plusieurs fichiers contenant les réglages de l'utilisateur, de l'administrateur système et du distributeur pour s'adapter et se préconfigurer en fonction de leurs besoins respectifs. Le fichier d'initialisation ~/.emacs est installé, pour chaque utilisateur, à partir de /etc/skel dans le répertoire personnel. Le fichier .emacs charge à son tour le fichier /etc/skel/.gnu-emacs. Pour personnaliser le programme, copiez le fichier .gnu-emacs dans le répertoire personnel (avec cp /etc/skel/.gnu-emacs ~/.gnu-emacs), puis procédez aux réglages souhaités.

Dans .gnu-emacs, le fichier ~/.gnu-emacs-custom est répertorié comme custom-file. Si les utilisateurs définissent des paramètres avec les options customize, ces modifications seront enregistrées dans ~/.gnu-emacs-custom.

Sous SUSE LINUX, avec le paquetage emacs, le fichier site-start.el est installé dans le répertoire /usr/share/emacs/site-lisp. Le fichier site-start.el est chargé avant le fichier d'initialisation ~/.emacs. Le fichier site-start.el permet entre autres de charger certains fichiers de configuration installés avec des paquetages Emacs additionnels de la distribution (par exemple le paquetage psgml). De tels fichiers de configuration se trouvent également dans le répertoire/usr/share/emacs/site-lisp et commencent toujours par suse-start-. L'administrateur système local peut enregistrer des réglages s'appliquant à tout le système dans le fichier default.el.

Pour plus d'informations, consultez le fichier info d'Emacs sous Init File : info:/emacs/InitFile. Il y est notamment décrit comment empêcher le chargement de ces fichiers (si besoin est).

Les composants d'Emacs sont répartis dans plusieurs paquetages :

  • Paquetage de base emacs

  • Paquetage emacs-x11 (généralement installé) : programme avec prise en charge de X11.

  • Paquetage emacs-nox  programme sans prise en charge de X11.

  • Paquetage emacs-info : documentation en ligne au format Info.

  • Paquetage emacs-el : fichiers de bibliothèque non compilés en Lisp Emacs. Ceux-ci ne sont pas nécessaires à l'exécution.

  • De nombreux paquetages supplémentaires peuvent être installés si besoin est : le paquetage emacs-auctex (pour LaTeX) ; le paquetage psgml (pour SGML/XML) ; le paquetage gnuserv (pour l'utilisation en modes client et serveur), etc.

10.1.10. Brève initiation au vi

Pour beaucoup de travaux sur le système, mais également pour des travaux de programmation, on utilise encore aujourd'hui des éditeurs de texte. Dans le domaine Unix, le vi s'est au fil du temps imposé comme étant l'éditeur qui offre de fonctions confortables d'édition et est beaucoup plus ergonomique que beaucoup d'éditeurs prenant également en charge la souris.

10.1.10.1. Modes de fonctionnement

On différencie en principe dans l'éditeur vi trois différents modes de fonctionnement : le mode insertion, le mode commande et le mode étendu. Les touches ont des fonctions très différentes selon le mode. La première chose à savoir est comment commuter entre les modes :

Du mode commande vers le mode insertion

Il existe ici une grand nombre de possibilités, dont : a pour ajouter, i pour insérer ou o pour une nouvelle ligne sous la ligne actuelle.

Du mode insertion vers le mode commande

Pour quitter le mode insertion, pressez la touche Esc. Dans le mode insertion, il n'est pas possible de quitter l'éditeur vi. C'est pourquoi il est important de garder la touche ESC en mémoire.

Du mode commande vers le mode étendu

Le mode étendu de l'éditeur vi peut être activé en saisissant deux-points (:). Le mode étendu, appelé aussi mode ex, correspond à un éditeur indépendant fonctionnant ligne par ligne. Vous pouvez, à l'aide de ce mode, effectuer de nombreuses tâches, des plus simples au plus complexes.

Du mode étendu vers le mode commande

Après l'exécution d'une commande dans le mode étendu, on revient en principe automatiquement dans le mode commande. Cependant, si vous décidez finalement de n'exécuter aucune commande en mode étendu, vous pouvez, à l'aide de la touche de retour en arrière, effacer les deux-points. L'éditeur repasse alors en mode commande.

Notez qu'une commutation du mode insertion vers le mode étendu nécessite toujours le passage intermédiaire par le mode commande. Une commutation directe n'est pas possible.

vi, comme d'autres éditeurs, possède sa propre procédure pour quitter le programme. Il est impossible de quitter vi en mode insertion. Quittez d'abord le mode insertion avec la touche Esc. Puis, on différencie deux cas de figure :

  1. Quitter sans enregistrer : si vous désirez quitter l'éditeur sans enregistrer les modifications, saisissez, dans le mode commande, la combinaison de touches : q !. ! signifie à vi d'ignorer les modifications effectuées.

  2. Quitter et enregistrer : pour enregistrer les modifications et ensuite quitter l'éditeur, vous disposez de plusieurs possibilités. Dans le mode commande, utilisez Z Z. Dans le mode étendu, utilisez : w q. Dans le mode étendu, w signifie « write » (écrire) et q signifie « quit » (quitter).

10.1.10.2. vi en pratique

vi peut être utilisé comme un éditeur tout à fait normal. Dès que vous êtes en mode insertion, vous pouvez entrer du texte et en effacer à l'aide des touches de retour en arrière et d'effacement et . Pour bouger le curseur, utilisez les touches de contrôle du curseur.

Mais on est souvent confronté à des problèmes, justement avec ces touches de commande. Ceci provient du fait qu'il existe un grand nombre de types de terminaux différents qui utilisent chacun des codes de touches qui leur sont propres. C'est à ce moment qu'entre en jeu le mode commande. Appuyez sur la touche Esc pour passer du mode insertion en mode commande. Dans le mode commande, déplacez le curseur avec les touches H, J, K et L. Ces touches ont les significations suivantes :

H

déplace le curseur d'un caractère vers la gauche

J

déplace le curseur d'une ligne vers le bas

K

déplace le curseur d'une ligne vers le haut

L

déplace le curseur d'un caractère vers la droite

Les commandes en mode commande permettent diverses variations. Si vous désirez exécuter plusieurs fois une commande, vous pouvez entrer simplement sous forme de chiffre le nombre de répétitions, et ensuite appeler la commande voulue. Donc, si vous entrez la séquence de commande 5 L, le curseur bougera de cinq caractères vers la droite.

10.1.10.3. Informations complémentaires

L'éditeur vi prend en charge énormément de commandes. ll permet l'utilisation de macros, de raccourcis, de tampons et beaucoup d'autres fonctionnalités. Les décrire ici en détails nous mènerait trop loin. SUSE LINUX contient une version améliorée de vi, le vim (vi improved). Il existe de nombreuses sources d'informations traitant de ce programme :

[Important]La licence VIM

vim est ce qu'on appelle un « logiciel de bienfaisance ». Ceci signifie que les auteurs ne veulent pas recevoir d'argent pour les logiciels mais qu'ils incitent à supporter un projet d'intérêt général à l'aide de dons. Ce projet servira à venir en aide aux enfants en Ouganda. Vous trouverez de plus amples informations à ce sujet sur internet sous http://iccf-holland.org/index.html, http://www.vim.org/iccf/ et http://www.iccf.nl/.


SUSE LINUX Guide de l'administrateur 9.2