Chapitre 10. Caractéristiques spécifiques à SUSE  Linux

Table des matières

10.1. Informations à propos des paquetages logiciels spéciaux
10.2. Consoles virtuelles
10.3. Affectation des touches du clavier
10.4. Paramètres spécifiques aux langues et aux pays

Résumé

Ce chapitre débute par des informations à propos de divers paquetages logiciels, des consoles virtuelles et de la configuration du clavier. Il aborde ensuite divers composants logiciel tels que bash, cron et logrotate, qui ont été modifiés ou améliorés au cours des derniers cycles de développement. Même s'ils sont de taille ou d'importance mineure, les utilisateurs peuvent être amenés à modifier leur comportement par défaut car ces composants sont souvent étroitement liés au système. Le chapitre se termine par une section consacrée aux paramètres spécifiques aux langues et aux pays (I18N et L10N).


10.1. Informations à propos des paquetages logiciels spéciaux

Les programmes bash, cron, logrotate, locate, ulimit et free, ainsi que le fichierresolv.conf, sont très importants pour les administrateurs système et de nombreux utilisateurs. Les pages de manuel et d'informations constituent deux sources d'informations fort utiles à propos des commandes, mais ne sont pas toujours disponibles. GNU Emacs est un éditeur de texte populaire et largement configurable.

10.1.1. Paquetage bash et /etc/profile

Bash est le shell par défaut dans SUSE Linux. Lorsqu'il est utilisé en guise de shell de login, il lit plusieurs fichiers d'initialisation. Bash les traite dans leur ordre d'apparition au sein de la liste.

  1. /etc/profile

  2. ~/.profile

  3. /etc/bash.bashrc

  4. ~/.bashrc

Des réglages personnalisés peuvent être effectués dans ~/.profile ou dans ~/.bashrc. Pour assurer le bon traitement de ces fichiers, il est nécessaire de copier les réglages de base à partir de /etc/skel/.profile ou /etc/skel/.bashrc dans le répertoire privé de l'utilisateur. Il est conseillé de copier les paramètres de /etc/skel après toute mise à jour. Exécutez les commandes de shell suivantes pour éviter la perte de vos réglages personnels :

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

Recopiez ensuite vos paramètres personnels à partir des fichiers *.old.

10.1.2. Paquetage cron

Si vous souhaitez exécuter des commandes régulièrement et automatiquement en arrière-plan à des heures prédéfinies, cron est traditionnellement l'outil à utiliser. cron est piloté à l'aide de tables horaires spécialement formatées. Certaines sont livrées avec le système, mais les utilisateurs peuvent créer leur propres tables si nécessaire.

Les tables cron se situent dans /var/spool/cron/tabs. /etc/crontab sert de table cron à l'échelle du système. Pour exécuter la commande, entrez le nom d'utilisateur directement après l'horaire et directement avant la commande. root est saisi dans l'Exemple 10.1, « Entrée dans /etc/crontab ». Les tables spécifiques, stockées dans /etc/cron.d, ont le même format. Reportez-vous à la page de manuel cron (man cron).

Exemple 10.1. Entrée dans /etc/crontab

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

Vous ne pouvez pas éditer /etc/crontab en appelant la commande crontab -e. Le fichier doit être directement chargé dans un éditeur, modifié puis enregistré.

Un certain nombre de paquetages installent des scripts de shell dans les répertoires /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly et /etc/cron.monthly, dont l'exécution est contrôlée par /usr/lib/cron/run-crons. /usr/lib/cron/run-crons est exécuté toutes les 15 minutes depuis la table principale (/etc/crontab). Cela garantit que les processus qui risqueraient d'être oubliés sont exécutés à l'heure prévue.

Pour exécuter des scripts de maintenance périodique selon un rythme horaire, quotidien ou autre à l'heure de votre choix, supprimez régulièrement les fichiers d'horodatage à l'aide d'entrées dans /etc/crontab (reportez-vous à l'Exemple 10.2, « /etc/crontab : Suppression des fichiers d'horodatage », qui supprime le script horaire avant chaque heure pleine, le script quotidien une fois par jour à 2h14, etc.).

Exemple 10.2. /etc/crontab : Suppression des fichiers d'horodatage

