1451.book Seite 1 Dienstag, 7. Juli 2009 2:18 14

Harald Maaßen

LPIC-1 Sicher zur erfolgreichen Linux-Zertifizierung 1451.book Seite 3 Dienstag, 7. Juli 2009 2:18 14

Auf einen Blick

LPI 101 Topic 101: Systemarchitektur ...... 21

Topic 102: Linux-Installation und -Paketverwaltung ...... 55

Topic 103: GNU- und Unix-Kommandos ...... 87

Topic 104: Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard ...... 159

Übungsfragen zu LPI 117-101 ...... 211

LPI 102 Topic 105: Shells, Skripte und Datenverwaltung ...... 281

Topic 106: Oberflächen und Desktops ...... 325

Topic 107: Administrative Aufgaben ...... 355

Topic 108: Grundlegende Systemdienste ...... 389

Topic 109: Netz-Grundlagen ...... 411

Topic 110: Sicherheit ...... 439

Übungsfragen zu LPI 117-102 ...... 465 1451.book Seite 5 Dienstag, 7. Juli 2009 2:18 14

Inhalt

Vorwort ...... 15 Hinweise zum Buch ...... 15 Hinweise zur Prüfung ...... 17

LPI 101

Topic 101: Systemarchitektur ...... 21 101.1 Hardware-Einstellungen ermitteln und konfigurieren ...... 21 Allgemeines ...... 22 Module zur Laufzeit beeinflussen und konfigurieren ...... 22 Modulkonfigurationsdateien ...... 28 Zum Kernel gehörende Dateien und Verzeichnisse ...... 29 Die Gerätedateien für Festplatten und CD-ROMs ...... 30 Die Gerätedateien für Partitionen ...... 31 Ressourcen für Hardwarekomponenten ...... 32 Der PCI-Bus ...... 33 USB – Universal Serial Bus ...... 34 USB-Host-Controller-Typen ...... 34 USB-Klassen ...... 35 USB-Module automatisch laden ...... 36 Coldplug und Hotplug ...... 37 Das virtuelle Dateisystem sysfs ...... 37 udev, hald und dbus ...... 38 101.2 Das System starten ...... 38 Allgemeines ...... 39 Boot-Strap-Loader ...... 41 Kernel-Parameter ...... 42 Startprotokollierung ...... 44 101.3 Runlevel wechseln und das System anhalten oder neu starten ...... 45 Allgemeines ...... 46 Die Runlevels und ihre Funktion ...... 47 Die Konfigurationsdatei inittab ...... 48 Verzeichnisse und Dateien des init-Prozesses ...... 50 Runlevel-Wechsel, Herunterfahren, Neustart ...... 52

5 1451.book Seite 6 Dienstag, 7. Juli 2009 2:18 14

Inhalt

Topic 102: Linux-Installation und -Paketverwaltung ...... 55 102.1 Festplattenaufteilung planen ...... 55 Allgemeines ...... 55 Planung im Detail ...... 56 102.2 Einen Bootmanager installieren ...... 57 Allgemeines ...... 58 LILO ...... 58 GRUB ...... 62 102.3 Shared Librarys verwalten ...... 64 Allgemeines ...... 65 Verwaltung von Shared Librarys ...... 65 102.4 Debian-Paketverwaltung verwenden ...... 66 Allgemeines ...... 67 Konfigurationsdateien und Verzeichnisse ...... 67 DPKG-Programme ...... 70 102.5 RPM und YUM-Paketverwaltung verwenden ...... 76 Allgemeines ...... 77 Konfigurationsdateien ...... 77 RPM aktiv verwenden ...... 78 Abfragen der RPM-Datenbank ...... 79 Überprüfung installierter Pakete ...... 81 Pakete umwandeln ...... 82 yum und der yumdownloader ...... 83

Topic 103: GNU- und Unix-Kommandos ...... 87 103.1 Auf der Kommandozeile arbeiten ...... 87 Allgemeines ...... 88 Aufbau eines Shell-Kommandos ...... 88 Übergabe der Optionen ...... 89 Umgebungsvariablen und Shell-Variablen ...... 90 Beliebte Variablen für die Prüfung ...... 93 Bash-Befehls-History und automatisches Vervollständigen von Befehlen ...... 94 Befehlseingabe ...... 95 PATH-Variable ...... 95 Rekursive Befehlsausführung ...... 97 Das Kommando uname ...... 97 Die Manpages im Allgemeinen ...... 97 Funktionsweise der Manpages ...... 97

6 1451.book Seite 7 Dienstag, 7. Juli 2009 2:18 14

Inhalt

$MANPATH und die Datei manpath.config ...... 98 Die Sektionen des Mansystems ...... 98 Aufbau von Manpages ...... 99 Verwandte Befehle ...... 99 103.2 Textströme mit Filtern verarbeiten ...... 101 Allgemeines ...... 102 cat ...... 102 tac ...... 103 head ...... 103 tail ...... 103 expand/unexpand ...... 104 fmt ...... 104 nl ...... 105 pr ...... 105 wc ...... 105 hexdump ...... 106 od ...... 106 sort ...... 107 uniq ...... 107 split ...... 107 cut, paste und join ...... 108 tr ...... 110 103.3 Grundlegende Dateiverwaltung ...... 112 Allgemeines ...... 113 Kommandos für Dateioperationen ...... 113 Verwendung von Wildcards ...... 119 103.4 Ströme, Pipes und Umleitungen verwenden ...... 125 Allgemeines ...... 126 stdin, stdout und stderr ...... 126 Umleitungen (Redirects) ...... 127 Pipes ...... 128 tee und xargs ...... 129 103.5 Prozesse erzeugen, überwachen und beenden ...... 129 Allgemeines ...... 130 Überwachen von Prozessen ...... 131 Signale an Prozesse senden ...... 134 Jobs im Vorder- und im Hintergrund ...... 137 Prozesse unabhängig von einem Terminal laufen lassen ...... 139 103.6 Prozess-Ausführungsprioritäten ändern ...... 140 Allgemeines ...... 141

7 1451.book Seite 8 Dienstag, 7. Juli 2009 2:18 14

Inhalt

nice ...... 141 renice ...... 142 top und ps zur Überprüfung von Prioritäten ...... 142 103.7 Textdateien mit regulären Ausdrücken durchsuchen ...... 143 Allgemeines ...... 144 Reguläre Ausdrücke ...... 144 Die Verwendung von grep ...... 146 egrep und fgrep ...... 149 Die Verwendung von sed ...... 150 103.8 Grundlegendes Editieren von Dateien mit dem ...... 153 Allgemeines ...... 154 Bedienungsgrundlagen ...... 154 Navigation in einem Dokument ...... 156 Einfügen, Löschen, Kopieren und Auffinden von Text ...... 156 Befehlszeilenoptionen für vi ...... 157

Topic 104: Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard ...... 159 104.1 Partitionen und Dateisysteme anlegen ...... 159 Allgemeines ...... 160 Erzeugen der Partitionen ...... 160 Formatieren der Dateisysteme ...... 163 Erstellen einer Swap-Datei ...... 166 104.2 Die Integrität von Dateisystemen sichern ...... 167 Allgemeines ...... 168 Sicherstellen der Integrität des Dateisystems und Problembehebung ...... 168 XFS-Werkzeuge ...... 172 Überwachen des freien Platzes und der freien Inodes ...... 172 104.3 Das Ein- und Aushängen von Dateisystemen steuern ...... 175 Allgemeines ...... 176 Manuelles Mounten und Unmounten ...... 176 Automatisches Mounten über die Datei /etc/fstab ...... 179 104.4 Platten-Quotas verwalten ...... 182 Allgemeines ...... 183 Möglichkeiten der Quotierung ...... 183 Vorbereiten von Quota ...... 184 Aktivieren von Quota ...... 185 Ändern und Überprüfen von Quota ...... 186

8 1451.book Seite 9 Dienstag, 7. Juli 2009 2:18 14

Inhalt

104.5 Dateizugriffsrechte und -eigentümerschaft verwalten ...... 188 Allgemeines ...... 189 Vergabe der Berechtigungen ...... 189 Verwendung von SUID, SGID und Sticky Bit ...... 191 chown ...... 193 chgrp ...... 194 Verwendung von umask ...... 194 Dateiattribute der ext2-/ext3-Dateisysteme ...... 196 104.6 Harte und symbolische Links anlegen und ändern ...... 197 Allgemeines ...... 197 Softlinks ...... 198 Hardlinks ...... 200 104.7 Systemdateien finden und Dateien am richtigen Ort platzieren ...... 202 Allgemeines ...... 203 FHS – Filesystem Hierarchy Standard ...... 203 Programme zum Auffinden von Dateien ...... 205

Übungsfragen zu LPI 117-101 ...... 211 Fragen ...... 211 Antworten und Erklärungen zu den Übungsfragen ...... 249

LPI 102

Topic 105: Shells, Skripte und Datenverwaltung ...... 281 105.1 Die Shell-Umgebung anpassen und verwenden ...... 281 Allgemeines ...... 282 Verwendung von Shells ...... 282 Umgebungsvariablen und Shell-Variablen ...... 283 Aliase und Funktionen ...... 285 Konfigurationsdateien der Bash ...... 288 Systemweite Konfigurationsdateien ...... 289 Konfigurationsdateien für den Benutzer ...... 289 Das Skeleton Verzeichnis /etc/skel ...... 290 105.2 Einfache Skripte anpassen oder schreiben ...... 290 Allgemeines ...... 291 Ausführen eines Skripts ...... 291 Ausführungsberechtigung ...... 293 Position eines Skripts ...... 294

9 1451.book Seite 10 Dienstag, 7. Juli 2009 2:18 14

Inhalt

Übergabevariablen und Rückgabewerte ...... 294 Schleifen und Bedingungen ...... 296 105.3 SQL-Datenverwaltung ...... 303 Allgemeines ...... 303 SQL – Die Befehle ...... 304 Die ersten Schritte ...... 304 Eine erste Datenbank ...... 307 Abfragen mit SELECT und WHERE ...... 310 Aktualisieren von Datensätzen ...... 312 Sortieren und Gruppieren ...... 313 Erweitern von Datenbanken ...... 314 Arbeiten mit mehreren Tabellen ...... 317 Destruktive Kommandos ...... 321

Topic 106: Oberflächen und Desktops ...... 325 106.1 X11 installieren und konfigurieren ...... 325 Allgemeines ...... 325 Der Aufbau von X ...... 326 Der Startvorgang von X ...... 328 X-Terminals ...... 329 X-Librarys ...... 329 Konfigurationsdateien ...... 330 X-Fontserver ...... 334 X-Display exportieren ...... 335 xwininfo ...... 336 xdpyinfo ...... 337 106.2 Einen Displaymanager einrichten ...... 339 Allgemeines ...... 340 Starten und Beenden eines Displaymanagers ...... 340 Konfigurationsdateien der Displaymanager ...... 340 106.3 Hilfen für Behinderte ...... 341 Allgemeines ...... 342 Sehbehinderte und Blinde ...... 342 Barrierefreiheit ...... 343 Orca ...... 348 GOK ...... 353 ...... 354

10 1451.book Seite 11 Dienstag, 7. Juli 2009 2:18 14

Inhalt

Topic 107: Administrative Aufgaben ...... 355 107.1 Benutzer- und Gruppenkonten und dazugehörige Systemdateien verwalten ...... 355 Allgemeines ...... 356 passwd, shadow, group, gshadow ...... 357 Befehle zur Verwaltung von Benutzern ...... 362 Befehle zur Verwaltung von Gruppen ...... 366 Befehle zur Verwaltung des Shadow-Systems ...... 368 107.2 Systemadministrationsaufgaben durch Einplanen von Jobs automatisieren ...... 369 Allgemeines ...... 370 Die Verwendung von cron ...... 370 Die Verwendung von at ...... 373 Grundlegendes zu anacron ...... 374 Zugriffssteuerung auf cron und at ...... 374 107.3 Lokalisierung und Internationalisierung ...... 375 Allgemeines ...... 376 Zeitzoneneinstellung ...... 376 Umgebungsvariablen für die Lokalisation ...... 379 Historische Zeichensätze ...... 381 ASCII – American Standard Code for Information Interchange ...... 382 ISO 8859 ...... 385 Unicode und UTF-8 ...... 386 Konvertierung von Zeichensätzen ...... 387

Topic 108: Grundlegende Systemdienste ...... 389 108.1 Die Systemzeit verwalten ...... 389 Allgemeines ...... 390 Manuelle Konfiguration der Systemzeit ...... 390 Die RTC-Uhr einstellen ...... 391 Zeitzonen ...... 391 Zeitsynchronisation über das Netzwerk ...... 392 Automatische Zeitsynchronisation ...... 392 NTP Diagnose ...... 393 pool.ntp.org ...... 394 108.2 Systemprotokollierung ...... 394 Allgemeines ...... 395 syslogd und syslog-ng ...... 395 Die Konfigurationsdateien ...... 395 Einsatz von Log-Dateien zur Fehlersuche ...... 397

11 1451.book Seite 12 Dienstag, 7. Juli 2009 2:18 14

Inhalt

Selbst Ereignisse loggen ...... 399 Der Kernellog ...... 399 108.3 Grundlagen von Mail Transfer Agents (MTAs) ...... 399 Allgemeines ...... 400 MUA, MDA und MTA ...... 400 Mail – Aliase ...... 401 Weiterleitung von Mail ...... 402 Wichtige Dateien und Verzeichnisse ...... 402 sendmail-Konfigurationsdateien ...... 403 postfix-Konfigurationsdateien ...... 403 Smarthost und SMTP-Relay ...... 404 exim und qmail ...... 405 108.4 Drucker und Druckvorgänge verwalten ...... 405 Allgemeines ...... 406 Verwalten der Druckerwarteschlangen ...... 406 Befehle zur Kontrolle von Druckvorgängen ...... 407 lpc – Line Printer Control ...... 408 Drucken mit CUPS ...... 409

Topic 109: Netz-Grundlagen ...... 411 109.1 Grundlagen von Internet-Protokollen ...... 411 Allgemeines ...... 412 TCP/IP Geschichte kurz gefasst ...... 412 Das DoD Modell ...... 413 Die Protokolle der dritten Schicht ...... 413 Die Protokolle der zweiten Schicht ...... 415 Das Internetprotokoll IPv4 ...... 416 IP-Klassen ...... 417 Die Verwendung der Subnetzmaske und CIDR ...... 418 Die Broadcast-Adressen ...... 420 Standardgateway ...... 421 Das Internetprotokoll IPv6 ...... 421 TCP/IP Werkzeuge ...... 423 109.2 Grundlegende Netz-Konfiguration ...... 429 Allgemeines ...... 430 Konfigurationsdateien eines Netzwerk-Clients ...... 430 Konfigurationsprogramme für Netzwerk-Clients ...... 432 109.3 Grundlegende Netz-Fehlersuche ...... 435 Allgemeines ...... 436 netstat ...... 436

