12.2. Hinweise zu speziellen Softwarepaketen

12.2.1. Paket bash und /etc/profile

In dieser Reihenfolge wertet die bash die Initialisierungsdateien aus, wenn sie als Loginshell aufgerufen wird:

  1. /etc/profile

  2. ~/.profile

  3. /etc/bash.bashrc

  4. ~/.bashrc

Eigene Einträge können Benutzer in ~/.profile bzw. ~/.bashrc vornehmen. Um ordnungsgemäßes Abarbeiten dieser Dateien zu gewährleisten, ist es erforderlich, dass die aktuellen Grundeinstellungen von /etc/skel/.profile bzw. /etc/skel/.bashrc in das Benutzerverzeichnis übernommen werden. Nach einem Update empfiehlt sich deshalb, die Einstellungen aus /etc/skel zu übernehmen. Um keine eigenen Anpassungen zu verlieren, führen Sie bitte die folgenden Shellbefehle aus:

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

Danach sind die eigenen Anpassungen aus den Dateien *.old zurückzuschreiben.

12.2.2. Paket cron

Die cron-Tabellen liegen unter /var/spool/cron/tabs. Als systemweite Tabelle wird die Datei /etc/crontab eingerichtet. In der Datei /etc/crontab muss zusätzlich nach der Zeitangabe eingetragen werden, unter welchem Benutzer der jeweilige Auftrag ausgeführt werden soll (vgl. Datei 12.1. “Beispiel eines Eintrags in /etc/crontab”, dort ist root angegeben); dem gleichen Format folgen paket-spezifische Tabellen, die in /etc/cron.d liegen – vgl. die Manualpage man cron.

Beispiel 12.1. Beispiel eines Eintrags in /etc/crontab


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

/etc/crontab kann nicht mit crontab -e bearbeitet werden, sondern muss direkt in einen Editor geladen, bearbeitet und gespeichert werden.

Einige Pakete installieren in den Verzeichnissen /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly und /etc/cron.monthly Shellskripten, deren Abarbeitung von /usr/lib/cron/run-crons gesteuert wird. /usr/lib/cron/run-crons wird alle 15 Minuten von der Haupt-Tabelle (/etc/crontab) aufgerufen. So wird sichergestellt, dass eventuell versäumte Läufe rechtzeitig nachgeholt werden.

Die täglichen Wartungsarbeiten am System sind aus Gründen der Übersichtlichkeit auf mehrere Skripten verteilt worden (Paket aaa_base). In /etc/cron.daily gibt es also neben aaa_base zum Beispiel die Komponenten backup-rpmdb, clean-tmp oder clean-vi.

12.2.3. Protokoll-Dateien – das Paket logrotate

Zahlreiche System-Dienste (Daemons) und auch der Kernel selbst protokollieren regelmäßig Systemzustände oder besondere Vorkommnisse in Protokoll-Dateien (logfiles). So kann der Administrator zuverlässig feststellen, in welchem Zustand sich das System zu einem bestimmten Zeitpunkt befand, Fehler oder Fehlfunktionen erkennen und gezielt beheben. Diese Protokoll-Dateien werden in der Regel gemäß FHS unter /var/log abgelegt und werden von Tag zu Tag größer. Mit Hilfe von logrotate ist es möglich, das Wachsen der Protokoll-Dateien zu steuern.

12.2.3.1. Umstellung auf logrotate (8.0)

Beim Update einer Version vor SUSE LINUX 8.0 werden alte Einstellungen übernommen:

  • Einträge aus /etc/logfile, die keinem speziellen Paket zugeordnet sind, werden nach /etc/logrotate.d/aaa_base verschoben.

  • Die ehemalige rc.config-Variable MAX_DAYS_FOR_LOG_FILES wird als dateext und maxage in der Konfigurationsdatei abgebildet; vgl. man logrotate.

12.2.3.2. Konfiguration

In der Konfigurationsdatei /etc/logrotate.conf wird das generelle Verhalten festgelegt. Mit der include-Angabe wird insbesondere konfiguriert, welche weiteren Dateien ausgewertet werden sollen. Bei SUSE LINUX ist vorgesehen, dass die einzelnen Pakete in /etc/logrotate.d Dateien installieren (beispielsweise syslog oder yast).