59 *  * * *     root  rm -f /var/spool/cron/lastrun/cron.hourly
14 2  * * *     root  rm -f /var/spool/cron/lastrun/cron.daily
29 2  * * 6     root  rm -f /var/spool/cron/lastrun/cron.weekly
44 2  1 * *     root  rm -f /var/spool/cron/lastrun/cron.monthly

Les tâches quotidiennes de maintenance système ont été réparties dans divers scripts pour des raisons de clarté. Elles sont contenues dans le paquetage aaa_base. /etc/cron.daily contient, par exemple, les composants suse.de-backup-rpmdb, suse.de-clean-tmp ou suse.de-cron-local.

10.1.3. Fichiers journaux : paquetage logrotate

Parallèlement au kernel, toute une série de services système (démons) enregistrent régulièrement l'état du système ainsi que des événements spécifiques dans des fichiers journaux. Cela permet à l'administrateur de vérifier régulièrement l'état du système à un moment donné, de déceler les erreurs ou les dysfonctionnements et de les réparer avec beaucoup de précision. Ces fichiers journaux sont normalement stockés dans /var/log conformément au FHS et s'allongent de jour en jour. Le paquetage logrotate permet de contrôler la croissance de ces fichiers.

Configurez logrotate avec le fichier /etc/logrotate.conf. La spécification include configure notamment les fichiers supplémentaires à lire. SUSE Linux garantit que les programmes qui génèrent des fichiers journaux installent leurs fichiers de configuration individuels dans /etc/logrotate.d. Ce type de programme accompagne par exemple les paquetages apache2 (/etc/logrotate.d/apache2) et syslogd (/etc/logrotate.d/syslog).

Exemple 10.3. Exemple pour /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 est contrôlé par l'intermédiaire de cron et exécuté quotidiennement par /etc/cron.daily/logrotate.

[Important]Important

L'option create lit tous les réglages effectués par l'administrateur dans /etc/permissions*. Veillez à éviter tout conflit lié à des modifications personnelles.

10.1.4. Commande locate

locate, une commande permettant de rechercher rapidement des fichiers, ne fait pas partie des composants installés par défaut. Si vous désirez l'utiliser, installez le paquetage find-locate. Le processus updatedb est exécuté automatiquement toutes les nuits ou environ 15 minutes après le démarrage du système.

10.1.5. Commande ulimit