12 1451.book Seite 13 Dienstag, 7. Juli 2009 2:18 14

Inhalt

109.4 Client-seitiges DNS konfigurieren ...... 437 Allgemeines ...... 437

Topic 110: Sicherheit ...... 439 110.1 Administrationsaufgaben für Sicherheit durchführen ...... 439 Allgemeines ...... 440 Auffinden von Dateien mit gesetztem SUID/SGID-Bit ...... 440 Setzen oder Löschen von Passwörtern und Passwort-Verfallszeiten ...... 440 nmap, netstat und socket ...... 440 Ressourcenverwendung kontrollieren ...... 441 Offene Dateien ...... 442 Arbeiten mit erhöhten Rechten ...... 444 110.2 Einen Rechner absichern ...... 446 Allgemeines ...... 446 Superdaemons ...... 446 TCP-Wrapper konfigurieren ...... 448 Die Datei /etc/nologin ...... 449 110.3 Daten durch Verschlüsselung schützen ...... 450 Allgemeines ...... 450 SSH verwenden ...... 451 SSH-Client-Verbindung ...... 451 SSH-Konfigurationsdateien ...... 452 Authentifizierung der Server mit Schlüsseln ...... 454 Generieren von Schlüsseln ...... 454 Benutzerauthentifizierung mit Schlüsseln ...... 455 Der Authentifizierungsagent ...... 457 GnuPG ...... 457 Schlüsselerstellung mit GnuPG ...... 458 GnuPG Dateien ...... 461 GnuPG verwenden ...... 462

Übungsfragen zu LPI 117-102 ...... 465 Fragen ...... 465 Antworten und Erklärungen zu den Übungsfragen ...... 491

Index ...... 509

13 1451.book Seite 55 Dienstag, 7. Juli 2009 2:18 14

Nachdem Sie über die korrekte Konfiguration der Hardware bestens Bescheid wissen, kann nun mit der Planung der Partitionen und der Konfiguration eines Bootloaders fortgefahren werden.

Topic 102: Linux-Installation und -Paketverwaltung

102.1 Festplattenaufteilung planen

Wichtung: 2

Beschreibung: Kandidaten sollten ein Platten-Partitionierungsschema für ein Linux-System entwerfen können.

Wichtigste Wissensgebiete: ̈ Dateisysteme und Swap Space einzelnen Partitionen oder Platten zuordnen ̈ die Partitionierung an den Verwendungszweck des Systems anpassen ̈ sicherstellen, dass die /boot-Partition den Anforderungen der Hardware- Architektur für den Systemstart genügt

Liste wichtiger Dateien, Verzeichnisse und Anwendungen: ̈ / (Wurzel- bzw. root-Dateisystem) ̈ /var-Dateisystem ̈ /home-Dateisystem ̈ Swap Space ̈ Mountpoints ̈ Partitionen

Allgemeines Bevor Linux auf einem Computer installiert wird, sollten Sie sich ein paar Gedan- ken über das Layout der Partitionierung und der zu verwendenden Dateisysteme machen. Bedenken Sie, dass sich die Partitionierung im Nachhinein nicht mehr

55 1451.book Seite 56 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

ohne Weiteres ändern lässt. In Anbetracht der Lage, dass auch größere Festplat- ten inzwischen verhältnismäßig preiswert zu erwerben sind, rate ich hier nicht dazu, geizig mit dem Plattenplatz zu haushalten, wenn Sie sich nicht später über ein vollgelaufenes Dateisystem ärgern wollen.

Planung im Detail Wenn Sie Ihre Verzeichnisstruktur in mehrere Partitionen unterteilen, verhin- dern Sie damit, dass durch die Überfüllung eines einzelnen Verzeichnisses die Stabilität des ganzen Systems beeinträchtigt wird. Es ist denkbar, dass ein lang- fristig unbeobachtetes System durch umfangreiche Protokollierungen das Ver- zeichnis /var stark anwachsen lässt. Wenn sich /var dann auf einer separaten Par- tition befindet, werden andere Verzeichnisse nicht negativ beeinflusst.

Ein weiteres, wichtiges Kriterium ist die Datensicherung. Das Programm dump si- chert z.B. immer ganze Partitionen. Deshalb ist es angebracht, Daten die häufig gesichert werden (z.B. /home), von den Daten zu trennen, die selten gesichert werden müssen (z.B. /usr oder /var).

Bei der Planung der Reihenfolge der Partitionen sollte als Erstes eine Partition für /boot eingeplant werden. Da es bei sehr alten BIOS-Versionen oder auch veralte- ten Versionen von LILO zu Startproblemen führt, wenn der Bootloader oder das Kernel-Image oberhalb des 1.024ten Zylinders der Festplatte liegt, sollte diese Partition relativ klein gewählt werden. Sie können dieses Problem vermeiden, indem Sie eine ca. 50 MB große Partition für /boot als erste Partition auf der Fest- platte einplanen.

Die Größe einer Swap-Partition festzulegen ist schwierig. Sie hängt von der Ver- wendung des Systems ab und von der Größe des Arbeitsspeichers, über die der Computer verfügt. Der von einem Computer verwendete Speicher ist der virtu- elle Speicher. Dieser ist die Summe aus physikalischem Speicher (RAM) und Swap Space. Im Gegensatz zu anderen Betriebssystemen lagert Linux erst dann Daten in den Swap Space aus, wenn kein physikalischer Speicher mehr übrig ist. Wenn Sie also garantieren können, dass immer genügend RAM-Speicher zur Verfügung steht, brauchen Sie zumindest theoretisch überhaupt keinen Swap Space. Eine alte Faustregel besagt, dass immer doppelt so viel Swap Space wie physikalischer Speicher vorhanden sein sollte. Vielleicht sollten Sie sich darüber früher oder spä- ter Ihre eigene Meinung bilden.

Wie viel Platz der root-Verzeichnisbaum »/« benötigt, hängt davon ab, welche an- deren Partitionen Sie noch erstellen möchten. Wenn Sie keine weiteren Partitio- nen erstellen, muss im root-Verzeichnisbaum natürlich der gesamte Platz, der be- nötigt wird, auch zur Verfügung stehen. Sie sollten in so einem Fall für eine

56 1451.book Seite 57 Dienstag, 7. Juli 2009 2:18 14

102.2 Einen Bootmanager installieren

moderne Distribution mindestens 20 GB einkalkulieren. Sollten Sie allerdings in- haltsreiche Verzeichnisse separat partitionieren, können 800 MB für das Haupt- verzeichnis ausreichend sein.

Das Verzeichnis /usr belegt auf meinen Referenzsystemen bis zu 5 GB. Den Emp- fehlungen vieler Quellen im Internet nach ist schon deutlich weniger ausrei- chend. Das hätte in diesem Fall schon zu Engpässen geführt. Nehmen Sie lieber 10 GB.

Für das Verzeichnis /var sollten Sie ca. 2 GB einkalkulieren. Es gibt Unterschiede von Distribution zu Distribution, was genau sich überhaupt in diesem Verzeich- nis befindet, aber 2 GB sind normalerweise absolut ausreichend.

Für temporäre Dateien in /tmp braucht nicht so viel Platz eingeräumt zu werden. Mit 400 MB unter /tmp sollten Sie problemlos auskommen.

Das Verzeichnis /home ist vom Platzbedarf nicht vorhersehbar. Sie müssen selbst kalkulieren, wie viel Platz Ihre Benutzer im Dateisystem benötigen werden. Des- halb sollten Sie hier auch Quotas einsetzen.

Prüfungstipp Für die Prüfung sollten Sie sich auch überlegen, welche dieser Dateisysteme oft ge- sichert werden müssen (etwa /home) und welche vielleicht gar nicht (/proc, /dev, /tmp).

102.2 Einen Bootmanager installieren

Wichtung: 2

Beschreibung: Kandidaten sollten einen Bootmanager auswählen, installieren und konfigurieren können.

Wichtigste Wissensgebiete: ̈ alternative und Notfall-Startmöglichkeiten vorsehen ̈ einen Bootloader wie GRUB installieren und konfigurieren ̈ mit dem Bootloader interagieren

Liste wichtiger Dateien, Verzeichnisse und Anwendungen: ̈ /boot/grub/menu.lst ̈ grub-install

57 1451.book Seite 58 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

̈ MBR ̈ Superblock ̈ /etc/lilo.conf ̈ lilo

Allgemeines Damit ein System starten kann, benötigt es ein Programm, das die für den Boot- vorgang nötigen Schritte ausführt. Ein solches Programm wird als Boot-Strap-Loa- der bezeichnet. Nachdem das BIOS das System initialisiert und getestet hat, sucht es aus startfähigen Laufwerken nach einem solchen Startprogramm. Sollte es sich dabei um eine Festplatte handeln, wird zunächst der Sektor »0« der Festplatte ein- gelesen. Dieser enthält dann entweder den Boot-Strap-Loader selbst oder inner- halb der Partitionstabelle einen Verweis auf die aktive Partition, die dann statt- dessen diesen Bootloader enthält. Was Bootloader anbelangt, so sind unter Linux zwei verschiedene Bootloader verfügbar:

̈ LILO (Linux Loader) ̈ GRUB (Grand Unified Bootloader)

Beide haben die Aufgabe, den Kernel aufzufinden und zu starten. Danach geben sie die Kontrolle an den Kernel ab und sind bis zum nächsten Systemstart untätig. Sie werden in diesem Kapitel die Unterschiede zwischen diesen beiden Boot- Strap-Loadern kennenlernen und können dann selbst entscheiden, welchem Sie den Vorzug geben. Da Linux im Gegensatz zu anderen Betriebssystemen nicht ständig neu gestartet werden muss, halte ich die Auswahl des richtigen Bootloa- ders eher für Nebensache.

LILO Der LILO ist ein zweistufiger Bootloader. Der kleinere Teil von LILO befindet sich in den meisten Fällen am Anfang des MBRs (Master Boot Record). Der MBR ist der erste Sektor auf einer Festplatte und hat eine Größe von nur 512 Byte. Die Parti- tionstabelle ist im hinteren Teil des MBRs abgelegt und benötigt 64 Byte. Der MBR endet mit einem Abschluss-Flag (55 AA), der noch mal 2 Byte belegt. Es blei- ben also für LILO gerade mal 512 – 64 – 2 = 446 Byte. Das ist natürlich zu wenig, weshalb hier nur ein kleines initiales Progrämmchen hinterlegt ist, das dann den Rest von LILO aus der Bootpartition liest. Diese zweite Stufe von LILO enthält auch die Benutzerschnittstelle, die es erlaubt, einen Kernel auszuwählen und, wenn nötig, Parameter an den Kernel zu übergeben.

58 1451.book Seite 59 Dienstag, 7. Juli 2009 2:18 14

102.2 Einen Bootmanager installieren

Kernel-Parameter und Parameter für init Wie schon erwähnt, können während des Systemstarts mit LILO Parameter an den Kernel übergeben werden. Diese werden dann einfach an die Zeile ange- hängt, die LILO bei der Auswahl eines Startmenüeintrags anzeigt. Beispiele:

̈ ide=nodma

̈ apm=off

̈ acpi=off

Es können aber auch Parameter an den Daemon init übergeben werden. Damit kann z.B. festgelegt werden, welcher Runlevel gestartet werden soll, wenn man nicht den in der Datei inittab festgelegten Runlevel benötigt. Hängen Sie einfach an die Startzeile Folgendes an:

init=/sbin/init 2

Der Computer startet dann bis zum Runlevel 2.

Fehlercodes beim Start Wenn der LILO geladen wird, schreibt er (vorausgesetzt, er wird nicht von einer bunten Grafik überlagert) das Wort LILO auf den Bildschirm. Hierbei repräsen- tiert jeder Buchstabe die erfolgreiche Ausführung einer Aufgabe, die für den Start der zweiten Stufe von LILO erforderlich ist. Sollte LILO nicht vollständig erschei- nen, liegt ein Problem vor. Je kürzer das Wort, desto früher wurde die Ausfüh- rung abgebrochen und umso schlimmer ist wahrscheinlich die Ursache.

̈ – die erste Stufe von LILO wurde nicht ausgeführt. ̈ L – die Datei /boot/boot.b konnte nicht geladen werden. Ein Festplattenfehler ist möglicherweise das Problem. ̈ LI – die Datei /boot/boot.b konnte gelesen, aber nicht ausgeführt werden. Die Datei ist möglicherweise beschädigt. ̈ LIL – die zweite Stufe wurde gestartet, aber die Map-Datei konnte nicht gele- sen werden. Ein fehlerhaftes Bootlaufwerk ist möglich. ̈ LIL? – die zweite Stufe wurde in einen falschen Speicherbereich geladen. ̈ LIL- – die Map-Datei ist ungültig. Möglicherweise wurde nach einer Ände- rung an der Bootkonfiguration der LILO Map-Installer nicht ausgeführt. ̈ LILO – der zweite Stage wurde erfolgreich geladen.

59 1451.book Seite 60 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

Die Konfigurationsdatei /etc/lilo.conf Die Datei lilo.conf verfügt über eine globale Sektion, die für alle eingetragenen Systeme Gültigkeit hat. Es folgt dann mindestens eine weitere Sektion, die sich auf einen zu ladenden Kernel oder ein fremdes Betriebssystem beziehen kann. Da LILO zum Teil im MBR dateisystemunabhängig gespeichert ist, kann er im Prinzip Betriebssysteme mit beliebigen Dateisystemen starten. Eine globale Sektion kann z.B. so aussehen:

message = /boot/message timeout = 20 prompt default = 2.6.11-custom boot = /dev/hda

Im Anschluss folgt ein Beispiel für einen zu ladenden Kernel. Die Erläuterungen zu den einzelnen Einträgen folgen nach dieser Sektion:

image = /boot/vmlinuz-2.6.11-custom label = 2.6.11-custom map = /boot/map initrd = /boot/initrd root = /dev/hda2

Die Bedeutung der Einträge in der lilo.conf:

̈ message enthält den Pfad zu der Datei, die beim Systemstart angezeigt wird, also normalerweise das Startmenü. ̈ timeout gibt die Zeit in Sekunden an, nach der das Standardsystem gestartet wird, wenn der Benutzer keine Auswahl getroffen hat. ̈ prompt legt fest, ob ein Prompt zur Verfügung gestellt wird oder nicht. Bei Systemen, die nicht physikalisch gesichert sind, ist das eine Sicherheitslücke. ̈ default kennzeichnet das System, das gestartet wird, wenn der Benutzer keine Auswahl trifft. ̈ boot zeigt auf die Festplatte, die den Bootsektor bereitstellt (z.B. /dev/hda). ̈ image ist das zu startende Bootimage. ̈ label ist ein Alias für den zu startenden Kernel. ̈ map zeigt auf die Map-Datei (normalerweise /boot/boot.b). ̈ initrd enthält den Pfad zur initialen RAM-Disk, wenn vorhanden. ̈ root zeigt auf das root-Dateisystem für den gewählten Eintrag.