Beispiel 12.2. Beispiel für /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 selbst wird über cron gesteuert und einmal täglich von /etc/cron.daily/logrotate angestoßen.

[Important]Wichtig

Die Option create liest etwaige Einstellungen des Administrator in den Dateien /etc/permissions* ein. Stellen Sie bitte sicher, dass es bei eigenen Anpassungen zu keinen Konflikten kommt.

12.2.4. Manual-Pages

Für einige GNU-Programme (zum Beispiel tar) werden die Manual-Pages nicht mehr weiter gepflegt. An ihre Stelle treten als Schnellübersicht die --help-Ausgabe sowie als ausführliche Handbücher die Info-Dateien. info ist GNUs Hypertext-System. Mit info info erhält man erste Hilfe zur Benutzung; info kann entweder über Emacs emacs -f info aufgerufen werden, oder direkt mit dem Befehl info. Angenehm zu bedienen sind tkinfo, xinfo oder der Zugriff über das Hilfesystem.

12.2.5. Der Befehl ulimit

Mit dem Befehl ulimit user limits ist es möglich, Limits für die Nutzung von Systemressourcen zu setzen, bzw. sich diese anzeigen zu lassen. Insbesondere ist ulimit dazu geeignet, den zur Verfügung stehenden Speicher für Anwendungen zu begrenzen. Dadurch wird verhindert, dass eine Anwendung übermäßig viel (allen) Speicherplatz für sich beschlagnahmt und das System zum Stillstand kommt.

Der Aufruf von ulimit kann mit verschiedenen Optionen erfolgen. Um den Speicherverbrauch zu begrenzen, sind zum Beispiel die Optionen in Tabelle 12.1. “ulimit: Ressourcen für den Anwender einstellen” tauglich.

Tabelle 12.1. ulimit: Ressourcen für den Anwender einstellen

-mmax. Größe des physikalischen Speichers
-vmax. Größe des virtuellen Speichers
-smax. Größe des Stacks
-cmax. Größe der Core-Dateien
-aAnzeige der gesetzten Limits

Systemweit können die Einstellungen in /etc/profile vorgenommen werden. Dort muss beispielsweise das Erzeugen von Core-Dateien freigeschaltet werden, die Programmierer zum „Debuggen“ benötigen. Als Anwender kann man die vom Systemadministrator in /etc/profile vorgegebenen Werte nicht erhöhen, aber man kann spezielle Einstellung in die eigene ~/.bashrc eintragen.

Beispiel 12.3. ulimit-Einstellungen in ~/.bashrc

# Begrenzung des realen Speichers
ulimit -m 98304

# Begrenzung des virtuellen Speichers
ulimit -v 98304
   

Die Speicherangaben müssen in KB gemacht werden. Für detailliertere Informationen werfen Sie bitte einen Blick in die Manualpage man bash.

[Important]Wichtig

Nicht alle Shells unterstützen ulimit-Angaben. Wenn Sie auf übergreifende Einstellungen für derartige Beschränkungen angewiesen sind, dann bietet PAM (zum Beispiel pam_limits) weitgehende Einstellmöglichkeiten.

12.2.6. Der Befehl free

Der Befehl free ist etwas irreführend, wenn es darum geht herauszufinden, wie der Arbeitsspeicher gerade verwendet wird … Informationen findet man in /proc/meminfo. Heutzutage sollte sich eigentlich kein Anwender darum Gedanken machen, dem ein modernes Betriebssystem wie Linux zur Verfügung steht. Das Konzept vom „freien Arbeitsspeicher“ datiert von der Zeit her, als es noch keine vereinheitlichte Speicherverwaltung unified memory management gab – unter Linux gilt das Motto: „freier Speicher ist schlechter Speicherfree memory is bad memory. Infolgedessen ist Linux immer bestrebt, verschiedene Caches auszubalancieren, nie aber wirklich freien (= ungenutzten) Speicher zuzulassen.

Der Kernel weiß im Grunde nichts direkt von Programmen oder Benutzerdaten. Er verwaltet Programme und Benutzerdaten im so genannten „Page Cache“. Wenn der Speicher knapp wird, werden Teile davon entweder in den Swapbereich oder in die Dateien geschrieben, aus denen sie ursprünglich mit Hilfe des Systemaufrufs mmap gelesen wurden; vgl. die Manualpage von mmap.