La commande ulimit (limite d'utilisateurs) permet de définir des limites pour l'utilisation des ressources système et de les afficher. ulimit est particulièrement utile pour limiter la mémoire disponible pour les applications. De cette façon, il est possible d'empêcher une application d'accaparer une trop grande quantité de mémoire, ce qui risquerait de compromettre la stabilité du système.

ulimit peut être assorti de diverses options. Pour limiter l'utilisation de la mémoire, utilisez les options répertoriées dans le Tableau 10.1, « ulimit : paramétrage des ressources pour l'utilisateur ».

Tableau 10.1. ulimit : paramétrage des ressources pour l'utilisateur

-m

Taille maximum de la mémoire physique

-v

Taille maximum de la mémoire virtuelle

-s

Taille maximum de la pile

-c

Taille maximum des fichiers core

-a

Affichage des limites fixées

Des entrées valables pour l'ensemble du système peuvent être définies dans /etc/profile. Activez ici la création de fichiers core, requis par les programmeurs pour le débogage. Un utilisateur normal ne peut pas augmenter les valeurs spécifiées dans /etc/profile par l'administrateur système, mais peut définir des entrées spéciales dans ~/.bashrc.

Exemple 10.4. ulimit : réglages dans ~/.bashrc

# Limits of physical memory:
ulimit -m 98304
 
# Limits of virtual memory:
ulimit -v 98304

Les quantités de mémoire doivent être spécifiées en Ko. Pour de plus amples informations, reportez-vous à man bash.

[Important]Important

Tous les shells ne prennent pas en charge les directives ulimit. PAM (par exemple, pam_limits) offre des possibilités de réglage complètes si vous dépendez de réglages limitatifs pour ces restrictions.

10.1.6. Commande free

La commande free peut sembler mal nommée de prime abord puisqu'elle indique la quantité de RAM qui est en cours d'utilisation. Cette information se trouve dans /proc/meminfo. De nos jours, les utilisateurs qui disposent d'un système d'exploitation moderne, tel que Linux, n'ont pas réellement à s'inquiéter au sujet de la mémoire. Le concept de mémoire disponible remonte à une époque antérieure à la gestion unifiée de la mémoire. Le slogan la mémoire libre est de la mémoire inutile sied bien à Linux. En effet, Linux a toujours fait de son mieux pour équilibrer les mémoires cache sans autoriser les zones de mémoire libres ou inutilisées.

À la base, le kernel ne dispose d'aucune information directe sur les applications ou données utilisateur. Au lieu de cela, il gère les applications et données de l'utilisateur dans un cache de page. Si la mémoire vient à manquer, une partie de son contenu est écrit dans la partition ou le fichier d'échange, où elle reste accessible à l'aide de la commande mmap (reportez-vous à man mmap).

Le kernel comporte également d'autres caches, tels que le cache de slab, où sont stockés les caches utilisés pour l'accès réseau. Cela peut expliquer les différences entre les compteurs dans /proc/meminfo. La plupart, mais pas tous, sont accessibles via /proc/slabinfo.

10.1.7. Fichier /etc/resolv.conf

La résolution des noms de domaine est gérée par l'intermédiaire du fichier /etc/resolv.conf. Reportez-vous au Chapitre 20, Le système de noms de domaine.

Ce fichier est exclusivement mis à jour par le script /sbin/modify_resolvconf, aucun autre programme n'étant autorisé à modifier directement /etc/resolv.conf. L'application de cette règle est le seul moyen de garantir que la configuration réseau du système et les fichiers correspondants sont conservés dans un état cohérent.

10.1.8. Pages de manuel et d'informations

Pour certaines applications GNU (telles que tar), les pages de manuel ne sont plus entretenues. Pour ces commandes, utilisez l'option --help pour obtenir un aperçu rapide des pages d'informations, qui fournissent des renseignements plus approfondis. info est le système hypertexte de GNU. Une présentation de ce système est consultable en saisissant info info. Les pages d'informations peuvent être visualisées avec Emacs en saisissant emacs -f info ou directement dans une console avec info. Vous pouvez également utiliser tkinfo, xinfo ou le système d'aide de SUSE pour afficher les pages d'informations.

10.1.9. Paramètres de GNU Emacs

GNU Emacs est un environnement de travail complexe. Les sections suivantes couvrent les fichiers de configuration traités au lancement de GNU Emacs. De plus amples informations sont disponibles à l'adresse http://www.gnu.org/software/emacs/

Au démarrage, Emacs lit plusieurs fichiers qui contiennent les paramètres de l'utilisateur, de l'administrateur système et du distributeur pour la personnalisation ou la préconfiguration. Le fichier d'initialisation ~/.emacs est installé dans les répertoires privés des utilisateurs respectifs sous /etc/skel. .emacs, à son tour, lit le fichier /etc/skel/.gnu-emacs. Pour personnaliser le programme, copiez .gnu-emacs dans le répertoire privé (avec cp /etc/skel/.gnu-emacs ~/.gnu-emacs) et effectuez les réglages souhaités à cet emplacement.

.gnu-emacs définit le fichier ~/.gnu-emacs-custom comme custom-file. Si les utilisateurs font des réglages à l'aide des options customize dans Emacs, ces paramètres sont enregistrés dans ~/.gnu-emacs-custom.

Avec SUSE Linux, le paquetage emacs installe le fichier site-start.el dans le répertoire /usr/share/emacs/site-lisp. Le fichier site-start.el est chargé avant le fichier d'initialisation ~/.emacs. site-start.el garantit, entre autres, que les fichiers de configuration spéciaux distribués avec des paquetages complémentaires d'Emacs, tel que psgml, sont chargés automatiquement. Les fichiers de configuration de ce type sont également situés dans /usr/share/emacs/site-lisp et commencent toujours par suse-start-. L'administrateur système local peut spécifier des paramètres pour l'ensemble du système dans default.el.

De plus amples informations à propos de ces fichiers sont disponibles dans le fichier d'info Emacs sous Init File : info:/emacs/InitFile. Des informations sur la manière de désactiver le chargement de ces fichiers (si nécessaire) sont fournies au même endroit.

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

  • Le paquetage de base emacs.

  • emacs-x11 (généralement installé) : le programme avec support X11.

  • emacs-nox : le programme sans support X11.

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

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

  • De nombreux paquetages complémentaires peuvent être installés si nécessaire : emacs-auctex (pour LaTeX), psgml (pour SGML et XML), gnuserv (pour le fonctionnement client et serveur) et bien d'autres.