60 1451.book Seite 61 Dienstag, 7. Juli 2009 2:18 14

102.2 Einen Bootmanager installieren

Map-Installer Wenn Änderungen an der Konfiguration durchgeführt wurden, muss durch den Aufruf von lilo der Map-Installer aufgerufen werden. Der Systemstart würde sonst mit der alten Konfiguration fortgesetzt werden oder je nach Änderung sogar fehlschlagen:

archangel:/boot # lilo Added 2.6.11-custom Added 2.6.9-custom * Added Failsafe_--_SUS

Dem Kommando lilo können auch Optionen übergeben werden:

̈ - – mit dieser Option können Sie eine alternative Konfigurationsdatei ange- ben, wenn nicht /etc/lilo.conf verwendet werden soll. ̈ -R – stellt die Kommandozeile für den nächsten Systemstart ein. ̈ -M – schreibt einen Master Boot Record (MBR) auf eine Festplatte. ̈ -q – zeigt die aktuelle Bootkonfiguration an. ̈ -v – ist wie immer der Verbose-Mode.

Beispiel für eine Abfrage gegen LILO:

archangel:~ # lilo -q -v LILO version 22.3.4, Copyright (C) 1992-1998 Werner Almesberger Development beyond version 21 Copyright (C) 1999-2002 John Coffman Released 01-Nov-2002 and compiled at 19:03:37 on Mar 22 2005. Warning: LBA32 addressing assumed Reading boot sector from /dev/hda Global settings: Delay before booting: 0.0 seconds Command-line timeout: 8.0 seconds Always enter boot prompt Boot-time BIOS data saved Large memory (>15M) is NOT used to load initial ramdisk Non-RAID installation Serial line access is disabled Boot prompt message is 65535 bytes No default boot command line

Das war das Ergebnis der Abfrage in Bezug auf den LILO selbst und die globale Sektion innerhalb der Datei /etc/lilo.conf. Der folgende Teil der Ausgabe (dessel- ben Befehls) bezieht sich auf einen einzelnen Eintrag, der zum Start eines Kernels verwendet wird:

61 1451.book Seite 62 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

Images: 2.6.11-custom No password Boot command-line won't be locked No single-key activation VGA mode is taken from boot image Kernel is loaded "high" Initial RAM disk is 1788620 bytes No fallback Options: "root=302"

Wie Sie deutlich sehen, werden auch Parameter angezeigt, die nicht in der Datei lilo.conf vorkommen. Diese Abfrage wurde nämlich mit demselben System er- zeugt, von dem auch die Beispieldatei der lilo.conf stammt. Es handelt sich zum Teil um Voreinstellungen, aber auch um Werte, die lilo bei der Abfrage ermittelt hat.

GRUB GRUB ist ebenfalls ein zweistufiger Bootloader. Genau genommen sind es inzwi- schen drei Stufen, weil aus Gründen der Kompatibilität zu verschiedenen Datei- systemen irgendwann ein »Stage 1,5« hinzuerfunden wurde. Im Gegensatz zu LILO greift GRUB »ganz normal« über das Dateisystem auf den Kernel zu. Deshalb ist es auch nicht nötig, so etwas wie einen Map-Installer auszuführen, wenn ein Kernel modifiziert oder neu ins System integriert wurde.

GRUB-Stages Das Programm für den ersten Stage befindet sich im MBR der Festplatte, von der das System starten soll. Es gibt aber normalerweise auch noch eine Kopie in /boot/grub/stage1. Es handelt sich hierbei um eine Binärdatei, weshalb ein nor- maler Pager eine Fehlermeldung ausgeben wird, wenn Sie versuchen, den Inhalt der Datei zu betrachten. Sie können die Datei im Hexadezimalformat anzeigen, indem Sie folgendes Kommando verwenden:

[root@fedora10 grub]# od -h stage1 0000000 48eb 0090 0000 0000 0000 0000 0000 0000 0000020 0000 0000 0000 0000 0000 0000 0000 0000 * 0000060 0000 0000 0000 0000 0000 0000 0000 0203 0000100 00ff 8000 0001 0000 0800 ebfa f607 80c2 0000120 0275 80b2 59ea 007c 3100 8ec0 8ed8 bcd0 0000140 2000 a0fb 7c40 ff3c 0274 c288 be52 7d7f 0000160 34e8 f601 80c2 5474 41b4 aabb cd55 5a13

62 1451.book Seite 63 Dienstag, 7. Juli 2009 2:18 14

102.2 Einen Bootmanager installieren

0000200 7252 8149 55fb 75aa a043 7c41 c084 0575 ...

Für den Stage 1,5 wird dann ein Programm ausgeführt, das mit dem verwendeten Dateisystem übereinstimmt, z.B. reiserfs_stage1_5. Diese Datei befindet sich ebenfalls im Pfad /boot/grub.

Die letzte Stufe des Bootloaders (Stage 2) befindet sich wiederum in der Datei /boot/grub/stage2. Dieses Programm stellt das Bootmenü für den Benutzer bereit und ist auch für das Starten des Kernels zuständig.

GRUB-Prompt GRUB verfügt über einen Prompt, den Sie verwenden können, um mit dem Boot- loader zu interagieren. Das ist etwa dann nötig, wenn aufgrund einer Fehlkonfi- guration das System nicht startet. Sie können dann mit GRUB das System manuell booten. Dazu benötigt GRUB Informationen über die Position des Hauptverzeich- nisses, den Kernel und, falls vorhanden, die initiale RAM-Disk. Die GRUB-Einga- beaufforderung sieht so aus:

grub>

Wenn Sie ein System manuell starten müssen, können Sie folgende Kommandos verwenden:

grub> root (hd0,0) grub> kernel /boot/vmlinuz-2.6.23.1-10.fc7 root=/dev/sda2 grub> initrd /boot/initrd-2.6.23.1-10.fc7.img grub> boot

Es wurde hier davon ausgegangen, dass sich das Verzeichnis /boot auf einer SCSI- Festplatte, nämlich /dev/sda1, befindet, während sich das Hauptverzeichnis »/« auf /dev/sda2 befindet.

GRUB-Konfigurationsdateien GRUB unterscheidet nicht zwischen SCSI-Festplatten und IDE-Geräten. Die erste Partition auf der ersten Festplatte, die ihm durch ein BIOS übermittelt wird, be- zeichnet GRUB als (hd0,0). Dabei spielt die Art des verwendeten Festplattensub- systems keine Rolle. Damit für den weiteren Startverlauf eine Zuordnung mög- lich ist, benötigt er die Konfigurationsdatei /boot/grub/device.map. In dieser Datei gibt es lediglich eine Zuordnung von der GRUB-Notation zu den »norma- len« Linux-Geräten:

[root@fedora10 grub]# cat device.map (hd0) /dev/sda

63 1451.book Seite 64 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

In der Datei menu.lst (normalerweise ein Softlink auf grub.conf) finden Sie Ein- träge, die von der Funktionsweise her der Datei lilo.conf entsprechen:

#boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Fedora (2.6.23.1-10.fc7) root (hd0,0) kernel /vmlinuz-2.6.23.1-10.fc7 ro root=/dev/VolGroup00/ LogVol00 rhgb quiet initrd /initrd-2.6.23.1-10.fc7.img

Wenn Sie die vorangegangenen Abschnitte aufmerksam gelesen haben, sollten Sie keine Probleme damit haben, diese Datei zu lesen und zu verstehen.

Prüfungstipp Für die Prüfung müssen Sie vor allem die Unterschiede zwischen GRUB und dem LILO kennen. Sie müssen wissen, wie GRUB Laufwerke benennt und dass es bei LILO not- wendig ist, nach einer Konfigurationsänderung bezüglich des Kernels lilo auszuführen.

102.3 Shared Librarys verwalten

Wichtung: 1

Beschreibung: Kandidaten sollten in der Lage sein, die Shared Librarys zu bestim- men, von denen ausführbare Programme abhängen und diese bei Bedarf zu in- stallieren.

Wichtigste Wissensgebiete: ̈ Shared Librarys identifizieren ̈ Die typischen Orte für Systembibliotheken identifizieren ̈ Shared Librarys laden

Liste wichtiger Dateien, Verzeichnisse und Anwendungen: ̈ ldd ̈ ldconfig ̈ /etc/ld.so.conf ̈ LD_LIBRARY_PATH

64 1451.book Seite 65 Dienstag, 7. Juli 2009 2:18 14

102.3 Shared Librarys verwalten

Allgemeines Um Systemressourcen effizient zu verwenden, werden Programme modular auf- gebaut. Die eigentliche Aufgabe, die das Programm ausführt, wird im Code des jeweiligen Programms selbst hinterlegt. Funktionen, die andere Programme auch verwenden, werden dynamisch in das laufende Programm eingebunden. Solche Funktionen sind in sogenannten Librarys enthalten. Es wäre z.B. nicht sinnvoll, wenn jedes Programm seine eigene Druckroutine enthalten würde. Stattdessen bindet ein Programm, wenn es drucken muss, dynamisch eine Bibliothek ein, die dann diese Aufgabe ausführt. Durch diese Vorgehensweise werden Speicher- ressourcen eingespart. Unter Windows finden Sie diese Bibliotheken als Dateien mit der Erweiterung .dll (Dynamic Link Library). Unter Linux heißen die Biblio- theken Shared Librarys und haben die Erweiterung .so (Shared Object).

Programme, die mit solchen Shared Librarys arbeiten, bezeichnet man als »dyna- mically linked«, während Programme, die den Code der Shared Librarys in sich selbst tragen, als »statically linked« bezeichnet werden.

Verwaltung von Shared Librarys Um zu identifizieren, von welchen Librarys ein Programm abhängt, können Sie das Tool ldd verwenden. Die Ausgabe des Programms zeigt gleichzeitig die Posi- tion der benötigten Librarys im Dateisystem an:

archangel:/ # ldd /usr/bin/grep linux-gate.so.1 => (0xffffe000) libc.so.6 => /lib/tls/libc.so.6 (0x40030000) /lib/ld-linux.so.2 (0x40000000)

Wenn Sie neue Bibliotheken auf einem System installieren, benötigen Sie das Programm ldconfig, damit der dynamische Linker diese Bibliotheken auch ver- wendet. Zu diesem Zweck liest ldconfig die Datei /etc/ld.so.conf ein. Hier sind alle Verzeichnisse aufgelistet, in denen sich dynamische Librarys befinden:

archangel:/ # less /etc/ld.so.conf /usr/X11R6/lib /usr/i486-linux/lib /usr/i486-linux-libc5/lib=libc5 /usr/i486-linux-libc6/lib=libc6 /usr/i486-linuxaout/lib /usr/i386-suse-linux/lib /usr/local/lib

... weitere Zeilen wurden abgeschnitten ...

65 1451.book Seite 66 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

Diese Verzeichnisse werden von ldconfig konsultiert, um die Datei /etc/ ld.so.cache aufzubauen. Danach können die neuen Librarys vom dynamischen Linker verwendet und bei Bedarf eingebunden werden.

Um den aktuellen Inhalt der Datei /etc/ld.so.cache anzuzeigen, verwenden Sie fol- gendes Kommando:

archangel:/ # ldconfig -p | less 1128 libs found in cache `/etc/ld.so.cache' libzvbi.so.0 (libc6) => /usr/lib/libzvbi.so.0 libzio.so.0 (libc6) => /usr/lib/libzio.so.0 libzio.so (libc6) => /usr/lib/libzio.so libz.so.1 (libc6) => /lib/libz.so.1 libz.so.1 (libc6) => /usr/lib/libz.so.1 libz.so (libc6) => /usr/lib/libz.so liby2.so.2 (libc6) => /usr/lib/liby2.so.2 libyui.so.2 (libc6) => /usr/lib/libyui.so.2

... weitere Zeilen wurden abgeschnitten ... Manche Programme funktionieren nur dann, wenn eine Bibliothek mit einer be- stimmten Versionsnummer auf Ihrem System installiert ist. Die Versionsnummer einer einzelnen Bibliothek ermitteln Sie auf folgendem Weg:

archangel:/ # ldconfig -p | grep libusb libusb-0.1.so.4 (libc6) => /usr/lib/libusb-0.1.so.4

102.4 Debian-Paketverwaltung verwenden

Wichtung: 3

Beschreibung: Kandidaten sollten in der Lage sein, Pakete mit den Debian-Paket- werkzeugen zu verwalten.

Wichtigste Wissensgebiete: ̈ Debian-Binärpakete installieren, aktualisieren und entfernen ̈ Pakete finden, die bestimmte Dateien oder Bibliotheken enthalten und instal- liert sind oder nicht ̈ Paketinformationen bestimmen wie Version, Inhalt, Abhängigkeiten ̈ Integrität des Paketes und Installationsstatus (ob das Paket installiert ist oder nicht)

66 1451.book Seite 67 Dienstag, 7. Juli 2009 2:18 14

102.4 Debian-Paketverwaltung verwenden

Liste wichtiger Dateien, Verzeichnisse und Anwendungen: ̈ /etc/apt/sources.list ̈ dpkg ̈ dpkg-reconfigure ̈ apt-get ̈ apt-cache ̈ aptitude

Allgemeines In den nächsten Abschnitten sollen Sie erlernen, wie die Paketverwaltung bei Dis- tributionen funktioniert, die auf Debian basieren (Debian, Ubuntu, Mint, Knop- pix, Damn Small usw.). Das Selbstkompilieren von Programmen, die Sie als Tar- Balls aus dem Internet heruntergeladen haben, hat nämlich einen Schönheitsfeh- ler: Sie können diese Programme nicht mehr sauber deinstallieren. Dieser Nach- teil wird durch paketbasierte Installationen beseitigt. Der Aufbau der Dateinamen bei Debian-Paketen soll an folgendem Beispiel verdeutlicht werden:

fortune-mod_1.99.1-3_i386.deb

̈ Der Name des Paketes ist fortune-mod. ̈ Die Versionsnummer lautet 1.99.1. ̈ Die Revisionsnummer (Release) ist 3. ̈ Die unterstützte Architektur ist i386.

Diese vier Komponenten werden immer durch einen Unterstrich voneinander getrennt. Die meisten Programmierer halten sich an diese Namenskonvention, was das Identifizieren von Paketen im Internet erheblich erleichtert.

Konfigurationsdateien und Verzeichnisse