Des Weiteren hält der Kernel auch noch andere Zwischenspeicher, wie den „slab cache“, der zum Beispiel die für den Netzwerkzugriff benutzten Puffer enthält. Dadurch werden eventuelle Differenzen zwischen den Zählern in /proc/meminfo erklärt. Die meisten, aber nicht alle, sind über /proc/slabinfo abfragbar.

12.2.7. Die Datei /etc/resolv.conf

Die Namensauflösung wird über die Datei /etc/resolv.conf geregelt; vgl.Abschnitt 14.6. “DNS – Domain Name System” . Diese Datei wird stets nur von dem Skript /sbin/modify_resolvconf aktualisiert. Es ist keinem Programm erlaubt, /etc/resolv.conf direkt zu manipulieren. Nur wenn diese Regel beachtet wird, kann sichergestellt werden, dass die Netzwerkkonfiguration und die zugehörigen Daten konsistent gehalten werden.

12.2.8. Einstellungen für GNU Emacs

GNU Emacs ist eine komplexe Arbeitsumgebung. Weiterführende Informationen finden Sie unter http://www.gnu.org/software/emacs/.

In den folgenden Absätzen werden die Konfigurationsdateien genannt, die GNU Emacs beim Start abarbeitet. Beim Start liest Emacs mehrere Dateien ein, um gemäß den Vorgaben des Benutzers, des Systemadministrators und oder des Distributors für die jeweilige Bedürfnissen angepasst oder vorkonfiguriert zu werden.

Für jeden Benutzer wird im Home-Verzeichnis die Initialisierungsdatei ~/.emacs von /etc/skel installiert; .emacs wiederum liest die Datei /etc/skel/.gnu-emacs ein. Wenn ein Benutzer eigene Anpassungen vornehmen möchte, empfiehlt es sich, diese Datei .gnu-emacs in das eigene Home-Verzeichnis zu kopieren und dort die gewünschten Einstellungen vorzunehmen:

cp /etc/skel/.gnu-emacs ~/.gnu-emacs
 

In .gnu-emacs wird die Datei ~/.gnu-emacs-custom als custom-file festgelegt; wenn der Benutzer mit den customize-Möglichkeiten eigene Einstellungen vornimmt, werden diese in ~/.gnu-emacs-custom gespeichert.

Mit dem Paket emacs wird bei SUSE LINUX die Datei site-start.el im Verzeichnis /usr/share/emacs/site-lisp installiert. Die Datei site-start.el wird vor der Initialisierungsdatei ~/.emacs geladen. site-start.el sorgt beispielsweise dafür, dass besondere Konfigurationsdateien automatisch geladen werden, die mit Emacs-Zusatzpaketen der Distribution installiert werden (zum Beispiel Paket psgml). Derartige Konfigurationsdateien befinden sich gleichfalls in /usr/share/emacs/site-lisp und beginnen stets mit suse-start-.

Der lokale Systemadministrator kann in default.el systemweite Einstellungen vornehmen. Mehr Informationen zu diesen Dateien finden Sie in der Info-Datei zu Emacs, im Knoten Init File: info:/emacs/InitFile. Dort ist auch beschrieben, wie man — falls notwendig — das Laden dieser Dateien verhindern kann.

Die Bestandteile des Emacs' sind auf mehrere Pakete verteilt:

  • Basispaket emacs

  • Dazu ist in der Regel das Paket emacs-x11 zu installieren, in dem das Programm mit X11-Unterstützung enthalten ist.

  • Im Paket emacs-nox ist das Programm ohne X11-Unterstützung enthalten.

  • Das Paket emacs-info stellt Online-Dokumentation im Info-Format bereit.

  • Das Paket emacs-el enthält die nicht kompilierten Bibliotheksdateien in Emacs Lisp — zur Laufzeit nicht erforderlich!

  • Zahlreiche Zusatzpakete, die nach Bedarf installiert werden können: Paket emacs-auctex (für LaTeX); psgml (für SGML/XML); gnuserv (für Client-/Serverbetrieb) usw.