/etc/dpkg/dpkg.cfg Das ist die Konfigurationsdatei für dpkg. In dieser Datei werden die voreingestell- ten Optionen für dpkg festgelegt. Sie können sich dabei Arbeitsaufwand ersparen, wenn Sie immer dieselben Optionen mit dpkg verwenden. Die Datei wird zeilen- separiert ausgewertet. Es steht also in jeder Zeile nur eine Option. Bei den meis- ten aktuellen Distributionen enthält die Datei im Auslieferungszustand nur eine einzige Zeile, mit der die Log-Datei definiert wird:

log /var/log/dpkg.log

67 1451.book Seite 68 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

/var/lib/dpkg/info In diesem Verzeichnis befinden sich zu jedem installierten Paket mehrere Skripte und Dateien, die für eine korrekte Installation und auch später wieder für die Deinstallation benötigt werden. Das Beispiel zeigt die entsprechenden Dateien für den Editor nano:

root@ubuntu-server:/var/lib/dpkg/info# ls -lha | grep nano -rw-r--r-- 1 root root 12 2007-02-07 12:32 nano.conffiles -rw-r--r-- 1 root root 1,5K 2007-10-15 23:19 nano.list -rw-r--r-- 1 root root 2,3K 2007-02-07 12:32 nano.md5sums -rwxr-xr-x 1 root root 579 2007-02-07 12:32 nano.postinst -rwxr-xr-x 1 root root 160 2007-02-07 12:32 nano.postrm -rwxr-xr-x 1 root root 379 2007-02-07 12:32 nano.preinst -rwxr-xr-x 1 root root 288 2007-02-07 12:32 nano.prerm

Wenn Sie nach einer verunglückten Installation manuell das System aufräumen möchten, finden Sie immer in der entsprechenden .list-Datei eine Aufstellung aller zum Programm gehörenden Dateien und Verzeichnisse. Im Falle von nano handelt es sich dabei übrigens um 64 über das System verteilte Dateien.

/var/lib/dpkg/status In der Datei status sind Informationen über bereits installierte Pakete hinterlegt. Es wird auch angegeben, ob die Installation vollständig ausgeführt oder ob ein Programm bereits wieder deinstalliert wurde. Das Beispiel zeigt Informationen über einen korrekt installierten nano-Editor:

Package: nano Status: install ok installed Priority: important Section: editors Installed-Size: 1624

... weitere Zeilen wurden abgeschnitten ... Der nächste Eintrag zeigt ein Paket, das »sauber« deinstalliert wurde:

Package: courier-imap Status: deinstall ok config-files Priority: extra Section: mail Installed-Size: 1540

... weitere Zeilen wurden abgeschnitten ...

68 1451.book Seite 69 Dienstag, 7. Juli 2009 2:18 14

102.4 Debian-Paketverwaltung verwenden

/var/lib/dpkg/available Diese Datei enthält eine Liste der verfügbaren Pakete. Sie beinhaltet Informatio- nen über die Größe des Paketes, die Versionsnummer, Abhängigkeiten, den Autor, die Prozessorarchitektur und vieles andere mehr. Das Beispiel zeigt einen Eintrag für den Editor nano:

Package: nano Priority: important Section: editors Installed-Size: 1624 Maintainer: Ubuntu Core Developers Architecture: i386 Version: 2.0.2-1 Replaces: pico Provides: editor Depends: libc6 (>= 2.5-0ubuntu1), libncursesw5 (>= 5.4-5) Suggests: spell Conflicts: nano-tiny (<= 1.0.0-1), pico Size: 286950 Description: free Pico clone with some new features

... weitere Zeilen wurden abgeschnitten ...

/etc/apt/apt.conf Hierbei handelt es sich um die Konfigurationsdatei für die apt-tools. Norma- lerweise ist hier nur ein Eintrag für den verwendeten Proxy hinterlegt, damit apt-get ohne Probleme Pakete aus dem Internet herunterladen kann. Beispiel:

debian40:/# cat /etc/apt/apt.conf Acquire::http::Proxy "http://192.168.0.1:3128";

/etc/apt/sources.list Diese Datei enthält die Quellen für apt-get. Das ist meistens eine Liste mit FTP- Servern (bei modernen Distributionen auch HTTP-Servern), von denen Software mit apt-get install online installiert werden kann. Zusätzlich sind natürlich auch lokale Quellen in dieser Datei enthalten. Beispiel:

root@archangel:~# head /etc/apt/sources.list #deb cdrom:[Ubuntu 8.04 _Hardy Heron_ – Release i386 (20080423)]/ hardy main restricted # See http://help.ubuntu.com/community/ UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://de.archive.ubuntu.com/ubuntu/

69 1451.book Seite 70 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

hardy main restricted universe multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ hardy main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://de.archive.ubuntu.com/ubuntu/ hardy-updates main restric

DPKG-Programme

dpkg Wenn Sie ein Programm auf einem Debian-basierten System installieren wollen, verwenden Sie das Kommando dpkg. Aus Bequemlichkeit greifen aber heutzutage selbst die größten Puristen auf Frontends wie dselect oder apt-get zurück.

Prüfungstipp Für die Prüfung müssen Sie mit dpkg absolut vertraut sein. Es werden auch Fragen zu selten verwendeten Optionen von dpkg gestellt.

Manche Optionen von dpkg können sowohl mit einem einzelnen Buchstaben als auch mit einem ganzen Wort verwendet werden. Die beiden folgenden Komman- dos installieren jeweils ein Paket:

debian40:/pakete# dpkg -i fortune_1.0-861_i386.deb debian40:/pakete# dpkg --install fortune_1.0-861_i386.deb

Entsprechend ist die Ausgabe, die von diesen beiden Kommandos erzeugt wird, ebenfalls identisch:

Wähle vormals abgewähltes Paket fortune. (Lese Datenbank ... 75945 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke fortune (aus fortune_1.0-861_i386.deb) ... Richte fortune ein (1.0-861) ...

Die Deinstallation eines Programms, das mit dpkg installiert wurde, erfolgt mit den Schaltern -r oder --remove. Hierbei werden Konfigurationsdateien nicht ge- löscht. Wenn Konfigurationsdateien ebenfalls aus dem System entfernt werden sollen, müssen Sie die Optionen -P bzw. --purge verwenden. Es folgt eine Auf- listung der wichtigsten Optionen für die Prüfung:

̈ -i bzw. --install installiert das angegebene Paket. ̈ -r bzw. --remove entfernt das angegebene Paket. Konfigurationsdateien blei- ben aber erhalten. Achtung! Die Option -e ist nicht, wie bei RPM, die Erase- Funktion!

70 1451.book Seite 71 Dienstag, 7. Juli 2009 2:18 14

102.4 Debian-Paketverwaltung verwenden

̈ -P bzw. --purge entfernt das angegebene Programm inklusive der Konfigura- tionsdateien. ̈ -s bzw. --status gibt umfangreiche Informationen über das installierte Paket aus. ̈ -C bzw. --audit zeigt Pakete an, die nur teilweise auf dem System installiert sind. ̈ -L bzw. --listfiles zeigt die Dateien an, die ein Paket installiert hat.

Prüfungstipp Prägen Sie sich für die Prüfung die hier aufgeführten Optionen in beiden Schreibwei- sen ein. Achten Sie auch auf Groß- und Kleinschreibung.

dselect Bei dselect handelt es sich um ein Frontend für dpkg. Mit dselect können Sie folgende Operationen durchführen:

̈ eine Zugriffsmethode auswählen ̈ die Liste der verfügbaren Pakete erneuern, falls möglich ̈ eine Auswahl der für Ihr System gewünschten Pakete treffen ̈ gewünschte Pakete installieren und aktualisieren ̈ alle unkonfigurierten Pakete konfigurieren ̈ nicht gewünschte Software löschen

dpkg-reconfigure Mit dpkg-reconfigure können Sie ein bereits installiertes Paket neu konfigurie- ren. Mit dpkg-reconfigure -a können Sie sogar alle installierten Pakete neu kon- figurieren. Dieser Vorgang kann aber in Abhängigkeit von der Menge der instal- lierten Pakete sehr viel Zeit in Anspruch nehmen.

apt-get Das Programm apt-get ist ein sehr beliebtes Frontend für dpkg. Auch wenn der Name und der Hauptverwendungszweck das implizieren: Man kann mit apt-get nicht nur Programme »bekommen« bzw. »holen«, sondern auch diagnostizieren, neu konfigurieren und deinstallieren. Die Installation eines Paketes mit apt-get ist sehr bequem und erfolgt einfach so:

debian40:/# apt-get install fortune Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig

71 1451.book Seite 72 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

Achtung, wähle fortune-mod an Stelle von fortune Die folgenden zusätzlichen Pakete werden installiert: fortune-mod fortunes-min librecode0 Vorgeschlagene Pakete: xcontrib Die folgenden NEUEN Pakete werden installiert: fortune-mod fortunes-min librecode0 0 aktualisiert, 3 neu installiert, 0 zu entfernen und 19 nicht aktualisiert. Es müssen noch 0B von 816kB Archiven geholt werden. Nach dem Auspacken werden 1655kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren [J/n]?

Wie man sieht, ist apt-get intuitiv bedienbar. Das Programm hat selbst erkannt, dass das Paket, das mit fortune korrespondiert, fortune-mod heißt und installiert dieses automatisch. Abhängigkeiten von anderen Paketen (fortunes-min librecode0) werden ebenfalls vollautomatisch aufgelöst. Es wird angegeben, wie viel Platz das neue Programm auf der Festplatte belegen wird. Die Installation kann in dieser Phase noch unterbunden werden.

Die Deinstallation eines Paketes funktioniert genauso, nur dass Sie eben die Op- tion remove verwenden anstatt install:

debian40:/# apt-get remove fortune Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Achtung, wähle fortune-mod an Stelle von fortune Die folgenden Pakete werden ENTFERNT: fortune-mod fortunes-min 0 aktualisiert, 0 neu installiert, 2 zu entfernen und 19 nicht aktualisiert. Es müssen 0B Archive geholt werden. Nach dem Auspacken werden 352kB Plattenplatz freigegeben worden sein.

Um die Liste der verfügbaren Pakete zu aktualisieren, können Sie die Option update verwenden:

root@archangel:~# apt-get update OK http://security.ubuntu.com hardy-security Release.gpg OK http://de.archive.ubuntu.com hardy Release.gpg OK http://de.archive.ubuntu.com hardy/main Translation-de OK http://de.archive.ubuntu.com hardy/restricted Translation-de OK http://de.archive.ubuntu.com hardy/universe Packages OK http://de.archive.ubuntu.com hardy/multiverse Packages OK http://de.archive.ubuntu.com hardy/main Sources

72 1451.book Seite 73 Dienstag, 7. Juli 2009 2:18 14

102.4 Debian-Paketverwaltung verwenden

OK http://de.archive.ubuntu.com hardy/restricted Sources OK http://de.archive.ubuntu.com hardy/universe Sources OK http://de.archive.ubuntu.com hardy/multiverse Sources OK http://de.archive.ubuntu.com hardy-updates/main Packages Paketlisten werden gelesen... Fertig

Die Ausgabe des Befehls wurde aus Platzgründen gekürzt. Die Auflistung ist normalerweise etwa dreimal so lang. Das Ergebnis der Abfrage wird in der Datei /etc/apt/sources.list abgespeichert.

Eine Aktualisierung aller installierten Pakete kann apt-get mit der Option upgrade durchführen. Zwar bieten moderne Linux-Distributionen auch automa- tische Erinnerungen, die auf die Notwendigkeit von Updates hinweisen, diese Mechanismen setzen allerdings voraus, dass man sich lokal an der Maschine be- findet. Ein Update aus der Ferne über ein Terminal wird deshalb so durchge- führt:

root@archangel:~# apt-get upgrade Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut Reading state information... Fertig Die folgenden Pakete werden aktualisiert: ghostscript ghostscript-x libgs8 3 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 3017kB Archive geholt werden. After this operation, 0B of additional disk space will be used. Möchten Sie fortfahren [J/n]? j Hole:1 http://security.ubuntu.com hardy-security/ main libgs8 8.61.dfsg.1-1ubuntu3.2 [2217kB] Hole:2 http://security.ubuntu.com hardy-security/ main ghostscript 8.61.dfsg.1-1ubuntu3.2 [740kB] 85 % [2 ghostscript 366070/740kB 49 %]

Das Programm zeigt den Fortschritt während der Installation jedes Paketes an, wie Sie in der letzten Zeile sehen können.

aptitude Da in der Prüfung normalerweise nicht nach grafischen Frontends gefragt wird, soll die Arbeitsweise der Synaptics Paketverwaltung unterschlagen werden. Inte- ressanter ist sowieso die Benutzerschnittstelle aptitude. Mit diesem Programm können Sie zum Beispiel bequem nach Paketen suchen, auch wenn Sie deren ge- nauen Namen nicht kennen. Wenn Sie etwa einen DHCP-Server installieren müs-

73 1451.book Seite 74 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

sen, aber nicht wissen, welches Paket einen solchen Server enthält, versuchen Sie Folgendes:

root@archangel:~# aptitude search dhcp p autodns-dhcp – Automatic DNS updates for DHCP p dhcp-client - p dhcp-helper – A DHCP relay agent i dhcp3-client – DHCP client p dhcp3-relay – DHCP relay daemon p dhcp3-server – DHCP server for automatic IP address assignment p dhcpdump – Parse DHCP packets from tcpdump p dhcping – DHCP Daemon Ping Program p ebox-dhcp – eBox – DHCP server module p gdhcpd – GTK+ configuration tool for dhcpd3-server p udhcpc – very small DHCP client p udhcpd – very small DHCP server

In der sechsten Zeile ist dann auch tatsächlich der vom ISC empfohlene DHCP- Server zu finden. Sie können diesen dann mit apt-get installieren.

Einige Optionen, die aptitude versteht, gibt es auch bei apt-get. Die wichtigsten sind update, upgrade, clean und autoclean. Erfahrungsgemäß arbeitet apt-get aber bei update und upgrade zuverlässiger. Es gibt sogar Fälle, in denen aptitude Sie auf diesen Umstand hinweist:

W: Duplicate sources.list entry http://de.archive.ubuntu.com hardy/ multiverse Packages (/var/lib/apt/lists/de.archive.ubuntu.com_ ubuntu_dists_hardy_multiverse_binary-i386_Packages) W: Duplicate sources.list entry http://de.archive.ubuntu.com hardy/ multiverse Translation-de (/var/lib/apt/lists/de.archive.ubuntu.com_ ubuntu_dists_hardy_multiverse_i18n_Translation-de) W: Probieren Sie "apt-get update", um diese Probleme zu korrigieren.

Übrigens: Sie können aptitude auch interaktiv verwenden. Führen Sie das Pro- gramm einfach mal ohne Optionen oder Parameter aus!

apt-cache Mit apt-cache können Sie lediglich den Cache des apt-Systems verwalten. Wenn Sie Programme mit apt-get installieren, werden nämlich die Quellen in einem Cache zwischengespeichert. Dieser befindet sich normalerweise im Verzeichnis /var/cache/apt/archives. Sie können mit der Option stats eine Übersicht über den Cache ausgeben:

root@archangel:~# apt-cache stats Gesamtzahl an Paketnamen: 32616 (1305k)

74 1451.book Seite 75 Dienstag, 7. Juli 2009 2:18 14

102.4 Debian-Paketverwaltung verwenden

davon gewöhnliche Pakete: 24910 davon rein virtuelle Pakete: 649 davon einzelne virtuelle Pakete: 1735 davon gemischte virtuelle Pakete: 234 davon fehlend: 5088 Gesamtzahl an unterschiedlichen Versionen: 28361 (1475k) Total Distinct Descriptions: 32098 (770k) Gesamtzahl an Abhängigkeiten: 196493 (5502k) Gesamtzahl an Version/Datei-Beziehungen: 30952 (495k) Total Desc/File relations: 32098 (514k) Gesamtzahl an Bereitstellungen: 5783 (116k) Gesamtzahl an Mustern: 120 (1568) Gesamtmenge an Abhängigkeits/Versionsspeicher: 1010k Gesamtmenge an Slack: 76,7k Gesamtmenge an Speicher: 8970k

Zur Bereinigung des Cache können Sie wahlweise aptitude oder apt-get einset- zen:

root@archangel:~# aptitude clean Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut Reading state information... Fertig Lese erweiterte Statusinformationen Initialisiere Paketstatus... Fertig Erzeuge Tag-Datenbank... Fertig

Wenn Sie Informationen über die Abhängigkeiten eines Programms von anderen Programmen oder Bibliotheken benötigen, kann apt-cache Ihnen die gewünsch- ten Informationen aus den Metadaten der Pakete generieren. Das Kommando er- zeugt allerdings eine sehr umfangreiche Ausgabe, weshalb hier auf ein Beispiel verzichtet werden soll.

alien Wenn Sie ein Programm installieren wollen, das nicht als dpkg-Paket vorliegt, dann können Sie dieses außerirdische Paket mit alien konvertieren. Obwohl alien überwiegend auf Debian-Systemen zum Einsatz kommt, unterstützt es un- terschiedliche Formate sowohl als Eingabe- als auch als Ausgabedateiformat. Das Programm erkennt das Format einer Eingabedatei automatisch und wandelt diese in das auf der Kommandozeile angegebene Format um. Folgende Pakettypen werden unterstützt:

̈ rpm (Red Hat) ̈ dpkg (Debian)

75 1451.book Seite 76 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

̈ tgz (Slackware) ̈ pkg (Solaris) ̈ slp (Stampede)

Wenn Sie ein Paket mit alien übersetzen wollen, geben Sie die Quelldatei und das Ausgabeformat an. Sie können das Programm aber auch sofort nach der Kon- vertierung installieren, wenn Sie die Option -i bzw. --install angeben. Das ge- nerierte Quellpaket wird dann nach der Installation automatisch gelöscht.

debian40:/aliens# alien fortune-1.0-860.i586.rpm --to-deb fortune_1.0-861_i386.deb generated

In diesem Beispiel ist ein bestehendes RPM-Paket in ein DPKG-Paket übersetzt worden. Die ursprüngliche Datei bleibt erhalten. Beachten Sie, dass die Minor- Versionsnummer gegenüber dem Quellpaket um eins erhöht wurde. Wenn Sie dieses Standardverhalten von alien nicht wünschen, können Sie die Option -k oder --keep-version verwenden.

Die Übersetzung in andere Paketformate als DPKG geht sinngemäß genauso von- statten. Ersetzen Sie dazu in dem Schalter --to-deb das deb einfach durch das ge- wünschte Format (z.B. --to-rpm).

Prüfungstipp Sie sollten für die Prüfung mit Debian-Paketen umgehen können. In den neuen Prü- fungen (ab April 2009) wird der Akzent allerdings eher auf der Benutzung und Kon- figuration von Frontends wie apt-get und aptitude liegen.

102.5 RPM und YUM-Paketverwaltung verwenden

Wichtung: 3

Beschreibung: Kandidaten sollten in der Lage sein, Pakete mit den RPM und YUM-Werkzeugen zu verwalten.

Wichtigste Wissensgebiete: ̈ Pakete mit RPM und YUM installieren, erneut installieren, aktualisieren und entfernen ̈ Informationen über RPM-Pakete bestimmen wie Version, Status, Abhängig- keiten, Integrität und Signaturen ̈ herausfinden, welche Dateien ein Paket zur Verfügung stellt, und herausfin- den, aus welchem Paket eine bestimmte Datei kommt

76 1451.book Seite 77 Dienstag, 7. Juli 2009 2:18 14

102.5 RPM und YUM-Paketverwaltung verwenden

Liste wichtiger Dateien, Verzeichnisse und Anwendungen: ̈ rpm ̈ rpm2cpio ̈ /etc/yum.conf ̈ /etc/yum.repos.d/ ̈ yum ̈ yumdownloader

Allgemeines Fast alle Distributionen, die nicht auf Debian basieren, verwenden für das Paket- management RPM, den Red Hat Package Manager. Er ermöglicht ebenfalls die In- stallation von Programmen, die bereits fertig kompiliert in einem Binärformat vorliegen. Leider kann dieses System nicht automatisch Abhängigkeiten auflösen und Pakete, die als Grundlagen für das gewünschte Paket notwendig sind, be- schaffen und installieren. Diese Aufgabe wird für gewöhnlich von Frontends übernommen. Die meisten modernen Distributionen verwenden hierfür yum. Die Dateinamen der Pakete sind ähnlich aufgebaut wie die von DPKG. Es kommt le- diglich statt des Unterstrichs ein normaler Bindestrich zum Einsatz. Den Aufbau zeigt das Beispiel:

bash-3.0-15.i586.rpm

̈ Der Name des Paketes ist bash. ̈ Die Versionsnummer lautet 3.0. ̈ Die Revisionsnummer (Release) ist 15. ̈ Die unterstützte Architektur ist i586.

Konfigurationsdateien Die Hauptkonfigurationsdatei von RPM ist die Datei rpmrc. Diese Datei kann sich in verschiedenen Verzeichnissen befinden:

̈ /etc/rpmrc enthält eine systemweite Konfiguration, die auch dann erhalten bleibt, wenn RPM selbst aktualisiert wird. Die Datei ist normalerweise nicht vorhanden und muss bei Bedarf erstellt werden. ̈ /usr/lib/rpm/rpmrc ist eine systemweite Konfiguration. Sie wird überschrie- ben, wenn RPM aktualisiert wird. ̈ /usr/lib/rpmrc ist ein inzwischen veralteter Speicherort, der vom Verwen- dungszweck her /usr/lib/rpm/rpmrc entspricht.

77 1451.book Seite 78 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

̈ Die Datei .rpmrc im Verzeichnis eines Benutzers definiert Einstellungen, die nur für einen bestimmten Benutzer gelten sollen.

Prüfungstipp Es gibt selten einen Grund, diese Dateien zu modifizieren, wenn Sie nicht selbst Pa- kete erstellen. Sie müssen für die Prüfung lediglich wissen, dass diese Datei existiert. Wissen über den genauen Aufbau der Datei ist nicht erforderlich.

Im Verzeichnis /usr/lib/rpm befinden sich etliche Skripte, die RPM verwendet, um das Paketmanagement durchzuführen.

Die Datenbanken mit installierten Komponenten, Abhängigkeiten, Konflikten und anderen Informationen für RPM befinden sich in /var/lib/rpm. Diese Da- teien können nicht mit einem Editor bearbeitet werden, weshalb sie ebenfalls für die Prüfung belanglos sind.

RPM aktiv verwenden In Bezug auf RPM ist für die Prüfung nur ein einziges Programm Thema, nämlich das Kommando rpm selbst. Damit Sie nicht denken, es gebe darüber hinaus nichts anderes, folgt eine (kommentarlose) Auflistung der RPM-Programme auf meinem Referenzsystem:

rpmbuild, rpme, rpmi, rpmqpack, rpmsign, rpmverify, rpm2cpio, rpmdb, rpmgraph, rpmlocate, rpmquery, rpmu, rpmlead, rpmsignature, rpmheader, rpmarchive

Installation, Update und Deinstallation Wenn Sie Software mit rpm installieren, stehen Ihnen, ähnlich wie bei dpkg, Op- tionen mit einzelnen Buchstaben oder Optionswörter zur Verfügung. So können Sie ein Paket sowohl mit rpm -e als auch mit rpm --erase deinstallieren. Die wichtigsten Optionen zur aktiven Arbeit mit rpm sind:

̈ -i bzw. --install installiert das angegebene Paket (oder die Pakete). ̈ -U bzw. --upgrade aktualisiert das angegebene Paket (oder die Pakete) bzw. installiert es einfach, wenn keine Vorgängerversion gefunden wird. ̈ -F bzw. --freshen aktualisiert Pakete nur, wenn diese auf dem System bereits vorhanden sind. ̈ -v bzw. --verbose aktiviert den Verbose-Mode. ̈ -e bzw. --erase (früher --uninstall) entfernt das angegebene Paket. ̈ -h bzw. --hash sorgt für eine Fortschrittsanzeige mit 50 Hash-Zeichen (#).

78 1451.book Seite 79 Dienstag, 7. Juli 2009 2:18 14

102.5 RPM und YUM-Paketverwaltung verwenden

Prüfungstipp Merken Sie sich unbedingt, dass bei rpm die Option -r nicht für remove steht, son- dern für requires. Es besteht hier Verwechslungsgefahr mit dpkg!

Ein typisches rpm-Kommando zur Installation wäre folgendes:

archangel:/ # rpm -Uhv /i586/fortune-1.0-860.i586.rpm Preparing.. ########################################### [100 %] 1:fortune ########################################### [100 %]

Das Programm war übrigens vorher vom System entfernt worden. Trotzdem hat die Option -U keinen Fehler hervorgerufen, sondern das nicht vorhandene Pro- gramm aktualisiert.

Zwangsinstallation Sollte ein Paket die Installation verweigern, können Sie es meist trotzdem instal- lieren, wenn Sie die entsprechenden Optionen kennen. Das könnte z.B. der Fall sein, wenn eine oder mehrere Abhängigkeiten nicht erfüllt sind oder wenn ein Konflikt mit einem bestehenden Paket besteht. Sie sollten diese Optionen also nur dann verwenden, wenn Sie sich über die Konsequenzen der Installation im Klaren sind:

̈ --force erzwingt die Installation auch bei bestehenden Konflikten. ̈ --nodeps lässt die Prüfung der Abhängigkeiten aus. Das gilt sowohl für die Installation als auch für die Deinstallation von Paketen.

Für beide Schalter gibt es völlig zu Recht keine Kurzform, damit man sich der Tragweite des jeweiligen Kommandos bewusst wird.

Abfragen der RPM-Datenbank Ein sehr wichtiges Thema in der Prüfung ist die Abfrage der RPM-Datenbank. Hier sollten Sie auch Abfragen kennen, die Ihnen vielleicht unwichtig erscheinen. Grundsätzlich beginnt eine Abfrage mit rpm -q. Sie können aber auch verschie- dene Zusatzschalter anwenden, um die Suche zu verfeinern. Man unterscheidet hier zwischen Package Selection Options und Query Options. Erstere dienen dazu, Pakete aufzufinden, die bestimmte Eigenschaften haben. Im Gegensatz dazu ver- wenden Sie Query Options, um Informationen über ein bestimmtes Paket zu be- kommen.

Eine einfache Abfrage ohne weitere Optionen dient normalerweise lediglich dazu, festzustellen, ob ein bestimmtes Paket installiert ist und wenn ja, welche Version dieses Paketes:

79 1451.book Seite 80 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

archangel:/ # rpm -q fortune fortune-1.0-860

Wäre das Paket auf dem System nicht vorhanden, würde das Ergebnis so ausse- hen:

archangel:/ # rpm -q fortune package fortune is not installed

Package Selection Options Bei dieser Form der Abfrage geht es darum, ein Paket zu finden, auf das be- stimmte Eigenschaften zutreffen. Sie können so auch herausfinden, zu welchem Paket eine bestimmte Datei gehört:

archangel:/ # rpm -qf /usr/X11R6/bin/startx xorg-x11-6.8.2-30

Eine beliebte Kombination von Kommandos ist die folgende:

archangel:/ # rpm -qa | grep apache apache2-worker-2.0.53-9.15 apache2-mod_php5-5.0.3-14.37 apache2-prefork-2.0.53-9.15 apache2-2.0.53-9.15

Das Kommando rpm -qa (query all) liefert eine Liste aller installierten RPM-Pa- kete. Mit dem grep wird die Liste anschließend so gefiltert, dass nur Pakete an- gezeigt werden, in deren Dateiname die Zeichenfolge »apache« vorkommt. Diese Kombination können Sie auch verwenden, wenn Sie sich nicht sicher sind wie der genaue Name eines Paketes lautet.

Query Options Die Query Options dienen dazu, Informationen zu einem bestimmten Paket zu bekommen. Sie sollten sich die folgenden Optionen einprägen:

̈ -qR bzw. --requires zeigt Abhängigkeiten zu anderen Paketen an. ̈ -ql bzw. --list führt die im Paket enthaltenen Dateien auf. ̈ -qc bzw. --configfiles zeigt nur die Konfigurationsdateien eines Paketes an. ̈ -qd bzw. --docfiles zeigt nur die Dokumentationsdateien eines Paketes an. ̈ -qi bzw. --info zeigt umfangreiche Informationen zu einem Paket an.

80 1451.book Seite 81 Dienstag, 7. Juli 2009 2:18 14

102.5 RPM und YUM-Paketverwaltung verwenden

Prüfungstipp Achtung! Die Option -i ist, ohne -q verwendet, der Schalter für die Installation. Die Kombination -qi ist jedoch eine Abfrage. Es gibt Prüfungsfragen, die genau auf diese Tatsache abzielen.

Bei allen diesen Abfragen muss unterschieden werden, ob diese an ein bereits in- stalliertes Programm oder direkt an ein Paket gestellt werden. Wenn Sie z.B. ein Paket abfragen wollen, bevor es installiert wird, benötigen Sie zusätzlich die Op- tion p. Beispiel:

archangel:/i586 # rpm -qpl zip-2.3-741.i586.rpm /usr/bin/zip /usr/bin/zipcloak /usr/bin/zipnote /usr/bin/zipsplit /usr/share/doc/packages/zip

... weitere Zeilen wurden abgeschnitten ... Wenn Sie ein bereits installiertes Paket abfragen wollen, lassen Sie die Option p weg. Es wird dann auch nur der reine Paketname ohne die Versionsnummer und Dateierweiterung angegeben:

archangel:/storage/suse93/suse/i586 # rpm -ql bzip2 /usr/bin/bunzip2 /usr/bin/bzcat /usr/bin/bzip2 /usr/bin/bzip2recover

... weitere Zeilen wurden abgeschnitten ...

Überprüfung installierter Pakete Sie können ein installiertes RPM-Paket überprüfen. Es wird dann festgestellt, ob zum Paket gehörende Dateien gelöscht oder modifiziert wurden. Dazu verwen- den Sie einfach den Schalter -V. Dieser steht in diesem Fall nicht für verbose, son- dern für verify. Die Ausgabe einer Überprüfung könnte so aussehen:

archangel:/ # rpm -V samba S.5....T c /etc/samba/smbpasswd S.5....T c /etc/samba/smbusers S.5....T c /etc/xinetd.d/swat

Das Ergebnis der Überprüfung zeigt Änderungen an den aufgeführten Dateien. Da es sich hierbei um Konfigurationsdateien handelt, ist das auch nicht weiter

81 1451.book Seite 82 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

beunruhigend. Die Bezeichnungen vor den Dateinamen bedeuten bei der Über- prüfung Folgendes:

̈ S (Size) – die Größe weicht vom Original ab. ̈ M (Mode) – die Berechtigungen auf die Datei wurden geändert. ̈ 5 (MD5) – die Checksumme ist abweichend. ̈ D (Device) – Fehler in Gerätenummern. ̈ L (Link) – Fehler im Pfad eines Softlinks. ̈ U (User) – der Besitzer der Datei wurde geändert. ̈ G (Group) – die Besitzergruppe einer Datei wurde geändert. ̈ T (Time) – die Änderungszeit der Datei hat sich geändert.

Die einzelnen Fehlercodes müssen Sie nicht auswendig kennen. Es reicht, zu wis- sen, dass Sie eine Paketüberprüfung grundsätzlich durchführen können.

Pakete umwandeln Wie Sie RPM-Pakete installieren und auflisten, haben Sie bereits gelernt. Aber was ist eigentlich, wenn man aus einem RPM-Paket nur eine bestimmte Datei her- aus extrahieren möchte? An dieser Stelle müssen normale RPM-Tools leider pas- sen. Die einzige sinnvolle Möglichkeit besteht momentan darin, mit rpm2cpio das RPM-Paket in ein cpio-Paket umzuwandeln und daraus die Datei zu extrahie- ren. Es wäre natürlich auch möglich, das Paket einfach zu installieren, die ge- wünschte Datei zu sichern und das Paket anschließend wieder zu deinstallieren. Aber das wäre wirklich etwas umständlich. Das Programm rpm2cpio kommt üb- rigens völlig ohne Optionen aus, was in Bezug auf die Prüfung natürlich erfreu- lich ist. Lediglich das RPM-Paket muss als Option übergeben werden:

archangel:~ # rpm2cpio samba-3.3.2-0.33.rpm >samba.cpio

Als Ergebnis erhalten Sie dann eine cpio-Datei. Wenn Sie wissen, welche Datei Sie einzeln extrahieren möchten, können Sie die Ausgabe von rpm2cpio auch di- rekt an cpio übergeben:

archangel:~ # rpm2cpio samba-3.3.2-0.33.rpm |cpio -ivd usr/share/ man/man7/samba.7 /usr/share/man/man7/samba.7 12 Blocks

Auf diese Weise wurde nur die reine Manpage von Samba auf das System instal- liert.

82 1451.book Seite 83 Dienstag, 7. Juli 2009 2:18 14

102.5 RPM und YUM-Paketverwaltung verwenden

yum und der yumdownloader Mit dem Programm yum können Sie ähnlich wie mit apt-get Programme instal- lieren. Nur dass es sich in diesem Fall um RPM-Pakete und nicht DPKG-Pakete handelt. Die Syntax ist sogar relativ ähnlich.

Die Hauptkonfigurationsdatei von yum ist /etc/yum.conf. Hier wird unter ande- rem das Cache-Verzeichnis für Pakete festgelegt. In der Standardeinstellung be- findet es sich unter /var/cach/yum. Im Verzeichnis /etc/yum.repos.d befinden sich Dateien mit der Dateierweiterung repo. In diesen Dateien befinden sich Verweise auf URLs, die Quellen für RPM-Pakete enthalten.

Um ein Programm mithilfe von yum zu suchen, gehen Sie ähnlich vor wie bei apt-get:

[root@centos01 /]# yum search fortune Loading "installonlyn" plugin Setting up repositories extras 100 % |======| 1.1 kB 00:00 updates 100 % |======| 951 B 00:00 base 100 % |======| 1.1 kB 00:00 addons 100 % |======| 951 B 00:00 Reading repository metadata in from local files primary.xml.gz 100 % |======| 90 kB 00:00 ################################################## 298/298 primary.xml.gz 100 % |======| 101 kB 00:00 ################################################## 156/156 primary.xml.gz 100 % |======| 878 kB 00:03 ################################################## 2508/2508 primary.xml.gz 100 % |======| 157 B 00:00 Excluding Packages in global exclude list Finished fortune-mod.i386 1.99.1-7.el5.centos extras Matched from: fortune-mod A program which will display a fortune Fortune-mod contains the ever-popular fortune program, which will display quotes or witticisms. Fun-loving system administrators can add fortune to users' .login files, so that the users get their dose of wisdom each time they log in. http://www.redellipse.net/code/fortune

Die Ausgabe des Programms ist recht umfangreich und detailliert. Sie erfahren unter anderem auch, dass das Paket, das tatsächlich benötigt wird, fortune-mod

83 1451.book Seite 84 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

heißt. Mit dem folgenden Kommando wird fortune ähnlich wie mit apt-get heruntergeladen und installiert:

[root@centos01 /]# yum install fortune-mod.i386 Loading "installonlyn" plugin Setting up Install Process Setting up repositories Reading repository metadata in from local files Excluding Packages in global exclude list Finished Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for fortune-mod to pack into transaction set. fortune-mod-1.99.1-7.el5. 100 % |======| 19 kB 00:00 ---> Package fortune-mod.i386 0:1.99.1-7.el5.centos set to be updated --> Running transaction check --> Processing Dependency: librecode.so.0 for package: fortune-mod --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Downloading header for recode to pack into transaction set. recode-3.6-22.el5.centos. 100 % |======| 8.3 kB 0:00 ---> Package recode.i386 0:3.6-22.el5.centos set to be updated --> Running transaction check Dependencies Resolved ======Package Arch Version Repository Size ======Installing: fortune-mod i386 1.99.1-7.el5.centos extras 1.2 M Installing for dependencies: recode i386 3.6-22.el5.centos extras 837 k Transaction Summary ======Install 2 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 2.0 M Is this ok [y/N]: y

Das Programm prüft nochmals die bereits bekannten Quellen (Repositorys), stellt fest, welche Abhängigkeiten noch aufgelöst werden müssen, und fragt dann nach, ob die Installation tatsächlich durchgeführt werden soll. Sobald die Abfrage be- stätigt wurde, beginnen der Download und die anschließende Installation:

84 1451.book Seite 85 Dienstag, 7. Juli 2009 2:18 14

102.5 RPM und YUM-Paketverwaltung verwenden

Downloading Packages: (1/2): fortune-mod-1.99.1 100 % |======| 1.2 MB 00:03 (2/2): recode-3.6-22.el5. 100 % |======| 837 kB 00:02 Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: recode ######################### [1/2] Installing: fortune-mod ######################### [2/2] Installed: fortune-mod.i386 0:1.99.1-7.el5.centos Dependency Installed: recode.i386 0:3.6-22.el5.centos Complete!

Wenn das Programm nicht mehr benötigt wird, kann es mit der Option remove wieder entfernt werden. Auch diese Vorgehensweise ist mit apt-get identisch:

[root@centos01 ~]# yum remove fortune-mod Loading "installonlyn" plugin Setting up Remove Process Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Package fortune-mod.i386 0:1.99.1-7.el5.centos set to be erased --> Running transaction check Dependencies Resolved ======Package Arch Version Repository Size ======Removing: fortune-mod i386 1.99.1-7.el5.centos installed 2.8 M Transaction Summary ======Install 0 Package(s) Update 0 Package(s) Remove 1 Package(s) Is this ok [y/N]: y

Nach der Bestätigung der Sicherheitsabfrage wird das Programm dann deinstal- liert. Angeblich beginnt dieser Vorgang mit einem Download:

Downloading Packages: Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Removing : fortune-mod ######################### [1/1]

85 1451.book Seite 86 Dienstag, 7. Juli 2009 2:18 14

Topic 102: Linux-Installation und -Paketverwaltung

Removed: fortune-mod.i386 0:1.99.1-7.el5.centos Complete!

Prüfungstipp Sie können (und sollten) noch einige andere Optionen von yum in der Manpage nach- lesen. Beachten Sie bitte den Umstand, dass die Option update hier nicht die Repo- sitorys aktualisiert wie bei apt. Vielmehr wird hierdurch die Aktualisierung installier- ter Pakete initiiert. Solche Unterschiede werden gerne in Prüfungen thematisiert.

Der yumdownloader ist lediglich ein Hilfsmittel, das RPM-Pakete aus dem Internet herunterlädt. Er greift hierbei automatisch auf Quellen zurück, die unter den Re- positorys in /etc/yum.repos.d/ konfiguriert sind. Folgende Optionen können ver- wendet werden:

̈ --destdir gibt ein Zielverzeichnis für den Download an. Alternativ wird das aktuelle Verzeichnis verwendet. ̈ --urls zeigt lediglich die Quell-URLs an. Ein Download wird nicht durchge- führt. ̈ --resolve löst Abhängigkeiten auf und sorgt dafür, dass zusätzlich benötigte Pakete automatisch heruntergeladen werden. ̈ --source lädt statt der Binärdateien die Programmquellen herunter.

Prüfungstipp Die Thematik Paketmanagement sollte nicht auf die leichte Schulter genommen wer- den. Es gibt garantiert viele Prüfungsfragen zu diesem Thema, die Detailwissen ver- langen. Leider ist es (im Moment) nicht mehr möglich, zwischen einer RPM- und einer DPKG-Prüfung zu wählen. Deshalb müssen Sie beide Systeme genau kennen. In den neuen Prüfungen (ab April 2009) wird es eine Verlagerung des Schwerpunktes auf yum geben.

86 1451.book Seite 211 Dienstag, 7. Juli 2009 2:18 14

Übungsfragen zu LPI 117-101

Die folgenden Fragen sollen Ihnen helfen, sich an die Art der Fragestellung in der wirklichen Prüfung zu gewöhnen. Sie sollten diese Fragen nicht einfach auswen- dig lernen, sondern versuchen, die Antworten zu jeder einzelnen Frage zu verste- hen. Deshalb werden auch die entsprechend falschen Antworten im Lösungsteil des Buches bei Bedarf genau besprochen. Das Üben mit diesen Fragen soll Sie auch an die Herangehensweise an eventuell Ihnen unbekannte Themen nahe bringen. Ein unbekanntes Kommando in einer Frage ist nämlich kein Grund, eine Frage nicht beantworten zu können. Oft führt ein wenig Logik oder das Aus- schlussverfahren dennoch zum Ziel.

Fragen

Frage 1: Das Kommando jobs gibt folgende Ausgabe auf Ihrem Terminal aus:

[1]+ Stopped /usr/bin/programm

Welches Kommando setzt die Ausführung des Programms im Hintergrund fort, sodass Sie weitere Kommandos auf dem gleichen Terminal eingeben können?

२ A: bg 1 २ B: continue programm २ C: exec programm २ D: fg programm २ E: programm &

Frage 2: Sie müssen alle Tabstops in datei1 durch Leerzeichen ersetzen. Welches Kom- mando führen Sie aus?

२ A: file --tabs-to-spaces datei1 २ B: extend datei1 २ C: wc -t2s datei1 २ D: expand datei1

211 1451.book Seite 212 Dienstag, 7. Juli 2009 2:18 14

Übungsfragen zu LPI 117-101

Frage 3: Sie wollen find beschränken, um eine Verzeichnisstruktur nur bis zu einer Tiefe von drei Unterverzeichnissen zu durchsuchen. Welche Kommandozeilenoption müssen Sie verwenden?

२ A: --max-dirs २ B: -dirmax २ C: -maxdepth २ D: -s २ E: -n

Frage 4: Welcher der folgenden Daemonen repräsentiert die Hardware Abstraktions- Schicht?

२ A: initd २ B: udev २ C: hald २ D: hardd

Frage 5: Welches Kommando filtert die Ausgabe der Datei named.conf so, dass nur die Zei- len, die nicht mit einer Raute (#) beginnen, auf stdout ausgegeben werden?

२ A: grep -v ^# /etc/named.conf २ B: grep ^# /etc/named.conf २ C: grep #$ /etc/named.conf २ D: grep -v #$ /etc/named.conf

Frage 6: Welche der folgenden Kommandos können benutzt werden, um PCI-Geräte auf- zulisten, die vom Kernel erkannt werden? Wählen Sie zwei Antworten.

२ A: less lspci २ B: less /dev/pci २ C: less /proc/devices/pci २ D: less /proc/pci २ E: lspci | less

212 1451.book Seite 213 Dienstag, 7. Juli 2009 2:18 14

Fragen

Frage 7: Welche der folgenden Geräteinformationen kann das Kommando lspci nicht an- zeigen? Nur eine Antwort ist richtig.

२ A: Bus-Geschwindigkeit einer Karte (z.B. 66 MHz) २ B: IRQ-Einstellungen einer Karte २ C: Herstelleridentifikation einer Karte २ D: AGP-Rate einer Karte (z.B. 1x, 2x, 4x) २ E: MAC-Adresse einer Ethernet-Karte

Frage 8: Ihre USB-Festplatte funktioniert nicht. Sie haben alle notwendigen USB-Optionen in Ihren 2.2-Kernel integriert, aber die Festplatte kann nicht verwendet werden. Was könnte das Problem verursachen?

२ A: Sie haben Ihre usb.usermap nicht richtig konfiguriert. २ B: Sie benutzen den falschen Kernel für dieses Gerät. २ C: Das USB-Gerät ist nicht USB 2.0-kompatibel. २ D: Es gibt einen USB-Ressourcenkonflikt.

Frage 9: Sie benutzen einen Kernel mit der Version 2.0.36 und möchten eine USB-Maus anschließen. Welche der folgenden Aussagen ist richtig?

२ A: Sie müssen den Kernel neu kompilieren. २ B: Sie müssen den Kernel aktualisieren. २ C: Sie müssen die USB-Module für Ihren modularen Kernel laden. २ D: USB wird von Linux nicht unterstützt.

213 1451.book Seite 214 Dienstag, 7. Juli 2009 2:18 14

Übungsfragen zu LPI 117-101

Frage 10: Sie bauen in einen PC eine 60-GB-Festplatte ein. Bei der Partitionierung bemer- ken Sie, dass nur 32 GB verfügbar sind. Wie können Sie den gesamten Speicher nutzen?

२ A: Legen Sie zwei 30-GB-Partitionen an. २ B: Schalten Sie den LBA-Modus im BIOS ein. २ C: Erstellen Sie zunächst eine Partition, die komplett innerhalb der ersten 1024 Zylinder liegt. २ D: Benutzen Sie GRUB oder die neueste LILO-Version als Bootloader. २ E: Aktualisieren Sie Ihr BIOS mit der neuesten Version.

Frage 11: Wie lautet der Gerätedateiname der zweiten SCSI-Festplatte in Ihrem System? Geben Sie den gesamten Pfad an.

Frage 12: Welcher Umstand könnte das System am Startvorgang hindern, wenn Sie eine Partition erstellen, die mehr als 1024 Zylinder hat?

२ A: der Speicherort, an dem sich der LILO befindet २ B: der Speicherort, an dem sich /var befindet २ C: der Datendurchsatz der Festplatte २ D: der Speicherort, an dem sich das Verzeichnis /boot befindet २ E: die mittlere Zugriffszeit der Festplatte

Frage 13: Welches Kommando müssen Sie verwenden, um LILO zu deinstallieren?

२ A: remove lilo २ B: uninstall lilo २ C: lilo -r २ D: lilo -u

214 1451.book Seite 249 Dienstag, 7. Juli 2009 2:18 14

Antworten und Erklärungen zu den Übungsfragen

Antworten und Erklärungen zu den Übungsfragen

Frage 1: A: bg 1 das Kommando bg setzt Programme im Hintergrund fort. Die 1 ist die Job- nummer des entsprechenden Programms, nicht die PID!

̈ zu B und C: Die Kommandos continue und exec sind Bash-interne Befehle zur Programmierung von Skripten. ̈ zu D: fg programm würde das Programm im Vordergrund ausführen. ̈ zu E: programm & startet das Programm und sorgt sofort dafür, dass dieses im Status »laufend« in den Hintergrund gebracht wird.

Frage 2: D: expand datei1 konvertiert Tabs in Leerzeichen und ist das Gegenstück zu unexpand.

Das Kommando file ermittelt den Typ einer Datei. Das Programm wc zählt Worte, Zeilen und Bytes einer Datei.

Frage 3: C: -maxdepth – Mit dieser Option kann die maximal zu durchsuchende Verzeich- nistiefe festgelegt werden. Die Reihenfolge der Optionen muss hierbei eingehal- ten werden. Beispiel:

archangel:~ # find / -maxdepth 2 -name named.conf /etc/named.conf

Frage 4: C: hald ist der hardware abstraction layer daemon.

Frage 5: A: grep -v ^# /etc/named.conf

Das -v invertiert die Ausgabe, und ^ ist das Zeichen für den Zeilenanfang.

̈ zu B: grep ^# /etc/named.conf würde ausschließlich Kommentarzeilen aus- geben. ̈ zu C: grep #$ /etc/named.conf zeigt alle Zeilen an, die eine Raute (#) am Zei- lenende ($) aufweisen. ̈ zu D: grep -v #$ /etc/named.conf zeigt alle Zeilen an, die keine Raute (#) am Zeilenende ($) aufweisen.

249 1451.book Seite 250 Dienstag, 7. Juli 2009 2:18 14

Übungsfragen zu LPI 117-101

Frage 6: D: less /proc/pci

Eigentlich ist diese Antwort veraltet. Neuere Kernel-Versionen verwenden dieses Verzeichnis nicht mehr. Heutige Kernel verwenden eine ganze Verzeichnishier- archie unter /proc/bus/pci.

E: lspci | less

Das Kommando lspci listet die PCI-Geräte eines Systems auf. Gegen eine Über- gabe der Ausgabe an den Pager less ist nichts einzuwenden.

̈ zu A: Der Pager less würde versuchen, eine Datei mit der Bezeichnung lspci zu öffnen. Daraus würde eine Fehlermeldung resultieren. ̈ zu B: Die Datei /dev/pci existiert nicht. Auch hier würde less eine Fehlermel- dung ausgeben. ̈ zu C: Es gibt unterhalb von /proc kein Verzeichnis namens devices.

Frage 7: E: MAC-Adresse einer Ethernet-Karte

Alle anderen Antworten enthalten Parameter, die eine starke Affinität zum PCI- Bus aufweisen. Diese werden dementsprechend auch alle angezeigt.

Frage 8: B: Sie benutzen den falschen Kernel für dieses Gerät.

USB wird von Kerneln erst ab Version 2.2.18 unterstützt. Die Frage impliziert zwar, dass es sich um den korrekten Kernel handelt, aber die übrigen Antworten können mit Sicherheit als falsch ausgeschlossen werden.

̈ zu A: Die Datei usb.usermap wird nur für hotplug benötigt. ̈ zu C: Eine Kompatibilität mit USB 2.0 ist nicht nur unnötig, sondern würde überhaupt erst mit einem 2.4er-Kernel unterstützt. ̈ zu D: USB-Ressourcenkonflikte kommen eher selten vor.

Frage 9: B: Sie müssen den Kernel aktualisieren.

USB wird erst ab Kernel 2.2.18 unterstützt.

250 1451.book Seite 251 Dienstag, 7. Juli 2009 2:18 14

Antworten und Erklärungen zu den Übungsfragen

Frage 10: E: Aktualisieren Sie Ihr BIOS mit der neuesten Version.

Veraltete BIOS-Versionen sind die häufigste Ursache dafür, dass eine Festplatte vom Betriebssystem nicht mit ihrer vollen Kapazität erkannt wird.

̈ zu A: Das geht nicht, wenn das Betriebssystem lediglich von einer 32-GB-Fest- platte ausgeht. ̈ zu B: Wäre der LBA-Modus ausgeschaltet, würde das System eine noch bedeu- tend kleinere Festplatte (nämlich 504 MB) anzeigen. ̈ zu C: Mit dieser Methode kann man lediglich Problemen beim Systemstart vorbeugen. ̈ zu D: Der verwendete Bootloader spielt in diesem Zusammenhang keine Rolle.

Frage 11: /dev/sdb

Frage 12: D: der Speicherort, an dem sich das Verzeichnis /boot befindet

Deshalb sollte auch immer zuerst eine kleine Partition (ca. 50 MB) für das Datei- system /boot erstellt werden.

̈ zu A: LILO befindet sich wahrscheinlich ohnehin im MBR (Zylinder 0, Sektor 0). ̈ zu B: Das Dateisystem /var ist für den Systemstart nicht kritisch. ̈ zu C und E: Die Leistungswerte einer Festplatte sind lediglich für die Geschwindigkeit des Systemstarts, nicht aber für seine grundsätzliche Funk- tion relevant.

Frage 13: D: lilo -u

Mit diesem Kommando wird der LILO deinstalliert und eine Sicherungskopie des MBR wiederhergestellt.

251 1451.book Seite 509 Dienstag, 7. Juli 2009 2:18 14

Index

#!/bin/bash 293 /etc/anacron 374 $? 93, 295 /etc/apt/apt.conf 69 $0 295 /etc/apt/sources.list 69 $1 94, 295 /etc/bashrc 90, 289 $2 94, 295 /etc/crontab 370 $HISTSIZE 93 /etc/cups 410 $PS1 93 /etc/cups/cupsd.conf 410 * 145 /etc/default/useradd 362, 365 ./ 96 /etc/false 358 .bash_history 94 /etc/fstab 88, 166, 176, 177, 178, 184 .bash_login 290 /etc/group 360, 369, 432 .bash_profile 91, 194, 289, 290 /etc/gshadow 361, 369 .bashrc 90, 289 /etc/host.conf 432 .forward 402 /etc/HOSTNAME 430 .rpmrc 78 /etc/hostname 430 .Xdefaults 328 /etc/hosts 430, 432 .xinitrc 328 /etc/hosts.allow 448, 453 .Xresources 328 /etc/hosts.deny 448, 453 .xserverrc 328 /etc/hotplug 37 /bin/bash 293 /etc/inetd.conf 447 /bin/login 49 /etc/init.d 50, 52, 96 /boot 29, 161 /etc/inittab 48, 50, 340 /boot/boot.b 59 /etc/inputrc 290 /boot/grub/ 62 /etc/known_hosts 454 /boot/grub/grub.conf 42 /etc/ld.so.cache 66 /boot/grub/stage2 63 /etc/ld.so.conf 65 /dev 30 /etc/lilo.conf 42, 60 /dev/cdrom 30 /etc/localtime 378, 391 /dev/ft0 33 /etc/logrotate.conf 397 /dev/hd 30 /etc/mail 403 /dev/hda 30 /etc/mail/access 404 /dev/hda1 31 /etc/mail/relay-domains 404 /dev/hda2 31 /etc/manpath.config 98 /dev/hda3 31 /etc/modprobe.conf 42 /dev/hda5 31 /etc/modules.conf 42 /dev/hdb 30 /etc/mtab 181 /dev/hdc 30 /etc/network/interfaces 434 /dev/hdd 30 /etc/networks 431 /dev/sd 31 /etc/nologin 449, 453 /dev/sda 31, 32 /etc/nsswitch.conf 432 /dev/sdb 31, 33 /etc/ntp.conf 393 /dev/st0 33 /etc/ntp.drift 393 /dev/zero 166 /etc/passwd 357, 359, 368, 432 /etc/.bashrc 289 /etc/printcap 407, 410 /etc/aliases 401, 402 /etc/profile 91, 94, 194, 289

509 1451.book Seite 510 Dienstag, 7. Juli 2009 2:18 14

Index

/etc/rc.d 50, 52 /usr/lib/X11/app-defaults/XTerm 329 /etc/rc.d/xfs 335 /usr/sbin 294 /etc/resolv.conf 431 /usr/share/i18n/SUPPORTED 380 /etc/rpmrc 77 /usr/share/zoneinfo 391 /etc/services 414 /usr/src 29 /etc/shadow 191, 359, 368 /usr/src/ 23 /etc/skel 290, 362 /usr/src/linux 29 /etc/ssh/ssh_config 453 /var 57 /etc/ssh/ssh_host_dsa_key 455 /var/cache/man 98 /etc/ssh/ssh_host_dsa_key.pub 455 /var/lib/dpkg/available 69 /etc/ssh/ssh_host_key 455 /var/lib/dpkg/info 68 /etc/ssh/ssh_host_key.pub 455 /var/lib/dpkg/status 68 /etc/ssh/ssh_host_rsa_key 455 /var/lib/rpm 78 /etc/ssh/ssh_host_rsa_key.pub 455 /var/log 397 /etc/ssh_known_hosts 453 /var/log/mail 405 /etc/sshrc 453 /var/log/messages 45, 398 /etc/sudoers 445 /var/mail 403 /etc/syslog.conf 396 /var/spool 407 /etc/timezone 378, 392 /var/spool/cron 372 /etc/updatedb.conf 208 /var/spool/mail 403 /etc/usbmgr/host 37 /var/spool/mqueue 403 /etc/usbmgr/preload.conf 37 ? 145 /etc/usbmgr/usbmgr.conf 36 ~./ssh/known_hosts 454 /etc/X11/fs/config 334 ~/.bash_login 91, 289 /etc/xinetd.conf 448 ~/.bash_logout 290 /etc/xinetd.d 448 ~/.bash_profile 289 /etc/yum.conf 83 ~/.bashrc 290 /etc/yum.repos.d 83 ~/.gnupg 461 /home 57 ~/.inputrc 290 /lib/modules 23, 29 ~/.profile 289 /proc 33, 160 ~/.ssh/authorized_keys 455 /proc/bus/pci 34 ~/.ssh/id_dsa 456 /proc/dma 32 ~/.ssh/id_dsa.pub 456 /proc/interrupts 32 ~/.ssh/id_rsa 456 /proc/ioports 32 ~/.ssh/id_rsa.pub 456 /proc/kmsg 399 ~/.ssh/ssh_know_hosts 453 /proc/modules 24, 25 ~/.xinitrc 329 /proc/partitions 160 /proc/pci 32 A /proc/scsi 33 /proc/swaps 167 Absolute Pfadangaben 114 /sbin/mingetty 49 ACL 201 /tmp 57 Aktive Partition 162 /usl/lib/locale 380 Akzent Circumflex 147 /usr 57 alias 286 /usr/bin 294 Aliase 285 /usr/lib/rpm 78 alien 75 /usr/lib/rpm/rpmrc 77 ALTER TABLE 304, 316 /usr/lib/rpmrc 77 anacron 374

510 1451.book Seite 511 Dienstag, 7. Juli 2009 2:18 14

Index

AND 322 Broadcastadresse 420 Änderungszeit 118 builtin 288 Anwendungsschicht 413 bunzip2 120, 122 apache2 50 bzip2 120, 122 append only 196 apropos 99, 100, 206 C apt-cache 74 apt-get 69, 71 case 300 aptitude 73 cat 102, 129 aquota.group 184 catman 98 aquota.user 184 cd 113 Argumente 88 CD-ROM 30 ARP 416 cfdisk 160 ARPA 412 chage 365, 440 ARPANET 412 chattr 196 Assistive Techniken 342 chfn 358 at 373 chgrp 194 at.allow 375 chmod 189, 191, 192, 292, 293 at.deny 375 chown 193 atd 373 CIDR 418, 419 aterm 329 clear 300 authorized_keys 456 Coldplug 37 auto 181 COMMIT 304 awk 144 cp 115 cpio 122 B cpio-Paket 82 CREATE DATABASE 308 Backslash 145 CREATE TABLE 304 Barrierefreies Anmelden 343 cron 370 Barrierefreiheit 343 cron.allow 375 Bash 88 cron.deny 375 bash 282 crond 370 bash.bashrc.local 289 crontab 370, 372 Baudot, Jean-Maurice-Émile 382 csh 88, 282 Baudot-Code 382 CSV 151 Befehls-History 94 CTRL-ALT-DEL 49 Bevorzugte Anwendungen 343, 346 CUPS 407, 410 bg 138 cut 108, 129 Bildschirmlupe 348 Bildschirmtastatur 353 D BIOS 39, 162 BIOS-Uhr 391 Data Control Language 304 Bootloader 41, 58 Data Definition Language 304 Bootpartition 58 Data Manipulation Language 304 Boot-Strap-Loader 41, 42, 58 Data Query Language 304 Brailledisplay 342, 349 date 390 Brailleschrift 342 Dateiattribute 196 Braillezeile 342 Dateideskriptoren 126 BRLTTY 349 dbus 38

511 1451.book Seite 512 Dienstag, 7. Juli 2009 2:18 14

Index

DCL 304 edquota 186, 187 dd 123, 166 egrep 146, 149 DDL 304 EHCI 35 debugfs 171 Einfügemodus 154 DEC 325 elif 300 defaults 181 else 300 DELETE 321 154 depmod 27, 28 emacspeak 354 Desktop Environment 327 Endzylinder 161 Device 333 env 91, 285 df 131, 173 esac 300 dig 425 eterm 329 DISPLAY 336 Ethernet 413 Display Manager 327, 340 exec 181 DISTINCT 304 exim 401, 405 dma 32 expand 104 dmesg 44 export 92, 284 DML 304 ext2 163, 164, 170 do 296 ext3 163, 164, 170 DoD 412 Eyetracker 346 DoD Modell 413 Dollarzeichen 145 F Donald Murray 382 done 296 FAT-32 163 Doppelkreuzen 147 FDDI 413 dosfsck 169 fdisk 160, 161, 166 Dotted Quad 416 Festplatte 30 dpkg 67, 70, 75 fg 138 dpkg-reconfigure 71 fgrep 149 DQL 304 FHS 203 DROP 322 fi 300 DROP DATABASE 322 file 124 DROP TABLE 304, 322 Filesystem Hierarchy Standard 203 Druckfilter 407 find 118, 206, 298 DSA-Schlüssel 455 finger 358 dselect 70, 71 Fingerprint 454 du 174 Firewire 37 dump 56, 180 fmt 104 dumpe2fs 171, 186 Fontpath 330 DVD-Laufwerk 30 for 298 Dynamic Link Library 65 FQDN 430 dynamically linked 65 free 140, 167 fsck 168, 170, 179, 180 E fsck.cramfs 169 fsck.ext2 168 e2fsck 168 fsck.ext3 168 echo 90, 292, 298 fsck.jfs 169 Echtzeituhr 391 fsck.minix 168 ed 154 fsck.msdos 169

512 1451.book Seite 513 Dienstag, 7. Juli 2009 2:18 14

Index

fsck.reiserfs 168 H fsck.vfat 169 fsck.xfs 169 hald 38 fslsfonts 335 halt 53 ftp 428 Hardlimit 183, 186, 441 ftp.kernel.org 428 Hardlinks 200 function 287 Hardware Abstracion Layer 38 Funktionen 287 Hashes 147 head 103 G Headtracker 346 Herunterfahren 52 gawk 144 hexdump 106 gdm 340, 341 hid.o 35 gdm.conf 341 Hilfstechnologien 343 gdmconfig 341 HISTSIZE 94 GECOS 358 host 425 Gesten 346 Host zu Host 413 GNOME 327, 340 Hostkey 454 Gnopernicus 354 hosts.allow 453 GNU 88 hosts.deny 453 GNU Privacy Guard 457 Hotkeys 290 GnuPG 457 Hotplug 37 GOK 353 hotplug 37 gpasswd 367 HPFS 163 GPG 457 http gpg.conf 461 //lpievent.lpice.eu/ 17 Gpg4win 458 //tools.ietf.org/html/rfc791 416 Gracetime 183, 184 //www.denic.de/de/whois/index.jsp 427 GRANT 304 //www.ntp.org 392 grep 45, 127, 144, 146, 147 hwclock 391 GROUP 314 group 357 I groupadd 366 groupdel 366 IBM 325 groupmod 366 ICMP 416 grpck 369 iconv 387 grpconv 369 id_rsa 456 grpquota 181 id_rsa.pub 456 grpunconv 369 if 300 GRUB 42, 58, 62 ifconfig 432 GRUB Stages 62 ifdown 433 grub.conf 64 ifup 433 gshadow 357 IGMP 413 GTK 329 IMAP 401 gunzip 120, 121 immutable 196 gzip 120 inetd 446 inetd.conf 447 init 46, 47, 48, 50, 53, 59, 130 initdefault 48

513 1451.book Seite 514 Dienstag, 7. Juli 2009 2:18 14

Index

initrd 60 less 128 inittab 48, 59 let 292, 293, 296 Inodes 173 LILO 42, 58 Inputdevice 331 lilo.conf 42, 60 INSERT 304 LIMIT 313 insmod 25, 26 Link-Layer 413 Internetschicht 413 ln 198, 201 interrupts 32 locale 380 ioports 32 locate 208 IP-Klassen 417 logger 399 IPv4 415, 416 logrotate 370 IPv6 415, 421 logrotate.conf 397 IRIX 164 lp 407 ISO 8859 385 lpadmin 410 ISO-8859-1 386 lpc 408, 410 lpd 407 J lpq 408, 410 lpr 407, 410 jobs 137, 138 lprm 408, 410 JOIN 318 ls 113 join 108 lsattr 196 Joker 119, 145 lsdel 171 journal 170 lsmod 24, 27, 35 lsof 442 K lspci 33 lsusb 35 KDE 327, 340 LVM 163 kdm 340 kdmrc 340 M Kernel 22 Kernel-Parameter 42, 43, 59 mail 298 Kernel-Ring-Buffer 44 Mail - Aliase 401 KGpg 458 Mail Delivery Agent 401 kill 135 Mail Transfer Agent 401 killall 136 Mail User Agent 401 Klebrige Tasten 343 mailq 403 klogd 399 Major Release 23 klogin 447 man 99 Kommandomodus 154 Manpages 97 ksh 88, 282 MANPATH 97 manpath 98 L manpath.config 98 Map-Installer 61 LANG 380 Master Boot Record 31, 40, 58 LANG=C 380 master.cf 404 LC_ALL 380 Maussteuerung 343 ldconfig 65 Maustasten 344 ldd 65 MBR 41, 58, 60 LEFT JOIN 319 MDA 401

514 1451.book Seite 515 Dienstag, 7. Juli 2009 2:18 14

Index

menu.lst 64 nl 105 Metacity 327 nmap 415, 440 Metazeichen 145, 149 noauto 181 MEZ 391 noexec 181 mingetty 48 nohup 139 Minor Release 23 nohup.out 139 MIT 325 nosuid 181 mkdir 117 nouser 181 mkdosfs 163 nslookup 425 mke2fs 164, 165, 172 NTFS 163 mkfs 163, 164 NTP 392 mkfs.cramfs 164 ntp.conf 393 mkfs.ext2 163 ntpd 392, 393 mkfs.ext3 163 ntpdc 393 mkfs.jfs 164 ntpq 393 mkfs.msdos 163 mkfs.ntfs 164 O mkfs.reiserfs 163 mkfs.vfat 163 od 106 mkfs.xfs 164 OHCI 34 mkswap 166, 167 Oktett 416 modinfo 24 Optionen 88 modprobe 26 Orca 348 modprobe.conf 28 ORDER BY 304, 313 modprobe.conf.local 28 OSPF 416 modules.conf 28 modules.dep 27, 28 P Monolithische Kernel 22 Morse-Code 382 Partition 160, 161 mount 88, 176, 178, 179 Partitionierung 55 Mounten 176 Partitionstabelle 31, 41, 162 Mountpoint 177 passwd 191, 357, 364, 440 MTA 401 paste 108, 156 MUA 401 Patchlevel 23 Murray-Code 382 PATH 90, 285, 294 mv 116 PATH Variable 95 pci 32 N PCI Bus 33 PCMCIA 37 nano 150 Pearson Vue 17 netstat 415, 436, 440 144 Netzwerk-Zugriff 413 PGP 457 Neustart 52 pico 150 newaliases 402 PID 130, 136, 142 newgrp 367 PID 1 46 NFS 178 ping 423 nfs 178 Pipe 126 nfsd 131 Pipes 128 nice 141, 143 pkg 76

515 1451.book Seite 516 Dienstag, 7. Juli 2009 2:18 14

Index

POP 401 respawn 49 postfix 401 REVOKE 304 poweroff 53 RgbPath 331 Power-On-Self-Test 39 RIGHT JOIN 319 pr 105 RIP 415 Primärschlüssel 309 rm 117 Primary IDE 30 rmdir 118 Prozesspriorität 141 rmmod 25, 26 ps 46, 131, 132, 135, 142 ro 181 pstree 47, 132 ROOLBACK 304 pubring.gpg 461 root-Passwort vergessen 43 putty 452 route 434 pwck 368 Routing-Tabelle 435 pwconv 368 RPM 77 pwd 96, 113 rpm 75, 78 pwunconv 368 rpm2cpio 78, 82 Python 144 rpmarchive 78 rpmbuild 78 Q RPM-Datenbank 79 rpmdb 78 qmail 401, 405 rpme 78 QT Librarys 329 rpmgraph 78 Quellen 29 rpmheader 78 Queue 406 rpmi 78 Quota 183 rpmlead 78 quota 187 rpmlocate 78 quota.group 184 rpmqpack 78 quota.user 184 rpmquery 78 quotacheck 184, 185 rpmrc 77 quotaoff 185 rpmsign 78 quotaon 185 rpmsignature 78 rpmu 78 R rpmverify 78 RSA-Key 455 RAW 407 rsh 88 read 300 RTC 390, 391 Real-Time-Clock 390 Rückgabewerte 294 reboot 53 Runlevel 46, 47 redirect 126 runlevel 52 regex 144, 146 Runlevel-Wechsel 52 regexp 144, 157 rw 181 regular expression 144 rxvt 329 Regulärer Ausdruck 151 reiserfs 163 S Rekursive Befehlsausführung 97 Relative Pfadangaben 114 Samuel Morse 381 renice 142, 143 SASL 405 repquota 187 327 Resolver 432 Screen 333

516 1451.book Seite 517 Dienstag, 7. Juli 2009 2:18 14

Index

Screenreader 342, 348, 354 ssh_known_hosts 453 SCSI 161 ssh-add 457 SCSI Laufwerke 31 ssh-agent 457 Seahorse 458 sshd_config 452 Secondary IDE 30 ssh-keygen 454 secring.gpg 461 sshrc 453 secure deletion 196 stable 23 sed 144, 146, 150, 151 Standardgateway 421, 434 SELECT 304, 310 Startprotokollierung 44 semikolonsepariert 151 Startskripte 52 sendmail 401 startx 328 sendmail.cf 403 Startzylinder 161 Serverflags 331 stat 199, 202 set 91, 284 static 203 Setgid 192 statically linked 65 Setuid 191 stderr 126 SGID 192, 297 stdin 126 sh 282 stdout 126, 128 shadow 357 Sticky Bit 192, 193 shareable 203 Sticky-Bit 297 Shared Object 65 stream 447 she-bang! 292 Stream Editor 150 Shell 88, 282 Stream-Editor 144 Shell-Variablen 90, 283 su 444 shift 296 Subnetzmaske 418 shutdown 49, 53, 170 Subselects 317 SIGCONT 135, 138 Subshell 92, 284 SIGHUP 134 Substitution 152 SIGINT 134 Suchmuster 146, 149 SIGKILL 134 sudo 445 Signale 134 SUID 191, 193, 293 SIGSTOP 135 suid 181 SIGTERM 135 SUID-Bit 297, 440 SIGTSTP 135 Superblocks 171 Skeleton 290 Superdaemon 446 slp 76 swap 163 Smarthost 404 Swap-Datei 166 smbfs 178 swapoff 166 SMTP-Relay 404 swapon 166 socket 440 Swap-Partition 166 Softlimit 183, 186, 441 Synaptics 73 Softlinks 52, 198 Synopsis 99 sort 107, 129 sysfs 37 source 292 syslog 395 split 107 syslogd 395 Spooler 407 syslog-ng 395 SRI 412 Systemzeit 390, 391 SSH 451 ssh_config 453

517 1451.book Seite 518 Dienstag, 7. Juli 2009 2:18 14

Index

T unexpand 104 Unicode 386 tac 103 uniq 107, 129 tail 103, 398 unmounten 176 tar 89 unset 93, 285, 298 Tastatursteuerung 343 unshareable 203 TCP 413, 414 UPDATE 304, 312 TCP/IP 412, 413 updatedb 137, 208, 209 tcpd 448 uptime 139 tcpdchk 447 USB 34 TCP-Wrapper 448 USB 1.1 34 tcsh 88 USB 2.0 35 tee 129 usb-ehci 37 telinit 49, 53 usb-ehci.o 35 telnet 429 USB-Klassen 35 test 296 USB-Maus 35 Textanker 145, 147 USB-Memory-Sticks 35 tgz 76 usbmgr 36, 37 Thomson Prometric 17 usbmgr.conf 37 Tilde 114 usb-ohci 37 Timestamp 118 usb-ohci.o 34 Token Ring 413 usb-storage.o 35 top 133, 142, 143 usb-uhci 37 topq 409 usb-uhci.o 34 touch 118 user 181 tr 110, 128 useradd 362 traceroute 423 userdel 363 tracetpath 424 usermod 363 Transportlayer 413 users 181 trustedb.gpg 461 usrquota 181 tsclient 452 UTC 391 TTL 423 UTF-8 386 tune2fs 165, 170 tzselect 377, 378, 392 V U variable 203 vi 150, 154 Übergabevariablen 294 154 UCLA 412 154 UCSB 412 visudo 445 udev 38 vmlinuz 29 UDP 413, 414 UHCI 34 W ulimit 441 umask 190, 194, 195 w 139 Umgebungsvariablen 90, 283 Warteschlange 406 umount 37, 169, 176, 179, 442 wc 105, 174 uname 23, 26, 97 whatis 99, 206 undeletable 196 WHERE 310, 311

518 1451.book Seite 519 Dienstag, 7. Juli 2009 2:18 14

Index

whereis 100, 205 xinitrc 328, 329 which 96, 101, 205 X-Librarys 329 while 296 xntpd 393 whois 427 xorg.conf 330 Wildcards 119, 144, 145, 148 X-Server 326 Window Manager 327 xserverrc 328 Xsetup 340 X xterm 329 xvidtune 333 X.org 326 X-Windows 325, 328 X11R6 326 xwininfo 336 X11-Tunnel 451 xargs 129 Y X-Clients 326 X-Consortium 326 yank 156 xdm 340 yum 77, 83 xdm-config 340 yumdownloader 86 xdpyinfo 337 XF86Config 330 Z X-Fontserver 334 XFree86 326 Zeitsynchronisation 392 xfs 334 Zeitzone 376 xhost 336 zsh 88, 282 xinetd 448 Zugriffsrechte 189 xinetd.conf 448 Zugriffszeit 118 xinit 328

519