Dieses Buch ist meiner Frau Heidi und meinen Kindern Sebastian und Matthias gewidmet.
Michael Kofler
Linux 2011 Debian, Fedora, openSUSE, Ubuntu 10., überarbeitete und erweiterte Auflage
An imprint of Pearson Education München • Boston • San Francisco • Harlow, England Don Mills, Ontario • Sydney • Mexico City Madrid • Amsterdam
Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Die Informationen in diesem Produkt werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und Herausgeber dankbar. Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und der Speicherung in elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten ist nicht zulässig. Fast alle Hardware- und Softwarebezeichnungen und weitere Stichworte und sonstige Angaben, die in diesem Buch verwendet werden, sind als eingetragene Marken geschützt. Da es nicht möglich ist, in allen Fällen zeitnah zu ermitteln, ob ein Markenschutz besteht, wird das ® Symbol in diesem Buch nicht verwendet.
10 9 8 7 6 5 4 3 2 1 12 11 ISBN 978-3-8273-3025-3
© 2011 by Addison-Wesley Verlag, ein Imprint der Pearson Education Deutschland GmbH Martin-Kollar-Straße 10–12, D-81829 München/Germany Alle Rechte vorbehalten Einbandgestaltung: Marco Lindenbeck, webwo GmbH (
[email protected]) Lektorat: Irmgard Wagner,
[email protected], Boris Karnikowski,
[email protected] Korrektorat: Friederike Daenecke, Zülpich Herstellung: Monika Weiher,
[email protected] Satz: Michael Kofler, Graz Druck: Kösel, Krugzell (www.KoeselBuch.de) Printed in Germany
Inhaltsübersicht Vorwort
17
Konzeption
19
Teil 1 Einführung und Installation
21
1.
Was ist Linux?
23
2.
Installation
37
3.
Linux-Schnelleinstieg
73
4.
Gnome
81
5.
KDE
111
Teil 2 Desktop-Anwendungen
133
6.
Webbrowser
135
7.
E-Mail-Clients
165
8.
Foto- und Bildverwaltung
187
9.
Gimp
203
10. Audio und Video
231
11. VirtualBox
269
Teil 3 Unix-/Linux-Werkzeuge
285
12. Arbeiten in der Konsole
287
13. Dateiverwaltung
297
14. Prozessverwaltung
349
15. Konverter für Grafik, Text und Multimedia
369
16. Netzwerk-Tools
381
17. Vim
397
18. Emacs
411
19. bash (Shell)
433
Inhaltsübersicht
Teil 4 Systemkonfiguration und Administration
471
20. Basiskonfiguration
473
21. Software- und Paketverwaltung
511
22. Bibliotheken, Java und Mono
543
23. X
555
24. Administration des Dateisystems
605
25. Bootloader (GRUB und LILO)
689
26. Init-System
735
27. Kernel und Module
765
Teil 5 Netzwerk- und Server-Konfiguration
789
28. Netzwerkzugang einrichten
791
29. Internet-Gateway
843
30. Sicherheit
879
31. LAN-Server
929
32. Web- und Root-Server
981
33. Mail-Server
1003
34. KVM
1033
Teil 6 Distributionsspezifische Details
1051
35. Debian 5
1053
36. Fedora 14
1067
37. openSUSE 11.3
1083
38. Ubuntu 10.10
1105
Teil 7 Referenz
1131
39. Alphabetische Kommandoreferenz
1133
Stichwortverzeichnis
6
1243
Inhaltsverzeichnis Vorwort
17
Konzeption
19
Teil 1 Einführung und Installation
21
1.
23
Was ist Linux? 1.1
2.
Einführung
23
1.2
Distributionen
25
1.3
Traum und Wirklichkeit
29
1.4
Open-Source-Lizenzen (GPL & Co.)
31
1.5
Die Geschichte von Linux
34
1.6
Software-Patente und andere Ärgernisse
35
Installation
37
2.1
Voraussetzungen
37
2.2
Installationsvarianten
39
2.3
Überblick über den Installationsprozess
42
2.4
Start der Linux-Installation
43
2.5
Grundlagen der Festplattenpartitionierung
45
2.6
RAID, LVM und Verschlüsselung
48
2.7
Partitionierung der Festplatte
54
2.8
Installationsumfang festlegen (Paketauswahl)
60
2.9
Grundkonfiguration
61
2.10
Installation des Bootloaders
63
2.11
Probleme während der Installation
64
2.12
Probleme nach der Installation
66
2.13
Systemveränderungen, Erweiterungen, Updates
68
2.14
Linux wieder entfernen
70
2.15
Linux in eine virtuelle Umgebung installieren
71
Inhaltsverzeichnis
3.
4.
5.
Linux-Schnelleinstieg Linux starten und beenden
73
3.2
Tastatur, Maus und Zwischenablage
75
3.3
Umgang mit Dateien, Zugriff auf externe Datenträger
78
3.4
Dokumentation zu Linux
79
Gnome
81
4.1
Der Aufbau des Desktops
83
4.2
Nautilus
88
4.3
Konfiguration
93
4.4
CDs/DVDs brennen mit Brasero
100
4.5
Gnome-Standardprogramme
101
4.6
Avant Window Navigator und Gnome Do
104
4.7
Gnome 3.0
107
4.8
Gemeinsamer Desktop-Standard Portland/Xdg
109
KDE
111
5.1
Aufbau des Desktops
112
5.2
Dolphin
118
5.3
Konqueror
121
5.4
Konfiguration
122
5.5
CDs/DVDs brennen mit K3b
127
5.6
KDE-Programme
130
Teil 2 Desktop-Anwendungen
133
6.
135
Webbrowser 6.1
7.
8
73
3.1
Firefox
137
6.2
Google Chrome
147
6.3
Weitere Webbrowser (Arora, Dillo, Epiphany, Konqueror, Midori, Rekonq)
150
6.4
Plugins (Flash, Java, Adobe Reader, Multimedia)
155
6.5
Social Networking, Twitter-Clients
162
E-Mail-Clients
165
7.1
Grundlagen
166
7.2
Thunderbird
173
7.3
Evolution
179
7.4
Kontact bzw. KMail
183
7.5
Claws Mail
184
7.6
mutt
186
Inhaltsverzeichnis
8.
9.
Foto- und Bildverwaltung
187
8.1
Digitalkameras
188
8.2
Scanner
189
8.3
Shotwell
193
8.4
digiKam
194
8.5
F-Spot
197
8.6
Panoramas zusammensetzen mit Hugin
199
8.7
Screenshots erstellen
201
Gimp
203
9.1
Erste Schritte
204
9.2
Überlebensregeln
207
9.3
Fotos bearbeiten
208
9.4
Malwerkzeuge
216
9.5
Auswahl (Markierung)
220
9.6
Ebenen
227
10. Audio und Video
231
10.1
Multimedia-Grundlagen
231
10.2
Programmübersicht
238
10.3
Audio-Player (Amarok, Banshee, Rhythmbox)
242
10.4
Multimedia-Player (Dragon Player, Kaffeine, MPlayer, Totem, VLC, xine)
246
10.5
Audio- und MP3-Tools (EasyTAG, gtkPod, Sound Juicer)
250
10.6
Video-Schnitt (PiTiVi, OpenShot)
255
10.7
DVDs rippen und kopieren
261
10.8
Fernsehen (DVB-T, Miro)
263
11. VirtualBox
269
11.1
Virtualisierungsgrundlagen
269
11.2
VirtualBox installieren (Host)
275
11.3
VirtualBox-Maschinen einrichten (Gast)
278
Teil 3 Unix-/Linux-Werkzeuge
285
12. Arbeiten in der Konsole
287
12.1
Textkonsolen und Konsolenfenster
288
12.2
Textdateien anzeigen und editieren
291
12.3
Online-Hilfe
295
9
Inhaltsverzeichnis
13. Dateiverwaltung
297
13.1
Umgang mit Dateien und Verzeichnissen
297
13.2
Links
306
13.3
Dateitypen (MIME)
307
13.4
Dateien suchen (find, grep, locate, Tracker und Strigi)
309
13.5
Backup-Kommandos
315
13.6
Backup-Benutzeroberflächen
320
13.7
Backups auf NAS-Geräten
324
13.8
CDs und DVDs brennen
327
13.9
Zugriffsrechte, Benutzer und Gruppenzugehörigkeit
333
13.10 Access Control Lists und Extended Attributes
338
13.11 Linux-Verzeichnisstruktur
343
13.12 Device-Dateien
346
14. Prozessverwaltung
349
14.1
Prozesse starten, verwalten und stoppen
349
14.2
Prozesse unter einer anderen Identität ausführen (su)
356
14.3
Prozesse unter einer anderen Identität ausführen (sudo)
358
14.4
Prozesse unter einer anderen Identität ausführen (PolicyKit)
361
14.5
Systemprozesse (Dämonen)
362
14.6
Prozesse automatisch starten (crontab)
366
15. Konverter für Grafik, Text und Multimedia
369
15.1
Grafik-Konverter
369
15.2
Audio- und Video-Konverter
371
15.3
Text-Konverter (Zeichensatz und Zeilentrennung)
373
15.4
Dateinamen-Konverter (Zeichensatz)
374
15.5
Dokument-Konverter (PostScript, PDF, HTML,
LAT
EX)
16. Netzwerk-Tools
381
16.1
Netzwerkstatus ermitteln
381
16.2
Auf anderen Rechnern arbeiten (SSH)
385
16.3
Dateien übertragen (FTP, WGET, RSYNC, BitTorrent)
389
17. Vim
10
374
397
17.1
Schnelleinstieg
398
17.2
Cursorbewegung
400
17.3
Text bearbeiten
401
17.4
Suchen und Ersetzen
404
Inhaltsverzeichnis
17.5
Mehrere Dateien gleichzeitig bearbeiten
405
17.6
Interna
407
17.7
Tipps und Tricks
409
18. Emacs
411
18.1
Schnelleinstieg
411
18.2
Grundlagen
415
18.3
Cursorbewegung
416
18.4
Text markieren, löschen und einfügen
417
18.5
Text bearbeiten
418
18.6
Fließtext
421
18.7
Suchen und Ersetzen
423
18.8
Puffer und Fenster
426
18.9
Besondere Bearbeitungsmodi
428
18.10 Konfiguration
429
18.11 Unicode
431
19. bash (Shell)
433
19.1
Was ist eine Shell?
433
19.2
Basiskonfiguration
435
19.3
Kommandoeingabe
436
19.4
Ein- und Ausgabeumleitung
441
19.5
Kommandos ausführen
443
19.6
Substitutionsmechanismen
444
19.7
Shell-Variablen
449
19.8
Programmierung – Einführung und Beispiele
453
19.9
Programmierung – Syntax
458
19.10 Programmierung – Variablenverwaltung
458
19.11 Programmierung – Verzweigungen und Schleifen
464
19.12 Referenz wichtiger bash-Sonderzeichen
469
Teil 4 Systemkonfiguration und Administration
471
20. Basiskonfiguration
473
20.1
Einführung
473
20.2
Konfiguration der Textkonsolen
476
20.3
Datum und Uhrzeit
479
20.4
Benutzer und Gruppen, Passwörter
480
20.5
Spracheinstellung, Internationalisierung, Unicode
492
11
Inhaltsverzeichnis
20.6
Hardware-Referenz
497
20.7
Logging
506
21. Software- und Paketverwaltung 21.1
RPM-Paketverwaltung
513
21.2
Yum
518
21.3
ZYpp
524
21.4
Debian-Paketverwaltung (dpkg)
526
21.5
APT
528
21.6
PackageKit
538
21.7
tar
539
21.8
Umwandlung zwischen Paketformaten (alien)
540
21.9
Verwaltung von Parallelinstallationen (alternatives)
540
22. Bibliotheken, Java und Mono 22.1
543
Bibliotheken
543
22.2
Programme selbst kompilieren
547
22.3
Java
552
22.4
Mono
553
23. X 23.1
12
511
555 Grundlagen
555
23.2
X starten und beenden
561
23.3
Basiskonfiguration
566
23.4
Grafiktreiber (ATI/AMD, NVIDIA & Co.)
572
23.5
Tastatur und Maus
582
23.6
Dynamische Konfigurationsänderungen mit RandR
586
23.7
Dual-Head-Konfiguration und Beamer
588
23.8
3D-Grafik und Video
594
23.9
X im Netzwerk
598
23.10 Schriftarten (Fonts)
600
24. Administration des Dateisystems
605
24.1
Wie alles zusammenhängt
606
24.2
Device-Namen für Festplatten und andere Datenträger
608
24.3
Partitionierung der Festplatte
611
24.4
Dateisystemtypen
622
24.5
Verwaltung des Dateisystems (mount und /etc/fstab)
626
24.6
Dateisystemgrundlagen
632
24.7
Das ext-Dateisystem (ext2, ext3, ext4)
634
Inhaltsverzeichnis
24.8
Das btrfs-Dateisystem
641
24.9
Das xfs-Dateisystem
651
24.10 Windows-Dateisysteme (vfat, ntfs)
653
24.11 CDs, DVDs, Disketten
656
24.12 Externe Datenträger (USB, Firewire & Co.)
659
24.13 Netzwerk-Dateisysteme (NFS, CIFS)
661
24.14 Swap-Partitionen und -Dateien
665
24.15 RAID
667
24.16 Logical Volume Manager (LVM)
675
24.17 SMART
679
24.18 Verschlüsselung
683
25. Bootloader (GRUB und LILO)
689
25.1
GRUB
689
25.2
GRUB-Bedienung (Anwendersicht)
692
25.3
GRUB-Konfiguration (Menüdatei)
694
25.4
GRUB-Installation
701
25.5
GRUB-Interna und -Spezialfälle
705
25.6
GRUB-Rettungsmaßnahmen
714
25.7
GRUB 2
715
25.8
LILO
728
26. Init-System
735
26.1
Init-V
736
26.2
Upstart
743
26.3
Debian-Systemstart
746
26.4
Fedora-Systemstart
749
26.5
SUSE-Systemstart
754
26.6
Ubuntu-Systemstart
759
26.7
Internet Service Daemon
760
27. Kernel und Module 27.1
Kernelmodule
765 765
27.2
Kernel selbst konfigurieren und kompilieren
773
27.3
Die Verzeichnisse /proc und sys/
783
27.4
Kernel-Bootoptionen
785
27.5
Kernelparameter verändern
788
13
Inhaltsverzeichnis
Teil 5 Netzwerk- und Server-Konfiguration
789
28. Netzwerkzugang einrichten
791
28.1
Network Manager
791
28.2
Desktop- und distributionsspezifische Konfigurationshilfen
795
28.3
LAN- und WLAN-Grundlagen
799
28.4
LAN- und WLAN-Controller manuell aktivieren
812
28.5
LAN-Konfigurationsdateien
819
28.6
Zeroconf und Avahi
823
28.7
PPP-Grundlagen
825
28.8
UMTS-Interna
830
28.9
ADSL-Interna
832
28.10 VPN-Client-Konfiguration (PPTP) 29. Internet-Gateway 29.1
843
Einführung
844
29.2
Statische Netzwerkkonfiguration
845
29.3
Masquerading (NAT)
848
29.4
DHCP- und Nameserver-Grundlagen
851
29.5
Dnsmasq (DHCP- und Nameserver)
852
29.6
dhpcd (DHCP-Server)
859
29.7
bind (Nameserver)
863
29.8
WLAN-Integration in das Netzwerk
876
30. Sicherheit
879
30.1
Netzwerkgrundlagen und -analyse
879
30.2
Basisabsicherung von Netzwerkdiensten
884
30.3
Firewalls – eine Einführung
888
30.4
Firewall mit iptables selbst gebaut
895
30.5
VPN – eine Einführung
900
30.6
VPN mit PPTP realisieren
903
30.7
Webfilter mit Squid und DansGuardian
909
30.8
SELinux
918
30.9
AppArmor
924
31. LAN-Server
14
838
929
31.1
NFS 3
929
31.2
NFS 4
933
31.3
Samba – Grundlagen
936
Inhaltsverzeichnis
31.4
Samba – Basiskonfiguration und Inbetriebnahme
940
31.5
Samba – Passwortverwaltung
946
31.6
Samba – Netzwerkverzeichnisse
951
31.7
Samba – Home-Server/Medien-Server
956
31.8
Samba – Client-Zugriff
959
31.9
CUPS – Grundlagen
963
31.10 CUPS – Druckerkonfiguration
971
31.11 NTP
978
32. Web- und Root-Server
981
32.1
SSH
982
32.2
Apache
985
32.3
PHP
992
32.4
MySQL
32.5
FTP-Server (vsftpd)
33. Mail-Server
994 1000 1003
33.1
Einführung und Grundlagen
1003
33.2
Postfix (MTA)
1009
33.3
Dovecot (POP- und IMAP-Server)
1020
33.4
Spam- und Virenschutz
1025
33.5
policyd-weight (Spam-Abwehr)
1026
33.6
SpamAssassin (Spam-Abwehr)
1028
33.7
ClamAV (Virenabwehr)
1031
34. KVM
1033
34.1
Grundlagen
1034
34.2
KVM ohne libvirt
1036
34.3
libvirt-Werkzeuge
1042
34.4
Integration der virtuellen Maschinen in das LAN (Netzwerkbrücke)
1048
34.5
Direkter Zugriff auf die Dateisysteme einer Image-Datei
1050
Teil 6 Distributionsspezifische Details
1051
35. Debian 5
1053
35.1
Installation
1056
35.2
Konfiguration und Paketverwaltung
1059
35.3
Interna, Tipps und Tricks
1063
15
Inhaltsverzeichnis
36. Fedora 14
1067
36.1
Installation
1069
36.2
Konfiguration
1074
36.3
Paketverwaltung
1076
36.4
Fedora-spezifische Besonderheiten
1077
36.5
Tipps und Tricks
1080
37. openSUSE 11.3 37.1
Installation
1086
37.2
Konfiguration (YaST)
1090
37.3
Paketverwaltung
1092
37.4
SUSE-spezifische Besonderheiten
1098
37.5
Tipps und Tricks
1101
38. Ubuntu 10.10
1105
38.1
Versionen und Varianten
38.2
Standardinstallation im Grafikmodus (Desktop-CD)
1109
38.3
USB-Stick-Installation (Desktop-CD)
1111
38.4
WUBI (Desktop-CD)
1112
38.5
Installation im Textmodus (Alternate-CD)
1114
38.6
Konfiguration
1118
38.7
Paketverwaltung
1119
38.8
Ubuntu-spezifische Besonderheiten
1123
38.9
Tipps und Tricks
1127
1106
Teil 7 Referenz
1131
39. Alphabetische Kommandoreferenz
1133
Stichwortverzeichnis
16
1083
1243
Vorwort Linux zählt mit Microsoft Windows und Apple Mac OS X zu den wichtigsten Betriebssystemen für PCs. Linux hat im ServerBereich große Marktanteile (Google und Amazon verwenden beispielsweise Linux), gewinnt auch im Desktop-Bereich an Popularität und läuft auf immer mehr Android-basierten Mobiltelefonen und Tablets sowie in vielen Embedded Systems (also fertigen Geräten, die nicht wie Computer aussehen, z. B. ADSLoder WLAN-Router). Das alte Vorurteil, Linux sei kompliziert zu bedienen, ist überholt. Gewiss, Linux ist anders zu bedienen als Windows, aber die Umstiegshürde ist nicht höher als beim Wechsel von Windows XP zu Windows 7. Gleichzeitig sind die meisten Linux-Distributionen kostenlos und erwiesenermaßen sicherer als Windows. Probleme mit Viren und Trojanern werden Sie unter Linux keine haben. Wenn Linux so einfach zu bedienen ist, warum hat dieses Buch dann mehr als 1200 Seiten? Dafür gibt es mehrere Gründe:
Zum Inhalt
» Linux ist mehr als ein Ersatz für Windows auf dem Desktop. Es bietet unzählige weitere Funktionen und Anwendungsmöglichkeiten, die von der Automatisierung alltäglicher Aufgaben bis hin zur Konfiguration von Netzwerk-Servern reichen. Und während heute fast jeder mit Webbrowsern, E-Mail- und Office-Programmen vertraut ist, bedarf es bei den technisch komplexeren Themen einer ausführlicheren Beschreibung. » Es gibt nicht ein Linux, sondern viele Linux-Distributionen. (Vereinfacht ausgedrückt: Eine Distribution ist eine Sammlung von Programmen rund um Linux. Zu den bekanntesten Distributionen zählen Debian, Red Hat, openSUSE und Ubuntu.) Diese Vielfalt hat eine Menge Vorteile, aber natürlich auch einen entscheidenden Nachteil: Viele Details sind je nach Distribution unterschiedlich gelöst. Dieses Buch verfolgt so weit wie möglich einen distributionsunabhängigen Ansatz. Da ist es nicht zu vermeiden, hin und wieder auf verschiedene Varianten hinzuweisen – ganz nach dem Motto: Bei openSUSE funktioniert es auf die eine Weise, bei Debian auf die andere. Beide werden in diesem Buch beschrieben. » Mit diesem Buch sollen Sie Linux nicht nur anwenden, sondern auch verstehen lernen. Das macht dieses Buch manchmal unbequem: Sie werden hier keine Sammlungen von Screenshots mit Anweisungen der Art Klicken Sie hier finden. Mein Anliegen ist es vielmehr, Ihnen die Grundlagen von Linux zu erklären und Ihnen ein wenig die Philosophie von Unix/Linux nahezubringen – gewissermaßen the Linux way to do it. In der vorliegenden Auflage feiert dieses Buch gleich ein doppeltes Jubiläum: In 15 Jahren hat es dieses Buch auf 10 Auflagen gebracht. Wenn man heute durch die erste Auflage blättert, wird auf einen Blick deutlich, wie sehr sich Linux seither gewandelt und etabliert hat: Vor 15 Jahren war
10 Auflagen in 15 Jahren
Vorwort
Linux ein schwer zugängliches Betriebssystem für überwiegend technische Anwender und Freaks. Heute installiert man Linux auf das Notebook seiner Eltern oder Kinder, um sicherzustellen, dass der Rechner wartungsfrei und virensicher läuft! Kostenlose eBook-Version
Anstelle einer Geburtstagsfeier erfüllt der Verlag mit dieser Jubiläumsauflage einen langjährigen Wunsch vieler Leser: Mit dem Kauf dieses Buch erwerben Sie das Recht, auf der Website von Addison-Wesley kostenlos die eBook-Version des Buchs in Form einer DRM-freien PDF-Datei herunterzuladen. (Den Download-Code finden Sie auf der ersten Seite des Buchs.) Wenn Sie also mit Ihrem Linux-Notebook unterwegs sind, haben Sie nun jederzeit vollen Zugriff auf alle Inhalte dieses Buchs, ohne die mehr als ein Kilogramm schwere Papierausgabe mit sich herumzuschleppen!
Online-Updates
Linux verändert sich schnell. Mit diesem Buch bleiben Sie bis Ende 2011 auf dem aktuellen Stand: Zu jeder neuen Version von Debian, Fedora, openSUSE und Ubuntu, die bis Ende 2011 erscheint, wird es innerhalb weniger Wochen ein kostenloses Update-Kapitel (PDF-Datei) auf http://kofler.info geben.
Viel Spaß!
Natürlich können Sie Linux wie jedes andere Betriebssystem einfach nur auf dem Desktop nutzen. Im Vergleich zu kommerziellen Produkten bietet Linux Ihnen aber auch die Möglichkeit, Ihr Betriebssystem beinahe grenzenlos an Ihre eigenen Bedürfnisse und Vorlieben anzupassen – sei es zur Programmierung, für den Netzwerkeinsatz oder als Server. Für nahezu jede Aufgabe stehen mehrere Werkzeuge zur Wahl. Und je mehr Sie sich in die Linux-Welt einarbeiten, desto mehr wird Linux Ihr Betriebssystem. Ich wünsche Ihnen viel Freude beim Experimentieren, Kennenlernen und Arbeiten mit Linux!
Michael Kofler http://kofler.info
DVDs zum Buch
18
Diesem Buch liegen zwei DVDs mit openSUSE 11.3 (32- und 64-Bit-Version) und Ubuntu 10.10 (64-Bit-Version) bei. Ein herzliches Dankeschön geht an die Firma open-slx für die Zustimmung zur Weitergabe der Dual-Layer-DVD (DVD9) für openSUSE! open-slx hat die alleinigen Weitergaberechte für die openSUSE-DVD9 und verkauft diese DVD zusammen mit einem gedruckten openSUSE-Handbuch im Rahmen der openSUSE-Box.
Konzeption Das Buch ist in sieben Teile gegliedert: » Teil I (Kapitel 1 bis 5) dient als Einführung und begleitet Sie bei den ersten Schritten mit Linux – von der Installation bis zur Nutzung der Desktop-Systeme Gnome und KDE. » Teil II (Kapitel 6 bis 11) beschreibt die Anwendung von Linux. Hier finden Sie Tipps zum Umgang mit Webbrowsern und EMail-Clients, zur Büroarbeit mit OpenOffice, zur Verwaltung von Fotos, zum Abspielen von Videos, zur Ausführung von Windows im Virtualisierungssystem VirtualBox etc. » Teil III (Kapitel 12 bis 19) geht ausführlich auf Linux-Grundlagen und -Werkzeuge ein. Das Buch wird hier deutlich technischer. Sie lernen, mit welchen Kommandos Sie das Dateisystem durchsuchen, wie Sie Dokumente und Bilder in andere Formate konvertieren, wie Sie mit den Editoren Emacs und Vi umgehen, den Kommandointerpreter bash effizient nutzen und damit programmieren. » Teil IV (Kapitel 20 bis 27) widmet sich der Konfiguration. Egal, ob es gerade bei Ihrer Hardware Probleme gibt oder ob Sie ganz besondere Anforderungen stellen – hier erfahren Sie, wie Sie das Dateisystem administrieren, das Grafiksystem konfigurieren, Software-Pakete installieren und aktualisieren, den Systemstart konfigurieren sowie den Kernel und seine Module einrichten bzw. neu kompilieren. » Teil V (Kapitel 28 bis 31) behandelt die Netzwerkkonfiguration – vom Client (LAN, WLAN, ADSL, UMTS, VPN) bis zum Server (Internet-Gateway, DNS, NFS, Samba, FTP- und Webserver, MailServer etc.). Dabei darf natürlich die Sicherheit nicht zu kurz kommen: Mit Firewalls, SELinux oder AppArmor schützen Sie insbesondere Netzwerk-Server optimal vor Angriffen von außen. Mit KVM können Sie zudem einzelne Server-Funktionen in getrennten virtuellen Maschinen implementieren und so noch besser voneinander isolieren. » Teil VI (Kapitel 35 bis 38) fasst distributionsspezifische Details für die folgenden Distributionen zusammen: Debian 5.0 Fedora 14 openSUSE 11.3 Ubuntu 10.10 » Teil VII (Kapitel 39) schließt das Buch mit einer alphabetischen Referenz der wichtigsten Kommandos und ihrer Optionen ab. Hier können Sie rasch nachsehen, wie Sie mit apt-get ein Paket entfernen oder wie Sie mit find nach Verzeichnissen suchen.
Konzeption
Neu in dieser Auflage Das Buch wurde für diese Auflage einmal mehr umfassend überarbeitet, aktualisiert und neu strukturiert. Die folgende Liste fasst die wichtigsten inhaltlichen Neuerungen im Vergleich zur 9. Auflage zusammen: » aktuell zu KDE 4.5, Gnome 2.32 (inklusive Vorschau auf Gnome 3.0) » aktuell zu Firefox 3.6, Thunderbird 3.1, VirtualBox 3.2 und Emacs 23.2 » Backups auf NAS-Festplatten » Fotoverwaltung mit shotwell » Video-Schnitt mit PiTiVi und OpenShot » btrfs-Dateisystem » Mail-Server-Konfiguration mit Postfix und Dovecot » Server-Virtualisierung mit KVM
Formales In diesem Buch werden häufig Kommandos angegeben. Dabei werden die Teile, die tatsächlich einzugeben sind, fett hervorgehoben. Der Rest der Listings besteht aus dem sogenannten »Kommandoprompt« (der systemabhängig ist) und Ausgaben des Kommandos. Im folgenden Beispiel müssen Sie also nur ls *.tex eingeben, um sich die Liste aller *.tex-Dateien im aktuellen Verzeichnis anzeigen zu lassen. user$ ls *.tex article.tex config.tex lanclient.tex ... root
Manche Kommandos können nur vom Systemadministrator root ausgeführt werden. In diesem Fall wird der Kommandoprompt in diesem Buch als root# dargestellt: root#
sudo
/etc/init.d/nfs restart
Bei manchen Distributionen ist der Account für root gesperrt (z. B. bei Ubuntu). In diesem Fall führen Sie Systemkommandos mit sudo aus, wobei Sie nochmals Ihr Passwort angeben müssen. Darauf wird in diesem Buch nicht jedes Mal extra hingewiesen. Hintergrundinformationen zu sudo finden Sie auf Seite 358. user$ sudo service nfs restart Password: ********
Mehrzeilige Kommandos
20
Falls einzelne Kommandos so lang sind, dass sie nicht in einer Zeile Platz finden, werden sie mit dem Zeichen \ auf zwei oder mehr Zeilen verteilt. In diesem Fall können Sie die Eingabe entweder in einer Zeile ohne \ tippen oder sie wie im Buch auf mehrere Zeilen verteilen. \ ist also ein unter Linux zulässiges Zeichen, um mehrzeilige Kommandoeingaben durchzuführen.
Teil 1 Einführung und Installation
1. Was ist Linux? Um die einleitende Frage zu beantworten, erkläre ich in diesem Kapitel zuerst einige wichtige Begriffe, die im gesamten Buch immer wieder verwendet werden: Betriebssystem, Unix, Distribution, Kernel etc. Ein knapper Überblick über die Merkmale von Linux und die verfügbaren Programme macht deutlich, wie weit die Anwendungsmöglichkeiten von Linux reichen. Es folgt ein kurzer Ausflug in die noch junge Geschichte von Linux: Sie erfahren, wie Linux entstanden ist und auf welchen Komponenten es basiert. Von zentraler Bedeutung ist dabei natürlich die General Public License (kurz GPL), die angibt, unter welchen Bedingungen Linux weitergegeben werden darf. Erst die GPL macht Linux zu einem freien System (wobei »frei« mehr heißt als einfach »kostenlos«).
1.1 Einführung Linux ist ein Unix-ähnliches Betriebssystem. Der wichtigste Unterschied gegenüber herkömmlichen Unix-Systemen besteht darin, dass Linux zusammen mit dem vollständigen Quellcode frei kopiert werden darf. (Details zu den Bedingungen, unter denen Linux und die dazugehörigen Programme weitergegeben werden dürfen, folgen auf Seite 31.) Ein Betriebssystem ist ein Bündel von Programmen, mit denen die grundlegendsten Funktionen eines Rechners realisiert werden: die Schnittstelle zwischen Mensch und Maschine (also konkret: die Verwaltung von Tastatur, Bildschirm etc.) und die Verwaltung der Systemressourcen (Rechenkapazität, Speicher etc.). Sie benötigen ein Betriebssystem, damit Sie ein Anwendungsprogramm überhaupt starten und eigene Daten in einer Datei speichern können. Die populärsten Betriebssysteme sind momentan Windows, Mac OS X und Linux.
Betriebssystem
Schon lange vor den ersten Windows-, Linux- oder Mac-OS-X-Versionen gab es Unix. Dieses Betriebssystem war von Anfang an mit Merkmalen ausgestattet, die von Microsoft erst sehr viel später in einer vergleichbaren Form angeboten wurden: echtes Multitasking, eine Trennung der Prozesse voneinander, klar definierte Zugriffsrechte für Dateien, ausgereifte Netzwerkfunktionen etc. Allerdings bot Unix anfänglich nur eine spartanische Benutzeroberfläche und stellte hohe Hardware-Anforderungen. Das erklärt, warum Unix fast ausschließlich auf teuren Workstations im wissenschaftlichen und industriellen Bereich eingesetzt wurde.
Unix
Unix wird in diesem Buch als Oberbegriff für diverse vom ursprünglichen Unix abgeleitete Betriebssysteme verwendet. Die Namen dieser Betriebssysteme enden im Regelfall auf -ix (Irix, Xenix
Kapitel 1
Was ist Linux?
etc.) und sind zumeist geschützte Warenzeichen der jeweiligen Firmen. Auch UNIX selbst ist ein geschütztes Warenzeichen. Linux
Linux ist eine Unix-Variante, bei der aber der Quelltext frei verfügbar ist. Große Teile des Internets (z. B. Google) werden heute von Linux getragen. Linux läuft nicht nur auf herkömmlichen Rechnern, sondern auch auf vielen Mobilfunkgeräten (Android), Embedded Devices (z. B. ADSL-Routern, NAT-Festplatten) und Supercomputern. Im Juni 2010 verwendeten 91 Prozent der 500 schnellsten Rechner Linux als Betriebssytem (http://www.top500.org/stats/).
Kernel
HardwareUnterstützung
Genau genommen bezeichnet der Begriff Linux nur den Kernel: Er ist der innerste Teil (Kern) eines Betriebssystems mit ganz elementaren Funktionen wie Speicherverwaltung, Prozessverwaltung und Steuerung der Hardware. Die Informationen in diesem Buch beziehen sich auf den Kernel 2.6. Hintergrundinformationen zum Kernel und seinen Eigenschaften finden Sie ab Seite 765. Dort wird auch beschrieben, wie Sie einen aktuellen Kernel selbst übersetzen können. Linux unterstützt beinahe die gesamte gängige PC-Hardware – mit wenigen Ausnahmen: » Ganz neue Grafikkarten werden oft nur eingeschränkt unterstützt. Für manche Grafikkarten stellen die Hardware-Firmen (z. B. NVIDIA) eigene Treiber zur Verfügung, deren Integration in Linux aber mühsam sein kann. » Neue Notebooks enthalten bisweilen neue WLAN-Controller, die von Linux (noch) nicht unterstützt werden. » Eine weitere Problemquelle ist Windows-spezifische Zusatz-Hardware, die keinen öffentlichen Standards entspricht und einen eigens für Windows entwickelten Treiber erfordert. Zum Glück werden solche Komponenten (WinModems, GDI-Drucker etc.) zunehmend seltener. Aus diesen Gründen sollten Sie vor dem Kauf eines neuen Rechners bzw. einer HardwareErweiterung sicherstellen, dass alle Komponenten von Linux unterstützt werden. Werfen Sie dazu einen Blick in die in Tabelle 1.1 aufgelisteten Webseiten. Auch eine Internetsuche nach linux hardwarename ist empfehlenswert.
Tabelle 1.1: Webseiten zum Thema Linux-Hardware
24
DISTRIBUTION / HARDWARE
LINK
Debian
http://wiki.debian.org/Hardware
Fedora
http://fedoraproject.org/wiki/HCL
openSUSE
http://en.opensuse.org/Hardware
Ubuntu
http://wiki.ubuntuusers.de/Hardwaredatenbank https://wiki.ubuntu.com/HardwareSupport/
Notebooks
http://www.linux-on-laptops.com http://tuxmobil.org/
Grafikkarten
http://wiki.x.org/wiki/Projects/Drivers
Drucker
http://www.linuxfoundation.org/collaborate/workgroups/
Scanner
http://www.sane-project.org/
Distributionen
Abschnitt 1.2
1.2 Distributionen Noch immer ist die einleitende Frage – Was ist Linux? – nicht ganz beantwortet. Viele Anwender interessiert der Kernel nämlich herzlich wenig, – sofern er nur läuft und die vorhandene Hardware unterstützt. Für sie umfasst der Begriff Linux, wie er umgangssprachlich verwendet wird, neben dem Kernel auch das riesige Bündel von Programmen, das mit Linux mitgeliefert wird: Dazu zählen neben unzähligen Kommandos die Desktop-Systeme KDE und Gnome, das Office-Paket OpenOffice, der Webbrowser Firefox, das Zeichenprogramm Gimp, zahllose Programmiersprachen und ServerProgramme (Webserver, Mail-Server, File-Server etc.). Als Linux-Distribution wird also die Einheit bezeichnet, die aus dem eigentlichen Betriebssystem (Kernel) und seinen Zusatzprogrammen besteht. Eine Distribution ermöglicht eine rasche und bequeme Installation von Linux. Die meisten Distributionen können kostenlos aus dem Internet heruntergeladen werden, lediglich einige kommerzielle Angebote sind kostenpflichtig. Distributionen unterscheiden sich vor allem durch folgende Punkte voneinander: » Umfang, Aktualität: Die Anzahl, Auswahl und Aktualität der mitgelieferten Programme und Bibliotheken variiert stark. Manche Distributionen setzen bewusst auf etwas ältere, stabile Versionen (z. B. Debian). » Installations- und Konfigurationswerkzeuge: Die mitgelieferten Programme zur Installation, Konfiguration und Wartung des Systems helfen dabei, die Konfigurationsdateien einzustellen. Gut funktionierende Konfigurationswerkzeuge stellen eine enorme Zeitersparnis dar. » Konfiguration des Desktops (KDE, Gnome): Manche Distributionen lassen dem Anwender die Wahl zwischen KDE, Gnome und eventuell weiteren Window Managern. Es gibt aber auch Unterschiede in der Detailkonfiguration von KDE oder Gnome, die das Aussehen, die Menüanordnung etc. betreffen. » Hardware-Unterstützung: Linux kommt mit den meisten PC-Hardware-Komponenten zurecht. Dennoch gibt es im Detail Unterschiede zwischen den Distributionen, insbesondere wenn es darum geht, Nicht-Open-Source-Treiber (z. B. für NVIDIA-Grafikkarten) in das System zu integrieren. » Paketsystem: Das Paketsystem bestimmt, wie einfach die spätere Installation zusätzlicher Programme bzw. das Update vorhandener Programme ist. Zurzeit sind drei zueinander inkompatible Paketsysteme üblich: RPM (unter anderem bei Mandriva, Red Hat, SUSE), DEB (Debian, Ubuntu) und TGZ (Slackware). Grundsätzlich gilt, dass Sie eine Linux-Distribution nur so lange sicher betreiben können, wie Sie Updates bekommen. Danach ist aus Sicherheitsgründen ein Wechsel auf eine neue Version der Distribution erforderlich. Deswegen ist es bedeutsam, wie lange es für eine Distribution Updates gibt. Hier gilt meist die Grundregel: je teurer die Distribution, desto länger der Zeitraum. Einige Beispiele (Stand September 2010): Fedora: Ubuntu: openSUSE: Red Hat Enterprise Linux: Novell/SUSE Enterprise Server:
13 Monate normalerweise 18 Monate, bei LTS-Versionen 3 bis 5 Jahre 18 Monate 5 Jahre 5 Jahre
25
Kapitel 1
Was ist Linux?
» Live-System: Viele Distributionen ermöglichen den Linux-Betrieb direkt von einer CD oder DVD. Das ist zwar vergleichsweise langsam und unflexibel, ermöglicht aber ein einfaches Ausprobieren von Linux. Außerden bieten Live-Systeme eine ideale Möglichkeit, um ein defektes Linux-System zu reparieren. » Zielplattform (CPU-Architektur): Viele Distributionen sind nur für Intel- und AMD-kompatible Prozessoren erhältlich, in der Regel in einer 32- und in einer 64-Bit-Variante. Es gibt aber auch Distributionen für andere Prozessorplattformen, z. B. für ARM- oder für PowerPC-CPUs. » Dokumentation: Große Unterschiede gibt es bei der Qualität und dem Umfang der OnlineDokumentation. Gedruckte Handbücher sind nur noch ganz vereinzelt zu bekommen. » Support: Bei manchen Distributionen bekommen Sie kostenlos Hilfe bei der Installation (via E-Mail und/oder per Telefon). » Lizenz: Die meisten Distributionen sind kostenlos erhältlich. Bei einigen Distributionen gibt es hier aber Einschränkungen: Beispielsweise ist bei den Enterprise-Distributionen von Red Hat und Novell ein Zugriff auf das Update-System nur für registrierte Kunden möglich. Zudem verbieten manche Distributionen den Weiterverkauf. Da Linux und die meisten mitgelieferten Programme an sich frei erhältlich sind (siehe den Lizenzabschnitt ab Seite 31) bezieht sich das Verkaufsverbot meist auf die Nutzung von Markenzeichen. Kommerzielle Distributionen
Die Behauptung, Linux sei frei, steht scheinbar im krassen Widerspruch zu dem Preis für EnterpriseDistributionen für den Unternehmenseinsatz. Allerdings zahlen Sie bei kommerziellen Distributionen von Red Hat, Novell oder anderen Anbietern nicht für die Software an sich, sondern für die dazugehörenden Zusatzleistungen: Update-Service, Support etc.
Freie Distributionen
Die im Privatbereich populärsten Distributionen sind durchwegs kostenlos: Debian, Fedora, openSUSE, Ubuntu etc. Bei diesen Distributionen können Sie ISO-Dateien aus dem Internet herunterladen und damit selbst die Installations-CDs oder -DVDs brennen.
Welche Distribution für welchen Zweck?
Die Frage, welche Distribution die beste sei, welche wem zu empfehlen sei etc., artet leicht zu einem Glaubenskrieg aus. Wer sich einmal für eine Distribution entschieden und sich an deren Eigenheiten gewöhnt hat, steigt nicht so schnell auf eine andere Distribution um. Ein Wechsel der Distribution ist nur durch eine Neuinstallation möglich, bereitet also einige Mühe. Kriterien für die Auswahl einer Distribution sind die Aktualität ihrer Komponenten (achten Sie auf die Versionsnummer des Kernels und wichtiger Programme, etwa des C-Compilers), die Qualität der Installations- und Konfigurationstools, der angebotene Support, mitgelieferte Handbücher etc.
Linux Standard Base (LSB)
So belebend die Konkurrenz vieler Distributionen für deren Weiterentwicklung ist, so lästig ist sie bei der Installation von Programmen, die nicht mit der Distribution mitgeliefert werden (und insbesondere bei kommerziellen Programmen). Eine fehlende oder veraltete Programmbibliothek ist oft die Ursache dafür, dass ein Programm nicht läuft. Die Problembehebung ist insbesondere für Linux-Einsteiger fast unmöglich. Abhilfe soll das Linux-Standard-Base-Projekt (LSB) schaffen. Die LSB-Spezifikation definiert Regeln, die einen gemeinsamen Nenner aller am LSB-Projekt beteiligten Distributionen sicherstellen: http://www.linuxfoundation.org/collaborate/workgroups/lsb
26
Distributionen
Abschnitt 1.2
Gängige Linux-Distributionen Der folgende Überblick über die wichtigsten verfügbaren Distributionen (in alphabetischer Reihenfolge und ohne Anspruch auf Vollständigkeit!) soll eine erste Orientierungshilfe geben. Beachten Sie bitte, dass die Landschaft der Linux-Distributionen sich ständig verändert: Neue Distributionen entstehen und werden oft rasch beliebt (das ist beinahe wie mit Mode-Trends), andere verlieren ebenso rasch an Bedeutung oder werden ganz eingestellt. Dieser Abschnitt ist also nur eine – ohnedies subjektive – Momentaufnahme. Android ist eine von Google entwickelte Plattform für Mobilfunkgeräte und Tablets. Die OpenSource-Freiheiten stoßen bei Android allerdings rasch an ihre Grenzen: Viele Handy-Hersteller verbieten die manuelle Installation einer eigenen Android-Version.
Android
CentOS ist eine kostenlose Variante zu Red Hat Enterprise Linux (RHEL). CentOS ist binärkompatibel zu RHEL, es fehlen aber alle Red-Hat-Markenzeichen, -Logos etc. CentOS ist vor allem für ServerBetreiber interessant, die kompatibel zu RHEL sein möchten, sich die hohen RHEL-Kosten aber nicht leisten können und auf den Red-Hat-Support verzichten können.
CentOS
Das Chrome OS wird wie Android von Google entwickelt. Es ist für Netbooks und Tablets optimiert, soll aber auch auf gewöhnlichen PCs laufen. Die minimalistische Benutzeroberfläche basiert auf dem Google Chrome Webbrowser. Die Fertigstellung der ersten offiziellen Version ist für Ende 2010 geplant.
Chrome OS
Debian ist die älteste vollkommen freie Distribution. Sie wird von engagierten Linux-Entwicklern zusammengestellt, wobei die Einhaltung der Spielregeln »freier« Software eine hohe Priorität genießt. Die strikte Auslegung dieser Philosophie hat in der Vergangenheit mehrfach zu Verzögerungen geführt.
Debian
Debian richtet sich an fortgeschrittene Linux-Anwender und hat einen großen Marktanteil bei Server-Installationen. Im Vergleich zu anderen Distributionen ist Debian stark auf maximale Stabilität hin optimiert und enthält deswegen oft relativ alte Programmversionen. Dafür steht Debian für zwölf Hardware-Plattformen zur Verfügung (AMD64, Alpha, Arm, Armel, HPPA, i386, IA64, Mips, Mipsel, PPC, S390 und Sparc). Es gibt zahlreiche Distributionen, die sich von Debian ableiten (z. B. Ubuntu). Fedora ist der kostenlose Entwicklungszweig von Red Hat Linux. Die Entwicklung wird von Red Hat unterstützt und gelenkt. Für Red Hat ist Fedora eine Art Spielwiese, auf der neue Funktionen ausprobiert werden können, ohne die Stabilität der Enterprise-Versionen zu gefährden. Programme, die sich unter Fedora bewähren, werden später in die Enterprise-Versionen integriert. Für technisch interessierte Linux-Fans ist Fedora interessant, weil diese Distribution oft eine Vorreiterrolle spielt: Neue Linux-Funktionen finden sich oft zuerst in Fedora und erst später in anderen Distributionen. Neue Fedora-Versionen erscheinen alle sechs Monate. Updates werden einen Monat nach dem Erscheinen der übernächsten Version eingestellt, d. h., die Lebensdauer ist mit 13 Monaten sehr kurz.
Fedora
Gentoo richtet sich besonders an Programmentwickler und an Anwender, die maximale Flexibilität und Kontrolle über ihre Distribution wünschen. Die Besonderheit von Gentoo besteht darin, dass jedes Programmpaket eigens kompiliert und so optimal an die jeweilige Hardware angepasst werden
Gentoo
27
Kapitel 1
Was ist Linux?
kann. (Natürlich können Linux-Profis bei jeder Distribution ihre Programme selbst kompilieren. Aber Gentoo unterstützt diesen Prozess besonders gut durch entsprechende Konfigurationswerkzeuge.) Knoppix
Das auf Debian basierende Knoppix war vor einigen Jahren eines der ersten und am besten funktionierenden Live-Systeme. Mittlerweile bietet nahezu jede Distribution auch eine Live-Variante an. Dementsprechend hat Knoppix an Popularität verloren.
Mandriva
Mandriva ist aus dem Zusammenschluss von Mandrakelinux (Frankreich) und Connectiva (Brasilien) entstanden. Mandrakelinux zählte früher zu den populärsten kommerziellen LinuxDistributionen. Mittlerweile ist die Verbreitung außerhalb der Ursprungsländer stark gesunken.
MeeGo
MeeGo ist eine neue Linux-Distribution speziell für Netbooks, Tablets, Handys und andere mobile Geräte. Sie ist aus der Zusammenführung der Projekte Moblin (Linux) und Maemo (Nokia) entstanden und gilt als Konkurrent zu Android. MeeGo 1.0 wurde im Mai 2010 präsentiert. Mitte 2010 gab es allerdings noch keine Endgeräte mit MeeGo.
Novell
Novell kaufte im November 2003 die deutsche Firma SUSE und gilt nun weltweit als die Nummer zwei auf dem kommerziellen Linux-Markt. Ähnlich wie Red Hat fährt auch Novell zweigleisig: Auf der einen Seite gibt es unter den Namen Novell und SUSE diverse Enterprise-Distributionen für Firmenkunden. Auf der anderen Seite steht die freie Distribution openSUSE, die sich an private Linux-Anwender und -Entwickler richtet (siehe unten). Eine Kooperation mit Microsoft schützt Novell vor Patentklagen. Allerdings wurde das Übereinkommen von vielen Open-Source-Entwicklern als indirekte Anerkennung der Patentansprüche Microsofts kritisiert.
openSUSE
openSUSE ist eine kostenlose Linux-Distribution, die gleichzeitig als Entwicklungs- und Testbasis für die Enterprise-Versionen von Novell dient. openSUSE-Versionen erscheinen in einem 8-Monatsrhythmus. Zu openSUSE ist auch eine Box mit Handbüchern und Support verfügbar. Der Update-Zeitraum beträgt 18 Monate.
Oracle
Oracle bietet seit Herbst 2006 eine eigene Version von Red Hat Enterprise Linux (RHEL) unter dem Namen Oracle Unbreakable Linux an. Das ist aufgrund der Open-Source-Lizenzen eine zulässige Vorgehensweise. Technisch gibt es nur minimale Unterschiede zu RHEL, die Oracle-Variante und insbesondere dessen Update-Service sind aber billiger. Dennoch ist die Verbreitung von Oracles Linux-Variante bisher gering.
Red Hat
Red Hat ist die international bekannteste und erfolgreichste Linux-Firma. Red-Hat-Distributionen dominieren insbesondere den amerikanischen Markt. Die Paketverwaltung auf der Basis des RPM-Formats (einer Eigenentwicklung von Red Hat) wurde von vielen anderen Distributionen übernommen. Red Hat ist überwiegend auf Unternehmenskunden ausgerichtet. Die Enterprise-Versionen (RHEL = Red Hat Enterprise Linux) sind vergleichsweise teuer. Sie zeichnen sich durch hohe Stabilität und einen fünfjährigen Update-Zeitraum aus. Für Linux-Enthusiasten und -Entwickler, die ein Red-Hatähnliches System zum Nulltarif suchen, bieten sich CentOS, Scientific Linux und Fedora an.
Ubuntu
28
Ubuntu ist die zurzeit populärste Distribution für Privatanwender. Ubuntu verwendet als Basis Debian, ist aber besser für Desktop-Anwender optimiert (Motto: Linux for human beings). Die kostenlose Distribution erscheint im Halbjahresrhythmus. Für gewöhnliche Versionen werden Updates über
Traum und Wirklichkeit
Abschnitt 1.3
18 Monate zur Verfügung gestellt. Für die alle zwei Jahre erscheinenden LTS-Versionen gibt es sogar 3 bzw. 5 Jahre lang Updates (für Desktop- bzw. Server-Pakete). Finanziell wird Ubuntu Linux durch die Firma Canonical unterstützt. Zu Ubuntu gibt es diverse offizielle und inoffizielle Varianten (Kubuntu, Xubuntu, Ubuntu Server etc.). Neben den oben aufgezählten »großen« Distributionen gibt es im Internet zahlreiche Zusammenstellungen von Miniatursystemen (bis hin zum kompletten Linux-System auf einer einzigen Diskette!). Diese Distributionen basieren zumeist auf alten und daher kleineren Kernelversionen. Sie sind vor allem für Spezialaufgaben konzipiert, etwa für Wartungsarbeiten (Emergency-System) oder um ein Linux-System ohne eigentliche Installation verwenden zu können (Live-Systeme). Populäre Vertreter dieser Linux-Gattung sind Devil Linux, Damn Small Linux, Parted Magic, Puppy, SystemRescueCd, TinyCore und TinyMe.
Andere Distributionen
Einen ziemlich guten Überblick über alle momentan verfügbaren Linux-Distributionen (egal ob kommerziellen oder anderen Ursprungs) finden Sie im Internet auf den folgenden Seiten: http://www.distrowatch.com/ http://lwn.net/Distributions/ http://www.linuxhq.com/dist.html Eine Empfehlung für eine bestimmte Distribution ist schwierig. Für Linux-Einsteiger ist es zumeist ein Vorteil, sich vorerst für eine weitverbreitete Distribution wie Fedora, openSUSE oder Ubuntu zu entscheiden. Zu diesen sind sowohl im Internet als auch im Buch- und Zeitschriftenhandel viele Informationen verfügbar. Bei Problemen ist es vergleichsweise leicht, Hilfe zu finden.
Die Qual der Wahl
Kommerzielle Linux-Anwender bzw. Server-Administratoren müssen sich entscheiden, ob sie bereit sind, für professionellen Support Geld auszugeben. In diesem Fall spricht wenig gegen die Marktführer Red Hat und Novell. Andernfalls sind CentOS, Debian und Ubuntu attraktive kostenlose Alternativen.
1.3 Traum und Wirklichkeit Dieser Abschnitt nimmt zu einigen oft gehörten Behauptungen und Vorurteilen zu Linux Stellung. Mein Ziel ist es, Ihnen ein abgerundetes Bild von Linux zu präsentieren, ohne die Übertreibungen vieler begeisterter Linux-Fans, aber auch ohne die Schwarzmalerei der Linux-Gegner, die Linux oft nur deswegen schlechtmachen, weil sie ihre eigenen Software-Geschäfte in Gefahr sehen. Es lässt sich nicht allgemeingültig sagen, ob Windows oder Linux schneller bzw. effizienter läuft. Wenn einzelne Programme unter Linux oder unter Windows schneller ausgeführt werden, hat das zumeist damit zu tun, für welches Betriebssystem das Programm optimiert wurde, welche Linuxund Windows-Versionen miteinander verglichen werden, welche Hardware für den Vergleich verwendet wurde etc.
Linux ist schneller als Windows
Nach wie vor gibt es Linux-Distributionen, die auf einem uralten 486er PC mit einigen MByte RAM laufen – freilich nur im Textmodus und nicht mit dem Funktionsreichtum aktueller Betriebssysteme. Interessanter ist ein Vergleich zwischen einer aktuellen Linux-Distribution und Windows 7: Für
Linux benötigt weniger Ressourcen als Windows
29
Kapitel 1
Was ist Linux?
einen komfortablen Desktop-Einsatz benötigen Sie in beiden Fällen einen einigermaßen aktuellen Rechner. Linux stellt dabei etwas geringere Hardware-Anforderungen als Windows. Linux ist sicherer als Windows
Alle gängigen Betriebssysteme leiden an Sicherheitsproblemen. Linux schneidet in den meisten Vergleichen relativ gut ab. Dennoch gibt es selbst in jahrzehntealten Netzwerkprogrammen immer wieder neue Sicherheitslücken. Letztlich hängt es vom Einsatzzweck ab, wie sicher Linux ist: » In Desktop-Anwendungen ist Linux im Gegensatz zu Windows fast vollständig virensicher. Es hat bis jetzt keinen einzigen nennenswerten Virenbefall unter Linux gegeben. Gewöhnliche Benutzer können unter Linux kaum größere Schäden am System anrichten. Anders als unter Windows es unter Linux verpönt, gewöhnliche Programme mit Systemadministratorrechten auszuführen. » Bei der Anwendung von Linux als Netzwerk- oder Internet-Server hängt die Sicherheit sehr stark von der Wartung des Systems ab. Beinahe zu allen Sicherheitsproblemen der vergangenen Jahre gab es bereits Updates, bevor diese Sicherheitsrisiken allgemein bekannt und von Hackern ausgenutzt wurden. Regelmäßige Updates sind also unverzichtbar! Zu nahezu allen Linux-Distributionen gibt es Update-Systeme. Sie aktualisieren sämtliche installierten Programme, sobald es neue bzw. sicherere Versionen gibt. Diese Update-Systeme funktionieren ausgezeichnet, setzen aber eine gute Internetverbindung voraus: Bei vielen Distributionen sind pro Monat Dutzende, manchmal über 100 MByte große Downloads erforderlich.
Linux ist stabiler als Windows
Als Linux in den 90er-Jahren populär wurde, begann Microsoft Windows 95 gerade seinen Siegeszug. Die Aussage, dass Linux viel stabiler als Windows sei, war damals leicht zu untermauern. Mittlerweile hat Microsoft durchaus respektable und stabile Windows-Versionen zustande gebracht. In jedem Fall erfordern Aussagen zur Stabilität von Linux jetzt eine Differenzierung: » Der Kernel an sich ist außerordentlich stabil. Ich arbeite nun schon seit vielen Jahren mit Linux, aber einen richtigen Absturz des gesamten Betriebssystems habe ich nur sehr selten erlebt (und meist war defekte oder falsch konfigurierte Hardware daran schuld). » Wenn Sie mit Linux aber das Gesamtsystem der mitgelieferten Software meinen (also eine ganze Distribution, inklusive Grafiksystem, KDE oder Gnome etc.), dann sieht es mit der Stabilität erheblich schlechter aus. Programme wie Firefox oder OpenOffice sind auch unter Linux nicht vor Abstürzen sicher. Als wie stabil Sie Linux empfinden, hängt davon ab, wie Sie Linux einsetzen: Die besten Erfahrungen werden Sie machen, wenn Sie Linux primär als Netzwerk-Server, als Workstation für eher wissenschaftlich orientierte Arbeiten oder zum Programmieren einsetzen. Je stärker Sie sich aber anwendungsorientierten Programmen zuwenden und Linux als Desktop-System einsetzen, desto eher werden Sie auch die negativen Seiten kennenlernen.
Linux ist billiger als Windows
30
Linux ist kostenlos erhältlich. Microsoft weist deswegen gern darauf hin, dass auch Schulungskosten etc. berücksichtigt werden müssen. (In solchen Rechenbeispielen wird Windows-Wissen meist als gottgegeben vorausgesetzt.) Außerdem ist nicht jede Linux-Distribution tatsächlich kostenlos. Gerade Firmen greifen oft zu den kommerziellen Angeboten von Red Hat oder Novell, die Support, lange Update-Zeiträume etc. einschließen. Aber selbst bei Berücksichtigung dieser Faktoren ist der Kostenvorteil von Linux nicht zu leugnen.
Open-Source-Lizenzen (GPL & Co.)
Wenn man einen PC kauft, ist Windows meist schon vorinstalliert. Insofern stellt es natürlich einen Mehraufwand dar, Linux zusätzlich zu installieren. Wie Sie im nächsten Kapitel feststellen werden, ist eine Linux-Installation aber mittlerweile unkompliziert – und sicher nicht schwieriger als eine Windows-Installation. (Aber wer installiert Windows schon selbst?)
Abschnitt 1.4
Linux ist kompliziert zu installieren
Problematisch ist lediglich die Unterstützung neuer Hardware, die unter Windows besser ist: Jeder Hersteller von Computer-Komponenten stellt selbstverständlich einen Windows-Treiber zur Verfügung. Vergleichbare Treiber für Linux müssen dagegen oft von der Open-Source-Gemeinschaft programmiert werden. Das dauert natürlich eine gewisse Zeit. Dieses Vorurteil ist alt, aber nicht mehr bzw. nur noch in einem sehr geringen Maß zutreffend. Linux ist anders zu bedienen als Windows, so wie auch Apples Mac OS X anders zu bedienen ist. Wirklich schwieriger ist die Handhabung von Linux zumeist nicht, lediglich die Umgewöhnung von Windows kann manchmal mühsam sein.
Linux ist kompliziert zu bedienen
Viele Programme wie Microsoft Office, Adobe Photoshop etc. stehen momentan nur für die Betriebssysteme Windows und Mac OS X zur Verfügung. Es gibt aber einige Auswege aus diesem SoftwareDilemma:
WindowsProgramme können unter Linux nicht ausgeführt werden
» Für viele Anwendungen stehen unter Linux vergleichbare Programme zur Verfügung – beispielsweise OpenOffice oder das Bildverarbeitungsprogramm Gimp. » Manche Windows-Programme können mit der kostenlosen Laufzeitumgebung Wine (Wine is not an emulator) unter Linux ausgeführt werden. Wine bietet allerdings wenig Komfort und ist nur für fortgeschrittene Linux-Anwender geeignet. » Einen höheren Grad an Kompatibilität bietet das kommerzielle Programm CrossOver, das auf Wine basiert. CrossOver erleichtert die Installation und Ausführung der meisten MicrosoftOffice-Komponenten sowie einiger anderer Programme. » Die Programme VMware, VirtualBox sowie diverse andere Virtualisierungslösungen gehen noch einen Schritt weiter: Sie emulieren gleich einen ganzen Rechner. Sie können darin eine WindowsInstallation durchführen und Windows dann in einem Fenster ausführen. Das funktioniert hervorragend, ist aber teuer: Sie brauchen eine Lizenz für Windows, dazu kommen bei kommerziellen Virtualisierungsprogrammen noch deren Kosten.
1.4 Open-Source-Lizenzen (GPL & Co.) Die Grundidee von »Open Source« besteht darin, dass der Quellcode von Programmen frei verfügbar ist und von jedem erweitert bzw. geändert werden darf. Allerdings ist damit auch eine Verpflichtung verbunden: Wer Open-Source-Code zur Entwicklung eigener Produkte verwendet, muss den gesamten Code ebenfalls wieder frei weitergeben. Die Open-Source-Idee verbietet übrigens keinesfalls den Verkauf von Open-Source-Produkten. Auf den ersten Blick scheint das ein Widerspruch zu sein. Tatsächlich bezieht sich die Freiheit in »Open Source« mehr auf den Code als auf das fertige Produkt. Zudem regelt die freie Verfügbarkeit des Codes auch die Preisgestaltung von Open-Source-Produkten: Nur wer neben dem Kompilat eines
31
Kapitel 1
Was ist Linux?
Open-Source-Programms weitere Zusatzleistungen anbietet (Handbücher, Support etc.), wird überleben. Sobald der Preis in keinem vernünftigen Verhältnis zu den Leistungen steht, werden sich andere Firmen finden, die es günstiger machen. General Public License (GPL)
Das Ziel der Open-Source-Entwickler ist es, ein System zu schaffen, dessen Quellen frei verfügbar sind und es auch bleiben. Um einen Missbrauch auszuschließen, sind viele Open-SourceProgramme durch die GNU General Public License (kurz GPL) geschützt. Hinter der GPL steht die Free Software Foundation (FSF). Diese Organisation wurde von Richard Stallman (der unter anderem auch Autor des Editors Emacs ist) gegründet, um hochwertige Software frei verfügbar zu machen. Die Kernaussage der GPL besteht darin, dass zwar jeder den Code verändern und sogar die resultierenden Programme verkaufen darf, dass aber gleichzeitig der Anwender/Käufer das Recht auf den vollständigen Code hat und diesen ebenfalls verändern und wieder kostenlos weitergeben darf. Jedes GNU-Programm muss zusammen mit dem vollständigen GPL-Text weitergegeben werden. Die GPL schließt damit aus, dass jemand ein GPL-Programm weiterentwickeln und verkaufen kann, ohne die Veränderungen öffentlich verfügbar zu machen. Jede Weiterentwicklung ist somit ein Gewinn für alle Anwender. Den vollständigen Text der GPL finden Sie hier: http://www.gnu.org/licenses/gpl.html Die Grundidee der GPL ist recht einfach zu verstehen, im Detail treten aber immer wieder Fragen auf. Viele dieser Fragen werden hier beantwortet: http://www.gnu.org/licenses/gpl-faq.html Wenn Sie glauben, dass Sie alles verstanden haben, sollten Sie das GPL-Quiz ausprobieren: http://www.gnu.org/cgi-bin/license-quiz.cgi
GPL-Versionen
Zurzeit sind drei GPL-Versionen gebräuchlich: GPL 1 (1985), GPL 2 (1991) und GPL 3 (2007). Zu den wichtigsten Neuerungen der GPL 3 zählen: » Internationalisierung: Die GPL 3 ist mit den Rechtskonzepten vieler Länder kompatibel. » Software-Patente: Wer Software unter der GPL 3 entwickelt bzw. weitergibt, darf die Nutzer der Software nicht aufgrund von Software-Patenten verklagen. » DRM (Digital Rights Management): Die GPL 3 nimmt gegen DRM-Software Stellung und stellt fest, dass DRM fundamental inkompatibel mit den Ideen der GPL ist. Die GPL 3 hat noch keine so breite Anwendung gefunden wie die GPL 2. Beispielsweise haben sich namhafte Kernelentwickler, darunter Linus Torvalds, gegen eine Umstellung der Kernellizenz auf die GPL 3 ausgesprochen. Das wäre auch aus praktischen Gründen schwierig: Sämtliche Entwickler, die Code zum Kernel beigesteuert haben, müssten zustimmen.
Lesser General Public License (LGPL)
32
Neben der GPL existiert noch die Variante LGPL (Lesser GPL). Der wesentliche Unterschied zur GPL besteht darin, dass eine derart geschützte Bibliothek auch von kommerziellen Produkten genutzt werden darf, deren Code nicht frei verfügbar ist. Ohne die LGPL könnten GPL-Bibliotheken nur wieder für GPL-Programme genutzt werden, was in vielen Fällen eine unerwünschte Einschränkung für kommerzielle Programmierer wäre.
Open-Source-Lizenzen (GPL & Co.)
Abschnitt 1.4
Durchaus nicht alle Teile einer Linux-Distribution unterliegen den gleichen Copyright-Bedingungen! Obwohl der Kernel und viele Tools der GPL unterliegen, gelten für manche Komponenten und Programme andere rechtliche Bedingungen:
Andere Lizenzen
» Beispielsweise gibt es für das X Window System eine eigene Lizenz. Das X Window System wurde ursprünglich von der amerikanischen Universität MIT entwickelt. Die jetzige Lizenz ist von einer früheren Lizenz des MIT abgeleitet. » Für manche Netzwerk-Tools gilt die BSD-Lizenz. BSD ist wie Linux ein freies Unix-System. Die BSD-Lizenz ist insofern liberaler als die GPL, als die kommerzielle Nutzung ohne die Freigabe des Codes zulässig ist. Die Lizenz ist daher vor allem für kommerzielle Programmierer interessant, die Produkte entwickeln möchten, deren Code sie nicht veröffentlichen müssen. » Für einige Programme gelten Doppellizenzen. Beispielsweise können Sie den Datenbank-Server MySQL für Open-Source-Projekte bzw. für die innerbetriebliche Anwendung gemäß der GPL kostenlos einsetzen. Wenn Sie hingegen ein kommerzielles Produkt auf der Basis von MySQL entwickeln und samt MySQL verkaufen möchten (ohne Ihren Quellcode zur Verfügung zu stellen), kommt die kommerzielle Lizenz zum Einsatz. Die Weitergabe von MySQL wird in diesem Fall kostenpflichtig. » Andere Programme sind zwar kommerziell, es ist aber dennoch eine kostenlose Nutzung möglich. Ein bekanntes Beispiel ist der Adobe Reader zum Lesen von PDF-Dokumenten: Zwar ist das Programm unter Linux kostenlos erhältlich (und darf auch in Firmen kostenlos eingesetzt werden), aber der Quellcode zu diesem Programm ist nicht verfügbar. Manche Distributionen kennzeichnen die Produkte, bei denen die Nutzung oder Weitergabe eventuell lizenzrechtliche Probleme verursachen könnte. Bei Debian befinden sich solche Programme in der Paketquelle non-free. Das Dickicht der zahllosen, mehr oder weniger »freien« Lizenzen ist schwer zu durchschauen. Die Bandbreite zwischen der manchmal fundamentalistischen Auslegung von »frei« im Sinne der GPL und den verklausulierten Bestimmungen mancher Firmen, die ihr Software-Produkt zwar frei nennen möchten (weil dies gerade modern ist), in Wirklichkeit aber uneingeschränkte Kontrolle über den Code behalten möchten, ist groß. Eine gute Einführung in das Thema geben die beiden folgenden Websites. Das Ziel von opensource.org ist es, unabhängig von Einzel- oder Firmeninteressen die Idee (oder das Ideal) von Software mit frei verfügbarem Quellcode zu fördern. Dort finden Sie auch eine Liste von Lizenzen, die der Open-Source-Idee entsprechen. http://www.heise.de/open/artikel/75786 http://www.opensource.org
Lizenzkonflikte zwischen Open- und Closed-Source-Software Wenn Sie Programme entwickeln und diese zusammen mit Linux bzw. in Kombination mit diversen Open-Source-Programmen oder -Bibliotheken verkaufen möchten, müssen Sie sich in die bisweilen verwirrende Problematik der unterschiedlichen Software-Lizenzen tiefer einarbeiten. Viele OpenSource-Lizenzen erlauben die Weitergabe nur, wenn auch Sie Ihren Quellcode im Rahmen einer Open-Source-Lizenz frei verfügbar machen. Auf je mehr Open-Source-Komponenten mit unterschiedlichen Lizenzen Ihr Programm basiert, desto komplizierter wird die Weitergabe.
Open-SourceLizenzen für SoftwareEntwickler
33
Kapitel 1
Was ist Linux?
Es gibt aber auch Ausnahmen, die die kommerzielle Nutzung von Open-Source-Komponenten erleichtern: Beispielsweise gilt für Apache und PHP sinngemäß, dass Sie diese Programme auch in Kombination mit einem Closed-Source-Programm frei weitergeben dürfen. Die Einhaltung der Regeln der GPL kann zumindest in Deutschland gerichtlich erzwungen werden. Diverse Fälle, in denen Firmen Open-Source-Bibliotheken eingesetzt haben, aber ihren eigenen Code nicht zur Verfügung stellen wollten, sind auf der folgenden Website dokumentiert. In den meisten Fällen konnte eine Einigung ohne Gerichtsverfahren erzielt werden. http://gpl-violations.org/ GPL-Probleme mit HardwareTreibern
Manche proprietäre Treiber für Hardware-Komponenten (z. B. für NVIDIA-Grafikkarten) bestehen zumeist aus einem kleinen Kernelmodul (Open Source) und diversen exteren Programmen oder Bibliotheken, deren Quellcode nicht verfügbar ist (Closed Source). Das Kernelmodul hat nur den Zweck, eine Verbindung zwischen dem Kernel und dem Closed-Source-Treiber herzustellen. Diese Treiber sind aus Sicht vieler Linux-Anwender eine gute Sache: Sie sind kostenlos verfügbar und ermöglichen es, diverse Hardware-Komponenten zu nutzen, zu denen es entweder gar keine oder zumindst keine vollständigen Open-Source-Treiber für Linux gibt. Die Frage ist aber, ob bzw. in welchem Ausmaß die Closed-Source-Treiber wegen der engen Verzahnung mit dem Kernel (der ja der GPL untersteht) die GPL verletzen. Viele Open-Source-Entwickler dulden die Treiber nur widerwillig. Eine direkte Weitergabe mit GPL-Produkten ist nicht zulässig, weswegen der Benutzer die Treiber in der Regel selbst herunterladen und installieren muss.
1.5 Die Geschichte von Linux 1982: GNU
Da Linux ein Unix-ähnliches Betriebssystem ist, müsste ich an dieser Stelle eigentlich mit der Geschichte von Unix beginnen – aber dazu fehlt hier der Platz. Stattdessen beginnt diese Geschichtsstunde mit der Gründung des GNU-Projekts durch Richard Stallman. GNU steht für GNU is not Unix. In diesem Projekt wurden seit 1982 Open-Source-Werkzeuge entwickelt. Dazu zählen der GNU-CCompiler, der Texteditor Emacs, diverse GNU-Utilities wie find und grep etc.
1989: GPL
Erst sieben Jahre nach dem Start des GNU-Projekts war die Zeit reif für die erste Version der General Public License. Diese Lizenz stellt sicher, dass freier Code frei bleibt.
1991: LinuxKernel 0.01
Die allerersten Teile des Linux-Kernels (Version 0.01) entwickelte Linus Torvalds, der den Programmcode im September 1991 über das Internet freigab. In kürzester Zeit fanden sich weltweit Programmierer, die an der Idee Interesse hatten und Erweiterungen dazu programmierten. Sobald der Kernel von Linux so weit entwickelt worden war, dass der GNU-C-Compiler darauf lief, stand mit einem Schlag die gesamte Palette der GNU-Tools zur Verfügung. Aus dem bloßen Kernel wurde also plötzlich ein recht vollständiges System. Weitere Komponenten waren das Dateisystem Minix, Netzwerk-Software von BSD-Unix, das X Window System des MIT und dessen Portierung XFree86 etc. Damit sollte klar sein, dass Linux nicht allein Linus Torvalds zu verdanken ist (auch wenn es ohne ihn Linux in seiner heutigen Form nicht gäbe). Hinter Linux stehen vielmehr eine Menge engagierter
34
Software-Patente und andere Ärgernisse
Abschnitt 1.6
Menschen, die seit Jahren in ihrer Freizeit, im Rahmen ihres Informatikstudiums und zum Teil auch bezahlt von Firmen wie IBM oder HP freie Software produzieren. Allein der Kernel von Linux umfasst mittlerweile viele Millionen Programmzeilen! Informatik-Freaks an Universitäten konnten sich Linux und seine Komponenten selbst herunterladen, kompilieren und installieren. Eine breite Anwendung fand Linux aber erst mit LinuxDistributionen, die Linux und die darum entstandene Software auf Disketten bzw. CD-ROMs verpackten und mit einem Installationsprogramm versahen. Es ist bemerkenswert, dass vier der zu dieser Zeit entstandenen Distributionen bis heute existieren: Debian, Red Hat, Slackware und SUSE.
1994: Erste Distributionen
1996 wurde der Pinguin zum Linux-Logo.
1996: Pinguin
Mit dem rasanten Siegeszug des Internets stieg auch die Verbreitung von Linux, vor allem auf Servern. Gewissermaßen zum Ritterschlag für Linux wurde der legendäre Ausspruch von Steve Ballmer: Microsoft is worried about free software .... Ein Jahr später ging Red Hat spektakulär an die Börse.
1998: Microsoft nimmt Linux wahr
Nachdem Sun StarOffice gekauft und den Quellcode veröffentlicht hatte, wurde 2002 schließlich OpenOffice 1.0 fertiggestellt. Ein komplettes Office-Paket, eingebettet in eine komfortable Benutzeroberfläche (KDE oder Gnome), machte Linux büro- und massentauglich. Damit gelang Linux der Schritt aus der Freak- und Server-Ecke heraus. 2003 entschied sich die Stadt München dafür, rund 14.000 Rechner von Windows NT auf Linux umzustellen.
2002: Linux fürs Büro
Die Android-Plattform von Google bringt Linux ab 2009 in ständig wachsenden Stückzahlen auf das Handy.
2009: Linux fürs Handy
1.6 Software-Patente und andere Ärgernisse Vieles deutet darauf hin, dass Linux in Zukunft eine noch höhere Bedeutung und Verbreitung finden wird: Die Entwicklung schreitet auf allen Ebenen (Kernel, Server-Programme, Anwendungen) rasch voran, immer mehr Behörden und Firmen erkennen die Vorteile von Linux etc. Es gibt aber auch Stolpersteine, die das Thema dieses Abschnitts sind. Software-Patente schützen in den USA und einigen anderen Ländern Software-Ideen, -Konzepte und Algorithmen. Alles Mögliche und Unmögliche ist schon patentiert, bisweilen vollkommen triviale Dinge wie die Darstellung eines Fortschrittsbalkens oder die berühmte 1-Click-Bestellung (Amazon). Der Missbrauch derartiger Trivialpatente und die für die schnelllebige Software-Branche unsinnig langen Laufzeiten von 20 Jahren tragen zum Widerwillen gegen Software-Patente bei. Sie können davon ausgehen, dass jedes Programm, das mehr als einige 100 Zeilen Code enthält, weltweit irgendwelche Patente verletzt ...
SoftwarePatente
Während große Firmen mit riesigen Patent-Pools zumeist auf gegenseitige Klagen verzichten (eine Art Gleichgewicht des Schreckens), sehen sich die Open-Source-Gemeinde und insbesondere einzelne Entwickler durch Software-Patente bedroht. Die Open-Source-Gemeinde sowie viele kleine Software-Unternehmen betrachten Software-Patente daher als fortschritts- und wettbewerbshemmend.
35
Kapitel 1
Was ist Linux?
Die Entscheidung des Europäischen Patentamts gegen die Einführung von Software-Patenten in Europa im Sommer 2005 war einer der wenigen Lichtblicke. Da Linux aber auch außerhalb Europas eingesetzt wird, beschränken Software-Patente den Lieferumfang vieler Distributionen: Beispielsweise verzichten viele Distributionen aus Angst vor Klagen darauf, Bibliotheken zum Abspielen von MP3-Dateien mitzuliefern; die darin eingesetzten Algorithmen sind durch Patente geschützt. Es bleibt jedem Benutzer überlassen, entsprechende Bibliotheken selbst zu installieren. Patent-Pools der Open-SourceGemeinde
Ganz aussichtslos ist die Lage freilich auch nicht. Das liegt vor allem daran, dass einige Linux nahestehende Firmen wie IBM selbst über riesige Patent-Pools verfügen. Gleichzeitig haben diverse Linux-Firmen damit begonnen, selbst Patente zu sammeln, die teilweise von anderen Firmen gleichsam für Open-Source-Zwecke »gespendet« wurden. Das Absurde der Situation besteht darin, dass ein verfehltes Patentrecht die Open-Source-Gemeinde dazu zwingt, selbst Patente einzusetzen, um sich gegen eventuelle Klagen zu schützen. Details über Patent-Tools der Open-Source-Gemeinde finden Sie hier: http://www.patent-commons.org/ http://www.openinventionnetwork.com/
Multimedia
Ein weiteres Problemfeld ist der Multimedia-Markt. Schon jetzt können Sie unter Linux Ihre ganz legal erworbenen DVDs nicht abspielen. Diese Einschränkung ist juristischer Natur, nicht technischer. Die meisten DVDs sind durch ein ziemlich primitives Verschlüsselungsverfahren geschützt. Ähnlich sieht es bei Blu-Ray-Disks aus: Deren Schutzverfahren sind zwar technisch etwas ausgereifter als bei DVDs, mittlerweile aber ebenfalls geknackt. Das ist aber noch keine echte Lösung für das Problem: Diverse Gesetze verbieten in vielen Ländern sowohl die Weitergabe der erforderlichen Bibliotheken als auch die bloße Beschreibung, wie diese zu installieren sind (Urheberrechtsgesetz in Deutschland).
Digital Rights Management
Nicht besser sieht es mit online erworbenen Daten (Audio, Video, Textdokumenten etc.) aus, die durch DRM geschützt sind. DRM steht für Digital Rights Management und bezeichnet diverse Verfahren, die Nutzung der Daten so einzuschränken, dass sie nur auf einem ganz bestimmten Rechner möglich ist. Sozusagen nebenbei werden Sie dadurch auf eine bestimmte Hardware (z. B. iPod oder iPhone) bzw. auf ein bestimmtes Betriebssystem (z. B. Windows, Mac OS) beschränkt. DRM-Gegner bezeichnen das System nicht umsonst als Digital Restriction Management. DRM und Open Source sind fundamental inkompatibel zueinander. Deswegen erfordert der legale Zugriff auf DRM-geschützte Inhalte kommerzielle Closed-Source-Programme, die für Linux aber selten verfügbar sind.
SCO
Ein Thema für sich ist die SCO-Klage: Am 7. März 2003 reichte die Firma SCO eine Klage gegen die Firma IBM ein (Streitwert: eine Milliarde Dollar). SCO warf IBM unter anderem vor, dass IBM im Linux-Kernel durch Copyrights geschützten Unix-Code von SCO eingesetzt habe. Daraus folgerte SCO, dass jede Anwendung von Linux ab Kernel 2.4 illegal sei. Zur Legalisierung bot SCO LinuxAnwendern eine Weile eine spezielle Lizenz an, deren Preis aber ein Vielfaches dessen betrug, was eine Linux-Distribution üblicherweise kostet. Obwohl bisher sämtliche Prozesse bzw. Instanzen zuungunsten SCOs entschieden haben, ist der Rechtsstreit noch immer nicht definitiv abgeschlossen. Schon jetzt kann aber festgestellt werden, dass von SCO keine Gefahr für Linux ausgeht.
36
2. Installation Dieses Kapitel gibt einen Überblick über die Installation eines Linux-Systems auf einem PC oder einem Notebook mit einem Intel-kompatiblen Prozessor. Das Kapitel bezieht sich nicht auf eine spezielle Distribution, sondern beschreibt wesentliche Installationsschritte wie die Partitionierung der Festplatte in allgemeiner Form und vermittelt das erforderliche Grundlagenwissen. Spezifische Details zur Installation einiger ausgewählter Distributionen finden Sie ab Seite 1053. Die Installation ist in den vergangenen Jahren immer einfacher geworden. Im Idealfall – d. h., wenn Sie Standard-Hardware verwenden und ausreichend Platz für Linux vorhanden ist – sollten 30 Minuten ausreichen, um zu einem funktionierenden Linux-System zu gelangen. Schwierig wird die Installation zumeist nur deswegen, weil im Regelfall ein wechselweiser Betrieb von einem schon vorhandenen Windows-Betriebssystem und von Linux gewährleistet werden soll. Probleme kann es aber auch bei der Unterstützung ungewöhnlicher oder ganz neuer Hardware geben.
2.1 Voraussetzungen Damit Sie Linux installieren können, müssen mehrere Voraussetzungen erfüllt sein: » Sie benötigen einen PC bzw. ein Notebook mit einem Intel-Pentium-kompatiblen Prozessor. Dazu zählen alle gängigen 32- und 64-Bit-Prozessoren von Intel, AMD und VIA. Es gibt auch LinuxDistributionen für Systeme mit anderen Prozessor-Architekturen (z. B. IBM PowerPC oder Arm). » Sie benötigen eine freie Partition mit ausreichend Platz auf Ihrer Festplatte. Wie viel »ausreichend« ist, hängt von der Distribution und davon ab, wie viele Programme Sie installieren und welche persönlichen Daten Sie speichern möchten (Fotos, Videos etc.). Meine Minimalempfehlung lautet 10 GByte. Damit haben Sie nicht nur Platz für viele Programme, sondern auch noch etwas Reserve für eigene Daten. (Was eine Partition ist, wird ab Seite 45 ausführlich erklärt.) » Sie benötigen Hardware-Komponenten, die von Linux erkannt und unterstützt werden. Gegenwärtig ist das bei einem Großteil der Standard-Hardware der Fall. Probleme können ganz neue Grafikkarten sowie manche WLAN-Karten bereiten. Eine weitere Problemquelle sind neue Notebooks. Nicht unterstützt werden die meisten sogenannten GDI-Drucker und Win-Modems. (Aktuelle Informationen zu diesem Thema finden Sie im Internet. Tabelle 1.1 auf Seite 24 listet entsprechende Internet-Seiten auf.) » Manche Linux-Programme nutzen die mittlere Maustaste. Insofern ist eine Maus mit drei Tasten oder eine Maus mit einem drückbaren Rad praktisch. (Bei Mäusen mit nur zwei Tasten müssen beide Tasten gemeinsam gedrückt werden, um die fehlende dritte Taste zu simulieren.)
Hinweis
Kapitel 2
Installation
Wie ich im vorigen Kapitel erwähnt habe, gibt es auch Minimal-Distributionen, die wesentlich geringere Hardware-Anforderungen stellen. In diesem Kapitel gehe ich aber davon aus, dass Sie eine gewöhnliche Distribution installieren – z. B. Debian, Fedora, Kubuntu, Mandriva, Red Hat, SUSE oder Ubuntu. Wenn Sie Virtualisierungsprogramme wie VirtualBox oder VMware einsetzen, können Sie Linux auch innerhalb von Windows in einer virtuellen Umgebung installieren und ausführen. Das vereinfacht die Installation, mindert aber auch die Funktionalität (nur limitierter Hardware-Zugriff, deutlich geringere Ausführungsgeschwindigkeit etc.). Einige Tipps zum virtuellen Linux-Einstieg finden Sie auf Seite 71.
32- oder 64-Bit? In fast allen gängigen PCs und Notebooks befinden sich 64-Bit-Prozessoren. Der wesentliche Unterschied zu 32-Bit-Prozessoren besteht darin, dass damit Speicherbereiche über 4 GByte direkt adressiert werden können. Dieser Vorteil kommt zum Tragen, wenn Sie zumindest 4 GByte RAM besitzen, Programme mit sehr hohem Speicherbedarf nutzen und eine 64-Bit-Distribution einsetzen. Im gewöhnlichen Desktop-Einsatz auf PCs mit bis zu 4 GByte Speicher bieten 64-Bit-Prozessoren dagegen keine nennenswerten Vorteile. 64-BitDistributionen
Aus technischen Gründen werden die Vorteile der 64-Bit-Architektur nur wirksam, wenn die gesamte Distribution aus 64-Bit-Programmen und -Bibliotheken besteht. Aus diesem Grund ist eine universelle 32/64-Bit-Distribution unmöglich. Stattdessen gibt es von den meisten Distributionen zwei Ausführungen: eine 32-Bit-Version (übliche Kürzel sind i386, i586 oder i686 und beziehen sich auf Intel-Prozessorfamilien) und eine 64-Bit-Version (Kürzel x86_64 oder AMD64). SUSE verpackt beide Versionen auf eine einzige doppellagige DVD, aber das ändert nichts daran, dass es sich letztlich doch um zwei unterschiedliche Varianten derselben Distribution handelt. Gängige 64-Bit-Prozessoren sind vollständig abwärtskompatibel zu 32-Bit-Prozessoren. Aus diesem Grund ist es möglich, auf einem 64-Bit-Rechner wahlweise eine 32-Bit- oder eine 64-Bit-Distribution zu installieren. Diese Entscheidung ist endgültig: Ein späterer Wechsel zwischen 32/64-Bit ist nur durch eine Neuinstallation möglich. In der Vergangenheit mussten sich Anwender von 64-Bit-Distributionen damit herumärgern, dass es diverse Nicht-Open-Source-Programme und -Treiber nur in 32-Bit-Versionen gab. Das hat sich mittlerweile zum Glück geändert. Einzelne Programme, die noch immer nicht als 64-Bit-Kompilat zur Verfügung stehen (z. B. der Adobe Reader), können nach der Installation einiger 32-Bit-Bibliotheken auch in einer 64-Bit-Distribution ausgeführt werden.
Empfehlungen
38
Bei einer Server-Installation sollten Sie unbedingt die 64-Bit-Version Ihrer Lieblingsdistribution verwenden. Bei einer Desktop-Installation hängt die Entscheidung vom verfügbaren Speicher ab: Wenn Ihr Rechner 4 GByte oder mehr hat bzw. wenn eine spätere Speicheraufrüstung möglich ist, verwenden Sie die 64-Bit-Variante. Wenn Ihr Rechner weniger Speicher hat, ist die 32-Bit-Variante oft die bessere Wahl, weil sie etwas weniger Speicherplatz beansprucht. Während der Arbeit an diesem Buch habe ich überwiegend 64-Bit-Distributionen genutzt. Nur auf einem Netbook kamen 32-BitDistributionen zum Einsatz.
Installationsvarianten
Abschnitt 2.2
2.2 Installationsvarianten Bis vor wenigen Jahren verwendeten die meisten Distributionen dasselbe Installationsverfahren: Der Rechner wird neu gestartet, das auf der CD oder DVD befindliche Installationsprogramm wird ausgeführt, und Linux wird auf die Festplatte installiert. Dieses Verfahren ist nach wie vor populär, es gibt aber mittlerweile eine Menge Varianten, die ich Ihnen hier vorstelle. Das gängigste Installationsmedium ist eine CD oder DVD. Soweit Sie den Datenträger nicht aus einer Zeitschrift oder einem Buch entnehmen, laden Sie die entsprechende ISO-Datei aus dem Internet herunter und brennen die CD oder DVD einfach selbst. Anschließend starten Sie Ihren Rechner neu und führen das auf der CD oder DVD befindliche Installationsprogramm aus.
Installationsmedium
Mit der wachsenden Verbreitung von Netbooks und Mini-Notebooks, denen ein CD/DVD-Laufwerk fehlt, sind die Distributoren (endlich) auf die Idee gekommen, einen USB-Stick oder eine Speicherkarte als Installationsmedium zu verwenden. Manche Distributoren stellen speziell für USBDatenträger eigene Image-Dateien zum Download zur Verfügung. Linux-Freaks können derartige Image-Dateien einfach mit dem Kommando dd auf den USB-Stick oder die Speicherkarte kopieren (siehe Seite 1147). Wer sich das nicht zutraut, kann diesen Schritt komfortabler mit einer Benutzeroberfläche durchführen, beispielsweise mit dem USB-ImageWriter (siehe Seite 1111). Anschließend starten Sie Ihren Rechner neu und booten das Linux-Installationsprogramm vom USB-Stick. Es ist in der Regel unmöglich, eine ISO-Datei direkt von einem USB-Stick zu starten. (Ausnahmen sind aktuelle ISO-Dateien von Fedora und openSUSE, die auch USB-bootfähig sind.) Deswegen brauchen Sie entweder eine speziell für USB-Medien konzipierte Image-Datei, oder Sie müssen den Inhalt einer ISO-Datei auf dem USB-Medium auspacken und dort das Programm Syslinux installieren.
ISO-Dateien und USB-Sticks
Diese Aufgaben erledigt beispielsweise das Programm UNetbootin (siehe Abbildung 2.1), das Sie wahlweise unter Linux oder Windows ausführen. Anschließend wählen Sie entweder eine Distribution zum Download aus oder geben den Speicherort einer bereits vorher heruntergeladenen ISO-Datei an. Außerdem müssen Sie einstellen, in welches Device bzw. Laufwerk die Daten kopiert werden sollen. Da die ISO-Datei in entpackter Form auf den USB-Datenträger geschrieben wird, muss dieser oftmals wesentlich größer als die ISO-Datei sein. Sie finden dieses ausgesprochen nützliche Programm hier zum Download: http://unetbootin.sourceforge.net/ Traditionell wird von der Installations-CD oder -DVD zuerst ein minimales Linux-System und darin ein Installationsprogramm ausgeführt. Ein anderes Verfahren besteht darin, vom Installationsmedium ein Live-System zu starten. Das Installationsprogramm wird dann bei Bedarf innerhalb dieses Live-Systems gestartet. Diese Vorgehensweise hat den Vorteil, dass das Live-System auch für andere Zwecke verwendet werden kann – etwa um die Distribution auszuprobieren, um Reparaturarbeiten durchzuführen etc.
Installationsprogramm versus Live-System
Viele Distributionen bieten für beide Installationsvarianten eigene ISO-Dateien an. Der Vorteil der Live-Variante ist vielfach der geringere Download-Bedarf (eine CD statt einer DVD). Allerdings bietet die Live-Variante in der Regel weniger Auswahl- und Konfigurationsmöglichkeiten. Außerdem
39
Kapitel 2
Installation
Abbildung 2.1: ISO-Datei auf USB-Medium übertragen
werden vielfach nur englische Sprachpakete installiert. Eine positive Ausnahme ist in dieser Hinsicht Ubuntu, das sich auch bei einer Live-Installation um die korrekte Installation der gewünschten Sprachpakete kümmert. Kurzum: Wenn Sie die Wahl haben, sollten Sie das traditionelle Installationsverfahren vorziehen. Das gilt insbesondere dann, wenn Sie spezielle Konfigurationswünsche haben (LVM, RAID, Auswahl eines eigenen Dateisystemtyps etc.). Installation im Textmodus
Bei nahezu allen Distributionen erfolgt die Installation innerhalb einer grafischen Benutzeroberfläche. Optional kann die Installation zumeist auch im Textmodus durchgeführt werden, etwa wenn es Probleme bei der korrekten Erkennung der Grafikkarte gibt. Vereinzelt gibt es auch noch immer Distributionen, die nur im Textmodus installiert werden können, beispielsweise die Server-Variante von Ubuntu.
Installation auf ein USB-Medium
USB-Medien werden nicht nur als Quellmedium für das Installationsprogramm immer beliebter, sondern auch als Ziel einer Installation: Einige Distributionen bieten die Möglichkeit, Linux auf einen USB-Stick zu installieren. Das ergibt dann ein »Linux zum Mitnehmen«, das unterwegs nahezu auf jedem beliebigen Rechner ausgeführt werden kann. Oft handelt es sich bei dieser Installationsvariante nicht um eine vollwertige Installation; vielmehr wird einfach ein Live-System auf den USB-Stick übertragen. Daraus ergeben sich diverse Einschränkungen, etwa was die Installation weiterer Programme oder die Durchführung von Updates betrifft. Ein Live-System – egal, ob auf einer CD oder auf einem USB-Stick – kann eine »richtige« Installation nie ersetzen.
Installation auf eine externe Festplatte
Sie können Linux auch auf eine externe Festplatte installieren. Diese Variante sieht auf den ersten Blick verlockend aus, insbesondere bei Notebooks, deren eingebaute Festplatte schon voll ist. Leider gibt es bei dieser Installationsvariante oft Probleme, das Linux-System anschließend zu starten. Deswegen ist diese Installationsform nur fortgeschrittenen Linux-Anwendern zu empfehlen. Entscheidend ist der Ort, wohin der Bootloader GRUB installiert wird. Dabei gibt es zwei Varianten:
40
Installationsvarianten
Abschnitt 2.2
» Der Bootloader wird in den ersten Sektor der externen Festplatte installiert. Gleichzeitig muss das BIOS des Rechners so eingestellt werden, dass die externe Festplatte als bevorzugtes BootMedium gilt. Mit anderen Worten: Wenn die externe Festplatte angesteckt ist, startet Linux, sonst das auf der internen Festplatte befindliche Windows. » Der Bootloader wird in den ersten Sektor der ersten internen Festplatte installiert. Der Bootprozess gelingt allerdings nur, wenn die externe Festplatte während des Bootprozesses korrekt erkannt wird. Das ist nach meinen Erfahrungen nicht immer der Fall. Der irreführende Begriff »Windows-Installation« bedeutet, dass die Linux-Installation nicht mit einem Neustart des Rechners, sondern direkt unter Windows beginnt. Es gab in der Vergangenheit mehrfach den Versuch, die Hemmschwelle einer Linux-Installation auf diese Weise zu minimieren. Wirklich ausgereift ist in dieser Hinsicht allerdings nur WUBI: Dabei handelt es sich um eine besonders einfache Installationsvariante für Ubuntu. Die Installationseinstellungen und Vorbereitungsarbeiten werden unter Windows durchgeführt. Anschließend ist aber auch bei WUBI ein Neustart des Rechners erforderlich. Die weitere Installation erfolgt automatisch. Weitere Informationen zu WUBI finden Sie auf Seite 1112 sowie auf der folgenden Webseite:
WindowsInstallation
http://wubi-installer.org/ Bei einer Netzwerkinstallation werden die Installationsdateien nicht von einer CD oder DVD gelesen, sondern aus dem Netzwerk. Dabei gibt es zwei Varianten, die sich darin unterscheiden, wie die Installation beginnt:
Netzwerkinstallation
» Installationsstart mit einem herkömmlichen Medium: Hier startet die Installation von einer CD oder einem USB-Stick. Das Installationsprogramm hilft bei der Herstellung der Netzwerkverbindung und lädt dann alle weiteren Daten aus dem Netz. Besonders populär ist diese Installationsform bei Debian (mit dem sogenannten netinst-Image). » Installationsstart via Netzwerk: Diese »echte« Netzwerkinstallation setzt voraus, dass Ihr Rechner die Boot-Daten aus dem lokalen Netzwerk laden kann. Die meisten gängigen Mainboards sind dazu in der Lage, wenn das BIOS korrekt eingestellt wird. Außerdem muss es im lokalen Netzwerk einen Server geben, der das Linux-Installationsprogramm als Boot-Daten anbietet. Diese Vorgehensweise ist optimal, um viele Linux-Installationen auf einmal durchzuführen (z. B. in einer Firma oder einer Schule). Allerdings ist das Einrichten des Installations-Servers nicht ganz einfach. Zudem unterstützen nur ausgewählte Distributionen dieses Installationsverfahren (z. B. Red Hat und SUSE). Wenn Sie Debian auf mehreren Rechnern automatisch installieren möchten, werfen Sie einen Blick auf die folgende Seite: http://fai-project.org/ Um mehrere Distributionen auszuprobieren oder um eine neue Version Ihrer Distribution parallel zur vorhandenen Version zu installieren, können Sie die Distributionen gleichsam nebeneinander auf Ihrer Festplatte installieren. Dazu benötigt jede Distribution ihre eigene Systempartition. Die wichtigste Voraussetzung besteht also darin, dass auf Ihrer Festplatte Platz für weitere Partitionen ist. (Swap- und Datenpartitionen können auf Wunsch von unterschiedlichen Distributionen gemeinsam genutzt werden.)
Installation mehrerer LinuxDistributionen auf einem Rechner
41
Kapitel 2
Installation
Der zweite entscheidende Punkt ist die richtige Installation des Bootloaders. Wenn Sie den Bootloader einfach in den Bootsektor der Festplatte installieren und das Installationsprogramm die bereits installierten Distributionen nicht erkennt, können Sie anschließend nur die neue, nicht aber die alte Distribution starten. Sicherer ist es, Sie befolgen die auf Seite 708 beschriebene Vorgehensweise: Kurz gefasst geht es darum, den Bootloader bei der Neuinstallation in den Bootsektor der neuen Systempartition zu installieren, dann wieder die alte Distribution zu starten und dort die Konfigurationsdatei des Bootloaders so zu ändern, dass in Zukunft beide Distributionen zur Auswahl stehen.
2.3 Überblick über den Installationsprozess Dieser Abschnitt fasst die Schritte einer gewöhnlichen Linux-Installation zusammen. »Gewöhnlich« bedeutet hier, dass auf dem Rechner bereits Microsoft Windows installiert ist. Wesentlich einfacher verläuft die Installation, wenn auf dem Rechner noch kein Betriebssystem installiert ist oder wenn dieses gelöscht werden darf. Nun aber zu den Installationsschritten: » Linux-Installation starten: Legen Sie die Installations-CD in das Laufwerk ein, und starten Sie den Rechner neu. Das Linux-Installationsprogramm sollte automatisch gestartet werden (siehe Seite 43). Das Installationsprogramm sieht bei jeder Distribution ein wenig anders aus. Für einige Distributionen finden Sie ab Seite 1053 Details zur Bedienung dieses Programms. Die ersten Fragen betreffen zumeist die Sprache der Benutzeroberfläche sowie die Konfiguration von Tastatur und Maus. Falls Sie als Installationsmedium einen USB-Stick oder eine Speicherkarte verwenden, müssen Sie während des Starts explizit angeben, dass Sie davon booten möchten. Die erforderlichen Tastenkombinationen hängen vom BIOS Ihres Rechners ab. (Sehr alte Rechner sind nicht in der Lage, von USB-Medien zu booten.) » Windows-Partition verkleinern: Normalerweise füllt Windows die gesamte Festplatte in einer einzigen, sehr großen Partition. Um Platz für Linux zu machen, muss diese Partition verkleinert werden. Bei den meisten Distributionen kümmert sich das Installationsprogramm um diesen Schritt. Nur wenn Ihre Distribution diese Möglichkeit nicht bietet oder wenn die Verkleinerung nicht klappt, müssen Sie Hand anlegen und die Windows-Partition vor dem Start der LinuxInstallation selbst verkleinern (siehe ab Seite 55). » Linux-Partitionen anlegen: Ein wesentlicher Schritt jeder Installation ist das Anlegen von LinuxPartitionen auf der Festplatte. Wie das Partitionierprogramm aussieht, hängt stark von der jeweiligen Distribution ab. Davon unabhängig finden Sie ab Seite 56 Grundlageninformationen und Tipps zur Partitionierung. » Installationsumfang auswählen: Bei vielen Distributionen können Sie auswählen, welche Teile der Linux-Distribution Sie installieren möchten (siehe Seite 60). Bei einigen Distributionen entfällt dieser Schritt (z. B. bei Ubuntu). Stattdessen wird hier ein relativ kleines Grundsystem installiert. Weitere Programme fügen Sie dann später bei Bedarf im laufenden Betrieb hinzu. » Konfiguration: Je nach Installationsprogramm folgen nun diverse Rückfragen zur Konfiguration – z. B. zum gewünschten Passwort für den Administrator root, zu den Netzwerkeinstellungen, zur Druckerkonfiguration etc. (siehe Seite 61).
42
Start der Linux-Installation
Abschnitt 2.4
» Bootloader: Ungeklärt ist jetzt nur noch eine Frage: Wie soll Linux in Zukunft gestartet werden? Dazu wird bei den meisten Distributionen das Programm GRUB eingesetzt (siehe Seite 63). GRUB kann wahlweise in den Bootsektor der Festplatte oder in den ersten Sektor einer LinuxPartition installiert werden. Am komfortabelsten ist die erste Variante: In diesem Fall erscheint der Bootloader bei jedem Start, und Sie können auswählen, welches Betriebssystem Sie starten möchten. Der Nachteil besteht allerdings darin, dass die GRUB-Installation in seltenen Fällen Konflikte mit dem bisher installierten Bootloader verursacht. Insgesamt wird die Erstinstallation von Linux vermutlich etwa eine Stunde in Anspruch nehmen. (Mit etwas Übung und einem schnellen Rechner gelingt sie aber auch in 15 Minuten!) Anschließend können Sie mit Linux zu arbeiten beginnen bzw. manuell weitere Konfigurationsschritte durchführen und Linux optimal an Ihre besonderen Ansprüche anpassen. Tipps für Ihre ersten Schritte unter Linux finden Sie ab Seite 73.
Hinweis
Es gibt während einer Linux-Installation nur zwei kritische Phasen, in denen Sie unbeabsichtigt Daten anderer Betriebssysteme zerstören oder Ihren Rechner nicht mehr startbar machen können: bei der Partitionierung der Festplatte und bei der Installation des Bootloaders auf die Festplatte. Führen Sie diese Schritte also mit besonderer Vorsicht aus. Diverse Installationsvarianten werden ab Seite 39 behandelt: Dort finden Sie unter anderem Informationen zur Installation über ein Netzwerk.
2.4 Start der Linux-Installation Sie beginnen die Installation damit, dass Sie die Installations-CD oder -DVD in Ihr CD/DVD-Laufwerk legen und den Rechner neu starten. Statt des üblichen Starts Ihres bereits installierten Betriebssystems sollte nun ein Linux-System bzw. das Linux-Installationsprogramm direkt von der CD starten.
Von einer CD/DVD starten
Sollte dies nicht gelingen, ist Ihr BIOS vermutlich so konfiguriert, dass ein Booten von einer CD/DVD nicht möglich ist. Das BIOS steuert auf unterster Ebene Ihren Rechner. Diverse Konfigurationsdaten werden in einem kleinen BIOS-RAM gespeichert. Dieser Speicher ist durch eine Batterie gepuffert und bleibt daher auch nach dem Ausschalten erhalten. Um die BIOS-Einstellungen zu ändern, müssen Sie unmittelbar nach dem Einschalten des Rechners eine Taste drücken (häufig (Entf) oder (F1)). Wie Sie in das BIOS-Menü gelangen bzw. wie die Veränderung des BIOS im Detail erfolgt, hängt von Ihrem Mainboard ab und kann daher hier nicht beschrieben werden. Informationen darüber finden Sie im Handbuch zu Ihrem Rechner (genau genommen: zum Mainboard). Beachten Sie, dass während der BIOS-Einstellung meist das amerikanische Tastaturlayout vorausgesetzt wird. Unter anderem sind (Y) und (Z) vertauscht! Auch wenn Sie als Installationsmedium einen USB-Stick oder eine Speicherkarte verwenden, müssen Sie den Rechner neu starten. Abermals ist das BIOS dafür verantwortlich, ob ein Booten vom USB-Stick oder von der Speicherkarte möglich ist.
Von einem USB-Stick starten
43
Kapitel 2
Erste Einstellungen
Installation
Bei einigen Distributionen können Sie noch vor dem eigentlichen Start von Linux durch Funktionstasten die Sprache, das Tastaturlayout und eventuell einige weitere Parameter einstellen (siehe Abbildung 2.2). Bei anderen Distributionen erfolgen diese Einstellungen wenige Sekunden nach dem Start.
Abbildung 2.2: Sprachauswahl am Beginn einer SUSEInstallation Tastatureinstellungen
Bei manchen Distributionen können Sie ein Tastaturlayout mit oder ohne sogenannte Dead Keys auswählen. Mit diesen Tasten sind beispielsweise (’) und (~) gemeint. (De)aktiviert werden nicht die Tasten an sich, sondern das Zusammensetzen von Buchstaben mit diesen Tasten. Bei einem Tastaturlayout mit Dead Keys können Sie beispielsweise den Buchstaben Ç in der Form (~), (C) eingeben. Wenn Sie die den Dead Keys zugeordneten Zeichen selbst eingeben möchten, müssen Sie die betreffende Taste und danach die Leerzeichentaste drücken – also (~), (Leertaste) für ~. (Dieses Zeichen wird unter Linux relativ häufig benötigt.) Bei einem Tastaturlayout ohne Dead Keys können Sie keine ausländischen Sonderzeichen zusammensetzen. Dafür ist jetzt die Eingabe der den Dead Keys zugeordneten Zeichen einfacher, weil das betreffende Zeichen sofort erscheint.
Interna
Das Installationsprogramm läuft selbst unter Linux. Dazu wird vom Installationsmedium zuerst der Linux-Kernel geladen und dann das eigentliche Installationsprogramm gestartet. Der Kernel muss beim Start Ihre Hardware erkennen. Es werden zwar nicht alle HardwareKomponenten benötigt – die Soundkarte spielt für die Installation beispielsweise keine Rolle –, aber zumindest der Zugriff auf die Festplatten, auf das CD- oder DVD-Laufwerk oder auf die Netzwerkkarte muss funktionieren. Nun gibt es leider Dutzende SCSI-Karten und vermutlich Hunderte von Netzwerkkarten.
44
Grundlagen der Festplattenpartitionierung
Abschnitt 2.5
Anstatt gleich alle erdenklichen Treiber zu aktivieren, wird zuerst ein Minimalkernel geladen, der nur Standard-Hardware erkennt. Alle weiteren Hardware-Komponenten werden durch sogenannte Module unterstützt. Das Installationsprogramm versucht selbstständig, die richtigen Module zu aktivieren. Sollte das bei Ihrem Rechner nicht gelingen (das ist unwahrscheinlich), können Sie manche Installationsprogramme in einem speziellen Modus für Experten bzw. fortgeschrittene ComputerAnwender ausführen und die erforderlichen Hardware-Informationen selbst beisteuern.
2.5 Grundlagen der Festplattenpartitionierung Nach dem Start des Installationsprogramms und diversen elementaren Einstellungen ist die Partitionierung der Festplatte der erste entscheidende Schritt der Installation. Zwar bieten viele Installationsprogramme an, diesen Schritt automatisch zu erledigen, dabei ist aber Vorsicht angebracht: Nur in seltenen Glücksfällen entspricht das Resultat wirklich Ihren Bedürfnissen. Bevor der nächste Abschnitt konkrete Tipps zur Partitionierung gibt, erklärt dieser Abschnitt, was Partitionen sind und welche Regeln beim Anlegen von Partitionen zu beachten sind. Partitionen sind Abschnitte auf der Festplatte. Windows-Partitionen bekommen eigene Buchstaben (C:, D: etc.) und verhalten sich scheinbar wie selbstständige Festplatten.
Was sind Partitionen?
Im einfachsten Fall gibt es nur eine einzige Partition, die einfach die gesamte Festplatte umfasst. Wenn Sie einen vorkonfigurierten PC mit einem Windows-Betriebssystem kaufen, ist das der Regelfall. Mehrere Partitionen benötigen Sie, sobald Sie mehrere Betriebssysteme gleichzeitig auf Ihrem Rechner installieren möchten. Der Grund dafür besteht darin, dass unterschiedliche Betriebssysteme im Regelfall auch unterschiedliche Dateisysteme verwenden. Selbst wenn mehrere Betriebssysteme das gleiche Dateisystem unterstützen, ist es zumeist unumgänglich, die Betriebssysteme in unterschiedliche Partitionen zu installieren, um Doppelgleisigkeiten bei den Verzeichnisnamen zu vermeiden.
Wozu mehrere Partitionen?
Unter Linux kommt noch hinzu, dass es zumeist sinnvoll ist, für Linux selbst mehrere Partitionen vorzusehen – z. B. eine Partition für das Betriebssystem, eine für die eigenen Daten und eine als sogenannte Swap-Partition. Dabei handelt es sich um das Gegenstück zur Auslagerungsdatei von Windows.
Es gibt drei Typen von Festplattenpartitionen: primäre, erweiterte und logische Partitionen. Auf einer Festplatte können maximal vier primäre Partitionen existieren. Außerdem besteht die Möglichkeit, statt einer dieser vier primären Partitionen eine erweiterte Partition zu definieren. Innerhalb der erweiterten Partition können dann mehrere logische Partitionen angelegt werden.
Hinweis
Um es nochmals zu verdeutlichen: Für eine Linux-Installation kommt es nicht darauf an, wie viel Platz auf Ihrer Festplatte unter Windows noch frei ist. Diesen Platz – innerhalb einer WindowsPartition – können Sie nämlich für Linux nicht nutzen. Sie benötigen für die Linux-Installation Platz außerhalb der Windows-Partition, um dort neue Partitionen anzulegen. Die einzige Ausnahme ist eine WUBI-Installation, bei der ein Dateisystem innerhalb einer Windows-Datei angelegt wird (siehe Seite 1112).
Partitionstypen
45
Kapitel 2
Installation
Der Sinn von erweiterten und logischen Partitionen besteht darin, das historisch vorgegebene Limit von nur vier primären Partitionen zu umgehen. Beachten Sie, dass manche Partitionierwerkzeuge an der Oberfläche nicht zwischen verschiedenen Partitionstypen unterscheiden und sich selbstständig darum kümmern, wie die Partitionen intern angelegt werden. Eine erweiterte Partition dient nur als Container für logische Partitionen. Zur eigentlichen Speicherung von Daten sind nur primäre und logische Partitionen geeignet. Der Begriff »Partitionstyp« wird auch in einem anderen Kontext verwendet: Zusammen mit jeder Partition wird eine Zusatzinformation (eine Kennzahl) gespeichert, die angibt, für welches Betriebssystem die Partition gedacht ist (z. B. Windows, Linux, Novell Netware, BSD) bzw. welche Aufgabe der Partition zugeteilt ist. Linux kann auf jeder Festplatte maximal 15 Partitionen ansprechen, davon maximal 11 logische Partitionen.
Partitionierungshilfen
Um die Aufteilung der Festplatte zu verändern, sieht jedes Betriebssystem eigene Werkzeuge vor. Unter Windows 9x/ME ist es noch immer das aus DOS-Zeiten bekannte Programm FDISK. Seit Windows NT steht ein komfortableres Werkzeug mit grafischer Benutzeroberfläche zur Verfügung; der Aufruf ist allerdings bei jeder dieser Windows-Versionen ein wenig anders. Unter Windows 7 führen Sie SYSTEMSTEUERUNGjSYSTEM UND SICHERHEIT jVERWALTUNGjC OMPUTERVERWALTUNGjDATEN TRÄGERVERWALTUNG aus. Unter Linux stehen je nach Installationsprogramm diverse Partitionierungshilfen zur Verfügung. Sollte es damit Probleme geben, können Linux-Profis auch auf die Kommandos fdisk oder parted zurückgreifen (siehe Seite 615).
Tipp
Maximalanzahl der Partitionen
Die Partitionierung der Festplatte lässt sich nachträglich nur mit großem Aufwand ändern. In der Regel geht der Inhalt einer Partition verloren, wenn deren Größe verändert wird. Auch ein Verschieben von Partitionen ist nicht vorgesehen. Zwar gibt es kommerzielle und kostenlose Spezialprogramme, die bei derartigen Arbeiten helfen, aber auch für sie gelten viele Einschränkungen. Daher ist es empfehlenswert, die Partitionierung von Anfang an gut zu bedenken. Linux-Profis können viele Einschränkungen umgehen, indem sie das System LVM einsetzen (siehe Seite 50). Dabei handelt es sich um eine Zwischenschicht zwischen Partitionen und Dateisystemen.
Dateisysteme Durch das Partitionieren wird auf der Festplatte lediglich Platz reserviert. Bevor Sie in einer Partition Dateien speichern können, muss ein sogenanntes Dateisystem angelegt werden. Es enthält neben den eigentlichen Daten diverse Verwaltungsinformationen. Sowohl Windows als auch Linux kennen unterschiedliche Dateisystemtypen: » Unter Windows sind VFAT (Windows 9x/ME) und NTFS (alle Versionen ab Windows NT) gebräuchlich. » Unter Linux ist mittlerweile ext4 der beliebteste Dateisystemtyp. Auch sein Vorgänger ext3 ist eine gute Wahl. Tipps zur Auswahl des richtigen Dateisystemtyps finden Sie auf Seite 59. Detaillierte Hintergrundinformationen folgen ab Seite 622.
46
Grundlagen der Festplattenpartitionierung
Abschnitt 2.5
Das Anlegen eines Dateisystems in einer Partition wird auch Formatieren genannt. Unter Windows können Sie diese Operation über ein Kontextmenü im Explorer oder mit dem Programm FORMAT durchführen. Bei einer Linux-Installation kümmert sich das Installationsprogramm um die Formatierung, wobei hinter den Kulissen ein Kommando wie mkfs.ext4 zum Einsatz kommt.
Die einzige Ausnahme sind spezielle Werkzeuge zur verlustfreien Verkleinerung von Partitionen (siehe ab Seite 55).
Achtung
Im Regelfall gehen sowohl durch die Partitionierung als auch durch das Formatieren alle in der betroffenen Partition gespeicherten Daten verloren!
Partitionsnamen Unter Windows werden Partitionen, die das Betriebssystem nutzen kann, mit Laufwerksbuchstaben bezeichnet. A: und B: sind für Disketten reserviert. Die weiteren Buchstaben bezeichnen die primären und logischen Partitionen der Festplatte. (Erweiterte Partitionen erhalten keinen Laufwerksbuchstaben und sind somit unsichtbar.)
Windows
Die verschiedenen Windows-Versionen gehen unterschiedlich mit dem Fall um, dass später neue Partitionen oder Laufwerke hinzukommen. Bei Windows 9x/ME bekommen zuerst die primären Partitionen aller Festplatten bzw. Laufwerke einen Buchstaben. Erst anschließend werden auch die logischen Partitionen benannt. Ab Windows NT ändern sich bereits genutzte Laufwerksbuchstaben dagegen nicht mehr. Neue Laufwerke bzw. Partitionen bekommen einfach den ersten freien Buchstaben. Außerdem können Sie Laufwerken einen freien Buchstaben fix zuordnen. Partitionen mit fremden Dateisystemen (also z. B. Linux-Partitionen) bekommen keinen Laufwerksbuchstaben und sind daher in den meisten Programmen unsichtbar. Die Partitionen werden nur in Partitionierungsprogrammen angezeigt. Unter Linux erfolgt der interne Zugriff auf Festplatten bzw. deren Partitionen über sogenannte Devicedateien (siehe Tabelle 2.1). Die Festplatten erhalten der Reihe nach die Bezeichnung /dev/ sda, /dev/sdb, /dev/sdc etc. DEVICENAME
BEDEUTUNG
/dev/sda
erste Festplatte
/dev/sdb
zweite Festplatte
Linux
... /dev/sda1
die erste primäre Partition der Festplatte /dev/sda
/dev/sda2
die zweite primäre Partition
/dev/sda3
die erweiterte Partition
/dev/sda5
die erste logische Partition
/dev/sda8
die vierte logische Partition
...
Tabelle 2.1: Devicenamen von Festplattenpartitionen
47
Kapitel 2
Installation
Um eine einzelne Partition und nicht die ganze Festplatte anzusprechen, wird der Name um die Partitionsnummer ergänzt. Die Zahlen 1 bis 4 sind für primäre und erweiterte Partitionen reserviert. Logische Partitionen beginnen mit der Nummer 5 (auch dann, wenn es weniger als vier primäre oder erweiterte Partitionen gibt).
2.6 RAID, LVM und Verschlüsselung Dieser Abschnitt führt in die Grundlagen von RAID und LVM ein und geht kurz auf das Thema Verschlüsselung ein. Auch wenn Sie nicht vorhaben, diese modernen Hilfsmittel zur Verwaltung und Absicherung von Festplatten einzusetzen, sollten Sie diesen Abschnitt zumindest überfliegen: Viele Linux-Installationsprogramme unterstützen alle drei Verfahren. Nur wenn Sie die zugrunde liegenden Techniken zumindest oberflächlich kennen, können Sie die Tragweite einer Entscheidung für oder wider den Einsatz von RAID, LVM und Verschlüsselungstechniken abschätzen.
Redundant Array of Independent Disks (RAID) Die Grundidee von RAID besteht darin, Partitionen mehrerer Festplatten logisch miteinander zu verknüpfen. Das Ziel ist dabei, ein zuverlässigeres und/oder schnelleres Gesamtsystem zu schaffen: » Durch RAID kann die Datenübertragung gesteigert werden, indem der Datenzugriff von mehreren Festplatten parallel erfolgt. » Durch RAID kann aber auch die Sicherheit gesteigert werden, indem Daten redundant (mehrfach) gespeichert werden. Das ist allerdings mit Geschwindigkeitseinbußen verbunden und beansprucht zusätzlichen Speicherplatz. Hardware versus Software-RAID
Es gibt zwei grundsätzliche Möglichkeiten, RAID zu realisieren: durch Hardware (also durch einen Festplattencontroller, der die RAID-Logik selbst ausführt) oder durch Software, die von der CPU des Rechners ausgeführt wird. Hardware-RAID kommt vor allem in teuren Server-Systemen zum Einsatz. Seine größten Vorzüge liegen darin, dass die CPU nicht durch RAID-Aufgaben belastet wird und dass der RAID-Controller unabhängig vom Betriebssystem agiert. Bei Software-RAID wird zwischen verschiedenen Formen unterschieden, je nachdem, woher die Software kommt: » BIOS-RAID: Beim BIOS-RAID realisiert das BIOS eines ansonsten recht gewöhnlichen (also billigen) SATA- oder SCSI-Controllers in Kombination mit einem Betriebssystem-Treiber verschiedene RAID-Level. BIOS-RAID wird oft abfällig als Fakeraid bezeichnet. Das erklärt sich daraus, dass viele BIOS-RAID-Controller so angepriesen werden, als wären sie echte HardwareRAID-Controller – und das ist ganz einfach falsch. Das gilt insbesondere für die meisten gängigen SATA-RAID-Lösungen: http://linux-ata.org/faq-sata-raid.html
48
RAID, LVM und Verschlüsselung
Abschnitt 2.6
» Linux-Software-RAID: Linux kann durch den Multi Devices Driver Support mehrere Festplatten(partitionen) zu einem RAID verbinden. Das ist genauso schnell wie BIOS-RAID, lässt sich aber wesentlich besser administrieren. Aus Linux-Sicht ist diese RAID-Variante vorzuziehen. Wenn in diesem Buch ohne weitere Erläuterungen von RAID die Rede ist, dann ist immer Linux-SoftwareRAID gemeint! » Windows-Software-RAID: Auch Windows unterstützt seit Windows NT verschiedene RAIDVarianten in Form von Software-RAID. Derart eingerichtete Windows-Dateisysteme sind für Linux nicht lesbar.
Es gibt verschiedene Verfahren, um Festplattenpartitionen zu verbinden. Diese Varianten werden als »RAID-Level« bezeichnet:
Achtung
BIOS-RAID wird von vielen Distributionen nicht oder nur sehr halbherzig unterstützt. Versuchen Sie, BIOS-RAID nach Möglichkeit zu vermeiden! Wenn Sie auf Ihrem Rechner bereits BIOS-RAID eingerichtet haben und die auf den Festplatten gespeicherten Daten nicht verlieren möchten, sollten Sie Fedora oder Red Hat einsetzen. Diese Distributionen zeichnen sich durch die beste BIOSRAID-Unterstützung bereits während der Installation aus.
RAID-Level
» RAID-0 (Striping): Bei RAID-0 werden mehrere physikalische Partitionen zu einer größeren Partition vereint. Dabei werden die Daten parallel in kleinen Blöcken (z. B. 4 kByte) auf die einzelnen Partitionen verteilt, sodass die Daten beim Zugriff alternierend von allen Festplatten gelesen werden. Daraus ergibt sich im Idealfall eine Vervielfachung der Datenrate (d. h. bei drei Festplatten eine Verdreifachung). In der Praxis ist der Effekt meist kleiner als erhofft und kommt nur bei großen Dateien wirklich zum Tragen. Die Anzahl der Random-Access-Zugriffe pro Sekunde wird durch das Striping nicht verbessert. RAID-0 hat einen gravierenden Nachteil: Das Ausfallrisiko ist hoch, weil eine defekte Festplatte zum Verlust aller Daten führt. » RAID-1 (Mirroring): Bei RAID-1 werden dieselben Daten in der Regel auf zwei Partitionen gespeichert (selten auf mehr Partitionen). Wenn eine Festplatte ausfällt, stehen alle Daten auf der anderen Festplatte zur Verfügung. Der Vorteil ist die höhere Sicherheit, der Nachteil die halbierte Kapazität. RAID-1 bietet keine Geschwindigkeitsvorteile, vielmehr werden insbesondere Schreibvorgänge sogar ein wenig langsamer ausgeführt als bei der einfachen Verwendung einer Festplatte. » RAID-10: RAID-10 kombiniert RAID-1 und RAID-0 und setzt mindestens vier Festplatten bzw. Partitionen voraus: Die Festplatten 1 und 2 bilden einen RAID-1-Verbund, die Festplatten 3 und 4 einen weiteren RAID-1-Verbund. Auf der nächsten Ebene werden die beiden RAID-1-Verbunde zu einem RAID-0-Verbund kombiniert. Damit kombiniert RAID-10 die Vorteile von RAID-0 (Geschwindigkeit) und RAID-1 (Sicherheit). » RAID-5 (Parity Striping): RAID-5 funktioniert im Prinzip wie RAID-0, allerdings werden zusätzlich in einer (für jeden Datenblock wechselnden) Partition Paritätsinformationen gespeichert. Wenn eine Festplatte ausfällt, können die gesamten Daten rekonstruiert werden. Der Ausfall von zwei oder mehr Festplatten führt allerdings zu einem kompletten Datenverlust. RAID-5 setzt zumindest drei Festplatten voraus.
49
Kapitel 2
Installation
RAID-5 ist ebenso sicher wie RAID-1 und bei Lesezugriffen etwa so schnell wie RAID-0. Zudem hat RAID-5 den Vorteil, dass der für die Redundanz erforderliche Datenanteil mit der Anzahl der Festplatten kleiner wird: Bei RAID-1 beträgt der Kapazitätsverlust immer 50 Prozent, bei RAID-5 beträgt er nur 33 Prozent bei drei Festplatten, 25 Prozent bei vier, 20 Prozent bei fünf etc. RAID-5 hat gegenüber RAID-1 allerdings auch Nachteile: Zum einen sind Schreiboperationen langsamer als bei RAID-1, insbesondere wenn sich häufig kleine Datenmengen ändern. Der Grund ist, dass selbst bei kleinen Veränderungen die Paritätsinformationen für einen ganzen Datenblock neu berechnet und gespeichert werden müssen. Nach dem Austausch einer defekten Platte dauert die Rekonstruktion des RAID-5-Verbunds sehr lange (viel länger als bei RAID-1). Bei einem Software-RAID kann der RAID-Verbund während dieser Zeit nicht genutzt werden. Sollte während der Rekonstruktion eine weitere Platte ausfallen, sind alle Daten verloren. » RAID-6: RAID-6 funktioniert wie RAID-5, ist aber doppelt redundant und erfordert zumindest vier Festplatten. Selbst beim Ausfall von zwei Festplatten kommt es zu keinem Datenverlust. Weitere RAID-Level sowie viele interessante Details und Grundlagen zu RAID finden Sie im folgenden Wikipedia-Artikel: http://de.wikipedia.org/wiki/RAID
Logical Volume Manager (LVM) Der Logical Volume Manager setzt eine logische Schicht zwischen das Dateisystem und die Partitionen der Festplatte. Was zuerst sehr abstrakt klingt, hat in der Praxis durchaus handfeste Vorteile: » Im Rahmen des von LVM verwalteten Festplattenbereichs können Sie im laufenden Betrieb ohne Rechnerneustart Partitionen anlegen, vergrößern und verkleinern. Den vorhandenen LVMSpeicherpool können Sie jederzeit durch den Einbau einer weiteren Festplatte vergrößern. » Sie können dank LVM Bereiche mehrerer Festplatten zu einer einzigen, riesigen virtuellen Partition zusammenfassen. » Sie können sehr einfach einen sogenannten Snapshot eines Dateisystems erstellen. Das ist ideal für Backups im laufenden Betrieb. » LVM ist sehr schnell. Sie bezahlen für die höhere Flexibilität also nicht mit einer spürbar verringerten Geschwindigkeit. (Der Geschwindigkeitsunterschied gegenüber dem direkten Ansprechen einer Festplattenpartition ist kaum messbar. Die CPU-Belastung ist nur geringfügig höher.) LVM kann mit RAID kombiniert werden, indem ein RAID-Verbund als Grundlage für LVM verwendet wird. In diesem Fall muss zuerst RAID und dann darauf aufbauend LVM konfiguriert werden. Glossar
50
Die Fülle ähnlich lautender Begriffe und Abkürzungen erschwert den Einstieg in die LVM-Welt. Um die Konfusion nicht noch zu vergrößern, verzichte ich in diesem Abschnitt bewusst auf eine Übersetzung der Begriffe. Zwischen der Festplatte und dem Dateisystem stehen drei Ebenen: Physical Volumes, Volume Groups und Logical Volumes:
RAID, LVM und Verschlüsselung
Abschnitt 2.6
» Physical Volume (PV): Ein PV ist im Regelfall eine von LVM verwaltete Partition der Festplatte. Es kann sich auch um eine ganze Festplatte oder um ein RAID-Device handeln. Entscheidend ist, dass die Partition, die Festplatte oder der RAID-Verbund als PV gekennzeichnet ist, damit die unterschiedlichen LVM-Kommandos funktionieren. » Volume Group (VG): Ein oder mehrere Physical Volumes können zu einer Gruppe zusammengefasst werden. Auf diese Weise ist es möglich, Partitionen unterschiedlicher Festplatten quasi zusammenzuhängen, also einheitlich zu nutzen. Die Volume Group stellt eine Art Speicherpool dar, der alle zur Verfügung stehenden physikalischen Speichermedien vereint. Dieser Pool kann jederzeit um weitere Physical Volumes erweitert werden. » Logical Volume (LV): Ein Logical Volume ist ein Teil der Volume Group. Für den Anwender wirkt ein Logical Volume wie eine virtuelle Partition. Im Logical Volume wird das Dateisystem angelegt. (Das heißt, anstatt ein Dateisystem in /dev/sda7 anzulegen, geben Sie jetzt den Devicenamen des Logical Volume an.) Falls in der Volume Group noch Speicher verfügbar ist, können Logical Volumes jederzeit vergrößert werden. In der LVM-Dokumentation kommen noch zwei weitere Begriffe häufig vor: » Physical Device (PD): Dabei handelt es sich einfach um eine Festplatte. LVM kann die gesamte Festplatte oder auch Partitionen dieser Festplatte in Form von Physical Volumes nutzen. » Physical Extent (PE): Bei Volume Groups und Logical Volumes kann nicht jedes einzelne Byte einzeln verwaltet werden. Die kleinste Dateneinheit ist vielmehr ein Physical Extent (standardmäßig 4 MByte). Die Anzahl der PEs ist unbegrenzt. Zu viele PEs machen aber die Verwaltung ineffizient, weswegen Sie für sehr große Logical Volumes die Größe von PEs hinaufsetzen sollten. Das folgende Beispiel (siehe Abbildung 2.3) veranschaulicht die oben definierten Begriffe: Auf einem System dienen die beiden Partitionen /dev/sda3 und /dev/sdb1 als Physical Volumes für eine Volume Group eines LVM-Systems. /dev/sda3 umfasst 400 GByte, /dev/sdb1 umfasst 900 GByte. Der LVMSpeicherpool (also die Volume Group) ist somit 1,3 TByte groß. Darin befinden sich nun diverse Logical Volumes:
Beispiel
LV1 mit der Systempartition (50 GByte) LV2 mit der Partition /var (200 GByte) LV3 mit der Partition /var/lib/mysql (200 GByte) LV4 mit der Partition /home (400 GByte) Insgesamt sind somit 850 GByte mit Partitionen belegt, und 450 GByte sind noch frei. Damit können Sie zu einem späteren Zeitpunkt vorhandene Partitionen vergrößern oder neue Partitionen anlegen. Sollte der gesamte LVM-Pool erschöpft sein, können vorhandene LVs/Dateisysteme verkleinert werden (wenn sich herausgestellt hat, dass sie ursprünglich zu großzügig dimensioniert wurden), um so Platz zur Vergrößerung anderer LVs/Dateisysteme zu schaffen. Reicht das nicht aus, fügen Sie eine weitere Festplatte hinzu und fügen eine Partition dieser Festplatte als drittes Physical Volume zur Volume Group hinzu.
51
Kapitel 2
Installation
Abbildung 2.3: LVM-System
Verschlüsselung Viele Distributionen bieten die Möglichkeit, die Installation in verschlüsselten Partitionen durchzuführen bzw. zumindest die Partition für die persönlichen Daten verschlüsselt anzulegen. Beim Systemstart muss dann ein Passwort angegeben werden, bevor auf das Dateisystem zugegriffen werden kann. Sofern Sie ein ausreichend langes und nicht erratbares Passwort verwenden, schützt die Verschlüsselung Ihre Daten wirkungsvoll: Auch wenn Ihr Notebook in falsche Hände gelangt, kann niemand Ihre Dateien lesen. Wahrscheinlich fragen Sie sich, was Verschlüsselung mit RAID und LVM zu tun hat: Die meisten Verschlüsselungssysteme beruhen darauf, dass das verschlüsselte Dateisystem nicht direkt angesprochen wird, sondern über eine Zwischenschicht, die für die Verschlüsselung verantwortlich ist. Technisch gesehen ist die Vorgehensweise ganz ähnlich wie bei LVM, und deswegen gelten auch dieselben Einschränkungen wie bei LVM.
Einschränkungen Der Einsatz von RAID, LVM und Verschlüsselung hat nicht nur Vorteile, sondern ist auch mit diversen Einschränkungen bzw. Nachteilen verbunden: » Der unter Linux üblicherweise eingesetzte Bootloader GRUB 0.97 ist zu RAID, LVM und zu den meisten Verschlüsselungssystemen inkompatibel. Deswegen ist eine eigene Bootpartition erforderlich, deren Daten außerhalb des durch RAID oder LVM verwalteten bzw. außerhalb des verschlüsselten Bereichs liegen. (Es gibt zwei Ausnahmen: Zum einen sind RAID-1-Partitionen GRUB-kompatibel, weil sich hier auf jeder Partition exakt dieselben Daten befinden. GRUB merkt also gar nicht, dass RAID im Spiel ist. Zum anderen verwendet Ubuntu als einzig populäre Distribution bereits GRUB 2. Dieser Bootloader kommt mit LVM und RAID zurecht.) » Vermeiden Sie BIOS-RAID! Selbst bei Distributionen, die diese RAID-Variante an sich gut unterstützen (z. B. Fedora), führt BIOS-RAID oft zu Problemen. » Die Administration ist relativ kompliziert. Während der Installation unterstützt Sie das Installationsprogramm beim Einrichten von LVM, RAID bzw. der verschlüsselten Partition. Wenn Sie dann aber im laufenden Betrieb die Konfiguration verändern möchten, sind Sie bei den meisten Distributionen auf relativ sperrige Kommandos angewiesen. Ausführliche Informationen zum Umgang
52
RAID, LVM und Verschlüsselung
Abschnitt 2.6
mit diesen Kommandos finden Sie in diesem Buch in den Abschnitten 24.15 (RAID), 24.16 (LVM) und 24.18 (Verschlüsselung) ab Seite 667. » Wenn in einem RAID-Verbund ein Problem auftritt, wird die Fehlermeldung üblicherweise per EMail versandt. Das setzt voraus, dass auf dem Rechner ein E-Mail-Server läuft (genau genommen ein sogenannter Mail Transfer Agent, kurz MTA). Dessen sichere Konfiguration und Administration ist alles andere als trivial. Gerade auf Privat-PCs gibt es normalerweise keinen Grund, überhaupt einen eigenen E-Mail-Server zu betreiben. » Swap-Partitionen sollten aus Performance-Gründen in gewöhnlichen Partitionen ohne die Verwendung von LVM oder RAID angelegt werden (idealerweise auf jeder Festplatte eine). Wenn Ihnen optimale Sicherheit wichtiger ist als maximale Geschwindigkeit, sollten Sie bei RAIDSystemen allerdings auch die Swap-Partition innerhalb des RAID-Verbunds einrichten. Das stellt sicher, dass auch bei einem Festplattenausfall keine Daten des Swap-Speichers verloren gehen. » Wenn Sie ein verschlüsseltes Dateisystem einsetzen, um Ihre Daten zu schützen, sollte auch die Swap-Partition verschlüsselt werden. Noch besser ist es zumeist, auf die Swap-Partition gleich ganz zu verzichten. Was nützt es, wenn Ihr Dateisystem sicher ist, die Swap-Partition aber ausgelagerte Speicherblöcke mit unverschlüsselten kritischen Daten enthält? » Während LVM und RAID die Geschwindigkeit Ihres Systems kaum beeinträchtigen und manche RAID-Level sogar zu einem besseren Datenumsatz führen können, kostet die Verschlüsselung viel CPU-Kapazität und verlangsamt Lese- und Schreiboperationen spürbar. Ein weiterer Nachteil besteht darin, dass das Verschlüsselungspasswort bei jedem Rechnerstart manuell eingegeben werden muss. Prinzipbedingt ist die Verschlüsselung ganzer Dateisysteme somit ungeeignet für Server, die automatisch (neu) starten sollen. Kurz und gut: Bei allen Vorteilen, die mit RAID, LVM und diversen Verschlüsselungstechniken verbunden sind, nimmt die Komplexität des Gesamtsystems doch sehr stark zu.
Empfehlung Linux-Einsteigern rate ich, wegen der damit verbundenen Komplexität auf RAID, LVM und Verschlüsselung gleichermaßen zu verzichten. Das gilt insbesondere, wenn Sie RAID-1 oder RAID-5 einsetzen möchten, um eine höhere Datensicherheit zu erzielen! Sicherheit vor Datenverlusten haben Sie nur, wenn Sie nach dem Ausfall einer Festplatte auch in der Lage sind, die richtigen Kommandos auszuführen, um die defekte Platte zu deaktivieren und um dem RAID-Verbund eine neue Festplatte hinzuzufügen (siehe auch Seite 672). Linux-Einsteiger sind damit sicherlich überfordert, vor allem, wenn sie aufgrund des drohenden Datenverlusts gerade unter Stress stehen. Aus diesem Grund sind einfache, aber konsequent durchgeführte Backups besser als eine technisch noch so hervorragende RAID-Konfiguration! Beim Einrichten eines Servers sind RAID und LVM dagegen empfehlenswert, aber selbst da lautet die goldene Regel KISS (Keep it simple, stupid!, sinngemäß also: Mach’s einfach, Dummkopf!). Persönlich bevorzuge ich in solchen Fällen den Einsatz zweier gleich großer Festplatten, auf denen ich jeweils drei Partitionen einrichte. Diese Partitionen verbinde ich zu drei RAID-1-Verbunden für die Boot-Partition, die Swap-Partition und für LVM (siehe Abbildung 2.4). Im LVM-Bereich richte ich dann nach Bedarf die Root- sowie diverse Datenpartitionen ein.
53
Kapitel 2
Installation
Tipp
Abbildung 2.4: ServerKonfiguration mit RAID-1 und LVM auf zwei Festplatten
Aus Sicherheitsgründen ist es bei RAID-Konfigurationen empfehlenswert, Festplatten unterschiedlicher Hersteller einzusetzen! Wenn Sie nämlich zwei baugleiche Festplatten kaufen (ich weiß, die Versuchung ist groß) und der Hersteller gerade Fertigungsprobleme hatte, kann es Ihnen passieren, dass beide Festplatten innerhalb weniger Tage ausfallen.
2.7 Partitionierung der Festplatte Einer der wichtigsten Schritte während der Linux-Installation ist das Anlegen neuer Linux-Partitionen. Alle gängigen Installationsprogramme enthalten zu diesem Zweck einfach zu bedienende Partitionierungshilfen. Abbildung 2.5 zeigt exemplarisch den Partitionseditor von Fedora. Die Details der Bedienung sind distributionsabhängig und werden für einige ausgewählte Distributionen ab Kapitel 35 beschrieben.
Abbildung 2.5: FedoraPartitionseditor
54
Partitionierung der Festplatte
Abschnitt 2.7
An dieser Stelle geht es um grundsätzlichere Fragen: Wie viele Partitionen sollten Sie für Linux einrichten? In welcher Größe? Welche Auswirkungen hat dies auf die Geschwindigkeit, auf die spätere Wartung und auf eine eventuelle Neuinstallation einer anderen oder aktualisierten LinuxDistribution? Wenn Sie Linux bereits installiert haben und im laufenden Betrieb eine neue Partition anlegen möchten, brauchen Sie ein Partitionierwerkzeug, das unabhängig vom Installationsprogramm Ihrer Distribution funktioniert. Einige gängige Werkzeuge, unter anderem fdisk, parted und gparted, stelle ich Ihnen ab Seite 611 vor.
Achtung
Wie ich bereits erwähnt habe, sind viele Linux-Distributionen nicht BIOS-RAID-kompatibel! Wenn das BIOS Ihres Rechners mehrere Festplatten zu einem RAID-Verbund zusammenschließt, erscheinen diese Festplatten für Windows wie eine einzige, große Festplatte. Wenn das Partitionierungswerkzeug Ihrer Linux-Distribution hingegen mehrere Einzelfestplatten sieht, erkennt es das RAID-System nicht richtig. Brechen Sie die Installation ab! Sie riskieren den Verlust Ihrer gesamten Daten! Installieren Sie stattdessen eine Distribution, die BIOS-Software-RAID-kompatibel ist (z. B. Fedora). Noch besser ist es, BIOS-RAID ganz zu vermeiden und stattdessen unter Windows und unter Linux Software-RAID zu verwenden.
Partitionierung im laufenden Betrieb ändern
Windows-Partition verkleinern Oft befindet sich das bereits installierte Windows in einer einzigen, sehr großen Partition, die die gesamte Festplatte ausfüllt. Dass innerhalb dieser Partition womöglich Hunderte GByte frei sind, nützt nichts: Linux braucht für die Installation eine oder besser gleich mehrere eigene Partitionen. Und bevor Sie diese Partitionen anlegen können, müssen Sie die Windows-Partition verkleinern – und das möglichst ohne Datenverlust! Die radikalere und einfachere Lösung bestünde darin, die Windows-Partition einfach zu löschen. Aber die meisten Linux-Umsteiger wollen Windows als alternatives Betriebssystem vorerst erhalten – beispielsweise zum Spielen oder zur Ausführung von Programmen, die es unter Linux nicht gibt. Deswegen gehe ich in diesem Buch davon aus, dass Windows bereits installiert ist und auch weiterhin genutzt werden soll. Bei den meisten Distributionen (z. B. Debian, Mandriva, SUSE, Ubuntu) ist das Installationsprogramm selbst in der Lage, eine zu große Windows-Partition und das darin befindliche Dateisystem zu verkleinern. Je nach Distribution ändern Sie die Größe der Windows-Partition einfach im Partitionierungsprogramm oder rufen die entsprechende Verkleinerungsfunktion über ein Menü auf. Die Verkleinerung funktioniert sowohl für VFAT- als auch für NTFS-Dateisysteme.
Verkleinerung während der Installation
Wenn eine Verkleinerung der Windows-Partition durch das Linux-Installationsprogramm nicht möglich ist oder zu Problemen führt, können Sie diesen Schritt auch vor der Installation durch andere Werkzeuge vornehmen. Hier eine kleine Auswahl:
Verkleinern vor der Installation
» Direkt unter Windows: Seit Windows Vista ist eine verlustfreie Verkleinerung von Windows-Partitionen im laufenden Betrieb möglich. Unter Windows 7 führen Sie dazu SYSTEMSTEUERUNGjSYSTEM UND S ICHERHEIT jV ERWALTUNGjC OMPUTERVERWALTUNG jDATENTRÄGERVERWALTUNG aus, klicken die Windows-Partition mit der rechten Maustaste an und führen VOLUME VERKLEINERN AUS.
55
Kapitel 2
Installation
Ältere Windows-Versionen bieten selbst keine Möglichkeit, Partitionen zu verkleinern. Sie können Partitionen lediglich löschen und neu anlegen. Dabei verlieren Sie aber den gesamten Inhalt der Partition. » Mit einem Live-System: Live-Systeme wie Knoppix, GParted oder SystemRescueCD enthalten verschiedene Kommandos bzw. Programme, um Windows-Partitionen zu verkleinern. Die Bedienung dieser Werkzeuge ist allerdings teilweise kompliziert. Am benutzerfreundlichsten ist das Programm gparted, das in diesem Buch auf Seite 620 vorgestellt wird. » Kommerzielle Programme: Den größten Komfort bieten kommerzielle Partitionierungsprogramme, die aber leider relativ teurer sind: http://www.acronis.com/homecomputing/products/diskdirector/ Windows und Linux neu installieren
Falls auf Ihrem Rechner noch gar kein Betriebssystem installiert ist und Sie vorhaben, sowohl Windows als auch Linux zu installieren, sollten Sie mit Windows beginnen. Auch während der Windows-Installation müssen Sie die Festplatte partitionieren. Geben Sie hier an, dass die WindowsPartition nicht die ganze Festplatte füllen soll, sondern nur so viele GByte, wie Sie unter Windows eben nutzen möchten (z. B. 50 GByte). Entscheiden Sie sich im Zweifelsfall lieber für einen kleineren Wert – es ist einfacher, später eine weitere Windows-Partition hinzuzufügen als die vorhandene Partition zu verkleinern.
Anzahl und Größe von Linux-Partitionen Immer wieder wird mir die Frage gestellt, wie eine Festplatte mit n GByte am besten in Partitionen zerlegt werden soll. Leider gibt es darauf keine allgemeingültige Antwort. Dieser Abschnitt soll Ihnen aber zumindest ein paar Faustregeln für die richtige Anzahl und Größe von Partitionen vermitteln. Möglicherweise überrascht Sie der Umstand, dass hier fast selbstverständlich von mehreren Partitionen die Rede ist. Wenn für Windows eine Partition ausreicht, sollte dies wohl auch für Linux gelten. Tatsächlich ist es so, dass Sie Linux mit einer einzigen Partition betreiben können – aber eben nicht optimal. Vielmehr bietet es sich an, den Platz auf die im Folgenden beschriebenen Partitionen zu verteilen. Systempartition
Die Systempartition ist die einzige Partition, die Sie unbedingt benötigen. Sie nimmt das LinuxSystem mit all seinen Programmen auf. Diese Partition bekommt immer den Namen /. Dabei handelt es sich genau genommen um den Punkt, an dem die Partition in das Dateisystem eingebunden wird (den mount-Punkt). Wenn das System also einmal läuft, sprechen Sie diese Partition mit dem Pfad / an. (/ bezeichnet die Wurzel, also den Anfang des Dateisystems. Aus diesem Grund wird die Systempartition oft auch als Root-Partition bezeichnet.) Eine vernünftige Größe für die Installation und den Betrieb einer gängigen Distribution liegt bei rund 10 GByte. Dazu kommt natürlich noch der Platzbedarf für Ihre eigenen Daten (es sei denn, Sie speichern eigene Dateien in einer separaten Datenpartition). Es ist übrigens durchaus möglich, mehrere Linux-Distributionen parallel auf einen Rechner zu installieren. (Auf meinen Testrechnern ist das der Regelfall.) Dazu benötigen Sie für jede Distribution zumindest eine eigene Systempartition. Swap- und Datenpartitionen können gemeinsam genutzt
56
Partitionierung der Festplatte
Abschnitt 2.7
werden. Wenn Sie das System richtig konfigurieren, können Sie dann beim Rechnerstart zwischen Windows und allen installierten Linux-Distributionen wählen (siehe auch Seite 708). Unter Umständen ist es erforderlich, eine eigene Bootpartition mit dem Namen /boot anzulegen. Diese Partition beherbergt lediglich die Daten, die während der ersten Phase des Rechnerstarts benötigt werden. Dabei handelt es sich insbesondere um die Kerneldatei vmlinuz*, die InitialRAM-Disk-Datei initrd* sowie um einige kleinere Dateien des Bootloaders. Insgesamt enthält die Bootpartition selten mehr als 200 MByte Daten.
Bootpartition
Sie brauchen eine eigene Bootpartition, wenn der Bootloader GRUB nicht in der Lage ist, Dateien aus der Systempartition zu lesen. Das ist dann der Fall, wenn das ganze Dateisystem verschlüsselt ist, wenn Sie LVM oder RAID einsetzen oder wenn Sie ein (noch) nicht GRUB-kompatibles Dateisystem wie btrfs einsetzen. Die für den Bootprozess erforderlichen Dateien müssen dann in einer eigenen Bootpartition mit einem Standarddateisystem gespeichert werden – in der Regel ext2 oder ext3. Im Zweifelsfall schadet es nicht, eine eigene Bootpartition zu verwenden. Wenn Sie allerdings vorhaben, mehrere Linux-Distributionen parallel auf Ihre Festplatte zu installieren, führen getrennte Boot- und Systempartitionen oft zu einer unübersichtlichen Zersplitterung der Festplatte. Mit einer Datenpartition trennen Sie den Speicherort für die Systemdateien und für Ihre eigenen Dateien. Das hat einen wesentlichen Vorteil: Sie können später problemlos eine neue Distribution in die Systempartition installieren, ohne die davon getrennte Datenpartition mit Ihren eigenen Daten zu gefährden.
Home-Partition
Bei der Datenpartition wird üblicherweise /home als Name bzw. mount-Punkt verwendet, weswegen bisweilen auch von einer Home-Partition die Rede ist. Es ist nicht möglich, eine Empfehlung für die Größe der Datenpartition zu geben – das hängt zu sehr davon ab, welche Aufgaben Sie mit Ihrem Linux-System erledigen möchten. Die Aufteilung der Festplatte in Partitionen lässt sich noch viel weiter treiben. Wenn Sie den LinuxRechner beispielsweise innerhalb eines größeren Netzwerks als speziellen Server für Netzwerkoder Datenbank-Aufgaben einsetzen möchten, können Sie für die dabei anfallenden Daten eigene Partitionen vorsehen und ein für die Art des Datenzugriffs optimales Dateisystem auswählen. Diese Art der Optimierung ist allerdings nur für Linux-Experten zweckmäßig.
Weitere Datenpartitionen
Sofern auf Ihrer Festplatte noch unpartitionierter Platz frei ist, stellt es kein Problem dar, ein laufendes System um weitere Partitionen zu erweitern und gegebenenfalls Daten von einer vorhandenen Partition in eine neue zu verschieben. Wenn Sie also unsicher sind, warten Sie mit der Partitionierung vorerst einfach noch ein wenig ab, und lassen Sie einen Teil der Festplatte ohne Partitionen. Die Swap-Partition ist das Gegenstück zur Auslagerungsdatei von Windows: Wenn Linux zu wenig RAM hat, lagert es Teile des gerade nicht benötigten RAM-Inhalts dorthin aus. Die Verwendung einer eigenen Partition (statt wie unter Windows einer gewöhnlichen Datei) hat vor allem Geschwindigkeitsvorteile. Linux kann zwar ebenfalls so konfiguriert werden, dass es statt einer Swap-Partition eine Swap-Datei verwendet, das ist aber unüblich und langsam.
Swap-Partition
57
Kapitel 2
Installation
Im Gegensatz zu den anderen Partitionen bekommt die Swap-Partition keinen Namen (keinen mount-Punkt). Der Grund: Aus Effizienzgründen wird die Swap-Partition direkt und nicht über ein Dateisystem angesprochen. Wenn Sie viel RAM haben, können Sie grundsätzlich ganz auf die Swap-Partition verzichten. Das ist aber nicht empfehlenswert: Wenn Linux – etwa wegen eines außer Kontrolle geratenen Programms – kein RAM mehr findet, muss es laufende Prozesse (Programme) beenden. Welche Prozesse beendet werden, ist nicht vorhersehbar und kann daher zum Absturz des Rechners führen. Wenn eine Swap-Partition existiert, wird Linux aufgrund der RAM-Auslagerung immer langsamer. Das ist zwar lästig, gibt Ihnen aber die Chance, dem Problem noch rechtzeitig auf den Grund zu gehen und das fehlerhafte Programm gezielt zu beenden. Die Swap-Partition dient damit weniger als RAM-Reserve, sondern als eine Art automatische Notbremse. Eine Richtgröße für die Swap-Partition ist die ein- bis zweifache Größe Ihres RAMs, wobei bei einem großen RAM die einfache Größe ausreicht. Bei einem Rechner mit 1 GByte RAM ist die Swap-Partition mit ebenfalls 1 GByte gut bemessen. Wenn Sie bei Notebooks Suspend to Disk nutzen möchten, sollte die Swap-Partition zumindest eineinhalbmal so groß wie das RAM sein. Die maximale Größe für Swap-Partitionen auf 32-Bit-Systemen beträgt 2 GByte. Wenn Sie mehr Swap-Speicher benötigen, richten Sie einfach mehrere Swap-Partitionen ein. Das ist aber selten sinnvoll: Wenn Ihre Anwendungen tatsächlich so viel Speicher benötigen, ist Linux nur noch mit der Übertragung von Seiten zwischen der Swap-Partition und dem RAM beschäftigt und praktisch nicht mehr bedienbar. Abhilfe schaffen hier nicht größere bzw. mehr Swap-Partitionen, sondern eine 64Bit-Distribution und mehr RAM. Weitere Tipps zur optimalen Dimensionierung der Swap-Partition finden Sie auf Seite 666. Fazit
Bei jeder Linux-Installation benötigen Sie eine Systempartition. Darüber hinaus ist eine SwapPartition sehr zu empfehlen. Das Einrichten weiterer Partitionen ist optional, sehr stark von der geplanten Anwendung von Linux abhängig und auch eine Geschmacksfrage. Meine persönliche Empfehlung für eine Linux-Erstinstallation ist in Tabelle 2.2 zusammengefasst. VERZEICHNIS
VERWENDUNG
Swap-Partition (ein- bis zweimal so groß wie das RAM) Tabelle 2.2: Empfohlene Partitionen für den Desktop-Einsatz
/
Systempartition (ca. 10 GByte)
/home
Datenpartition (Größe je nach geplanter Nutzung)
Hinweis
In diesem Buch, im Großteil der sonstigen Linux-Dokumentation und für die meisten Linux-Werkzeuge gilt: 1 kByte = 1024 Byte 1 MByte = 10242 Byte = 1.048.576 Byte 1 GByte = 10243 Byte = 1.073.741.824 Byte 1 TByte = 10244 Byte = 1.099.511.627.776 Byte Viele Festplattenhersteller rechnen dagegen mit 1000er-Potenzen. Deswegen hat eine Festplatte, die laut Hersteller ein TByte umfasst, gemäß den Konventionen in diesem Buch nur ca. 931 GByte.
58
Partitionierung der Festplatte
Abschnitt 2.8
Welches Dateisystem? Linux unterstützt eine Menge unterschiedlicher Dateisysteme, unter anderem ext2, ext3, ext4, btrfs, reiserfs und xfs. Im Detail werden diese Dateisysteme ab Seite 622 vorgestellt. Alle Dateisysteme mit der Ausnahme von ext2 unterstützen Journaling-Funktionen, stellen also sicher, dass das Dateisystem auch bei einem unvorhergesehenen Absturz oder Stromausfall konsistent bleibt. (Die Journaling-Funktionen schützen allerdings nicht vor einem Datenverlust bei Dateien, die gerade geöffnet sind!) Die beiden populärsten Dateisystemtypen sind zurzeit ext3 und dessen Nachfolger ext4. Fast alle Distributionen setzen standardmäßig ext4 ein. Wenn Sie Wert auf maximale Stabilität legen, sollten Sie dennoch die ältere Variante ext3 in Erwägung ziehen: Kein anderer Dateisystemtyp ist so ausgereift und sicher!
ext3 versus ext4
Die Vorteile von ext4 sind die höhere maximale Dateisystemgröße (bis zu 1.000.000 TByte, bei ext3 sind es dagegen »nur« 2 bis 32 TByte je nach Blockgröße) und eine höhere Geschwindigkeit bei manchen Dateioperationen und insbesondere eine wesentlich schnellere Überprüfung des Dateisystems. Die meisten Linux-Dateisystementwickler betrachten ext4 lediglich als Übergangslösung, bis das von Grund auf neu entwickelte Dateisystem btrfs fertiggestellt ist. Das wird aber wohl noch ein, zwei Jahre dauern. Momentan ist der Einsatz von btrfs nur experimentierfreudigen Linux-Entwicklern zu empfehlen. Umfassende Informationen zum Einsatz von btrfs finden Sie in Abschnitt 24.8.
btrfs
Wie ich bereits auf Seite 53 begründet habe, rate ich Linux-Einsteigern vom Einsatz von RAID und LVM ab. Linux-Profis und Server-Administratoren profitieren dagegen von den zusätzlichen Funktionen und sollten eine Installationsvariante mit RAID und/oder LVM wählen.
LVM, RAID
In der Swap-Partition wird kein richtiges Dateisystem eingerichtet! Die Partition muss aber vor der ersten Verwendung durch mkswap formatiert werden. Alle Linux-Distributionen kümmern sich automatisch darum.
Swap-Partition
Tabelle 2.3 fasst zusammen, welche Dateisysteme Sie am besten für welche Partitionen einsetzen. Die Empfehlungen gelten für eine gewöhnliche Installation als Desktop- oder Entwicklungssystem.
Fazit
PARTITION
VERWENDUNG
Swap-Partition
kein Dateisystem erforderlich
/
ext4 oder ext3
/boot
ext3
/home
ext4 oder ext3
Tabelle 2.3: Empfohlene Dateisystemtypen für den Desktop-Einsatz
59
Kapitel 2
Installation
2.8 Installationsumfang festlegen (Paketauswahl) Bei vielen Distributionen können Sie während der Installation auswählen, welche Komponenten, Programme bzw. Pakete installiert werden. Aus verschiedenen Gründen ist es selten sinnvoll, einfach alles zu installieren: » Die riesige Anzahl der verfügbaren Software-Pakete überfordert Einsteiger. Erheblich übersichtlicher ist es, vorerst nur eine Grundinstallation durchzuführen und die benötigten Zusatzprogramme später bei Bedarf nachzuinstallieren. (Das ist problemlos möglich.) » Es gibt Programme, die sich gegenseitig im Weg sind. So können Sie beispielsweise auf einem Rechner nicht zwei verschiedene E-Mail-Server gleichzeitig betreiben. Sie müssen sich für eine Variante entscheiden. » Wenn Sie vorhaben, den Rechner als Netzwerk-Server einzusetzen, vergrößert jeder aktive Netzwerkdienst die potenziellen Sicherheitsrisiken. Pakete für Netzwerkfunktionen, die Sie nicht benötigen, sollten Sie gar nicht erst installieren. Die Auswahl der Software-Pakete erfolgt oft in Form von vorkonfigurierten Gruppen. Es gibt auch Distributionen wie Ubuntu, bei denen Sie während der Installation gar keinen Einfluss auf die Paketauswahl haben: In diesem Fall wird einfach nur ein Grundsystem installiert. Auch bei den meisten Installationsprogrammen, die aus einem Live-System heraus gestartet werden, ist eine Paketauswahl unmöglich – es wird einfach das gesamte Live-System auf die Festplatte übertragen. In beiden Fällen installieren Sie alle weiteren Programme erst später bei Bedarf.
Installationsempfehlungen Gnome oder KDE
Bei manchen Distributionen haben Sie die Wahl zwischen den Desktop-Systemen KDE und Gnome bzw. können sogar beide Systeme parallel installieren. Dabei handelt es sich um unterschiedliche Benutzeroberflächen zu Linux. Kurz gefasst: Gnome ist einfacher zu bedienen, dafür bietet KDE für technisch versierte Nutzer mehr Funktionen und Einstellmöglichkeiten. Bei einer Parallelinstallation haben Sie maximale Flexibilität und können bei jedem Login auswählen, ob Sie mit Gnome oder KDE arbeiten. Die beiden Desktop-Systeme werden in den Kapiteln 4 und 5 genauer vorgestellt.
Netzwerkdienste (Server)
Für die Desktop-Anwendung von Linux brauchen Sie üblicherweise keinen Web-, Mail-, News-, NFSServer etc. Es gibt allerdings drei Ausnahmen: » Um Ihren Drucker verwenden zu können, brauchen Sie einen Drucker-Server (in der Regel CUPS). Bei den meisten Distributionen wird CUPS standardmäßig installiert. » Um Ihren Rechner über das Netzwerk steuern zu können, sollten Sie den SSH-Server sshd installieren. » Wenn Sie eigene Verzeichnisse mit Windows-Rechnern im lokalen Netz teilen möchten, müssen Sie das Programm Samba installieren.
Entwicklungswerkzeuge und Kernel-Header
60
Gerade Linux-Einsteiger haben vermutlich wenig Ambitionen, den Linux-Kernel neu zu kompilieren. Dennoch ist die Installation der elementaren Entwicklungswerkzeuge (C-Compiler, make etc.) und der sogenannten Kernel-Header-Dateien empfehlenswert. Damit sind Sie in der Lage, selbst neue Kernelmodule zu kompilieren. Das ist erforderlich, wenn Sie zusätzliche Hardware-Treiber
Grundkonfiguration
Abschnitt 2.9
installieren möchten, die nicht vollständig als Open-Source-Code verfügbar sind, oder wenn Sie kommerzielle Virtualisierungsprogramme einsetzen möchten. (Die Installation des vollständigen Kernelcodes ist nicht erforderlich!)
2.9 Grundkonfiguration Dieser Abschnitt gibt einige Hintergrundinformationen zu den üblichen Schritten der Basiskonfiguration. Reihenfolge, Details und Umfang der Grundkonfiguration variieren stark je nach Distribution. Einige Distributionen beschränken die Konfiguration während der Installation auf ein Minimum. Die weitergehende (Hardware-)Konfiguration erfolgt dann erst im laufenden Grundsystem. Generell gilt: Nahezu alle Einstellungen können auch später durchgeführt werden. Verschieben Sie die Konfiguration von momentan nicht benötigten Komponenten einfach auf später! Unter Linux ist in der Regel der Benutzer root für die Systemadministration zuständig. Dieser Benutzer hat uneingeschränkte Rechte, aber natürlich ist damit auch das Schadenspotenzial uneingeschränkt. Es ist daher unbedingt erforderlich, dass der Zugang zu root mit einem Passwort abgesichert wird.
Root-Passwort
Bei Ubuntu und einigen anderen Distributionen ist der Benutzer-Account root vollständig deaktiviert. Eine Passwortabsicherung für root ist daher nicht nötig. Administrative Aufgaben werden bei Ubuntu von dafür vorgesehenen Benutzern durchgeführt und erfordern die nochmalige Angabe des Benutzerpassworts. Bei openSUSE erhalten root und der Standardbenutzer dasselbe Passwort. Wenn Sie das nicht wünschen, müssen Sie die leicht zu übersehende Option im Installationsprogramm deaktivieren. Es ist unter Linux unüblich, als root zu arbeiten (außer natürlich bei der Durchführung administrativer Aufgaben). Wenn Sie eine E-Mail schreiben, ein Programm kompilieren oder im Internet surfen, melden Sie sich als gewöhnlicher Benutzer an. Während der Installation haben Sie die Möglichkeit, einen oder mehrere derartige Benutzer samt Passwort einzurichten. Im laufenden Betrieb können Sie später weitere Benutzer hinzufügen, das Passwort vorhandener Benutzer verändern etc.
Benutzerverwaltung
Linux-Benutzernamen sollten aus maximal acht Buchstaben und Ziffern bestehen. Verwenden Sie keine deutschen Sonderzeichen. (Die funktionieren zwar meistens, aber nicht immer.) Es ist üblich, nur Kleinbuchstaben zu verwenden – aber das ist keine Bedingung. Das Passwort sollte sechs bis maximal acht Zeichen lang sein. Idealerweise enthält es sowohl Großals auch Kleinbuchstaben sowie mindestens eine Ziffer. Auch diverse Sonderzeichen sind erlaubt, z. B. +-*/_.,;:()[]. Deutsche Sonderzeichen (äöüß) und andere Buchstaben, die nicht im ASCIIZeichensatz definiert sind, sollten Sie hingegen vermeiden. Damit Sie Ihren Rechner in einem lokalen Netz einsetzen können, ist eine Netzwerkkonfiguration erforderlich. Die Konfiguration erfolgt vollautomatisch, wenn das Installationsprogramm im lokalen Netz einen sogenannten DHCP-Server erkennt. (Das ist ein Rechner, der allen anderen Rechnern im Netzwerk automatisch die Netzwerkparameter sendet.) In diesem Fall reduziert sich die gesamte
Netzwerkkonfiguration
61
Kapitel 2
Installation
Netzwerkkonfiguration auf das Anklicken der entsprechenden Option und eventuell auf die Angabe des gewünschten Rechnernamens. Bei einer manuellen Netzwerkkonfiguration werden Sie nach den folgenden Parametern gefragt. Hintergrundinformationen und Erklärungen zu den hier verwendeten Fachausdrücken finden Sie ab Seite 799, wo die Grundlagen der Netzwerkkonfiguration beschrieben sind. » Host- und Domainname: Der Host- und der Domainname entsprechen unter Windows dem Rechnernamen und dem Workgroup-Namen. In einem lokalen Netz ist der Domainname meist vorgegeben. Der Hostname sollte eindeutig sein. Verwenden Sie als Hostnamen nicht localhost, dieser Name hat eine besondere Bedeutung! » IP-Adresse des Rechners: Diese Zahl in der Form a.b.c.d (z. B. 192.168.27.35) dient zur internen Identifizierung des Rechners im Netz. Üblicherweise sind die drei ersten Zahlengruppen bereits durch das lokale Netz vorgegeben (z. B. 192.168.27); die vierte Zahl muss innerhalb des Netzes eindeutig sein. » Netzwerkmaske, Netzwerkadresse und Broadcast-Adresse: Die Ausdehnung eines lokalen Netzes wird durch zwei oder drei Masken ausgedrückt, die hier ganz kurz anhand eines Beispiels erläutert werden: Wenn das lokale Netz alle Nummern 192.168.27.n umfasst, lautet die dazugehörige Netzwerkmaske 255.255.255.0 (der Regelfall für kleine, lokale Netze). Als Netzwerkadresse ergibt sich 192.168.27.0, als Broadcast-Adresse 192.168.27.255. » Gateway-Adresse: Wenn es im lokalen Netz einen Rechner gibt, der für alle anderen Rechner den Internetzugang herstellt, dann geben Sie dessen IP-Adresse an. » Nameserver-Adresse: Der sogenannte Nameserver (oft auch DNS für Domain Name Server) ist für die Auflösung von Netzwerknamen in IP-Adressen zuständig. Der Nameserver ist also dafür verantwortlich, dass Sie in einem Webbrowser http://www.google.de eingeben können und der Rechner automatisch die dazugehörige IP-Adresse ermittelt. Beim Nameserver kann es sich wahlweise um einen Rechner im lokalen Netz handeln (wenn er auch für die Auflösung lokaler Namen zuständig ist) oder um einen externen Rechner des Internet Service Providers. Wenn die Gateway- und die Nameserver-Adresse korrekt angegeben werden, ist Ihr Rechner damit bereits ans Internet angeschlossen. Firewall
Die meisten Distributionen schützen den Netzwerk- bzw. Internetzugang standardmäßig durch eine Firewall. Diese Firewall lässt von Ihnen initiierte Verbindungen zu, blockiert aber von außen kommende Anfragen und erhöht so die Sicherheit erheblich. Falls Sie vorhaben, auf Ihrem Rechner selbst Netzwerkdienste anzubieten (z. B. einen SSH- oder Webserver), können Sie für diese Dienste Ausnahmen definieren und externe Zugriffe zulassen. Grundlagen und Interna zur Funktion einer Firewall sind in Kapitel 30 ab Seite 879 beschrieben.
SELinux, AppArmor
Manche Distributionen sehen über die Paketfilter-Firewall hinaus zusätzliche Schutzsysteme vor, die wichtige Programme gegen Fehlfunktionen schützen. Red Hat bzw. Fedora setzen hierfür SELinux ein, Novell bzw. SUSE das System AppArmor. Solange Sie nur Programme Ihrer Distribution einsetzen, funktionieren SELinux bzw. AppArmor zumeist problemlos. Wenn Sie vorhaben, selbst kompilierte Netzwerkprogramme einzusetzen oder sonst von elementaren Konfigurationsvorgaben Ihrer Distribution abweichen, führen SELinux bzw. AppArmor oft zu Problemen. Deren einfachs-
62
Installation des Bootloaders
Abschnitt 2.10
te Lösung besteht darin, SELinux bzw. AppArmor einfach zu deaktivieren (was auch im laufenden Betrieb möglich ist). Hintergrundinformationen zu SELinux und AppArmor finden Sie ab Seite 918. Damit die Uhrzeit korrekt eingestellt wird, muss das Installationsprogramm wissen, ob die CMOSUhr Ihres Rechners die lokale Uhrzeit oder die Universal Coordinated Time (UTC) enthält und in welcher Zeitzone Sie sich befinden. Falls Ihr Rechner ständigen Internetzugang hat, können Sie viele Distributionen auch so konfigurieren, dass die Uhrzeit mit einem Zeit-Server (NTP-Server) aus dem Internet synchronisiert wird.
Zeitzone
Standardmäßig wird Linux in der zu Beginn der Installation eingestellten Sprache installiert – für die Leser dieses Buchs also in der Regel Deutsch. Standardmäßig werden auch die englischen Sprachdateien installiert. Das stellt sicher, dass zumindest englische Menü-, Dialog- und Hilfetexte zur Verfügung stehen, falls es keine deutsche Übersetzung gibt.
Sprache
Wenn einzelne Benutzer Ihres Rechners Linux auch in anderen Sprachen nutzen möchten, müssen Sie zusätzlich entsprechende Sprachdateien installieren (in Form von sogenannten Lokalisierungspaketen). Sie können dann bei jedem Login die gewünschte Sprache wählen.
2.10 Installation des Bootloaders Die letzte Frage ist nun noch, wie Linux in Zukunft gestartet werden soll. Dazu wird bei den meisten Distributionen das Programm GRUB eingesetzt. Vereinzelt kommt statt GRUB auch das ältere Programm LILO zum Einsatz. Informationen zur manuellen Installation und Konfiguration von GRUB und LILO finden Sie ab Seite 689. Der erste Sektor der Festplatte wird auch Bootsektor, Master Boot Record oder kurz MBR genannt. Die meisten Installationsprogramme schreiben GRUB bzw. LILO in diesen Sektor. Dadurch wird der bisher vorhandene Bootsektor, der meist von Windows stammt, überschrieben. Damit ist in Zukunft GRUB nicht nur für den Linux-Start verantwortlich, sondern auch für das richtige Verzweigen in den Windows-Bootloader. Beim Start des Rechners erscheint ein kleines Menü, in dem Sie zwischen Windows und Linux wählen. Wenn Sie sich für Windows entscheiden, aktiviert GRUB den WindowsBootloader, der sich im ersten Sektor der Windows-Partition befindet. Die Installation des Bootloaders funktioniert mittlerweile bei nahezu allen Hard- und Software-Kombinationen – aber in ganz seltenen Fällen geht doch etwas schief. Sie können dann weder Windows noch Linux starten! Tipps, wie Sie mit dieser Situation fertig werden, finden Sie ab Seite 66.
Probleme
Es ist möglich, den Bootloader nicht in den Bootsektor der Festplatte, sondern in den Bootsektor der Linux-Systempartition zu installieren. Dort bleibt der Bootloader allerdings vorerst wirkungslos, d. h., Sie können bei einem Neustart weiter nur Windows, nicht aber Linux starten. Es bestehen nun zwei Möglichkeiten, den Bootsektor zum Leben zu erwecken:
Installationsvarianten
» Die kostspielige Variante ist die Verwendung eines kommerziellen Boot-Managers (z. B. des Acronis Boot Managers). Persönlich halte ich von dieser Lösung nicht viel. Sie verursacht zumindest ebenso viele Probleme wie GRUB oder LILO.
63
Kapitel 2
Installation
» Falls Sie mit Windows Vista oder Windows 7 arbeiten, können Sie die Linux-Systempartition in das Windows-Boot-Menü integrieren. Dazu verwenden Sie am besten das kostenlose Programm EasyBCD von http://neosmart.net/software.php, das auf Seite 707 kurz beschrieben ist. Rechnerstart
Wenn alles geklappt hat, erscheint nun bei jedem Rechnerstart ein Menü, in dem Sie das gewünschte Betriebssystem auswählen können (siehe Abbildung 2.6). Je nach Distribution erscheint nach dem ersten Start nochmals das Installationsprogramm. Anschließend beginnen Sie Ihre erste Erkundungsreise durch die Linux-Welt. Das nächste Kapitel (ab Seite 73) gibt dazu einige Tipps.
Abbildung 2.6: Windows oder Ubuntu Linux starten
2.11 Probleme während der Installation Dieser Abschnitt geht auf einige typische Probleme ein, die während der Installation auftreten können. So weit möglich, finden Sie hier auch Lösungsansätze. Am wichtigsten ist aber sicherlich gleich der nächste Abschnitt. Dieses Buch kann trotz seines großen Umfangs nicht das ganze Linux- und Hardware-Universum umfassen. Sie müssen daher lernen, sich selbst zu helfen – je früher, desto besser. Hilfe zur Selbsthilfe
Was tun Sie, wenn es während der Installation Probleme gibt, der Rechner stehen bleibt, Hardware nicht oder falsch erkennt etc.? Der erste Tipp ist geradezu trivial: Lesen Sie vor Beginn der Installation auf jeden Fall die sogenannten Release-Notes im Internet oder auf der CD-ROM! Ein weiterer guter Startpunkt sind natürlich die Homepages der jeweiligen Distributionen. Dort gibt es eigene Support-Bereiche, Foren und Wikis, in denen Sie Antworten zu häufigen Fragen bzw. Problemen finden.
HardwareProbleme
64
Wenn Linux für die Installation wichtige Hardware-Komponenten nicht richtig erkennt oder bei deren Erkennung hängen bleibt, helfen eventuell Kernelparameter weiter. Dahinter verbirgt sich ein Mechanismus, dem Kernel beim Start Informationen zur besseren Hardware-Erkennung zu geben. Derartige Parameter geben Sie unmittelbar beim Installationsstart an. Weitere Informationen zu diesem Mechanismus und einen Überblick über einige wichtige bzw. häufig benötigte Parameter finden Sie ab Seite 785.
Probleme während der Installation
Abschnitt 2.11
Die Partitionierhilfen des Linux-Installationsprogramms sollten dieselben Partitionen erkennen wie vergleichbare Werkzeuge unter Windows (bei Windows 7 SYSTEMSTEUERUNGjSYSTEM UND SICHERHEIT jV ERWALTUNG jC OMPUTERVERWALTUNG jDATENTRÄGERVERWALTUNG ). Wenn das nicht der Fall ist bzw. Linux statt einer Windows-Partition mehrere Einzelfestplatten sieht, haben Sie die Festplatten Ihres Rechners wahrscheinlich zu einem RAID-System verbunden, das Linux nicht richtig erkennt (siehe auch die Warnung auf Seite 55). Abhilfe schafft die Verwendung einer Linux-Distribution, die korrekt mit BIOS-Software-RAID umgehen kann (z. B. aktuelle Fedora-Versionen).
Partitionierungsprobleme
In den ersten Phasen der Installation kann es vorkommen, dass noch kein deutscher Tastaturtreiber installiert ist und daher das amerikanische Tastaturlayout gilt. Das trifft meistens auch während des Starts des Bootloaders zu.
Tastaturprobleme
Solange der Rechner glaubt, dass Sie mit einer US-Tastatur arbeiten, während tatsächlich aber ein deutsches Modell im Einsatz ist, sind (Y) und (Z) vertauscht; außerdem bereitet die Eingabe von Sonderzeichen Probleme. Tabelle 2.4 zeigt, wie Sie diverse Sonderzeichen auf einer deutschen Tastatur trotz eines fehlenden Tastaturtreibers eingeben können. Dabei zeigt die erste Spalte die auf einer deutschen Tastatur erforderliche Tastenkombination, um das Zeichen in der zweiten Spalte zu erzeugen. Verwenden Sie auch den numerischen Tastaturblock – die dort befindlichen Sonderzeichen funktionieren mit Ausnahme des Kommas problemlos! KÜRZEL
ERGEBNIS
KÜRZEL
ERGEBNIS
KÜRZEL
ERGEBNIS
(Z)
Y
(Ö)
;
(ª)+(9)
(
(Y)
Z
(ª)+(Ö)
:
(ª)+(0)
)
(-)
/
(ª)+(-)
?
(Ü)
[
(#)
\
(ª)+(Ä)
"
(+)
]
(ß)
- (Bindestrich/Minus)
(Ä)
'
(ª)+(Ü)
{
(ª)+(ß)
_ (Unterstrich)
(^)
`
(ª)+(+)
}
(_ ’)
=
(ª)+(^)
~
(ª)+(,)
(ª)+(8)
*
(ª)+(3)
#
(ª)+(7)
&
(ª)+(6)
^
Tabelle 2.4: Tastenkürzel zur Eingabe von Sonderzeichen für das USTastaturlayout
Falls es auch nach der Installation noch Tastaturprobleme gibt, finden Sie auf Seite 476 (Textmodus) bzw. auf Seite 582 (Grafikmodus) eine Anleitung, wie Sie dieses Manko beheben können.
65
Kapitel 2
Installation
2.12 Probleme nach der Installation Manchmal läuft eine Installation ohne Schwierigkeiten bis zum Ende. Erst beim nächsten Neustart treten Probleme auf. Dieser Abschnitt gibt einige Tipps zu häufigen Problemquellen.
Der Rechner kann nicht mehr gestartet werden Der schlimmste Fall bei einer Linux-Installation besteht darin, dass der Rechner anschließend nicht mehr gestartet werden kann oder dass zumindest einzelne der installierten Betriebssysteme nicht mehr zugänglich sind. Dabei gibt es verschiedene Varianten, die im Folgenden erörtert werden. Wenn diese Informationen nicht weiterhelfen, werfen Sie auch einen Blick in das Stichwortverzeichnis, Eintrag Notfall! » Linux-Absturz (Hardware-Probleme): Nach dem Neustart des Rechners erscheinen zuerst diverse Meldungen von Linux. Anschließend bleibt der Rechner stehen bzw. stürzt ab. Mögliche Ursache: Die wahrscheinlichste Ursache sind Hardware-Probleme. Abhilfe: Durch die Angabe von sogenannten Bootoptionen können Sie Linux bei der Erkennung der Hardware helfen (siehe Seite 785). Bootoptionen werden direkt an den Kernel übergeben und werden deswegen auch Kernelparameter genannt. Die Eingabe derartiger Optionen erfolgt im Bootloader GRUB unmittelbar nach dem Rechnerstart. Dazu drücken Sie zuerst (Esc), um in das GRUB-Menü zu gelangen. Dann wählen Sie mit den Cursortasten die zu startende LinuxDistribution aus. Mit (E) gelangen Sie in den GRUB-Editor, der einige Zeilen angezeigt, die so ähnlich wie das folgende Muster aussehen: kernel (hd0,5)/boot/vmlinuz root=/dev/sda6 splash=silent vga=normal initrd (hd0,5)/boot/initrd
Hinweis
Wählen Sie mit den Cursortasten die kernel-Zeile aus, und drücken Sie abermals (E), um diese Zeile zu verändern, und fügen Sie an das Ende dieser Zeile die zusätzlichen Bootoptionen an. Mit (¢) bestätigen Sie die Änderung. (Esc) führt zurück zum Bootmenü, wo Sie Linux dann starten. (Die Änderung an den Kernelparametern gilt nur für dieses eine Mal, sie wird also nicht bleibend gespeichert.) Bei Hardware-Problemen, die durch Kernelmodule verursacht werden, bleiben die Bootoptionen wirkungslos. Stattdessen muss eine der Dateien im Verzeichnis /etc/modprobe.d geändert werden. Dazu starten Sie ein Live-System oder ein sogenanntes Rescue-System (Rettungssystem, Notfallsystem), das sich bei vielen Distributionen auf der Installations-CD befindet. Der Umgang mit einem derartigen System erfordert allerdings einiges an Linux-Wissen und empfiehlt sich daher nicht für Linux-Einsteiger. Hintergrundinformationen zur Modulverwaltung und zu modprobe.conf finden Sie ab Seite 768. » Linux-Absturz (unable to mount root fs): Der Start des Linux-Kernels hat geklappt, Linux konnte aber anschließend die Linux-Systempartition nicht finden. Mögliche Ursache: Es liegt ein Problem in der GRUB-Konfiguration vor. Der Fehler kann auch dann auftreten, wenn die Verkabelung von Festplatten geändert wurde.
66
Probleme nach der Installation
Abschnitt 2.12
Abhilfe: Geben Sie beim Linux-Start die richtige Partition als Bootoption in der Form root=/dev/ sda6 an. Wenn der Start so gelingt, können Sie unter Linux GRUB neu konfigurieren (siehe Seite 689). Unter Umständen müssen Sie auch die Datei /etc/fstab entsprechend anpassen (siehe Seite 629). » Linux startet nicht: Nach dem Neustart des Rechners wird ohne Rückfrage einfach Windows gestartet. Von Linux ist keine Spur zu sehen. Mögliche Ursache: Die Installation von GRUB (oder eines anderen Bootloaders) auf die Festplatte hat aus irgendeinem Grund nicht funktioniert. Abhilfe: Starten Sie ein Rescue-System oder eine Live-CD, und installieren Sie GRUB neu (siehe Seite 715). » Windows startet nicht: Nach dem Neustart wird automatisch Linux gestartet. Windows scheint verschwunden zu sein. Mögliche Ursache: Wahrscheinlich hat die GRUB-Installation funktioniert. Sie können nun unmittelbar nach dem Rechnerstart auswählen, welches Betriebssystem gestartet werden soll. Tun Sie nichts, wird nach einer Weile automatisch Linux gestartet. Eventuell erscheint das Menü erst nach dem Drücken von (Esc). Abhilfe: Falls ein Menü angezeigt wird, wählen Sie mit den Cursortasten windows aus und drücken (¢). Falls es kein Menü gibt, starten Sie Linux und fügen in die GRUB-Konfigurationsdatei einen zusätzlichen Eintrag zum Start von Windows ein (siehe Seite 689). » Weder Linux noch Windows startet: Nach dem Rechnerstart wird GRUB ausgeführt, stürzt aber sofort ab bzw. zeigt eine endlose Liste von Fehlermeldungen an. Mögliche Ursache: Die GRUB-Installation ist fehlgeschlagen. Abhilfe: Starten Sie ein Rescue-System oder eine Live-CD, und installieren Sie GRUB neu (siehe Seite 715). Alternativ können Sie auch den früheren Zustand des Bootsektors (MBR) wiederherstellen (siehe Seite 71). Wenn das gelingt, kann Windows anschließend wieder normal gestartet werden. Linux lässt sich allerdings weiterhin nicht starten.
Das Grafiksystem startet nicht Es kann vorkommen, dass Linux nur im Textmodus startet. Das X Window System, das die Basis für die Desktop-Systeme KDE oder Gnome darstellt, funktioniert dann nicht. Zuerst sollten Sie testen, ob sich X manuell starten lässt. Dazu loggen Sie sich mit Ihrem Benutzernamen und dem Passwort im Textmodus ein und führen dann das Kommando startx aus. Wenn das klappt, funktioniert das Grafiksystem prinzipiell. Es geht jetzt nur noch darum, das System so zu konfigurieren, dass das Grafiksystem automatisch gestartet wird. Je nach Distribution verändern Sie dazu die Datei /etc/inittab oder stellen sicher, dass ein Script zum Start des sogenannten Display Managers automatisch ausgeführt wird. Im Detail ist die Vorgehensweise ab Seite 561 beschrieben.
X automatisch starten
Sollte startx nicht zum Erfolg führen, resultieren die Probleme wahrscheinlich aus einer falschen oder gar nicht erfolgten Konfiguration des X Window Systems. Ausführliche Hintergrundinformationen zur richtigen X-Konfiguration finden Sie in einem eigenen Kapitel ab Seite 555.
X neu konfigurieren
67
Kapitel 2
Installation
Die Tastatur funktioniert nicht Tastaturprobleme äußern sich im Regelfall dadurch, dass statt der gewünschten Buchstaben andere Zeichen erscheinen. Die Ursache ist fast immer eine falsche Einstellung des Tastaturlayouts (d. h., Linux glaubt beispielsweise, Sie würden mit einer US-Tastatur arbeiten, in Wirklichkeit besitzen Sie aber ein deutsches Modell). Bei Gnome und KDE können Sie das gewünschte Tastaturlayout vor dem Login einstellen. Die Standardeinstellungen für die Tastatur erfolgen getrennt für den Text- und den Grafikmodus (siehe Seite 476 bzw. Seite 582).
Menüs erscheinen in der falschen Sprache Alle Linux-Programme sind in der Lage, Fehlermeldungen, Menüs etc. in englischer Sprache auszugeben. Sehr viele Programme (insbesondere KDE- und Gnome-Programme) stellen darüber hinaus aber auch Menüs in vielen Landessprachen zur Verfügung. Informationen zur Einstellung der gewünschten Sprache finden Sie ab Seite 492. Unter Umständen müssen Sie vorher das richtige Sprachpaket installieren, das die Übersetzungen der Menüs und anderer Texte in Ihre Sprache enthält.
2.13 Systemveränderungen, Erweiterungen, Updates Wenn Ihr Linux-System einmal stabil läuft, wollen Sie es zumeist nach Ihren eigenen Vorstellungen konfigurieren, erweitern, aktualisieren etc. Detaillierte Informationen zu diesen Themen sind über das gesamte Buch verteilt. Dieser Abschnitt dient daher primär als Referenz, um Ihnen die Sucharbeit so weit wie möglich zu ersparen.
Software-Installation, Paketverwaltung Je nach Distribution existieren verschiedene Kommandos und Programme, mit denen Sie im laufenden Betrieb weitere Software-Pakete installieren, aktualisieren oder entfernen. Einführende Informationen zur unter Linux üblichen Paketverwaltung finden Sie in einem eigenen Kapitel ab Seite 511. Außerdem finden Sie ab Seite 1053 Tipps zu einigen distributionsspezifischen Paketverwaltungsprogrammen. Generell sollten Sie bei der Installation zusätzlicher Software nur die von Ihrer Distribution vorgesehenen Werkzeuge verwenden und nur zur Distribution passende Pakete verwenden. Wenn Sie hingegen eine SUSE-Distribution durch ein Red-Hat-Paket erweitern, können aufgrund unterschiedlicher Installationspfade oder unterschiedlicher Bibliotheksanforderungen Probleme auftreten.
68
Systemveränderungen, Erweiterungen, Updates
Abschnitt 2.13
Updates Alle Distributionen bieten Werkzeuge an, um alle installierten Programme bzw. Pakete mit wenigen Mausklicks zu aktualisieren. Diese Werkzeuge werden im Kapitel zur Paketverwaltung ab Seite 511 bzw. für einige Distributionen ab Kapitel 35 vorgestellt. Durch das Update-System werden gravierende Fehler und Sicherheits-Updates behoben.
Normale Updates
Das erste Update nach der Neuinstallation einer Distribution dauert oft sehr lange, bisweilen länger als die eigentliche Installation! Das liegt daran, dass damit sämtliche Updates installiert werden, die seit der Fertigstellung der Distribution freigegeben wurden. Alle weiteren Updates, die regelmäßig durchgeführt werden, betreffen dann nur noch wenige Pakete und erfolgen entsprechend schneller. Durch das Update-System werden Fehler und Sicherheitsmängel behoben, aber in der Regel keine grundlegend neuen Programmversionen installiert. Auf ein Update von OpenOffice 3.2 auf Version 3.3 werden Sie also vergeblich warten. Dazu müssen Sie vielmehr Ihre gesamte Distribution auf die nächste Version aktualisieren – daher die Bezeichnung »Distributions-Update«.
DistributionsUpdates
Es gibt zwei unterschiedliche Verfahren für Distributions-Updates: Entweder beginnen Sie die Installation von einem Datenträger und geben dann an, dass Sie eine vorhandene Distribution aktualisieren möchten, oder Sie führen das Update im laufenden Betrieb durch und müssen anschließend nur einen Neustart durchführen. Das zweite Verfahren ist wesentlich eleganter, weil es ohne Installationsmedien durchgeführt werden kann (die neuen Pakete werden einfach aus dem Internet heruntergeladen) und die Zeit minimiert, während der die Distribution nicht läuft bzw. während der ein Server offline ist. Tabelle 2.5 fasst zusammen, welche Distributionen welche Verfahren unterstützen. UPDATE WÄHREND DER INSTALLATION
Debian Fedora
openSUSE
Red Hat
Ubuntu
UPDATE IM LAUFENDEN BETRIEB
Tabelle 2.5: Verfahren für DistributionsUpdates
Was in der Theorie toll klingt, funktioniert in der Praxis leider oft schlecht. Nach dem Update funktionieren bisweilen Programme nicht mehr wie vorher, und die Suche nach den Fehlern kann zeitraubend sein. Ich selbst habe nach zahllosen Problemen den Glauben an Distributions-Updates verloren. Persönlich tendiere ich dazu, nicht jedes Distributions-Update mitzumachen (soweit mich nicht die Arbeit an diesem Buch dazu zwingt). Stattdessen führe ich bei Bedarf – oft erst nach zwei, drei Jahren – eine komplette Neuinstallation in eine eigene Systempartition durch, wobei ich die Datenpartition (/home) unverändert weiternutze.
69
Kapitel 2
Installation
Nun kann ich während einer Übergangsphase sowohl die alte als auch die neue Version nutzen. Diese Doppelgleisigkeit erleichtert auch die Neukonfiguration ganz erheblich, weil alle bisherigen Konfigurationsdateien weiterhin zur Verfügung stehen.
Konfiguration Zwar gab es in der Vergangenheit immer wieder Bemühungen, die Konfiguration von Linux zu vereinheitlichen, tatsächlich unterscheiden sich die einzelnen Distributionen leider nach wie vor erheblich. Aus diesem Grund sollten Sie zur weiteren Konfiguration nach Möglichkeit die jeweils mitgelieferten Werkzeuge einsetzen. Einen Überblick über distributionsspezifische Konfigurationshilfen geben die Distributionskapitel ab Seite 1053. Die Lösung mancher Konfigurationsprobleme erfordert freilich mehr als ein paar Mausklicks. Deswegen gehe ich in diesem Buch losgelöst von speziellen Distributionen ausführlich auf Grundlagen und Hintergründe verschiedener Soft- und Hardware-Komponenten ein.
Tabelle 2.6: LinuxKonfiguration
THEMA
SEITE
THEMA
SEITE
Gnome
Seite 81
X (Grafiksystem)
Seite 555
KDE
Seite 111
Systemstart
Seite 689
E-Mail
Seite 165
Kernel, Module
Seite 765
Scanner, Digitalkamera
Seite 187
Netzwerkkonfiguration
Seite 791
Basiskonfiguration
Seite 473
Server-Konfiguration
Seite 843
Paketverwaltung
Seite 511
Drucker
Seite 963
2.14 Linux wieder entfernen Falls Sie zu einem späteren Zeitpunkt den von Linux beanspruchten Platz auf der Festplatte wieder freigeben möchten, müssen Sie Linux deinstallieren. Dazu sind zwei Schritte erforderlich: » Sie löschen alle Linux-Partitionen, damit Sie den Platz später wieder unter Windows nutzen können. » Sie entfernen den Bootloader und stellen den ursprünglichen Zustand des Bootsektors der Festplatte wieder her. LinuxPartitionen löschen
70
Es ist empfehlenswert, Partitionen eines bestimmten Betriebssystems möglichst nur mit den Werkzeugen dieses Betriebssystems zu ändern. Insofern sollten zum Löschen der Linux-Partitionen idealerweise Linux-Werkzeuge eingesetzt werden. Da es unmöglich ist, die Systempartition eines laufenden Linux-Systems direkt zu löschen, setzen Sie zum Löschen der Linux-Partitionen am besten ein Live-System ein.
Linux in eine virtuelle Umgebung installieren
Abschnitt 2.15
Zum eigentlichen Löschen der Linux-Distributionen setzen Sie die Kommandos fdisk oder parted bzw. dessen grafische Variante gparted ein. Die Bedienung dieser Programme wird ab Seite 615 beschrieben. Nach einer Linux-Installation befinden sich im Master-Boot-Record (MBR) normalerweise Daten des Bootloaders GRUB oder LILO. Um GRUB oder LILO zu deaktivieren, stellen Sie den ursprünglichen Zustand des MBRs wieder her. Die Vorgehensweise variiert je nach Windows-Version:
Original-MBR wiederherstellen
» Für Windows 9x/ME benötigen Sie dazu eine DOS-Rettungsdiskette, mit der Sie den Rechner starten. Anschließend führen Sie unter DOS das Kommando fdisk /mbr aus. » Bei Windows 2000/XP starten Sie den Rechner mit der Windows-Installations-CD und aktivieren mit (R), (K) (Windows 2000) bzw. nur mit (R) (Windows XP) die sogenannte Wiederherstellungskonsole. Dort können Sie aus einer Liste Ihre Windows-Installation auswählen. Nach der Eingabe Ihres Administrator-Passworts führen Sie das Kommando FIXMBR aus. Anschließend starten Sie den Computer mit EXIT neu. » Bei Windows Vista und Windows 7 starten Sie den Rechner mit der Installations-DVD. Nach der Sprach- und Tastatureinstellung klicken Sie auf den Eintrag C OMPUTERREPARATUROPTIONEN und wählen dann Ihre Windows-Version aus. Im Dialog SYSTEMWIEDERHERSTELLUNGSOPTIONEN wählen Sie den Punkt EINGABEAUFFORDERUNG und gelangen so in ein Konsolenfenster. Dort führen Sie das folgende Kommando aus: > BOOTREC /fixmbr Der Vorgang wurde abgeschlossen. Anschließend starten Sie den Rechner neu. Weitere Informationen zu BOOTREC gibt diese Webseite: http://support.microsoft.com/kb/927392/en-us
2.15 Linux in eine virtuelle Umgebung installieren Virtualisierungsprogramme wie VMware Player, Virtual PC oder VirtualBox erfreuen sich immer größerer Beliebtheit. Damit bilden Sie ein System ab, das sich wie ein richtiger PC verhält. Innerhalb eines Betriebssystems können Sie so ein zweites Betriebssystem installieren und ausführen. Kapitel 11 ab Seite 269 beschäftigt sich ausführlich mit den Grundlagen von Virtualisierungssystemen und beschreibt detailliert auf den Einsatz von VirtualBox. Aber auch der umgekehrte Weg ist möglich: Sie arbeiten wie bisher unter Windows weiter und führen Linux in einem Fenster aus. Der größte Vorteil besteht darin, dass die Installation von Linux in eine virtuelle Umgebung wesentlich einfacher ist als auf einem richtigen Rechner: Sie müssen keine Rücksicht auf das vorhandene System nehmen, die Partitionierung der Festplatte spielt keine Rolle, und es ist ausgeschlossen, dass sich Windows und Linux in die Quere kommen. Je nachdem, welches Virtualisierungssystem Sie verwenden, finden Sie im Internet sogar fertige Linux-Image-Dateien und ersparen sich damit die Installation.
71
Kapitel 2
Installation
Dem stehen freilich auch Nachteile gegenüber: Linux läuft in der virtuellen Umgebung deutlich langsamer, insbesondere bei Festplattenzugriffen. Auch die Nutzung diverser Hardware-Komponenten unterliegt Einschränkungen: CDs/DVDs können nur gelesen, aber nicht beschrieben werden, für 3D-Grafik gibt es zumeist keine Hardware-Unterstützung etc. Relativ mühsam ist schließlich der Datenaustausch zwischen Windows und Linux. Trotz all dieser Einschränkungen bieten virtuelle Maschinen eine attraktive Möglichkeit, Linux auszuprobieren. Die folgende Liste beschreibt ganz kurz einige geeignete Virtualisierungsprogramme: » VirtualBox: Dieses Programm von Sun/Oracle ist kostenlos verfügbar, es gibt sogar eine mit nur wenigen Einschränkungen verbundene Open-Source-Variante. VirtualBox ist das zurzeit beste Virtualisierungsprogramm für Linux-Desktop-Anwender. http://www.virtualbox.org/ » Windows Virtual PC: Dieses Programm ist eine kostenlose Erweiterung zu Windows. Linux wird als Gastsystem nicht offiziell unterstützt, einige Linux-Distributionen laufen aber dennoch: http://www.microsoft.com/windows/virtual-pc/ » VMware Workstation/Player: VMware Workstation bietet noch mehr Funktionen als VirtualBox oder Virtual PC, ist allerdings relativ teuer. Immerhin können Sie es für 30 Tage kostenlos ausprobieren. VMware Player ist eine kostenlose Variante zu VMware Workstation, die in vielen Fällen auch ausreicht. http://www.vmware.com/
72
3. LinuxSchnelleinstieg Dieses Kapitel hilft Ihnen bei den ersten Schritten unter Linux: einloggen, Programme ausführen, auf Dateien und Datenträger zugreifen, ausloggen bzw. Rechner herunterfahren etc. Das Kapitel vermittelt ein minimales Grundlagenwissen über die Dateiverwaltung von Linux und verrät, wo Sie im installierten System bzw. im Internet nach Online-Dokumentation suchen. Ein Grundproblem bei einer allgemeinen Beschreibung von Linux besteht darin, dass nahezu jede Funktion frei konfigurierbar ist. Daher sieht beispielsweise das Startmenü des Desktops bei jeder Distribution ein wenig anders aus. Es kann sein, dass eine bestimmte Tasten- oder Mauskombination unter Red Hat eine andere Reaktion hervorruft als unter SUSE. Aus diesem Grund gibt es in diesem Kapitel viele Formulierungen mit meistens, gewöhnlich etc. Das ist leider nicht zu ändern. Die einzige Alternative bestünde darin, Linux so zu beschreiben, wie es bei einer ganz bestimmten Distribution – und da wiederum bei einer ganz bestimmten Versionsnummer – funktioniert.
3.1 Linux starten und beenden Um Linux zu starten, müssen Sie Ihren Rechner neu starten. Beim Neustart geben Sie in einem Menü an, dass Sie Linux und nicht Windows ausführen möchten. Es ist nicht möglich, Linux von Windows aus zu starten – es sei denn, Sie verwenden unter Windows ein Programm wie VMware und führen Linux in einer virtuellen Umgebung aus. Der Linux-Bootprozess dauert üblicherweise rund eine Minute. Bei vielen Distributionen erscheint während dieser Zeit ein Fortschrittsbalken. Andere Distributionen zeigen hingegen unzählige Detailinformationen über den Systemstart an. Diese Informationen sind aber nur dann von Interesse, wenn irgendetwas nicht funktionieren sollte. Im Normalfall endet der Bootprozess mit dem Erscheinen einer grafischen Login-Box. Dort melden Sie sich mit Ihrem Benutzernamen und dem Passwort an. Anschließend erscheint Ihre Arbeitsumgebung im Standard-Desktop-System Ihrer Distribution, üblicherweise Gnome oder KDE. Eine Einführung in beide Desktop-Systeme folgt in den beiden nächsten Kapiteln. Melden Sie sich aber nicht als root an, sondern verwenden Sie einen gewöhnlichen Login! Der Benutzer root hat uneingeschränkte Rechte. Es ist unter Linux nicht üblich, mit root-Rechten zu arbeiten. Stattdessen werden für administrative Aufgaben nur einzelne Programme mit rootRechten ausgeführt, wobei Sie diesen Vorgang durch die Eingabe des root-Passworts bzw. Ihres
Login
Kapitel 3
Linux-Schnelleinstieg
Abbildung 3.1: LoginBildschirm bei Ubuntu
eigenen Passworts (Ubuntu) bestätigen müssen. Die Veränderung des Passworts für root und das Einrichten neuer Benutzer wird ab Seite 480 beschrieben.
Tipp
Sofern Sie Lokalisierungsdateien für mehrere Sprachen bzw. mehrere Desktop-Systeme parallel installiert haben (also Gnome und KDE), können Sie beim Login die gewünschte Sprache und den Desktop auswählen. Die Einstellungen erfolgen je nach Distribution in einem Listenfeld der LoginBox oder in einem getrennten Menü (links unten in Abbildung 3.1). Gnome bzw. KDE können so konfiguriert werden, dass nach dem Rechnerstart ein automatischer Login erfolgt. Das ist zwar bequem, aber sicherheitstechnisch nicht optimal. Tipps zur Konfiguration der Auto-Login-Funktion von Gnome und KDE finden Sie auf Seite 95 bzw. 123.
Logout
Die KDE- bzw. Gnome-Menüs bzw. das Panel sehen jeweils ein Kommando zum Logout vor. Die genaue Bezeichnung des Menükommandos variiert je nach Distribution und lautet z. B. SYSTEMj BENUTZER ABMELDEN . Damit werden sämtliche auf dem Desktop laufenden Programme beendet. (Sichern Sie vorher alle noch offenen Dateien!) Der Logout führt zurück zur Login-Box, in der Sie sich nun neu einloggen oder den Rechner herunterfahren können.
Benutzerwechsel
Normalerweise müssen Sie sich für einen Benutzerwechsel aus- und dann neu einloggen. Gnome und KDE ermöglichen einen Benutzerwechsel aber auch ohne Logout. Dabei wird das Grafiksystem ein weiteres Mal gestartet, was mit einem relativ hohen Ressourcenaufwand verbunden ist. Dafür ist anschließend ein rascher Wechsel zwischen den beiden Logins möglich.
Login und Logout im Textmodus
Viele Funktionen von Linux können auch im Textmodus genutzt werden. Gerade bei ServerInstallationen wird manchmal auf das X Window System verzichtet bzw. wird sein automatischer Start deaktiviert. Zum Arbeiten führen Sie den Login in einer Textkonsole durch (siehe auch Kapitel 12 ab Seite 287). Zum Logout drücken Sie einfach (Strg)+(D) oder führen das Kommando exit aus.
Linux beenden (Shutdown)
Die grafischen Benutzeroberflächen sehen Menükommandos zum Herunterfahren des Rechners vor oder bieten eine entsprechende Option im Abmelde-Dialog. Im Textmodus erfolgt ein ordnungsge-
74
Tastatur, Maus und Zwischenablage
Abschnitt 3.2
mäßes Herunterfahren des Systems mit dem Kommando shutdown -h now. Dieses Kommando darf allerdings nur von root ausgeführt werden. Auf vielen Linux-Systemen gibt es eine bequemere Alternative zum shutdown-Kommando: Drücken Sie im Textmodus einfach die Tasten (Strg)+(Alt)+(Entf). Falls Sie unter X arbeiten, müssen Sie vorher mit (Strg)+(Alt)+(F1) in eine Textkonsole wechseln. Die Reaktion auf die Tastenkombination (Strg)+(Alt)+(Entf) wird je nach Distribution durch die Datei /etc/initab oder durch /etc/init/ control-alt-delete.conf gesteuert – siehe Seite 739 bzw. Seite 745.
Tipp
Wenn Linux auf (Strg)+(Alt)+(Entf) nicht reagiert und Sie kein root-Passwort besitzen, den Rechner aber dennoch neu starten müssen, sollten Sie vorher zumindest das Kommando sync ausführen. Damit werden alle gepufferten Schreibzugriffe auf die Festplatte ausgeführt. Unmittelbar danach schalten Sie Ihren Rechner aus. Das ist allerdings nur eine Notlösung zur Schadensminimierung.
3.2 Tastatur, Maus und Zwischenablage Welche Tastenkürzel zur Verfügung stehen, hängt davon ab, ob Sie im Grafikmodus oder in einer Textkonsole arbeiten. Dieser Abschnitt setzt voraus, dass Sie den Grafikmodus nutzen. Darin werden Tastenkürzel durch drei Programmebenen definiert:
Wichtige Tastenkürzel
» Das X Window System ist für die elementaren Funktionen des Grafiksystems verantwortlich. Das X Window System stellt nur relativ wenige Tastenkürzel zur Verfügung (siehe Tabelle 3.1). » Die Desktop-Systeme Gnome und KDE bauen auf X auf. Auch durch sie werden einige Tastenkürzel definiert. Erfreulicherweise hat hier in den letzten Jahren eine Vereinheitlichung stattgefunden, sodass zumindest für die wichtigsten Operationen dieselben Tastenkürzel gelten (siehe Tabelle 3.2). Genau genommen stammen die dort zusammengefassten Tastenkürzel vom Window Manager des Desktops. Aber ich will Sie hier nicht mit derartigen Spitzfindigkeiten quälen. Was ein Window Manager ist, erfahren Sie auf Seite 556. » Schließlich hängen die verfügbaren Tastenkürzel natürlich vom individuellen Programm ab, das gerade läuft. Je nachdem, ob Sie mit Firefox im Web surfen, mit OpenOffice einen Brief schreiben oder im Editor Emacs Programmcode ändern – in jedem Fall gelten andere Tastenkürzel, die in diesem Abschnitt natürlich nicht beschrieben werden können. Bei Programmen mit grafischer Benutzeroberfläche gelten für wichtige Operationen dieselben Kürzel wie unter Windows. Das betrifft beispielsweise das Kopieren von Text in die Zwischenablage mit (Strg)+(Einf) oder (Strg)+(C), das Einfügen des kopierten Texts mit (ª)+(Einf) oder (Strg)+(V) oder das Speichern einer Datei mit (Strg)+(S). Für viele textorientierte Kommandos gelten andere Konventionen, die sich im Verlauf der Unix/ Linux-Geschichte etabliert haben. Wichtige Tastenkürzel für derartige Programme sind auf Seite 289 zusammengefasst. Leider gibt es keine Garantie, dass die hier zusammengefassten Tastenkürzel wirklich bei jeder Distribution gelten. Alle Tastenkürzel sind konfigurierbar, und manche Distributoren weichen von den üblichen Konventionen ab. Beispielsweise verwenden Fedora und Red Hat nicht die siebte, son-
75
Kapitel 3
Linux-Schnelleinstieg
dern die erste Konsole für den Grafikmodus. Die Tastenkombination (Strg)+(Alt)+(Backspace) ist auf immer mehr Distributionen standardmäßig deaktiviert oder wird erst bei zweimaligem Drücken wirksam. KÜRZEL
BEDEUTUNG
(Strg)+(Alt)+(Backspace)
beendet das Grafiksystem (das X Window System) gewaltsam. Unter SUSE muss diese Tastenkombination zweimal gedrückt werden. Bei einigen Distributionen ist die Tastenkombination deaktiviert. Abhilfe unter Gnome: Führen Sie (Alt)+(F2) gnome-keyboard-properties aus, klicken Sie auf BELEGUNGENj O PTIONEN , und aktivieren Sie dann die Option TASTEN KOMBINATIONEN ZUM ERZWUNGENEN B EENDEN DES X-S ERVERS .
(Strg)+(Alt)+(Fn)
wechselt vom Grafiksystem in die Konsole n.
(Strg)+(Alt)+(Fn)
wechselt vom Textmodus in die Konsole n. Bei den meisten Distributionen führt (Alt)+(F7) zurück in den Grafikmodus, bei Fedora drücken Sie (Alt)+(F1).
KÜRZEL
BEDEUTUNG
(Alt)+(ÿ)
wechselt das aktive Fenster.
(Alt)+(F1)
zeigt das Desktop-Menü an.
(Alt)+(F2)
startet ein Programm.
(Alt)+(F3)
zeigt das Fenstermenü des aktuellen Fensters.
(Alt)+(F4)
schließt das Fenster bzw. beendet das Programm.
Tabelle 3.1: Tastenkürzel unter X
Tabelle 3.2: Wichtige Tastenkürzel des Desktops (Gnome, KDE)
Verwendung der Maus Linux orientiert sich tendenziell immer mehr an den Konventionen der Windows- bzw. Mac-OS-Welt. Dennoch existieren je nach Desktop bzw. je nachdem, welches Programm Sie gerade einsetzen, einige Besonderheiten, die in diesem Abschnitt zusammengefasst sind. Einfach- oder Doppelklick
Unter Gnome ist wie unter Windows für viele Operationen – etwa das Öffnen einer Datei – ein Doppelklick erforderlich. In KDE werden dagegen viele Mausoperationen standardmäßig durch einen einfachen Mausklick ausgeführt. Wie Sie auch in KDE den Doppelklickmodus aktivieren, ist auf Seite 111 beschrieben.
Texte mit der Maus kopieren und einfügen
In fast allen Linux-Programmen können Sie mit der Maus Textausschnitte kopieren und an einer anderen Stelle oder in einem anderen Programm wieder einfügen. Zum Markieren von Textausschnitten bewegen Sie die Maus einfach mit gedrückter linker Maustaste über den Text. Der so markierte Text wird dabei automatisch in einen Puffer kopiert. Sobald Sie die mittlere Maustaste drücken, wird der Text dort eingefügt, wo der aktive Eingabecursor steht. (Bei einzelnen Programmen können Sie auch die rechte Maustaste zum Einfügen verwenden, was besonders dann praktisch ist, wenn Sie eine Maus mit nur zwei Tasten verwenden.)
76
Tastatur, Maus und Zwischenablage
Abschnitt 3.3
Das Markieren und Kopieren erfolgt also allein mit der Maus, ohne Tastatur! Wenn Sie sich einmal an diese Methode gewöhnt haben, werden Sie sich immer fragen, warum das unter Windows nicht möglich ist. Bei einigen älteren X-Programmen (nicht bei KDE- oder Gnome-Programmen) kann bei Dialogen nur dann Text in Eingabefelder eingegeben werden, wenn sich die Maus über diesem Feld befindet. Der Eingabefokus hängt also nicht nur davon ab, welches Programm gerade aktiv ist, sondern auch davon, wo sich die Maus befindet.
Eingabefokus
Dieses Verhalten kann bei einigen Desktop-Systemen auch für Fenster aktiviert werden (focus follows mouse): Dann ist es nicht mehr erforderlich, ein Fenster anzuklicken, um darin Eingaben durchzuführen. Es reicht, die Maus richtig zu positionieren. Allerdings führt eine unbeabsichtigte Bewegung der Maus nun oft dazu, dass Texteingaben an das falsche Fenster oder Programm weitergeleitet werden. Aus diesem Grund ist der Modus focus follows mouse kaum mehr gebräuchlich. Wenn die Maus nicht funktioniert, können Sie den Mauszeiger bei einigen Distributionen zur Not auch mit der Tastatur steuern (siehe Tabelle 3.3). Dazu müssen Sie mit (ª)+(Strg)+(Num) einen speziellen Tastaturmodus aktivieren. KÜRZEL
BEDEUTUNG
(4), (6)
Maus nach links bzw. rechts bewegen
(2), (8)
Maus nach unten bzw. oben bewegen
(5)
linke Maustaste kurz drücken
(+)
Doppelklick
(0)
Maustaste bleibend drücken ((5) löst die Taste wieder)
(-)
auf die rechte Maustaste umschalten ((5), (+) und (0) gelten jetzt für die rechte Maustaste)
(*)
Maussteuerung per Tastatur
Tabelle 3.3: Tastenkürzel zur Maussteuerung
wieder auf die linke Maustaste umschalten
Zwischenablage Wie gerade erwähnt wurde, landet jeder mit der Maus markierte Text in einer Art Ad-hoc-Zwischenablage. Solange die Markierung besteht, kann der markierte Text mit der mittleren Maustaste in ein anderes Programm eingefügt werden. Der Vorteil dieses Verfahrens besteht darin, dass es ohne Tastatur funktioniert. Das Verfahren hat aber auch Nachteile: Durch jede neue Markierung wird die bisherige Markierung (und damit die Ad-hoc-Zwischenablage) gelöscht, was oft lästig ist. Außerdem hat nicht jede Maus drei Tasten. Deswegen bieten viele Programme (alle KDE- und Gnome-Programme, Firefox, OpenOffice zusätzlich die Möglichkeit, wie unter Windows mit einem bestimmten Tastenkürzel Texte in eigene Zwischenablage zu kopieren, die unabhängig von der aktuellen Markierung ist. Das tenkürzel lautet meist wie unter Windows (Strg)+(C) bzw. (Strg)+(Einfg). Die Tastenkürzel Einfügen des Inhalts der Zwischenablage lauten üblicherweise (Strg)+(V) bzw. (ª)+(Einfg).
etc.) eine Taszum
77
Kapitel 3
Linux-Schnelleinstieg
3.3 Umgang mit Dateien, Zugriff auf externe Datenträger Das Dateisystem beginnt mit dem Wurzelverzeichnis /. Auch wenn es mehrere Festplatten bzw. Festplattenpartitionen sowie CD- und DVD-Laufwerke gibt, sind alle Daten in den Verzeichnisbaum eingebunden. Beispielsweise kann der Inhalt eines CD-Laufwerks üblicherweise unter dem Verzeichnis /media/cdrom gelesen werden. Aus diesem Grund besteht unter Linux keine Notwendigkeit für die Laufwerksbuchstaben A:, C: etc., die unter Windows üblich sind. Linux unterscheidet bei Datei- und Verzeichnisnamen zwischen Groß- und Kleinbuchstaben. readme, Readme und README bezeichnen drei verschiedene Dateien! Dateinamen dürfen bis zu 255 Zeichen lang sein. Heimatverzeichnis
Nach dem Einloggen befinden Sie sich automatisch in einem Verzeichnis, das Ihnen gehört. Dieses Verzeichnis wird Heimat- oder Home-Verzeichnis genannt. Alle darin enthaltenen Dateien und Unterverzeichnisse gehören Ihnen. Andere Benutzer (mit Ausnahme von root) dürfen diese Dateien weder verändern noch löschen, aber in der Regel lesen. Das Heimatverzeichnis wird mit der Tilde ~ abgekürzt. Bei gewöhnlichen Linux-Anwendern befindet sich das Heimatverzeichnis in /home/name. Bei root lautet der Speicherort dagegen /root.
CDs, DVDs, USB-Sticks
Im Idealfall funktioniert der Zugriff auf externe Datenträger weitgehend automatisch: Nach dem Einlegen bzw. Anstecken eines Datenträgers erscheint am Desktop automatisch ein entsprechendes Icon oder ein Fenster des Datei-Managers.
Achtung
Wenn das automatische Einbinden externer Datenträger nicht funktioniert bzw. wenn Sie in einer Textkonsole arbeiten, müssen Sie manuell das Kommando mount ausführen (und später umount, um den Datenträger wieder zu lösen). Die Vorgehensweise wird ausführlich in Abschnitt 24.5 ab Seite 626 beschrieben.
df
Bevor Sie einen Datenträger mit Schreibzugriff entfernen bzw. das Kabel lösen, müssen Sie ihn explizit abmelden. Die Details hängen vom Desktop-System bzw. von der Distribution ab. In der Regel klicken Sie das Icon an und führen ein Kommando in der Art DATENTRÄGER LÖSEN oder DATENTRÄGER SICHER ENTFERNEN aus. Wenn Sie das vergessen, riskieren Sie ein inkonsistentes Dateisystem auf dem Datenträger und Datenverluste! Mit dem Kommando df stellen Sie fest, welche Partitionen momentan in das Dateisystem eingebunden sind und wie viel Speicher dort noch frei ist. Die Option -h bewirkt, dass als Maßeinheit nicht starr kByte verwendet wird, sondern eine zur Größe der Partition passende Einheit (MByte, GByte etc.). Im folgenden Beispiel ist außer der Systempartition / noch die Datenpartition /myhome in das Dateisystem eingebunden. (df zählt außerdem einige virtuelle Dateisysteme auf, die nur zur internen Verwaltung von Linux relevant sind. Lassen Sie sich davon nicht verwirren!) user$ df -h Dateisystem /dev/sdb6 /dev/sdb5 tmpfs varrun ...
78
Größe Benut Verf Ben% Eingehängt auf 9,2G 4,0G 4,8G 46% / 14G 6,9G 6,2G 53% /myhome 754M 0 754M 0% /lib/init/rw 754M 332K 754M 1% /var/run
Dokumentation zu Linux
Abschnitt 3.4
3.4 Dokumentation zu Linux Zu Linux gibt es nahezu unendlich viel Dokumentation, die teilweise gleich mitgeliefert wird und ansonsten im Internet zu finden ist. Experten können zudem einen Blick in den Quellcode werfen, der ebenfalls oft gut dokumentiert ist. Dieser Abschnitt gibt einen Überblick über die wichtigsten Informationsquellen. So groß die Menge der Dokumentation ist, so schwierig ist es bisweilen, zu einem spezifischen Problem tatsächlich passende Informationen zu finden. Allzu oft geht der entscheidende Tipp in einer Fülle veralteter Informationen, versions- bzw. distributionsspezifischer Nebensächlichkeiten und wirren Diskussionen unter. Zudem gilt: Wer Englisch beherrscht, ist klar im Vorteil. Egal, ob es sich um die Online-Hilfe zu einem Programm oder um die technische Beschreibung eines ServerDienstes handelt – deutsche Übersetzungen sind Mangelware und, soweit überhaupt vorhanden, oft unvollständig oder veraltet.
Tipp
Der Großteil der Linux-Dokumentation befindet sich in einfachen Textdateien oder in HTML- bzw. PDF-Dokumenten. Vereinzelt werden Sie aber auch auf PostScript-Dateien stoßen. Zum Lesen solcher Dateien verwenden Sie einen PostScript-Viewer, beispielsweise Evince oder Okular. Normalerweise startet ein Doppelklick im Datei-Manager Ihres Desktop-Systems automatisch das richtige Programm. Unter Umständen ist die Datei komprimiert. Das erkennen Sie an der Dateinamenserweiterung .gz oder .bz2. Zur Dekompression führen Sie gunzip datei.gz bzw. bunzip2 datei.bz2 aus. Dadurch wird die komprimierte Datei durch eine entkomprimierte Version ersetzt. Bei fast allen Programmen mit grafischer Benutzeroberfläche führt (F1) zur Online-Hilfe. Sollte das nicht funktionieren, stellen Sie sicher, dass die Hilfedateien installiert sind. Bei einigen großen Programmen wie Gimp oder OpenOffice befinden sich die umfangreichen Hilfedateien in eigenen Paketen, die manchmal nicht standardmäßig installiert werden.
Online-Hilfe
Bei vielen textorientierten Kommandos führen man name oder info name zu einer genauen Beschreibung und Syntaxreferenz. Weitere Informationen zu man und info finden Sie ab Seite 295. man- und info-Texte können Sie auch in den Hilfesystemen von Gnome und KDE lesen.
man und info
Unter Linux werden Programme in Form von Paketen installiert. Ein Paket enthält neben allen für ein Programm erforderlichen Dateien oft auch Dokumentationsdateien. Diese Dokumentation wird je nach Distribution in die folgenden Verzeichnisse installiert:
Paketdokumentation
Debian, Fedora, Red Hat, Ubuntu: SUSE:
/usr/share/doc/paketname /usr/share/doc/packages/paketname
Was tun Sie, wenn Sie Zusatzdokumentation zu einem bestimmten Kommando suchen, aber nicht wissen, zu welchem Paket das Kommando gehört? Der erste Schritt besteht darin, den genauen Dateinamen des Kommandos festzustellen. Dazu führen Sie which -a kommando aus: user$ which -a cp /bin/cp
79
Kapitel 3
Linux-Schnelleinstieg
Im nächsten Schritt ermitteln Sie, zu welchem Paket diese Datei gehört. Die Vorgehensweise hängt davon ab, welches Paketformat Ihre Distribution verwendet (siehe auch Kapitel 21 ab Seite 511). Das folgende Kommando verrät, dass cp ein Teil des Pakets coreutils ist: user$ rpm -qf /bin/cp coreutils-6.4-10 user$ dpkg -S /bin/cp coreutils: /bin/cp
(Fedora, Red Hat, SUSE) (Debian, Ubuntu)
Linux-Foren und -Wikis im Internet
Im Internet gibt es unzählige Foren, Wikis und sonstige Websites von Linux-Firmen und -Enthusiasten. Eine Aufzählung erscheint hier sinnlos – eine kurze Suche nach fedora forum oder ubuntu wiki führt unweigerlich zu den richtigen Seiten. Bei distributionsspezifischen Fragen sind Sie im Vorteil, wenn Sie eine populäre Distribution einsetzen: Je größer die Verbreitung einer Distribution ist, desto reger ist der Informationsaustausch in Foren. Ein leuchtendes Beispiel sind momentan die Foren und Wikis zu Ubuntu.
Newsgroups
Newsgroups zum Thema Linux werden eher von fortgeschrittenen Linux-Anwendern genutzt. Auch wenn Sie die darin stattfindenden Diskussionen nicht ständig verfolgen, können Sie sehr bequem in einem riesigen Archiv alter News-Beiträge suchen. Insbesondere bei Konfigurations- oder Hardware-Problemen stoßen Sie hier mit sehr großer Wahrscheinlichkeit auf andere Linux-Anwender, die dieselben Probleme auch schon hatten und vielleicht sogar lösen konnten. Die populärste Suchmaschine für Newsgroups ist Google: http://groups.google.com
Das Linux Documentation Project
Das Linux Documentation Project (LDP) hat sich das Ziel gesetzt, eine möglichst umfassende und zentrale Sammlung frei verfügbarer Linux-Dokumentation zu schaffen. Tatsächlich ist die Informationsfülle auf der folgenden Seite beeindruckend: http://www.tldp.org/ Die Mehrzahl der Dokumente ist in einem von drei Formaten erschienen: als HOWTO-Text (grundlagenorientierte Anleitungen), als FAQ-Text (Fragen und Antworten) oder als Guide (Buchform). Beachten Sie aber, dass viele LDP-Texte nicht mehr gewartet werden bzw. veraltet sind. Immer mehr Linux-Projekte bzw. -Websites setzen zur Dokumentation stattdessen Wiki-Systeme ein, bei denen alle Anwender zur Dokumentation beitragen können.
Kerneldokumentation
Eine Menge hardware-spezifische Informationen finden Sie in der Kerneldokumentation. Sie ist Teil des Kernelcodes. Wie Sie die Kerneldokumentation installieren und wo sich die Dateien je nach Distribution befinden, verrät Seite 775.
RFCs
RFC steht für request for comment. Dahinter verbergen sich Dokumente, die diverse Protokolle (darunter z. B. TCP, IP, FTP, PPP etc.) im Detail beschreiben. Das etwas merkwürdige Kürzel RFC deutet auf die Entstehungsgeschichte dieser Protokolle hin: Sie wurden im Regelfall nicht durch eine Person, Organisation oder Firma diktiert, sondern sind aus einem (oft langwierigen) Diskussionsprozess entstanden. Die hier dargestellten Informationen sind sehr technischer Natur. RFCs finden Sie z. B. hier: http://www.faqs.org/rfcs/
80
4. Gnome Wenn Sie unter Windows oder Mac OS X arbeiten, gibt es ganz einfach eine Benutzeroberfläche, die Teil des Betriebssystems ist. Unter Linux ist das anders: Das Betriebssystem ist nur für die Grundfunktionen verantwortlich. Für die Benutzeroberfläche sind darauf aufbauende Programme zuständig. Aus unterschiedlichen Gründen sind im Laufe der Zeit mehrere Desktop-Systeme entstanden. Die zwei populärsten sind Gnome und KDE (siehe das folgende Kapitel). Egal, ob Sie Gnome oder KDE einsetzen, die Grundfunktionen eines Desktop-Systems sind dieselben. Zu den wichtigsten Funktionen zählen » die eigentliche Desktop-Verwaltung, die aus einem oder zwei Panels (Leisten) besteht, die das Startmenü, die Taskleiste und andere Miniprogramme beherbergen, » ein Window Manager, der für die Verwaltung der Fenster zuständig ist (aktives Fenster wechseln, Fenster verschieben etc.) sowie » zahllose Anwendungs- und Konfigurationsprogramme. Im Mittelpunkt dieses Kapitels stehen die Basisfunktionen von Gnome. Zusammen mit Gnome werden auch zahllose Programme installiert, die sich in Funktionsweise und Aussehen in den Desktop einfügen. In diesem Kapitel stelle ich allerdings nur einen Bruchteil davon vor. Beschreibungen zu weiteren Programmen sind über das ganze Buch verteilt, z. B. finden Sie die Bildverwaltungsprogramme F-Spot und Shotwell im Kapitel zum Umgang mit Digitalkameras (siehe ab Seite 197) oder den Multimedia-Player Totem im Audio- und Video-Kapitel (siehe Seite 248). Es ist schwierig, den offiziellen Gnome-Desktop zu beschreiben. Zum einen erscheint zweimal jährlich eine neue Version von Gnome, wenngleich die für den Benutzer sichtbaren Veränderungen in den vergangenen Jahren eher bescheiden waren. Zum anderen modifiziert jede Distribution Gnome nach Gutdünken: Der Aufbau des Startmenüs, die optische Gestaltung des Desktops und die Auswahl der mitgelieferten Programme und Konfigurationshilfen variieren stark. Am ehesten ein originales Gnome erhalten Sie momentan mit Fedora. Auch Debian vermeidet es, den Gnome-Entwicklern ins Handwerk zu pfuschen. Das Problem bei Debian besteht aber darin, dass Sie beim Einsatz einer stabilen Debian-Version eine Uralt-Version von Gnome serviert bekommen, die ca. ein bis zwei Jahre hinter dem aktuellen Stand von Gnome ist. Eine ganz andere Strategie hat Ubuntu: Durch diverse Modifikationen versucht man das Aussehen von Gnome zu modernisieren, seine Bedienung zu erleichtern und sich generell von den Mitbewerbern abzuheben. Im Panel werden immer mehr herkömmliche Panel-Applets durch UbuntuEigenentwicklungen ersetzt (sogenannte »Indicator-Menüs«). Sogar den Ort der Fenster-Buttons glauben die Ubuntu-Designer mit gutem Grund von der rechten auf die linke Seite verschieben zu
Gnome ist nicht gleich Gnome!
Kapitel 4
Gnome
müssen. Auf Anwenderseite wurden diese Änderungen bisher akzeptiert (wenn auch fallweise mit leisem Murren). Wenig Freude haben aber die Gnome-Entwickler, die eine zunehmende Fragmentierung des Gnome-Desktops und die mangelnde Zusammenarbeit zwischen den Ubuntu-Entwicklern und dem Gnome-Projekt kritisieren. Völlig unklar ist auch, ob bzw. wann Ubuntu Gnome 3.0 integrieren will. Details zu den Ubuntu-Eigenheiten in Gnome finden Sie im Ubuntu-Kapitel auf Seite 1123. Gnome 3.0
Dieses Kapitel bezieht sich auf die Gnome-Version 2.32, die wahrscheinlich letzte Version vor Gnome 3.0. Auch wenn es hinter den Kulissen in Gnome 2.n in den letzten Jahren viele Veränderungen und Verbesserungen gab – das Aussehen des Desktops und seine Bedienung sind nun schon seit vielen Jahren nahezu unverändert geblieben. Gnome funktioniert gut, basiert aber auf alten Bedienungskonzepten und kann in der Grundkonfiguration ästhetisch nicht mehr mit aktuellen Versionen von KDE, Mac OS X oder Windows mithalten. Frischen Wind verspricht das Projekt Gnome 3.0, mit dem die Gnome-Entwickler den Desktop quasi neu erfinden möchten. Aktuelle Distributionen liefern die wichtigsten Gnome-3.0-Komponenten Gnome-Shell, Zeitgeist und Mutter (einen neuen Windows Manager) bereits mit und ermöglichen so ein einfaches Ausprobieren. Praxistauglich wird Gnome 3.0 aber erst im Verlauf des Jahres 2011 werden. Die erste offizielle Version soll im Frühjahr 2011 fertig werden, es ist aber gut möglich, dass Gnome 3 wie KDE 4 erst im zweiten oder dritten Anlauf wirklich ausgereift sein wird. Eine Vorschau auf Gnome 3.0 finden Sie am Ende dieses Kapitels ab Seite 107.
Gnome versus KDE
Dass es unter Linux zwei konkurrierende Desktop-Systeme gibt, hat historische Gründe: Das KDEProjekt basiert auf der Qt-Bibliothek der Firma Nokia, die Anfang 2008 die Firma Trolltech (die Entwickler von Qt) aufgekauft hat. Für die erste Version von Qt galten jedoch diverse Einschränkungen im Vergleich zur GPL. (Mittlerweile ist Qt vollständig GPL-kompatibel.) Einem Teil der Linux-Gemeinde gingen diese Einschränkungen zu weit, und sie gründeten quasi als Konkurrenzprojekt Gnome. Die Frage, ob Gnome oder KDE besser ist, erhitzt noch heute die Gemüter. Die Kurzfassung: Mit beiden Desktops kann man ausgezeichnet arbeiten. Gnome ist benutzerfreundlicher und etwas leichter zu erlernen, dafür ist KDE optisch ansprechender und bietet für technisch versierte Anwender mehr Konfigurationsmöglichkeiten. Viele Linux-Profis ziehen deswegen KDE vor, während im kommerziellen Umfeld Gnome dominiert. Viele Distributionen überlassen dem Anwender die Wahl und stellen Pakete für beide Desktops zur Verfügung. So ist es möglich, beide Systeme parallel zu installieren und bei jedem Login zwischen einem der beiden Desktops zu wählen. Was aber noch viel wichtiger ist: Sie können selbstverständlich KDE- und Gnome-Programme parallel benutzen. Wenn Sie sich beispielsweise für Gnome als Desktop entscheiden, können Sie dennoch das ausgezeichnete KDE-Programm K3b zum Brennen von CDs und DVDs verwenden. Mittlerweile sind Gnome- und KDE-Programme so weit zueinander kompatibel, dass selbst Drag&Drop-Kommandos desktop-übergreifend funktionieren.
Arbeiten ohne Desktop-System
82
Gnome und KDE bieten zwar tolle Funktionen, sie beanspruchen aber auch eine Menge RAM und CPU-Leistung. Auf ressourcenschwachen Rechnern ist es besser, auf ein richtiges Desktop-System
Der Aufbau des Desktops
Abschnitt 4.1
zu verzichten. Wenn Sie dennoch eine grafische Benutzeroberfläche wünschen, setzen Sie zur Fensterverwaltung einen sogenannten Window Manager ein (z. B. Xfce oder LXDE). Es gibt Distributionen wie Xubuntu, deren Paketauswahl dahingehend optimiert ist. Noch spartanischer ist es, ganz im Textmodus zu arbeiten. Gerade für typische Netzwerk-, Firewall- oder Server-Aufgaben ist das vollkommen ausreichend.
4.1 Der Aufbau des Desktops Bevor Sie unter Gnome arbeiten können, müssen Sie sich mit Ihrem Benutzernamen (Login-Namen) und dem Passwort anmelden. Im Login-Bildschirm gibt es zudem ein Menü E INSTELLUNGEN (normalerweise links unten), in dem Sie die gewünschte Sprache und das Desktop-System auswählen (nur, wenn neben Gnome auch KDE oder eine andere Benutzeroberfläche installiert ist).
Login und Logout
Je nach Distribution bzw. Konfiguration gibt es zwei Orte, wo Sie sich abmelden oder den Rechner herunterfahren können: im SYSTEM-Menü oder in einem Miniprogramm, das üblicherweise am rechten Rand des oberen Panels Ihren Login-Namen anzeigt. Sofern Ihr Rechner dies unterstützt und die zugrunde liegenden ACPI-Funktionen Linux-kompatibel sind, besteht auch die Möglichkeit, den Rechner in einen Ruhe- oder Energiesparmodus zu versetzen. Persönlich habe ich mit diesen Schlafmodi leider überwiegend schlechte Erfahrungen gemacht. Wenn mehrere Benutzer einen Rechner verwenden, ist es nicht notwendig, dass sich der eine abmeldet, nur damit der andere rasch seine E-Mails lesen kann. Vielmehr können Sie mit BENUTZER WECHSELN einen »fliegenden Benutzerwechsel« durchführen. Dieses Menükommando finden Sie je nach Distribution in den Miniprogrammen B ENUTZERWECHSEL (Fedora) oder INDICATOR-A PPLET SESSION (Ubuntu), die beide standardmäßig im Panel rechts oben angezeigt werden. Bei openSUSE führen Sie im Startmenü ABMELDEN aus und haben im dann erscheinenden Bestätigungsdialog die Möglichkeit, einen Benutzerwechsel durchzuführen.
Benutzerwechsel
Intern wird für jeden Benutzer ein eigenes Grafiksystem (ein X-Server) gestartet. Mit anderen Worten: Mehrere parallele Logins erfordern eine Menge Ressourcen und werden nur auf schnellen Rechnern zufriedenstellend funktionieren. Zum Wechsel zwischen den angemeldeten Benutzern gelten die in Tabelle 4.1 zusammengefassten Tastenkürzel. BENUTZER
FEDORA
ANDERE DISTRIBUTIONEN
Erster Benutzer
(Strg)+(Alt)+(F1)
(Strg)+(Alt)+(F7)
Zweiter Benutzer
(Strg)+(Alt)+(F7)
(Strg)+(Alt)+(F8)
Dritter Benutzer
(Strg)+(Alt)+(F8)
(Strg)+(Alt)+(F9)
... Nach dem Login gelangen Sie in den Gnome-Desktop. Wie bereits erwähnt, hängt das Aussehen stark von der jeweiligen Distribution ab. Abbildung 4.1 wurde unter Ubuntu erstellt, wenn auch nicht in der Ubuntu-typischen Standardkonfiguration (siehe zum Vergleich Abbildung 38.1 auf Seite 1106).
Tabelle 4.1: Tastenkürzel zum Benutzerwechsel Desktop
83
Kapitel 4
Gnome
Abbildung 4.1: Der GnomeDesktop
Der Desktop setzt sich standardmäßig aus den folgenden Elementen zusammen: » aus zwei Panels, eines am oberen Bildschirmrand, eines am unteren Bildschirmrand » dem Gnome-Menü im oberen Panel » der Task-Leiste im unteren Panel » Icons und diversen Hilfsprogrammen (sogenannten Applets) in beiden Panels » dem eigentlichen Arbeitsbereich zwischen den beiden Panels Sämtliche Desktop-Elemente sind konfigurierbar: Sie können beispielsweise die Panels auf anderen Bildschirmrändern platzieren, Elemente aus den Panels entfernen, andere einfügen, Eigenschaften der Panelelemente verändern etc. In die entsprechenden Konfigurationsdialoge gelangen Sie in der Regel mit der rechten Maustaste. Arbeitsbereich
Der eigentliche Arbeitsbereich ist anfänglich zumeist weitestgehend leer, wenn man von ein paar Icons für externe Datenträger absieht. Ja nach Konfiguration kommen weitere Icons für den Papierkorb, für das persönliche Verzeichnis etc. hinzu. Sie können im Arbeitsbereich Dateien und Verzeichnisse ablegen, die dann in Form von Icons dargestellt werden. Physikalisch handelt es sich dabei um Dateien, die im Verzeichnis ~/Desktop abgelegt werden. Um die Darstellung und Verwaltung der Icons kümmert sich der Gnome-Dateimanager
84
Der Aufbau des Desktops
Abschnitt 4.1
Nautilus. Icon-Eigenschaften (Aussehen, Ort etc.) werden im Verzeichnis ~/.nautilus/metafiles/* gespeichert. Persönlich bin ich kein Freund von Desktop-Icons: Bei mir verdecken in der Regel eine Menge großer Fenster den Arbeitsbereich, sodass die Icons schwer zugänglich sind. Wenn Sie gern Icons verwenden, sollten Sie sich die Tastenkombination (Strg)+(Alt)+(D) merken: Damit werden alle offenen Fenster minimiert. Im Gnome-Panel gibt es für diese Aktion auch ein eigenes Icon DESKTOP ANZEIGEN . Wenn dieses Icon bei Ihrer Gnome-Konfiguration fehlt, klicken Sie ein Panel mit der rechten Maustaste an und führen Z UM PANEL HINZUFÜGEN jDESKTOP ANZEIGEN aus. Ein Panel ist ein rechteckiger Bereich, der sich an einem Bildschirmrand befindet (standardmäßig oben und unten). Das Panel an sich hat keine Funktion, es dient nur als Container für diverse andere Desktop-Elemente (sogenannte Miniprogramme oder Applets, zu denen auch das Menü und die Taskleiste zählen). Diverse Paneleigenschaften verändern Sie mit der rechten Maustaste (z. B. seine Breite, die Farbe bzw. die Transparenz).
Panels
Panels lassen sich einfach per Maus verschieben. Allerdings sind die meisten Applets nur für horizontale Panels optimiert; insofern führt die Anordnung der Panels am linken oder rechten Bildschirmrand nicht zu optimalen Ergebnissen. (KDE, aber auch Windows sind diesbezüglich besser durchdacht. Angesichts immer breiterer Bildschirme habe ich eine Vorliebe für vertikale Panels. Gnome macht mir da leider einen Strich durch die Rechnung.) Es ist möglich, sämtliche Elemente der beiden Standardpanels in einem einzigen Panel zu integrieren. Das spart Platz und vergrößert den eigentlichen Arbeitsbereich. SUSE- und Novell-Distributionen sind standardmäßig so konfiguriert. Der Nachteil: Wenn viele Programme und Applets gleichzeitig laufen, erscheinen die Panelelemente gedrängt und werden unübersichtlich. Applets sind zumeist kleine Programme, die innerhalb von Panels ausgeführt werden. Neben den standardmäßig enthaltenen Applets gibt es unzählige weitere, von denen die wichtigsten im Folgenden kurz vorgestellt werden. Um einem Panel ein weiteres Applet hinzuzufügen, drücken Sie im Panel die rechte Maustaste und führen Z UM PANEL HINZUFÜGEN aus (siehe Abbildung 4.2).
Miniprogramme (Applets)
Abbildung 4.2: Applets hinzufügen
85
Kapitel 4
Gnome
Diverse Applet-Eigenschaften verändern Sie über die rechte Maustaste. Außerdem können Sie die Applets mit der rechten Maustaste innerhalb des Panels verschieben. Wenn Sie dabei zusätzlich (ª) drücken, schieben Sie die davor bzw. dahinter befindlichen Applets mit (wie mit einem Schneepflug). Sollte das Verschieben nicht funktionieren, ist das Applet zumeist gesperrt. Das ist ein Schutz gegen unbeabsichtigte Änderungen. Diese Sperre heben Sie einfach per Kontextmenü auf. Gnome-Menü
Das wahrscheinlich wichtigste Applet ist das Gnome-Menü (siehe auch Abbildung 4.1). Das klassische Gnome-Menü besteht aus drei Gruppen: aus A NWENDUNGEN zum Start von Programmen, aus O RTE zum Öffnen von Verzeichnissen bzw. zum Start des Datei-Managers Nautilus und schließlich aus SYSTEM zur Konfiguration, Administration und zum Logout. Wie übersichtlich das Menü ist, hängt stark von dessen Konfiguration ab. Vorbildlich ist in dieser Hinsicht Ubuntu, wo das Menü nur häufig benötigte Programme enthält. Oft benötigte Programme können Sie per Drag&Drop oder mit der rechten Maustaste (Kommando A LS STARTER ZUM PANEL HINZUFÜGEN ) in einen leeren Bereich des Panels einfügen. Sie erscheinen dort als Icons und ermöglichen so einen besonders schnellen Start. Sie können das Menü auch selbst modifizieren. Dazu verwenden Sie den Menüeditor alacarte, den Sie mit SYSTEMjEINSTELLUNGENjHAUPTMENÜ starten. Der Menüeditor enthält in der Regel eine Menge nicht aktiver Einträge, die Sie nur noch aktivieren müssen. Außerdem können Sie natürlich auch vollkommen neue Einträge definieren oder diese anders gruppieren. Die Firma Novell war mit den Gnome-Menü nicht glücklich und hat ein eigenes Menü entwickelt (natürlich als Open-Source-Code). Es vereinfacht den Zugriff auf oft benötigte Programme und die zuletzt geöffneten Dokumente und Verzeichnisse (siehe Abbildung 4.3). Der Preis für die übersichtliche Konzeption ist der relativ umständliche Start selten benutzter Programme aus einer Art Programm-Manager heraus (Programm application-browser).
Abbildung 4.3: Gnome-MenüVariante in openSUSE 11.3
Auf das neue Gnome-Menü stoßen Sie momentan primär in Novell- und SUSE-Distributionen. Einige Distributionen bieten das Menü als optionales Paket unter dem Namen gnome-main-menu an. Nach
86
Der Aufbau des Desktops
Abschnitt 4.1
der Installation des Pakets fügen Sie das neue Menü wie jedes andere Applet in das Panel ein und entfernen dann das herkömmliche Menü. Das Applet FENSTERLISTE zeigt für jedes Fenster ein Icon an und entspricht so der aus Windows bekannten Task-Leiste. Im Konfigurationsdialog können Sie wählen, ob Fenster eines Programms (also z. B. alle Gimp-Fenster) gruppiert werden sollen. Das erhöht bei vielen Fenstern die Übersichtlichkeit, erfordert aber beim Fensterwechsel einen zusätzlichen Mausklick. Die Icons in der Fensterliste sind in der Reihenfolge des Programmstarts angeordnet. Sie können die Icons anschließend nach Belieben selbst verschieben. Eine automatische Sortierung nach Programmnamen ist leider nicht möglich.
Task-Leiste (Fensterliste)
Für die eigentliche Verwaltung der Fenster, also für das Verschieben, Vergrößern, Verkleinern etc., ist der sogenannte Window Manager verantwortlich. Gnome kommt mit verschiedenen Window Managern zurecht. Standardmäßig kommt in der Regel das Programm metacity zum Einsatz. Viele Fensteroperationen lassen sich auch mit der Tastatur erledigen. Die dafür vorgesehenen Kürzel können Sie mit SYSTEMjEINSTELLUNGEN jTASTENKOMBINATIONEN ansehen bzw. verändern (Programm gnome-keybinding-properties). Statt der Fensterliste (oder auch in Kombination mit dieser) können Sie das platzsparende Applet FENSTERWÄHLER einsetzen. Es zeigt lediglich ein Icon für das gerade aktive Fenster an. Ein Mausklick führt zu einem Menü aller offenen Fenster.
Fensterwähler
Leider bietet weder der FENSTERWÄHLER noch die FENSTERLISTE irgendwelche Konfigurationsmöglichkeiten, um die Reihenfolge der Fenster zu beeinflussen. (Meine persönliche Wunschvorstellung wäre es, die Fenster zuerst nach dem Programmnamen und dann nach dem Dokumentnamen zu sortieren.) Wie von anderen Betriebssystemen gewohnt, können Sie Fenster mit der Titelleiste verschieben sowie an den Rändern vergrößern bzw. verkleinern. Eine ärgerliche Eigenheit von Gnome besteht darin, dass Sie den Fensterrand bei den vielen Themen (die das Aussehen von Gnome steuern, siehe Seite 96) zum Anklicken auf ein Pixel genau mit der Maus treffen müssen. Mit einem Touchpad ist das nahezu unmöglich. Einfacher geht es mit (Alt) und der mittleren Maustaste. Mit dieser Tastenkombination reicht es aus, die Maustaste in der Nähe des Fensterrands zu drücken. Wenn es keine mittlere Maustaste gibt, können Sie die Fenstergröße auch über das Fenstermenü ändern, was aber umständlich ist.
Fenster verschieben, vergrößern und verkleinern
In diesem Zusammenhang noch ein Tipp: Zum Verschieben des Fensters können Sie auch (Alt) und die linke Maustaste verwenden, wobei die Maus irgendwo im Fenster gedrückt werden darf. Das ist vor allem auf Netbooks praktisch, um einen für den Bildschirm zu großen Dialog so weit nach oben zu verschieben, dass der OK- oder W EITER-Button sichtbar wird. Arbeitsflächen ermöglichen es, die Fenster der laufenden Programme auf mehrere virtuelle Desktops zu verteilen und zwischen diesen Desktops zu wechseln. Das erleichtert die Arbeit und verbessert die Übersicht, wenn Sie sehr viele Fenster gleichzeitig öffnen. Beispielsweise können Sie das Bildverarbeitungsprogramm Gimp in einer eigenen Arbeitsfläche starten. Damit befinden sich die vielen Gimp-Fenster in einer Arbeitsfläche und alle anderen Fenster in einer zweiten Arbeitsfläche. Für die Verwaltung der Arbeitsflächen ist das Applet A RBEITSFLÄCHENUMSCHALTER
Arbeitsflächen
87
Kapitel 4
Gnome
verantwortlich. In dessen Einstellungsdialog stellen Sie die gewünschte Anzahl von Arbeitsflächen ein. Für ständig benötigte Fenster besteht die Möglichkeit, diese so zu kennzeichnen, dass sie nicht auf einer, sondern auf allen Arbeitsflächen sichtbar sind. Dazu öffnen Sie mit der Maus oder mit (Alt)+ (Leertaste) das Fenstermenü und aktivieren die Option IMMER AUF DER SICHTBAREN A RBEITSFLÄCHE. Benachrichtigungsfeld
Wenn das Panel das sogenannte Benachrichtigungsfeld enthält, können Hintergrundprogramme im Panel auf sich aufmerksam machen (z. B. anzeigen, ob eine Netzwerkverbindung besteht, ob neue Updates verfügbar sind oder eine neue E-Mail eingetroffen ist). Das Benachrichtigungsfeld erfüllt also für sich keine Funktion, sondern ist lediglich ein Platzhalter, in dem andere Programme Icons darstellen können. An sich erscheint diese Funktion selbstverständlich zu sein, und tatsächlich werden Sie auf das Benachrichtigungsfeld wohl erst aufmerksam, wenn es aus irgendeinem Grund im Panel fehlt und Benachrichtigungen über E-Mails, Updates etc. ausbleiben. Wenn Sie Ubuntu einsetzen, muss im Panel außer dem Benachrichtigungsfeld auch die Benachrichtigungsanzeige ausgeführt werden. Das zugrunde liegende Applet indicator-applet dient als Container für diverse Ubuntu-spezifische Programme zum Abmelden, zur Kommunikation via E-Mail und Social Networking, zur Einstellung der Lautstärke etc. (siehe Seite 1123).
Benutzerwechsel
Bei Fedora ist standardmäßig das Applet BENUTZERWECHSEL (gdm-user-switch-applet) aktiv. Es zeigt im Panel rechts oben den gerade aktuellen Benutzernamen an. Ein Mausklick auf den Namen öffnet ein kleines Menü, in dem Sie sich abmelden, einen Benutzerwechsel durchführen oder diverse Einstellungen verändern können. Ubuntu verwendet zum Ausloggen und zum Benutzerwechsel das ähnlich aussehende Miniprogramm indicator-applet-session.
4.2 Nautilus Das Programm Nautilus ist der Dateimanager des Gnome-Desktops (siehe Abbildung 4.4). Es gibt nicht nur Zugriff auf Dateien und Verzeichnisse, sondern ermöglicht auch den Zugriff auf externe Datenträger und Netzwerkverzeichnisse. Dieser Abschnitt beschreibt die Bedienung von Nautilus, geht aber nicht im Detail auf die Besonderheiten der Dateiverwaltung unter Linux ein. Diesem Thema ist ein eigenes Kapitel gewidmet, das auf Seite 297 beginnt. Dort erfahren Sie unter anderem, was Links sind, wie verborgene Dateien gekennzeichnet werden und wie Zugriffsrechte unter Linux funktionieren. Nautilus starten Sie üblicherweise im Gnome-Menü mit O RTEjPERSÖNLICHER O RDNER. Das O RTEMenü enthält auch einige andere Einträge, die den Zugriff auf oft benötigte Verzeichnisse erleichtern. In Nautilus definierte Lesezeichen werden ebenfalls im ORTE-Menü angezeigt. Der Dateimanager zeigt den Inhalt des ausgewählten Verzeichnisses standardmäßig in der Symbolansicht an. Jede Datei wird durch ein Icon dargestellt, das bei einigen Dateitypen (insbesondere bei Bildern) gleichzeitig eine Vorschau auf den Inhalt gibt. Die Vorschau funktioniert standardmäßig nur bei lokalen Dateien (nicht in Netzwerkverzeichnissen) bis zu 10 MByte. Das können Sie mit BEARBEITENjEINSTELLUNGEN jVORSCHAU verändern.
88
Nautilus
Abschnitt 4.2
Abbildung 4.4: Nautilus
Damit die Vorschau nicht immer wieder neu erzeugt werden muss, speichert Nautilus die Bilder im Verzeichnis ~/.thumbnails. Auch viele andere Gnome-Programme nutzen dieses Verzeichnis. Der linke Fensterrand enthält normalerweise eine Seitenleiste, die einen raschen Wechsel zu wichtigen Verzeichnissen ermöglicht (ORTE-Ansicht). Sie können in der Seitenleiste aber auch einen Verzeichnisbaum, Informationen zum gerade aktuellen Verzeichnis oder eine Liste der zuletzt besuchten Verzeichnisse (C HRONIK) anzeigen. (F9) schaltet die Seitenleiste aus bzw. wieder ein.
Seitenleiste
Unterhalb der Symbolleiste befinden sich einige Buttons, mit denen Sie rasch in übergeordnete Verzeichnisse wechseln können. Aus den Buttons geht auch der aktuelle Verzeichnispfad hervor. Alternativ zeigt Nautilus an dieser Stelle mit (Strg)+(L) den kompletten Pfad an, was vor allem die rasche Eingabe eines anderen Verzeichnisses erleichtert.
Verzeichniswechsel
Mit DATEIjN EUER REITER oder (Strg)+(T) öffnen Sie ein neues Dialogblatt. Besonders praktisch sind Dialogblätter, wenn Sie Dateien von einem Verzeichnis in ein anderes kopieren oder verschieben möchten: Während Drag&Drop-Operationen können Sie das aktive Dialogblatt wechseln. Beachten Sie aber, dass Sie die Dateien im Dialogblatt, nicht aber in dessen Beschriftung (also im Reiter) fallen lassen.
Reiter
Bei den meisten Dateitypen wird die Datei durch einen Doppelklick geöffnet. Der Dateimanager startet automatisch das geeignete Programm. Wenn der Dateityp dem Dateimanager nicht bekannt ist, klicken Sie die Datei mit der rechten Maustaste an und führen M IT ANDERER A NWENDUNG ÖFFNEN aus. Damit gelangen Sie in einen Dialog, der die meisten auf dem Rechner installierten Programme zur Auswahl anbietet.
Dateien öffnen
89
Kapitel 4
Gnome
Bei manchen Dateien sind mehrere Programme zur Bearbeitung geeignet. Beispielsweise können Sie Bilddateien wahlweise mit einem Bildbetrachter, mit Gimp oder mit Firefox öffnen. Eines dieser Programme gilt als Standardprogramm und wird per Doppelklick gestartet. Wenn Sie das Standardprogramm ändern möchten, klicken Sie die Datei mit der rechten Maustaste an, führen EIGENSCHAFTENjÖ FFNEN MIT aus und wählen das gewünschte Programm. Die Einstellung gilt in Zukunft für alle Dateien mit derselben Endung, also beispielsweise für alle *.png-Dateien. Dateien verschieben und kopieren
Zuvor markierte Dateien kopieren Sie mit (Strg)+(C) bzw. schneiden Sie mit (Strg)+(X) aus. Anschließend fügen Sie die betreffenden Dateien mit (Strg)+(V) am neuen Ort wieder ein. (Ausgeschnittene Dateien werden erst jetzt am Ursprungsort gelöscht.) Deutlich einfacher ist es, wenn Sie statt der Tastatur die Maus einsetzen und Dateien per Drag&Drop von einem Dateimanager-Fenster in ein zweites verschieben. Dabei werden die Dateien normalerweise verschoben, nicht kopiert. Eine Ausnahme von dieser Regel sind Drag&Drop-Operationen zwischen unterschiedlichen Datenträgern, also beispielsweise von der CD oder von einem Netzwerkverzeichnis in das lokale Dateisystem. Im Mauszeiger wird in solchen Fällen ein Plus-Symbol eingeblendet, sodass die Wirkung der Operation klar sein sollte. Wenn Sie eine Datei gezielt kopieren statt verschieben möchten, drücken Sie während der Drag&Drop-Operation die (Strg)-Taste. Wenn Sie den Verschiebemodus selbst angeben möchten, drücken Sie die (Alt)-Taste. Nach dem Loslassen der Maus haben Sie die Möglichkeit, die Datei zu kopieren, zu verschieben oder eine Verknüpfung (einen Link) einzurichten. Beachten Sie, dass die Seitenleiste ORTE sowie die Buttons zum Wechseln in übergeordnete Verzeichnisse (also die Buttons unterhalb der Symbolleiste des Dateimanagers) nicht das Ziel von Drag&Drop-Operationen sein können. Es ist aber immerhin möglich, Dateien in ein anderes Verzeichnis der Baumansicht zu verschieben bzw. zu kopieren.
Dateien suchen
Mit G EHE ZUjN ACH DATEIEN SUCHEN bzw. dem SUCHEN-Button können Sie im Adressfeld einen Suchbegriff eingeben. Nautilus liefert dann eine Liste aller Dateien, die den Suchbegriff im Dateinamen enthalten. Dabei wird das Heimatverzeichnis durchsucht (nicht das aktuelle Verzeichnis!). Im Anschluss an die Suche können Sie die Suchergebnisse auf einen bestimmten Dokumenttyp oder ein Verzeichnis einschränken. Vergessen Sie nicht, den Button AKTUALISIEREN anzuklicken! Alternativ können Sie zur Suche auch das Kommando O RTEjN ACH DATEIEN SUCHEN im Gnome-Menü verwenden. Sie starten damit das Programm gnome-search-tool. Das Programm akzeptiert wesentlich mehr Suchkriterien, arbeitet aber langsam. Wesentlich schneller finden Sie die gewünschte Datei, wenn Sie die Desktop-Suche Tracker einsetzen (siehe Seite 314).
Verborgene Dateien
90
Unter Linux gelten alle Dateien und Verzeichnisse, deren Namen mit einem Punkt beginnen, als verborgen. Das bedeutet, dass sie im Dateimanager bzw. in Dateiauswahldialogen normalerweise nicht angezeigt werden. Verborgene Dateien enthalten oft Konfigurationseinstellungen oder andere Daten, die nicht direkt verändert werden sollen. Eine direkte Bearbeitung versteckter Dateien und Verzeichnisse ist nur in Ausnahmefällen zweckmäßig (z. B. wenn Sie ein Backup Ihrer E-Mail-Verzeichnisse in ~/.mozilla-thunderbird durchführen möchten). Damit solche Dateien und Verzeichnisse im Dateimanager sichtbar werden, führen Sie A NSICHTjVERBORGENE DATEIEN ANZEIGEN aus.
Nautilus
Abschnitt 4.2
Damit nicht jeder Benutzer alle Dateien und Verzeichnisse lesen bzw. verändern kann, speichert Linux zu jeder Datei und zu jedem Verzeichnis den Besitzer sowie Zugriffsrechte. Das zugrunde liegende Konzept wird ab Seite 333 ausführlich beschrieben. Um den Besitzer oder die Zugriffsrechte zu ändern, klicken Sie die Datei mit der rechten Maustaste an und führen EIGENSCHAFTENjZ UGRIFFSRECHTE aus.
Zugriffsrechte
Wenn Sie Dateien und Verzeichnisse löschen, landen diese vorerst im Papierkorb. Den Inhalt des Papierkorbs sehen Sie im Dateimanager mit G EHE ZUjMÜLL oder durch einen Klick auf das MüllIcon. Erst wenn Sie dort alle Objekte markieren und (Entf) drücken, werden die Dateien endgültig gelöscht.
Dateien löschen
Standardmäßig bietet der Dateimanager keine Möglichkeit, Dateien sofort endgültig zu löschen. Wenn Sie das wünschen, führen Sie B EARBEITENjEINSTELLUNGENjVERHALTEN aus und aktivieren die Option EINEN LÖSCHBEFEHL BEREITSTELLEN , DER DEN MÜLL UMGEHT . In diesem Dialog können Sie auch die Löschrückfrage deaktivieren. Anschließend können Sie Dateien mit (ª)+(Entf) unwiderruflich löschen. Beim Einlegen einer CD oder DVD bzw. beim Anstecken eines USB-, Firewire- oder eSATA-Laufwerks erscheint automatisch ein neues Nautilus-Fenster mit dem Inhalt des Datenträgers. Nautilus kümmert sich selbst darum bzw. um den Start eines geeigneten Programms. Die zugrunde liegenden Einstellungen finden Sie im Nautilus-Konfigurationsdialog B EARBEITEN jEINSTELLUNGENjDATENTRÄGER . Die erforderlichen Rechte zum Einbinden von Datenträgern verwaltet PolicyKit (siehe Seite 361).
Externe Datenträger
Denken Sie daran, dass Sie externe Festplatten oder USB-Sticks explizit abmelden müssen, bevor Sie das Kabel zum Computer lösen! Dazu klicken Sie das Datenträger-Icon mit der rechten Maustaste an und führen A USHÄNGEN aus. Falls der Desktop keine Datenträger-Icons enthält (je nach Gnome-Konfiguration), führen Sie im Gnome-Menü O RTEjC OMPUTER aus. Nautilus zeigt dann einen Überblick über alle bekannten Datenträger an. Das Kommando O RTEjN ETZWERK führt in ein Nautilus-Fenster, in dem nach einigen Sekunden Icons für alle erkannten Netzwerke angezeigt werden. In der Praxis ist das oft nur ein WINDOWSN ETZWERK. Ein Doppelklick führt zur nächsten Ansicht mit allen erkannten Windows-Netzwerken. Ein weiterer Doppelklick zeigt alle in diesem Netz sichtbaren Rechner an. Noch ein Doppelklick, und Sie wissen, welche Ressourcen dieser Rechner anbietet (sogenannte Windows-Freigaben). Ein letzter Doppelklick führt in eines der dort verfügbaren Verzeichnisse (siehe Abbildung 4.5).
WindowsFreigaben
Wenn das Netzwerkverzeichnis durch ein Passwort geschützt ist, müssen Sie den Login-Namen und das Passwort angeben. Dabei bekommen Sie die Möglichkeit, diese Daten bleibend in einer Passwortdatenbank zu speichern, die aber selbst wiederum durch ein Master-Passwort geschützt ist (siehe Seite 103). Wenn Nautilus ein Netzwerkverzeichnis ohne Passwort nutzen kann, entscheidet es sich immer für diese Variante. Diese Vorgehensweise ist allerdings nicht immer ideal: Je nachdem, wie der Windows- oder Samba-Server konfiguriert ist, zeigt Nautilus anschließend nur ein leeres Verzeichnis. Über die Benutzeroberfläche besteht nun keine Möglichkeit mehr, sich namentlich anzumelden. Abhilfe: Drücken Sie (Strg)+(L), und fügen Sie Ihren Login-Namen in den Pfad ein. Die korrekte Schreibweise lautet smb://login@servername/verzeichnisname.
91
Kapitel 4
Gnome
Abbildung 4.5: Der Weg in ein WindowsVerzeichnis führt über fünf Stationen.
Sollte Nautilus keine Windows-Server finden, ist die wahrscheinlichste Fehlerursache eine zu restriktive Firewall zwischen Ihrem Rechner und dem Windows-Rechner. Manchmal funktioniert auch nur die Namensauflösung nicht. Abhilfe: Drücken Sie (Strg)+(L), und geben Sie die Adresse smb://servername ein. Damit Sie den relativ umständlichen Weg in ein Netzwerkverzeichnis nicht immer wieder neu beschreiten müssen, richten Sie mit (Strg)+(D) ein Lesezeichen ein. Sofern die Nautilus-Erweiterung nautilus-share installiert ist, hilft Ihnen der Dateimanager auch dabei, selbst Verzeichnisse im Netzwerk freizugeben. Das funktioniert aber nur dann, wenn die lokale Firewall die Nutzung des Rechners als Samba-Server zulässt und wenn Sie das Verzeichnis ohne Passwort freigeben. Bei einigen Distributionen ist außerdem vorher eine Samba-Basiskonfiguration erforderlich (z. B. bei SUSE, wo Sie dazu das YaST-Modul NETZWERKDIENSTEjSAMBA-SERVER einsetzen). Weitere Details zur Freigabe eines Netzwerkverzeichnisses mit Nautilus sind auf Seite 954 zusammengefasst. Andere Netzwerkdienste
Über das Gnome-Menü können Sie mit O RTEjVERBINDUNG ZU SERVER auch eine Verbindung zu anderen Server-Diensten herstellen (FTP, WebDAV, SSH etc.). Noch schneller gelingt der Verbindungsaufbau, wenn Sie mit (Strg)+(L) direkt das gewünschte Protokoll und die Netzwerkadresse eingeben. Tabelle 4.2 fasst die wichtigsten Adressen bzw. Protokolle zusammen.
gvfs
Für den Zugriff auf Netzwerkverzeichnisse verwendet Gnome das GVFS (Gnome Virtual File System) und bindet die externen Verzeichnisse als Unterverzeichnisse von ~/.gvfs in den Verzeichnisbaum ein. Nautilus sowie Gnome-Dateiauswahldialoge zeigen externe Netzwerkverzeichnisse in der Seitenleiste an (drücken Sie gegebenenfalls (F9)).
92
Konfiguration
ADRESSE
ERGEBNIS
computer:
Liste aller Datenträger
ftp://hostname
Zugriff auf FTP-Server
network:
Verwendung als allgemeiner Netzwerk-Browser
sftp://hostname
Zugriff auf SFTP-Server (SSH-Protokoll)
smb:
Verwendung als Windows-Netzwerk-Browser
smb://hostname
Zugriff auf die Netzwerkverzeichnisse eines Windows-Rechners
trash:
Papierkorb (gelöschte Dateien)
Abschnitt 4.3
Tabelle 4.2: NautilusSpezialadressen
4.3 Konfiguration Gnome sieht sowohl zur individuellen Einrichtung der Benutzeroberfläche als auch für diverse Aspekte der Rechneradministration Konfigurationshilfen vor. Diese Programme sind momentan über die Menüs SYSTEMjEINSTELLUNGEN bzw. -jA DMINISTRATION zugänglich. Beachten Sie, dass die Wirkung der Administrationswerkzeuge über den eigentlichen Desktop hinausreicht und bei einer Gnome/KDE-Parallelinstallation auch für KDE gültig ist. Das ist bisweilen problematisch, insbesondere wenn die Konfigurationswerkzeuge mehrerer Desktop-Systeme in Konkurrenz zueinander stehen. Manche Distributionen stellen deswegen zur Systemkonfiguration ihre eigenen Werkzeuge zur Verfügung (z. B. Fedora, Mandriva, Red Hat, SUSE). Diese sind unabhängig vom Desktop-System und können zum Teil sogar im Textmodus verwendet werden. Die entsprechenden Gnome-Werkzeuge stehen dann in der Regel nicht zur Verfügung. Viele Gnome-Administrationswerkzeuge greifen auf das PolicyKit zurück. Konfigurationsänderungen sind erst möglich, nachdem das Programm mit dem persönlichen Passwort bzw. mit dem root-Passwort freigeschaltet wird. (Hintergrundinformationen zum PolicyKit finden Sie auf Seite 361.) Ich verzichte an dieser Stelle auf eine systematische Beschreibung aller in Gnome verfügbaren Werkzeuge und beschränke mich hier nur auf einige Besonderheiten und Tipps&Tricks. Die Einstellung des Bildschirmhintergrunds, des Bildschirmschoners und vergleichbar triviale Aufgaben werden Ihnen auch ohne meine Hilfe gelingen. Und der eigentlichen Systemadministration widme ich mich ausführlich ab Seite 473, wo ein ganzer Kapitelblock zum Thema Konfiguration und Administration beginnt. Ab Gnome 3.0 wird beim Start dieser Programme möglicherweise das gnome-control-center helfen (siehe Abbildung 4.6). Dieses Programm wird unter openSUSE schon jetzt eingesetzt und steht bei den meisten anderen Distributionen als optionales Paket zur Verfügung. Wer will, kann im Menüeditor mit wenig Mühe das SYSTEM-Menü so abändern, dass statt der vielen Einzeleinträge nur noch das Kontrollzentrum enthalten ist.
GnomeKontrollzentrum
Die Einstellungsdialoge von Gnome-Programmen (in der Regel BEARBEITENjEINSTELLUNGEN ) enthalten nur die wichtigsten Optionen. Für die Mehrheit aller Anwender gibt das ausreichend Kon-
gconf-editor
93
Kapitel 4
Gnome
Abbildung 4.6: Das GnomeKontrollzentrum
figurationsspielraum, und gleichzeitig sind die Einstellungsdialoge übersichtlich und einfach zu bedienen. Profis, die Zusatzoptionen verändern möchten, starten mit (Alt)+(F2) den Gnome-Konfigurationseditor gconf-editor. Dieses Programm, das bei einigen Distributionen extra installiert werden muss, sieht so ähnlich aus wie der Registrierungseditor unter Windows und gewährt Zugang zu vielen weiteren Optionen. Das Programm ist einfach zu bedienen, das Problem besteht allerdings darin, die richtige Option in der baumartigen Struktur zu finden. Die Gnome-Konfigurationsdatei kann auch durch das Kommando gconftool-2 verändert werden. Dadurch lassen sich Modifikationen durch Scripts automatisieren. Beispielsweise bewirkt das folgende Kommando, dass die meisten Gnome-Programme in den Symbolleisten nur Symbole, aber keine Textbeschreibung anzeigen (was eine Menge Platz spart): user$ gconftool-2 --set /desktop/gnome/interface/toolbar_style --type string "icons" Konfigurationsverzeichnisse
94
Die meisten Gnome-Programme speichern ihre Einstellungen in eigenen Dateien der Verzeichnisse ~/.gnome2, ~/.config oder ~/.local. Ebenfalls beliebt ist die Gnome-Konfigurationsdatenbank, deren Inhalt über zahlreiche Dateien des Verzeichnisses ~/.gconf verstreut ist. Einige Programme verwenden auch eigene Konfigurationsverzeichnisse, z. B. ~/.nautilus oder ~/.evolution.
Konfiguration
Abschnitt 4.3
Abbildung 4.7: Der GnomeKonfigurationseditor
Einstellmöglichkeiten Der Gnome-Window-Manager metacity kennt keine 3D-Funktionen. Wenn Gnome als 3D-DesktopSystem konfiguriert ist, kommt statt metacity ein anderer Window Manager zum Einsatz, in der Regel compiz. Weitere Informationen zum 3D-Desktop finden Sie ab Seite 595.
3D-Desktop
Die Konfiguration des 3D-Desktops ist distributionsabhängig: Bei Ubuntu können Sie 3D-Effekte mit SYSTEMjEINSTELLUNGEN jERSCHEINUNGSBILDjVISUELLE EFFEKTE aktivieren, bei Fedora mit SYSTEMj EINSTELLUNGEN jDESKTOPEFFEKTE und bei openSUSE im Modul ARBEITSFLÄCHEN -EFFEKTE des Kontrollzentrums. Diese Konfigurationshilfen lassen aber keine detaillierte Steuerung der Effekte zu. Dazu müssen Sie spezielle Compiz-Konfigurationsprogramme verwenden, z. B. ccsm (Paket compizconfig-settings-manager) oder dessen einfachere Variante simple-ccsm. Nach dem Start des Rechners müssen Sie sich einloggen, bevor Sie mit der Arbeit beginnen. Wenn Sie der einzige Benutzer des Rechners sind und keine Gefahr besteht, dass andere Personen Zugang zum Rechner haben, können Sie den ersten Login beim Rechnerstart automatisieren.
Auto-Login
Dazu starten Sie mit SYSTEMjA DMINISTRATIONjA NMELDEFENSTER das Programm gdmsetup. Nachdem Sie mit UNLOCK das root-Passwort bzw. bei Ubuntu Ihr eigenes Passwort angegeben haben, stellen Sie ein, wer sich einloggen darf (siehe Abbildung 4.8). Wenn gdmsetup auf Ihrem System nicht zur Verfügung steht, finden Sie auf Seite 564 eine Anleitung, wie Sie die Auto-Login-Konfiguration manuell vornehmen.
Abbildung 4.8: Auto-LoginKonfiguration
95
Kapitel 4
Gnome
Wenn auf Ihrem Rechner sowohl Gnome als auch KDE installiert ist, ist für den Login möglicherweise der KDE-Display-Manager zuständig. In diesem Fall müssen Sie den Auto-Login mit dem KDE-Programm kcmshell kdm einrichten (siehe Seite 123). Welcher Display Manager läuft, stellen Sie am einfachsten in einem Konsolenfenster mit dem folgenden Kommando fest: user$
ps ax | egrep 'gdm|kdm'
Bei Novell- und SUSE-Distributionen erfolgt die Konfiguration der Auto-Login-Funktion desktopunabhängig in der Datei /etc/sysconfig/displaymanager. Versuchen Sie nicht, den Auto-Login mit KDE- oder Gnome-Werkzeugen zu verändern, Ihre Einstellungen werden bei nächster Gelegenheit von YaST überschrieben! Autostart
Mit SYSTEMjEINSTELLUNGENjSITZUNGENjSTARTPROGRAMME geben Sie an, welche Programme bei jedem Login gestartet werden sollen. Gnome speichert jedes persönlich konfigurierte AutostartProgramm als *.desktop-Datei im Verzeichnis ~/.config/autostart. Insgesamt werden die folgenden Autostart-Dateien berücksichtigt: ~/.config/autostart/*.desktop /usr/share/gnome/autostart/*.desktop /etc/xdg/autostart/*.desktop
(persönliche Autostart-Programme) (globale Autostart-Programme für Gnome) (globale Autostart-Programme für alle Desktops, also für Gnome und KDE)
Wenn Sie möchten, dass sich Gnome beim Abmelden merkt, welche Programme gerade laufen, und beim nächsten Login versuchen soll, diese Programme wieder zu starten, führen Sie SYSTEMj EINSTELLUNGEN jSTARTPROGRAMMEjO PTIONEN aus und aktivieren die Option A UTOMATISCH DIE LAUFENDEN P ROGRAMME BEIM A BMELDEN MERKEN . Dieser Mechanismus funktioniert leider nur für Gnome-Programme. Firefox, Thunderbird, OpenOffice sowie diverse andere Programme, die nicht auf Gnome-Bibliotheken basieren, sind von dieser Wiederherstellung des bisherigen Zustands ausgeschlossen. DesktopAussehen
Die Optik und das Layout von Gnome werden stark durch sogenannte Themen geprägt. Das aktuelle Thema stellen Sie mit SYSTEMjEINSTELLUNGENjERSCHEINUNGSBILDjTHEMA ein (siehe Abbildung 4.9). Wenn Ihnen die Auswahl unter den vorinstallierten Themen zu klein ist, können Sie von http://art.gnome.org/themes weitere Themen in Form von *tar.gz-Dateien herunterladen und die TAR-Archive dann im Dialogblatt E RSCHEINUNGSBILDjTHEMA installieren. Das neue Thema bekommt automatisch den Namen BENUTZERDEFINIERT . Damit Sie zwischen mehreren heruntergeladenen Themen differenzieren können, müssen Sie den Themen eigene Namen geben (SPEICHERN UNTER). Für die Screenshots in diesem Buch sind übrigens häufig die Themen New Wave und Correcamins zum Einsatz gekommen. Mit A NPASSEN können Sie diverse Details des Themas variieren: Die Gestaltung der Dialogelemente, die Farben, das Aussehen des Fensterrahmens, die in Menüs und Buttons eingesetzte Icon-Kollektion und die Form des Mauscursors. Sie müssen diese Einstellungen allerdings explizit unter einem neuen Themennamen speichern, andernfalls gehen sie verloren, sobald Sie ein anderes Standardthema auswählen.
96
Konfiguration
Abschnitt 4.3
Abbildung 4.9: Desktop-Thema einstellen
In der Vergangenheit verfügte Gnome mit dem gnome-cups-manager über ein eigenes Programm zur Verwaltung und Konfiguration von Druckern. Mittlerweile setzen die meisten Distributionen stattdessen das von Red Hat entwickelte Programm system-config-printer ein (siehe Abbildung 4.10). Mandriva setzt allerdings weiterhin auf die Eigenentwicklung printerdrake, und SUSE setzt auf YaST (siehe Seite 1092).
Druckerkonfiguration
Abbildung 4.10: Druckerverwaltung
Im Idealfall erfolgt die Druckerkonfiguration automatisch: Fedora und Ubuntu erkennen viele USBDrucker direkt beim Anstecken, führen die Konfiguration selbstständig durch und signalisieren durch ein Icon im Panel, dass das Gerät bereit zum Drucken ist. Bequemer geht es nicht mehr! Wenn die automatische Druckerkonfiguration nicht funktioniert, starten Sie das Konfigurationsprogramm system-config-printer. N EU führt zu einem Assistenten, der eine Liste aller zur Auswahl stehenden Druckertypen anzeigt (inklusive eventuell erkannter Drucker, siehe Abbildung 4.10). Bei Netzwerkdruckern führt zumeist APP SOCKET/HP JETDIRECT zum Ziel. Nach der Auswahl des Druckertyps wählen Sie den Druckertreiber aus. Dabei geben Sie den Hersteller und das Modell an.
97
Kapitel 4
Gnome
Zuletzt müssen Sie dem Drucker noch einen Namen geben. Damit ist die Basiskonfiguration beendet. Alle weitergehenden Einstellungen und Druckeroptionen (Papiergröße, Duplex-Modus etc.) sind optional und erfolgen im Dialog EIGENSCHAFTEN. Fensterverwaltung (Tiling)
Tabelle 4.3: WinWrangerTastenkürzel
Der unter Gnome standardmäßig eingesetzte Window Manager Metacity kennt keine Kommandos (sogenannte Tiling-Funktionen), um die aktiven Fenster bei Bedarf neu über den Bildschirm zu verteilen. Abhilfe schafft das Zusatzprogramm WinWrangler, das extra installiert werden muss. (Bei aktuellen Ubuntu-Versionen steht das Programm als Paket zur Verfügung.) Wenn das Programm läuft (winwrangler -d, der Start erfolgt am besten via SYSTEMjEINSTELLUNGEN jSITZUNGENjSTART PROGRAMME ), reagiert es auf die in Tabelle 4.3 zusammengefassten Tastenkürzel. TASTENKÜRZEL
FUNKTION
(Strg)+(Windows)+(1)
maximiert das aktuelle Fenster und versucht dabei, Überlappungen mit anderen Fenstern zu minimieren. Wenn dieses Tastenkürzel mehrfach verwendet wird, füllt das Fenster schließlich den gesamten Bildschim.
(Strg)+(Windows)+(2)
ordnet alle Fenster ohne Überlappung neben- bzw. übereinander an.
(Strg)+(Windows)+(3)
platziert das aktive Fenster in den linken zwei Dritteln des Bildschirms und ordnet alle anderen offenen Fenster untereinander im dritten Drittel an.
Login-Icon
Je nach Konfiguration des Anmeldebildschirms wird dort zu jedem Benutzer ein kleines Bildchen angezeigt. Um dieses Bild zu ändern, führen Sie das Programm gnome-about-me aus, klicken auf das Icon und wählen dann eine möglichst quadratische Bilddatei aus. gnome-about-me speichert eine verkleinerte Version des Bilds unter dem Namen ~/.face im PNG-Format.
LogoutBestätigung
Bei vielen Distributionen müssen Sie das Abmelden extra bestätigen. Wenn Sie dazu keine Lust haben, können Sie den Bestätigungsdialog mit gconf-editor abstellen. Deaktivieren Sie einfach die folgende Option: /apps/gnome-session/options/logout_prompt Die Option hat keinen Einfluss auf das Kommando SYSTEMjA USSCHALTEN , das Sie in jedem Fall bestätigen müssen. Bei Ubuntu ist für die Logout-Bestätigung das Programm indicator-applet-session verantwortlich. Um den Bestätigungsdialog bei diesem Programm abzustellen, aktivieren Sie mit gconf-editor die folgende Option: apps/indicator-session/suppress_logout_restart_shutdown
Icons in Menüs
Damit Menüs und Buttons weniger überladen aussehen, wurden die bisher dort angezeigten Icons in Gnome 2.28 entfernt. Ubuntu hat diese Gnome-Vorgabe rückgängig gemacht. Wenn Sie bei anderen Distributionen die Icons vermissen bzw. wenn Ihnen Gnome nicht bunt genug ist, führen Sie die beiden folgenden Kommandos aus: user$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true user$ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true
98
Konfiguration
Wenn nach einem Doppelklick auf eine MP3-Datei in Nautilus das Programm rhythmbox statt des gewünschten Audio-Players xmms erscheint, dann sind hierfür die MIME-Einstellungen von Gnome verantwortlich. MIME steht für Multipurpose Internet Mail Extensions und ist eine Art Datenbank, die eine Zuordnung zwischen Dateitypen und Programmen herstellt (siehe auch Seite 307).
Abschnitt 4.3
MIME
Am einfachsten erfolgen Änderungen an der MIME-Konfiguration direkt in Nautilus: Dort klicken Sie die betreffende Datei an, führen per Kontextmenü EIGENSCHAFTENjÖ FFNEN MIT aus und wählen das gewünschte Programm. Die Einstellung gilt in Zukunft für alle Dateien mit derselben Endung. Die globalen Gnome-MIME-Einstellungen befinden sich in den folgenden Dateien (deren Pfad je nach Distribution variieren kann): /etc/gnome-vfs-mime-magic /usr/share/application-registry/gnome-vfs.applications /usr/share/mime-info/gnome-vfs.keys /usr/share/mime-info/gnome-vfs.mime Individuelle Änderungen an der MIME-Konfiguration werden hier gespeichert: ~/.local/share/applications/defaults.list Standardmäßig verwendet Gnome zumeist Firefox als Webbrowser, Evolution als E-Mail-Programm und gnome-terminal als Konsolenprogramm. Wenn Sie möchten, dass Gnome beim Anklicken entsprechender Links andere Programme startet, finden Sie entsprechende Einstellmöglichkeiten in SYSTEMjEINSTELLUNGENjBEVORZUGTE A NWENDUNGEN bzw. im Programm gnome-defaultapplications-properties.
Standardprogramme einstellen
Welches Programm Gnome beim Einlegen einer Audio-CD, Video-DVD bzw. beim Anstecken eines MP3-Players starten soll, legen Sie in Nautilus mit BEARBEITEN jEINSTELLUNGENjDATENTRÄGER fest. In früheren Gnome-Versionen konnten Sie mit SYSTEMjEINSTELLUNGENjERSCHEINUNGSBILDjO BERFLÄCHE einstellen, ob Symbolleisten nur Icons, nur Text oder beide Informationen enthalten sollen. Mich stört die standardmäßige Beschriftung aller Icons in den Symbolleisten, weil sie viel Platz kostet. Abhilfe: Ändern Sie die Option toolbar_style mit dem Konfigurationseditor oder mit gconftool-2: user
gconftool-2 --set /desktop/gnome/interface/toolbar_style --type string "icons"
Eine Gnome-Spezialität ist die Möglichkeit, den Menüeinträgen aller Gnome-Programme jederzeit neue Tastenkombinationen zuzuweisen. Standardmäßig ist diese Funktion deaktiviert, wohl um unnötige Support-Anfragen der Art »(Strg)+(W) funktioniert bei mir nicht mehr« zu vermeiden. Abhilfe schafft das folgende Kommando: user$
Symbolleisten ohne Text
Tastenkürzel
gconftool-2 --set /desktop/gnome/interface/can_change_accels --type bool true
Von nun an können Sie die Maus über das Menükommando bewegen (ohne die Auswahl durch einen Mausklick abzuschließen) und dann die gewünschte Tastenkombination drücken. Das Tastenkürzel wird sofort in das Menükommando eingetragen.
99
Kapitel 4
Gnome
Tastatureinstellungen
Eigentlich wird die Tastatur durch das Grafiksystem X konfiguriert (siehe ab Seite 582). GnomeAnwender können diese Grundkonfiguration mit SYSTEMjEINSTELLUNGENjTASTATUR bzw. dem Programm gnome-keyboard-properties jedoch individuell anpassen. Wer mehrsprachige Texte verfasst, möchte oft zwischen verschiedenen Tastaturlayouts wechseln. Diese Möglichkeit gibt das Applet TASTATURINDIKATOR.
Zentralmenü
Eine spezifische Eigenschaft von Mac OS X besteht darin, dass nicht jedes Programm sein eigenes Menü im Programmfenster anzeigt, sondern dass es nur eine zentrale Menüposition gibt (links oben im Bildschirm), an der das Menü des gerade aktiven Programms eingeblendet wird. Auf kleinen Bildschirmen spart das Platz. Außerdem argumentiert Apple, dass nur eine Menüposition die Bedienung vereinfacht. Persönlich bin ich kein Fan des Zentralmenüs: Besonders auf einem großen Monitor (oder gar beim Arbeiten mit mehreren Monitoren) ist es total unpraktisch, die Maus für jedes Menükommando quer über den ganzen Monitor zu bewegen. Wie auch immer: Apple-Fans können ein kleines Zusatzprogramm installieren, mit dem auch Gnome das Menü des gerade aktiven Programms in das Hauptmenü integriert. Eine Beschreibung des gnome2-globalmenu-Projekts finden Sie hier: http://code.google.com/p/gnome2-globalmenu/ Anschließend klicken Sie das Panel mit der rechten Maustaste an, führen ZUM A PPLET HINZUFÜ GEN aus und wählen das G LOBALMENÜ -PANEL -A PPLET aus. Außerdem sollten Sie das reguläre Menü durch das platzsparendere Applet HAUPTMENÜ ersetzen. Leider funktioniert das Gnome-Zentralmenü nur für reine Gnome-Programme, nicht aber für Firefox oder OpenOffice. Deren Menüs werden weiterhin im Programmfenster angezeigt. Wenn Sie das Zentralmenü wieder deaktivieren möchten, entfernen Sie einfach das G LOBALMENÜ-PANEL-A PPLET aus dem Panel. Auch Ubuntu setzt ab Version 10.10 der Ubuntu Netbook Edition auf ein Zentralmenü, das intern aber anders realisiert ist und zur Menüdarstellung die Eigenentwicklung indicator-appmenu verwendet.
4.4 CDs/DVDs brennen mit Brasero Daten-CDs und -DVDs
Nichts ist einfacher, als einige Dateien oder ganze Verzeichnisse auf eine CD oder DVD zu brennen: Das Fenster CD/DVD-ERSTELLER erscheint automatisch, sobald Sie einen CD- oder DVD-Rohling einlegen. Sollte das nicht funktionieren, führen Sie A NWENDUNGENjMULTIMEDIA jBRASERO aus und starten ein Daten-CD-Projekt. Nun kopieren Sie von einem Dateimanager-Fenster die zu sichernden Dateien und Verzeichnisse per Drag&Drop in das Fenster des Brennprogramms. Im Dialog B RENNEN stellen Sie die Brenngeschwindigkeit ein, und los geht’s! Nach dem Brennen überprüft Brasero automatisch, ob die neue CD oder DVD fehlerfrei ist. Wenn Sie das nicht wünschen, deaktivieren Sie in der Benutzeroberfläche von Brasero mit B EARBEITENj PLUGINS die Prüfsummen-Plugins.
100
Gnome-Standardprogramme
Abschnitt 4.5
Abbildung 4.11: CDs/DVDs brennen mit Brasero
Um eine CD oder DVD zu kopieren, legen Sie diese in das Laufwerk, warten, bis das CD-Icon auf dem Desktop erscheint, und führen das Kontextmenükommando CD/DVD KOPIEREN aus. Brasero schreibt den Inhalt der CD/DVD nun in eine ISO- oder TOC-Datei. Wenn das Auslesen der Daten abgeschlossen ist, können Sie diese Datei auf eine leere CD/DVD schreiben.
CDs/DVDs kopieren
ISO- bzw. TOC-Dateien enthalten den gesamten Inhalt einer CD oder DVD. Um eine derartige Datei zu brennen, klicken Sie die Datei mit der rechten Maustaste an und führen A UF CD/DVD SCHREIBEN aus.
ISO- und TOC-Dateien
Übrigens können Sie vorher auch den Inhalt der ISO-Datei ansehen. Ein Doppelklick auf die Datei öffnet den Archivmanager, der die ISO-Datei ähnlich wie eine ZIP-Datei behandelt. Sie können den Inhalt der ISO-Datei allerdings nicht verändern. Sie können ISO-Dateien auch selbst herstellen: Dazu gehen Sie wie beim Brennen einer Daten-CD bzw. -DVD vor, wählen aber als Zielmedium eine A BBILDDATEI. Wenn Sie aus MP3- oder Ogg-Dateien eine Audio-CD machen möchten, die mit einem gewöhnlichen CD-Player angehört werden kann, starten Sie A NWENDUNGEN jUNTERHALTUNGSMEDIENjBRASERO. Dort beginnen Sie ein neues A UDIO-PROJEKT und fügen die gewünschten Audio-Dateien wahlweise per Drag&Drop, mit dem E INFÜGE -Button oder aus dem in die Seitenleiste ((F7)) integrierten Dateibrowser ein. Der Button BRENNEN startet den Brennvorgang. Der eigentliche Brennvorgang dauert nun ein wenig länger als üblich, weil die Audio-Dateien zuerst in das WAV-Format umgewandelt werden müssen.
Audio-CDs
4.5 Gnome-Standardprogramme Zur Weitergabe von Dateien per E-Mail bzw. zum Anlegen von Sicherungskopien ist es oft zweckmäßig, mehrere Dateien oder den gesamten Inhalt eines Verzeichnisses zu komprimieren. Dabei hilft der sogenannte Archivmanager (siehe Abbildung 4.12). Das Programm starten Sie üblicherweise durch einen Doppelklick auf die Archivdatei. Der Archivmanager zeigt das Archiv so an, als wäre es ein ganz gewöhnliches Verzeichnis. Wenn Sie rasch einen Überblick über alle Dateien bekommen
Dateiarchive (file-roller)
101
Kapitel 4
Gnome
möchten, führen Sie A NSICHTjA LLE DATEIEN ANZEIGEN aus. Um das gesamte Archiv auszupacken, klicken Sie auf den Button ENTPACKEN . Um ein neues Archiv zu erstellen, führen Sie (Alt)+(F2) file-roller aus. Sie können nun einfach per Drag&Drop Dateien bzw. ganze Verzeichnisse einfügen.
Abbildung 4.12: Dateiarchive bearbeiten Farbprofile
SYSTEMjEINSTELLUNGEN jFARBPROFILE startet den relativ neuen Gnome Color Manager zur Verwaltung von ICC/ICM-Profilen. Die Funktionen dieses Programms sind vor allem für Fotografen und Grafiker interessant.
Fernwartung
Wenn Sie auf Ihrem Rechner ein Problem haben, z. B. weil ein Programm nicht richtig funktioniert, werden Sie üblicherweise per Telefon oder E-Mail Hilfe anfordern. Erfahrungsgemäß sind derartige Hilfsversuche aber recht umständlich: Klick einfach auf den Button xy! – Wo ist dieser Button? – Du kannst auch das Menükommando ABCjEFG verwenden! – Bei welchem Programm? Für solche Fälle gibt es ein viel eleganteres Hilfsmittel: Per Fernwartung bekommt der Helfer für einige Zeit volle Kontrolle über Ihren Computer. Der Helfer sieht auf seinem Rechner in einem Fenster den gesamten Inhalt Ihres Bildschirms und kann per Maus und Tastatur alle Programme bedienen. Unter Gnome starten Sie die Fernwartung als Hilfesuchender üblicherweise mit SYSTEMj EINSTELLUNGEN jENTFERNTER DESKTOP bzw. dem Programm vino-preferences. Der Helfer kann einen beliebigen VNC-Client einsetzen, beispielsweise das Gnome-Programm vinagre. Hintergründe zur Fernwartung sind ab Seite 598 beschrieben.
Festplattennutzung (baobab)
Wenn Sie wissen möchten, in welchen Ihrer Verzeichnisse sich die größten Datenmengen befinden, ist A NWENDUNGENjZ UBEHÖRjFESTPLATTENBELEGUNG ANALYSIEREN eine wertvolle Hilfe (Programmname baobab). Das Programm zeigt in einer anschaulichen Grafik an, welche Verzeichnisse und Unterverzeichnisse wie viele Daten enthalten. Zur Erzeugung dieser Grafik müssen alle Unterverzeichnisse eingelesen werden. Dazu klicken Sie auf den Button PERSÖNLICHEN O RDNER EINLESEN oder DATEISYSTEM EINLESEN , wenn Sie das gesamte Dateisystem analysieren möchten (das kann eine ganze Weile dauern!).
Konsole (gnometerminal)
Das Programm gnome-terminal ist die Gnome-Variante des Shell-Fensters xterm. Das Programm zeichnet sich durch einige Besonderheiten aus: » Webadressen werden automatisch unterstrichen, sobald Sie die Maus darüber bewegen. Mit der rechten Maustaste können Sie einen Webbrowser starten, um die Seite anzuzeigen.
102
Gnome-Standardprogramme
Abschnitt 4.5
Abbildung 4.13: Platzbedarf von Verzeichnissen darstellen
» Wenn Sie Dateien oder Verzeichnisse von Nautilus per Drag&Drop in das Shell-Fenster bewegen, wird der vollständige Dateiname eingefügt. » Mit (Strg)+(+) bzw. (Strg)+(-) ändern Sie rasch die Schriftgröße. » Mit DATEIjN EUER REITER bzw. (Strg)+(ª)+(T) öffnen Sie innerhalb des Fensters ein neues Terminal. Zwischen den Terminals können Sie per Mausklick oder mit (Strg)+(Bild_½) bzw. (Strg)+ (Bild_¼) wechseln. » Tastenkürzel wie (Alt)+(D) führen in das Menü des Terminalfensters. Wenn Sie diese Tastenkürzel lieber zur Bearbeitung der Eingabezeile verwenden möchten, führen Sie BEARBEITENj TASTENKOMBINATIONEN aus und aktivieren die Option A LLE MENÜKÜRZEL DEAKTIVIEREN . » Eine Menge weiterer Konfigurationsmöglichkeiten bietet BEARBEITEN jPROFILE. Die Einstellungen können unterschiedlichen Profilen zugeordnet werden. Jedem Terminal kann dann sein eigenes Profil zugeordnet werden. Wenn Sie in SYSTEMjEINSTELLUNGEN jHILFSTECHNOLOGIEN die Option HILFSTECHNOLOGIEN aktivieren, wird beim nächsten Login das Programm Orca gestartet. Es liest Dialog- und Menütexte, aber auch andere Texte am Bildschirm vor. Die von einem Sprachsynthesizer erzeugten Texte sind anfänglich nur schwer verständlich, können aber bei längerer Nutzung eine echte Hilfe für Benutzer mit eingeschränktem Sehvermögen darstellen.
Orca
Diverse Gnome-Programme erfordern die Eingabe von Benutzerdaten und Passwörtern. Damit sich nicht jedes Programm selbst um die (möglichst sichere) Verwaltung der Passwörter kümmern muss, gibt es in Gnome eine zentrale Passwortverwaltung. Sie wird beispielsweise von den Programmen Nautilus, Evolution und NetworkManager genutzt. Die Passwortdatenbank ist durch ein MasterPasswort abgesichert, das bei der ersten Nutzung des Programms abgefragt wird. Alle weiteren Datenbankzugriffe erfolgen dann aber ohne weitere Rückfragen. Um gezielt einzelne Einträge aus der Datenbank zu entfernen, starten Sie das Programm seahorse mit SYSTEMjEINSTELLUNGENjVERSCHLÜSSELUNG UND S CHLÜSSELBUNDE (siehe Abbildung 4.14).
Passwort und Schlüsselverwaltung
seahorse hilft auch bei der Verwaltung von GPG- und SSH-Schlüsseln. Derartige Schlüssel brauchen Anwender zum Verschlüsseln oder Signieren ihrer E-Mails, Programmierer zum Signieren ihres Codes, Webentwickler zum Einloggen auf externen Rechnern etc.
103
Kapitel 4
Gnome
Abbildung 4.14: Zentrale Passwortverwaltung
PDF- und PostScriptDateien anzeigen (evince)
Ein Doppelklick auf *.pdf- oder *.ps-Dateien startet das Programm Evince und zeigt das Dokument an. Sie können das Dokument nun durchsuchen, einzelne Seiten ausdrucken etc. (Bei komplexen PDF-Dokumenten erzielen Sie mit dem Adobe Reader eine bessere Darstellung. Die Installation dieses kostenlosen, aber leider nicht als Open-Source-Code verfügbaren Programms ist auf Seite 158 beschrieben.)
Systemüberwachung
Ich möchte normalerweise wissen, was auf meinem Rechner gerade vor sich geht. Deswegen enthält mein Panel die beiden Applets SYSTEMMONITOR und ÜBERWACHUNG DER PROZESSORTAKTSTUFEN . Das erste Applet visualisiert die aktuelle CPU-Auslastung und je nach Konfiguration auch die Speichernutzung, die Netzwerkaktivität etc. Das zweite Applet zeigt an, in welcher Taktfrequenz die CPU läuft. (Bei Multi-Core-CPUs müssen Sie dieses Applet mehrfach in das Panel einfügen und den einzelnen Applets der Reihe nach Core-Nummern zuweisen.)
Texteditor (gedit)
Der Standardtexteditor von Gnome ist gedit. Das Programm ist leicht zu erlernen und für einfache Aufgaben vollkommen ausreichend. (Profis werden aber bei Emacs oder Vi bleiben.)
4.6 Avant Window Navigator und Gnome Do Wenn Ihnen der Gnome-Desktop zu eintönig ist, können Sie mit dem Avant Window Navigator und dem Programm Gnome Do Abhilfe schaffen. Es bedarf zwar einiger Installations- und Konfigurationsarbeit, aber danach sieht Gnome beinahe so schön aus wie Mac OS X und ist funktioniell und effizient zu bedienen! Avant Window Navigator
104
Das Gnome-Menü zum Start von Programmen ist zwar intuitiv zu bedienen, kann aber mit der Eleganz und der Funktionalität des Mac-OS-Docks nicht mithalten. Der hier vorgestellte Avant Window Navigator (kurz awn) ersetzt bei entsprechender Konfiguration sowohl das Gnome-Menü als auch die Taskleiste. awn ist allerdings noch in Entwicklung. Der Einsatz ist nur für fortgeschrittene LinuxAnwender empfehlenswert, die bereit sind, einige Zeit in die Konfiguration zu investieren! awn setzt die 3D-Desktop-Funktionen voraus. Weitere Informationen finden Sie unter:
Avant Window Navigator und Gnome Do
Abschnitt 4.6
https://launchpad.net/awn Nach der Installation der Pakete avant-window-navigator und awn-manager starten Sie das Programm mit A NWENDUNGEN jZ UBEHÖRjAVANT WINDOW N AVIGATOR. Anschließend müssen Sie das Programm konfigurieren. Dabei hilft der AWN MANAGER, den Sie entweder direkt im Dock mit dem Kontextmenükommando DOCK PREFERENCES oder mit SYSTEMjEINSTELLUNGENjAWN MANAGER starten. Im Dialogblatt APPLETS fügen Sie dem Dock die gewünschten Miniprogramme hinzu (z. B. eine Uhr, einen Arbeitsflächenumschalter, das Hauptmenü etc., siehe Abbildung 4.15). Die Auswahl ist etwas kleiner als beim Gnome-Panel, aber für die meisten Zwecke ausreichend. Wenn Sie mehr Applets wünschen, installieren Sie die Pakete awn-applets-cextra und awn-applets-python-extras. Außerdem fügen Sie per Drag&Drop oft benötigte Programme aus dem Hauptmenü in das Dock ein. Das Icon dient dann nicht nur zum Start des Programms, es signalisiert durch ein kleines Dreieck auch, ob das Programm schon läuft. In diesem Fall aktiviert ein Klick auf das Icon das Programm (ganz wie in Mac OS X). Um dasselbe Programm noch einmal zu starten (z. B. ein weiteres TerminalFenster), müssen Sie das Icon mit der mittleren Maustaste anklicken. Damit das Dock in Zukunft automatisch startet, aktivieren Sie im AWN MANAGER im Dialogblatt G ENERAL die Option A UTOMATICALLY START AWN ON LOGIN .
Abbildung 4.15: Avant Window Navigator
Anfänglich werden Sie AWN parallel zu einem herkömmlichen Gnome-Panel einsetzen. Wenn Sie AWN zu Ihrer Zufriedenheit konfiguriert haben, können Sie ganz auf die Gnome-Panels verzichten. Das ist freilich leichter gesagt als getan: Wenn nur ein Panel aktiv ist, steht das Kommando DIESES PANEL LÖSCHEN nicht mehr zur Verfügung. Um das Panel zu löschen, entfernen Sie zuerst alle darin enthaltenen Miniprogramme. Anschließend starten Sie gconf-editor, suchen den Eintrag /desktop/gnome/session und entfernen aus der Variablen required_components_list den Eintrag panel. killall gnome-panel beendet schließlich das noch laufende Panel. Leider verlieren Sie mit
105
Kapitel 4
Gnome
dem Gnome-Panel auch die Tastenkombination (Alt)+(F2) zum Start von Programmen. Abhilfe: Installieren Sie Gnome Do (siehe unten), und ordnen Sie diesem Programm (Alt)+(F2) zu. Wenn Sie sich mit AWN nicht anfreunden können, aber dennoch ein Mac-OS-X-ähnliches Dock wünschen, sollten Sie das Programm Docky ausprobieren: http://do.davebsd.com/wiki/index.php?title=Docky Gnome Do
Das unscheinbare Programm gnome-do hilft dabei, mit kurzen Tastatureingaben Programme zu starten, Dateien, Verzeichnisse oder Firefox-Bookmarks zu öffnen, eine Internetsuche durchzuführen etc. Nach der Installation des gleichnamigen Pakets starten Sie das Programm erstmals mit (Alt)+ (F2) gnome-do. Im kleinen Programmfenster führt der Pfeil in den Konfigurationsdialog. Dort geben Sie an, dass gnome-do in Zukunft automatisch gestartet werden soll und welche Plugins aktiviert werden sollen. Wenn gnome-do einmal läuft, drücken Sie zur Aktivierung die magische Tastenkombination (Windows)+ (Leertaste) (oder ein anderes Tastenkürzel, das Sie im Konfigurationsdialog eingestellt haben). Anschließend geben Sie den Suchbegriff ein, wählen gegebenenfalls mit (¼) aus mehreren Alternativen und bestätigen die Auswahl bzw. das Suchergebnis mit (¢) (siehe Abbildung 4.16).
Es dauert ein wenig, bis man sich an den Umgang mit Gnome Do gewöhnt – aber dann möchte man dieses kleine Werkzeug nie mehr missen! Weitere Möglichkeiten von Gnome Do sowie eine Beschreibung der unzähligen Plugins finden Sie hier: http://do.davebsd.com/ Eine mögliche Alternative zu Gnome Do ist das Programm Launchy: http://www.launchy.net
Abbildung 4.16: Gnome Do
106
Gnome 3.0
Abschnitt 4.7
4.7 Gnome 3.0 Wie ich bereits in der Kapiteleinleitung ausgeführt habe, wollen die Gnome-Entwickler Anfang 2011 die grundlegend neue Version 3.0 fertigstellen. Gnome 3.0 basiert zwar zu einem Gutteil auf den herkömmlichen Gnome-Fundamenten, sieht aber zwei revolutionäre Neuerungen vor: » Gnome Shell und Mutter: Die herkömmlichen Panels mit dem Startmenü, der Fensterleiste und diversen Miniprogrammen werden beinahe ersatzlos gestrichen. (Herkömmliche Applets sollen überhaupt nicht mehr unterstützt werden – eine ziemlich umstrittene Entscheidung.) Übrig bleibt ein neues Panel am oberen Bildschirmrand, das nach aktuellem Planungsstand weitgehend leer bleibt: Es soll in der Standardkonfiguration lediglich den Button A KTIVITÄTEN enthalten (dazu später mehr). Dazu kommen ein Icon für das gerade aktive Programm, die Uhrzeit, ein Benachrichtigungsfeld sowie ein Miniprogramm, das den Namen des eingeloggten Benutzers anzeigt. Über die Menüeinträge dieses Miniprogramms kann sich der Benutzer abmelden, den Rechner herunterfahren und diverse Konfigurationsprogramme ausführen. Hinter den Kulissen ist für diese Funktionen das Programm Gnome Shell (Kommando gnomeshell) verantwortlich, das wiederum auf den neuen Window Manager Mutter zurückgreift. Mutter ist eine Weiterentwicklung des Window Managers Metacity, wobei die wichtigste Neuerung die Unterstützung von 3D-Effekten ist. » Zeitgeist: Das größte Problem, das viele (nicht professionelle) Computeranwender haben, ist das fehlende Verständnis für Verzeichnisse und Dateien. Viele Anwender sind nicht in der Lage, eine mit Firefox heruntergeladene Datei in Nautilus wiederzufinden, und verzweifeln, wenn sie ein von der Digitalkamera in ein Verzeichnis importieres Bild per E-Mail versenden möchten (weil sie nicht wissen, in welchem Verzeichnis die Bilddatei gelandet ist) etc.
Zeitgeist verspricht Abhilfe: Ein Dämon protokolliert, wann und wie oft welche Dateien bearbeitet werden. Die A KTIVITÄTEN -Leiste von Gnome 3.0 ermöglicht einen einfachen Zugriff auf die zuletzt verwendeten Dateien. Außerdem ermöglicht die Zeitgeist-Benutzeroberfläche gnome-activityjournal ein Blättern im Zeitjournal sowie eine gezielte Suche. Pakete zum Test von Gnome 3.0 werden bei den meisten aktuellen Distributionen bereits mitgeliefert und funktionieren auch recht stabil. Manche Details der neuen Benutzeroberfläche wirken aber noch unausgereift, selbst elementare Konfigurationsmöglichkeiten fehlen. Ob Version 3.0 also ein großer Durchbruch für das Gnome-Projekt wird, bleibt abzuwarten. Persönlich befürchte ich eher ein Desaster wie bei KDE 4.0, das anfänglich weder bei den Distributoren noch bei Anwendern auf Begeisterung stieß und Jahre brauchte, bis es sich als echter Nachfolger von KDE 3 etablierte. Zusammen mit Gnome 3.0 soll übrigens weiterhin das klassische Gnome-2.0-Panel ausgeliefert werden. Es kommt auf Rechnern ohne 3D-Funktionen zum Einsatz. Wer also keinen 3D-tauglichen Grafiktreiber hat, wird von Gnome 3.0 nicht viel bemerken. Von zentraler Bedeutung für die Bedienung des Desktops ist der neue Button A KTIVITÄTEN . Sobald er angeklickt oder (Alt)+(F1) gedrückt wird, erscheint am linken Bildschirmrand eine Art Menü, über das auf alle Programme sowie auf die zuletzt benutzten Dokumente zugegriffen werden kann. Gleichzeitig wird der Desktop bzw. werden die Arbeitsflächen des Desktops in einer verkleinerten
Gnome Shell
107
Kapitel 4
Gnome
Ansicht angezeigt, wobei alle Programme ähnlich der Exposé-Funktion von Mac OS X nebeneinander angezeigt werden (siehe Abbildung 4.17).
Abbildung 4.17: Test der Gnome Shell unter openSUSE 11.3
In dieser Ansicht können neue Arbeitsflächen erzeugt und leere Arbeitsflächen gelöscht werden, Programme von einer Arbeitsfläche in eine andere verschoben werden, Programme durch Anklicken aktiviert werden und neue Programme gestartet und vorhandene Dokumente geöffnet werden. Der Programmstart bzw. das Öffnen kann traditionell durch einen Mausklick im rechten DesktopBereich erfolgen oder durch Verschieben per Drag&Drop. Das hat den Vorteil, dass ein Programm ganz gezielt in einer bestimmten Arbeitsfläche gestartet wird. Ergänzend zur AKTIVITÄTEN -Leiste kann über das Benutzermenü rechts oben im Panel eine kleine Seitenleiste ständig in den Desktop eingeblendet werden. Auch sie ermöglicht den Start einiger oft benötigter Programme sowie den Zugriff auf die zuletzt geöffneten Dokumente, bietet aber wesentlich weniger Funktionen. Die Bedienung der Gnome Shell funktioniert bereits erstaunlich flüssig. Persönlich habe ich am meisten die Fensterleiste vermisst, aber vermutlich kann man lernen, auch ohne sie auskommen. Gnome 3.0 ausprobieren
Um Gnome 3.0 unter Fedora auszuprobieren, installieren Sie die Pakete gnome-shell und gnomeactivity-journal. Anschließend können Sie den Gnome-3.0-Desktop mit SYSTEMjEINSTELLUNGENj DESKTOP-EFFEKTE aktivieren. Auch openSUSE macht es Gnome-3.0-Testern einfach: Zum Test der Gnome-Shell installieren Sie das Paket gnome-shell. Beim nächsten Login wählen Sie den Sitzungstyp G NOME 3 VORSCHAU.
108
Gemeinsamer Desktop-Standard Portland/Xdg
Abschnitt 4.8
Unter Ubuntu installieren Sie die Pakete gnome-shell und gnome-activity-journal. Anschließend stellen Sie sicher, dass die 3D-Desktop-Funktionen aktiviert sind, und führen in einem TerminalFenster das Kommando gnome-shell --replace aus. user$
gnome-shell --replace
Die herkömmlichen Panel werden nun durch die Gnome Shell ersetzt, der laufende Window Manager durch Mutter. Ansonsten laufen alle Programme weiter. Sobald Sie im Terminal-Fenster (Strg)+(C) drücken und so das Programm gnome-shell beenden, erscheint der herkömmliche Gnome-Desktop wieder.
4.8 Gemeinsamer Desktop-Standard Portland/Xdg Das Portland-Projekt definiert eine Reihe gemeinsamer Standards, die unabhängig vom DesktopSystem gelten. Diese Standards sollen Entwicklern dabei helfen, Programme unabhängig von Gnome oder KDE richtig in den Desktop zu integrieren. In der Praxis werden diese Standards durch einheitliche Verzeichnisse sowie einige Scripts hergestellt, die sich in diversen Xdg-Paketen befinden. Portland bzw. Xdg ist also eigentlich kein Gnome-Thema, sondern gilt auch für KDE. http://portland.freedesktop.org/wiki/XdgUtils Beim ersten Login werden im Heimatverzeichnis die Unterverzeichnisse Bilder, Dokumente, Downloads, Musik, Öffentlich, Videos und Vorlagen erzeugt werden. Wenn eine andere Sprache als Deutsch eingestellt ist, erhalten diese Verzeichnisse andere Namen. Hinter den Kulissen ist das Paket xdg-user-dirs für die Verzeichnisse verantwortlich.
Standardverzeichnisse
Die Konfiguration erfolgt durch die Datei ~/user-dirs.dirs. Dieses Verzeichnis stellt sicher, dass Xdg-kompatible Programme die Verzeichnisse unabhängig von der eingestellten Sprache finden. Unter Gnome werden die Verzeichnisse, wenn die Sprache verändert wurde, nach einer Rückfrage sogar entsprechend umbenannt (Paket xdg-user-dirs-gtk). Wenn Sie die Standardverzeichnisse nicht wünschen, löschen Sie die Verzeichnisse und legen die folgende neue Datei an: # ~/.config/user-dirs.conf enabled=False Sie können diese Einstellung auch systemweit in /etc/xdg/user-dirs.conf vornehmen. Das Paket xdg-utils stellt die folgenden Scripts zur Verfügung. (Eine genauere Beschreibung gibt man xdg-kommando.)
xdg-Scripts
» xdg-desktop-menu fügt dem Desktop-Menü einen neuen Eintrag hinzu. » xdg-desktop-icon installiert ein neues Icon auf dem Desktop. » xdg-icon-resource installiert Icon-Ressourcen. » xdg-mime fragt die MIME-Datenbank ab bzw. richtet einen neuen MIME-Datentyp ein.
109
Kapitel 4
Gnome
» xdg-open öffnet ein Dokument im Standardprogramm des Benutzers. » xdg-email sendet eine E-Mail im Standard-E-Mail-Programm des Benutzers. » xdg-screensaver steuert den Bildschirmschoner.
110
5. KDE KDE ist eine populäre Alternative zu dem im vorigen Kapitel vorgestellten Gnome-Desktop. KDE erfüllt im Prinzip dieselben Aufgaben, sieht aber anders aus und verwendet intern auch andere Bibliotheken und Protokolle. Die Abkürzung KDE stand ursprünglich für Kool Desktop Environment, später wurde daraus das K Desktop Environment. Intern basiert KDE auf Qt, einer Bibliothek der Firma Nokia. (Ursprünglich wurde Qt von Troll Tech entwickelt. 2008 übernahm Nokia Troll Tech.) Umfassende Informationen zu KDE gibt diese Website: http://kde.org/ Im Vergleich zu Gnome bietet KDE mehr Spezialfunktionen und Konfigurationsmöglichkeiten, die technisch versierten Linux-Benutzern entgegenkommen. Dem steht aber eine etwas schwierigere Bedienung gegenüber, weswegen viele Distributionen standardmäßig auf Gnome basieren. Lassen Sie sich davon nicht abschrecken! Sofern Ihre Distribution entsprechende Pakete anbietet, spricht nichts gegen eine Parallelinstallation von Gnome und KDE. Sie können dann vor dem Login angeben (üblicherweise mit dem Button bzw. mit dem Menüpunkt SITZUNG), ob Sie KDE oder Gnome nutzen möchten. Im Mittelpunkt dieses Kapitels stehen die Basisfunktionen von KDE. Freilich sieht KDE je nach Distribution ganz unterschiedlich aus: Der Aufbau des Login-Bildschirms, die Menüeinträge des Startmenüs, die optische Gestaltung des Desktops und die Auswahl der mitgelieferten Programme und Konfigurationshilfen variieren stark. Die Grundlage für dieses Kapitel war die KDE-Version 4.5, die ich unter Kubuntu 10.10 und openSUSE 11.3 getestet habe. Der vielleicht offensichtlichste Unterschied zwischen KDE und anderen Benutzeroberflächen ist der Umgang mit der Maus: Unter KDE reicht ein einziger Mausklick (statt eines Doppelklicks), um Dateien zu öffnen oder vergleichbare Operationen durchzuführen. Das ist anfangs gewöhnungsbedürftig, ermöglicht aber ein sehr effizientes und komfortables Arbeiten. Wenn Sie sich nicht umstellen wollen, können Sie natürlich auch KDE doppelklick-konform einrichten: Dazu starten Sie im KDE-Menü die SYSTEMEINSTELLUNGEN, wechseln in das Modul EINGABEGERÄTEjMAUS und aktivieren die Option DOPPELKLICK ZUM Ö FFNEN VON DATEIEN UND O RDNERN .
KDE und die Maus
Kapitel 5
KDE
5.1 Aufbau des Desktops Login und Logout
Bevor Sie unter KDE arbeiten können, müssen Sie sich mit Ihrem Benutzernamen (Login-Namen) und dem Passwort anmelden. Im Login-Bildschirm gibt es zudem ein Menü S ITZUNGSART (normalerweise links unten). Wenn Sie außer KDE andere Desktop-Systeme oder Window Manager installiert haben, können Sie hier das gewünschte Programm auswählen. Um sich abzumelden oder den Rechner herunterzufahren, wählen Sie im KDE-Menü den Eintrag VERLASSEN jA BMELDEN bzw. VERLASSEN jHERUNTERFAHREN . Je nach Hardware besteht hier auch die Möglichkeit, den Rechner in einen Ruhe- oder Energiesparmodus zu versetzen.
Benutzerwechsel
Das KDE-Menü bietet mit dem Kommando VERLASSEN jBENUTZER WECHSELN die Möglichkeit, dass sich ein zweiter Benutzer anmeldet, ohne dass der aktuelle Benutzer alle seine Programme beenden muss. Intern wird für jeden Benutzer ein eigenes Grafiksystem (ein X-Server) gestartet. Mehrere parallele Logins erfordern daher eine Menge Ressourcen und funktionieren nur auf schnellen Rechnern zufriedenstellend. Zum raschen Wechsel zwischen den angemeldeten Benutzern gelten bei den meisten Distributionen die folgenden Tastenkürzel (nur bei Fedora ist dem ersten Benutzer das Tastenkürzel (Strg)+(Alt)+(F1) zugeordnet): (Strg)+(Alt)+(F7) (Strg)+(Alt)+(F8) (Strg)+(Alt)+(F9)
...
Abbildung 5.1: Der KDEDesktop
112
erster Benutzer zweiter Benutzer dritter Benutzer ...
Aufbau des Desktops
Abschnitt 5.1
Abbildung 5.1 zeigt den Desktop eines KDE-4.5-Systems. Wie bereits erwähnt, hängt das Aussehen des Desktops stark von der Distribution und der eigenen Konfiguration ab. Der Desktop setzt sich standardmäßig aus einem Panel am unteren Bildschirmrand und dem eigentlichen Arbeitsbereich zusammen. Das Panel enthält das KDE-Menü, eventuell einige Icons zum raschen Start von Programmen, eine Task-Leiste mit Icons aller offenen Fenster sowie diverse Hilfsprogramme.
Desktop
Die vielleicht wichtigste KDE-Komponente heißt Plasma. Sie ermöglicht es, interaktive Objekte auf dem Desktop oder im Panel abzulegen und dort zu bedienen. Diese Funktion ist mit Apples Dashboard vergleichbar.
Plasma
Der eigentliche Arbeitsbereich (Desktop) ist anfänglich zumeist leer. Neu seit KDE 4 ist die Möglichkeit, direkt im Desktop oder im Panel Miniprogramme auszuführen, die in der KDE-4-Nomenklatur Plasmoids heißen. Die Uhr und die Wetteranzeige rechts oben in Abbildung 5.1 sind Beispiele für Plasmoids. Über das Kontextmenükommando MINIPROGRAMME HINZUFÜGEN bzw. über den Button WERKZEUGKASTEN in der linken oberen Ecke des Bildschirms fügen Sie Plasmoids in den Desktop ein (siehe Abbildung 5.2). Leider ist die Plasmoid-Auswahl aus einer schmalen Liste sehr unübersichtlich realisiert. Immerhin ist es möglich, mit dem Mausrad durch die Plasmoids zu scrollen.
Plasmoids
Abbildung 5.2: Miniprogramme (Plasmoids) einfügen
Es ist möglich, auf dem Desktop Icons abzulegen, wobei sich Plasma um die optische Darstellung kümmert. Die nun empfohlene Vorgehensweise besteht aber darin, das Plasmoid O RDNER-A NSICHT zu verwenden, um damit das Verzeichnis Desktop und die darin enthaltenen Icons in einer Art Plasma-Fenster anzuzeigen (links oben in Abbildung 5.1). Es handelt sich dabei um kein herkömmliches Fenster. Die O RDNER-A NSICHT befindet sich immer hinter allen regulären Fenstern und sieht auch optisch anders aus.
Tipp
Persönlich bin ich kein Freund von Icons, Miniprogrammen und anderen Desktop-Objekten: Bei mir verdecken in der Regel mehrere große Fenster den gesamten Arbeitsbereich. Wenn Sie gern Icons und Plasmoids verwenden, sollten Sie sich die neue Tastenkombination (Strg)+(F12) merken: Sie rückt die Desktop-Elemente in den Vordergrund und stellt alle Fenster abgedunkelt in den Hintergrund. Nochmals (Strg)+(F12) oder (Esc) stellen den bisherigen Desktop-Zustand wieder her. Sobald Sie die Maus über ein Icon oder Plasmoid bewegen, erscheinen auf einer Seite einige Buttons, mit denen Sie die Größe und Konfiguration des Miniprogramms verändern können. Diese Einstellungen werden in der Datei ~/.kde4/share/config/plasma-desktop-appletsrc gespeichert. Ein Panel bzw. eine Kontrollleiste ist ein rechteckiger Bereich, der sich an einem Bildschirmrand befindet (standardmäßig unten). Das Panel an sich hat keine Funktion, sondern dient nur als Container für Miniprogramme. Auch so grundlegende Elemente wie das Menü und die Taskleiste sind in KDE 4 als Plasmoids implementiert! Deswegen ist es grundsätzlich möglich (wenngleich unüblich), auf ein Panel ganz zu verzichten und das Menü, die Taskleiste und andere typische Panel-Inhalte direkt auf dem Desktop abzulegen. Der größte Vorteil des Panels besteht darin, dass dieser Bereich
Panels
113
Kapitel 5
KDE
nicht von Fenstern überdeckt werden kann. Außerdem spart die kompakte Anordnung mehrerer Plasmoids in einem Panel viel Platz. Über das Kontextmenükommando EINSTELLUNGEN FÜR DIE KONTROLLEISTE können Sie Größe, Position und andere Eigenschaften des Panels verändern sowie Miniprogramme hinzufügen, verschieben und entfernen. Dazu wird oberhalb bzw. neben dem Panel eine Art Menü eingeblendet (siehe Abbildung 5.3). Die Farbe bzw. Hintergrundgrafik des Panels ist übrigens durch das Desktop-Design vorgegeben und kann nur durch die Auswahl eines anderen Designs verändert werden (siehe Seite 125).
Abbildung 5.3: PanelKonfiguration
Wichtige Miniprogramme (Plasmoids) KDE-Menü (Kickstart)
Das wahrscheinlich wichtigste Plasmoid ist das KDE-Menü Kickstart (siehe Abbildung 5.4). Es ist in fünf Kategorien gegliedert: » FAVORITEN enthält die für den Benutzer wichtigsten Programme. Die Favoritenliste wird nicht automatisch erzeugt (etwa nach der Häufigkeit, mit der verschiedene Programme gestartet werden); vielmehr müssen Sie Programme, die im FAVORITEN-Bereich erscheinen sollen, explizit aus anderen Menükategorien über ein Kontextmenükommando zu den Favoriten hinzufügen. » A NWENDUNGEN enthält eine hierarchisch gegliederte Aufzählung aller Programme. Das Blättern durch die Programme unterscheidet sich von einer gewöhnlichen Menüauswahl und ist gewöhnungsbedürftig. Einerseits ist es angenehm, dass die Maustaste nicht die ganze Zeit gedrückt werden muss; andererseits sind wesentlich mehr Mausklicks als bisher erforderlich. » RECHNER gibt die Möglichkeit, diverse Administrationsprogramme zu starten sowie wichtige Verzeichnisse zu öffnen: den persönlichen Ordner, das Basisverzeichnis, je nach Konfiguration diverse externe Datenträger, den Mülleimer etc. » VERLAUF enthält eine Liste der zuletzt gestarteten Programme bzw. zuletzt genutzten Dateien oder Verzeichnisse. » VERLASSEN enthält Kommandos zum Abmelden, zum Benutzerwechsel sowie zum Herunterfahren des Rechners.
114
Aufbau des Desktops
Abschnitt 5.1
Abbildung 5.4: Das KDE-Menü
Losgelöst von den Kategorien enthält das KDE-Menü eine Suchfunktion. Sie eignet sich insbesondere dazu, um Programme rasch zu starten, ohne durch das mehrblättrige Menü PROGRAMME zu navigieren. Sie können das Menü selbst modifizieren. Dazu klicken Sie den Menü-Startbutton mit der rechten Maustaste an und starten den M ENÜ-EDITOR. Oft benötigte Programme können Sie per Drag&Drop in einen leeren Bereich des Panels oder Desktops verschieben. Sie erscheinen dort als Icons und ermöglichen so einen besonders schnellen Start. Wenn Ihnen das herkömmliche KDE-3-Menü sympathischer war, können Sie es weiterhin nutzen. Dazu klicken Sie den Menü-Startbutton mit der rechten Maustaste an und führen ZUM KLASSISCHEN MENÜSTIL WECHSELN aus. Das Miniprogramm FENSTERLEISTE zeigt für jedes Fenster ein Icon an und entspricht so der aus Windows bekannten Task-Leiste. Über den Einstellungsdialog können Sie angeben, ob mehrere Fenster eines Programms zu einer Gruppe zusammengefasst werden sollen (z. B. alle Gimp-Fenster) und wie die Fenster sortiert werden sollen (alphabetisch, in der Reihenfolge des Programmstarts oder manuell). Die Fensterleiste kann allerdings nicht wie das Mac-OS-X-Dock bzw. wie unter Windows 7 dazu verwendet werden, um darin auch Start-Icons von gerade nicht laufenden Programmen abzulegen.
Task-Leiste (Fensterleiste)
Arbeitsflächen ermöglichen es, die Fenster der laufenden Programme auf mehrere virtuelle Desktops zu verteilen und zwischen diesen Desktops zu wechseln. Das erleichtert die Arbeit und verbessert die Übersicht, wenn Sie sehr viele Fenster gleichzeitig öffnen. Für die Verwaltung der Arbeitsflächen ist das Plasmoid ARBEITSFLÄCHEN -UMSCHALTER verantwortlich. In dessen Einstellungsmenü stellen Sie die gewünschte Anzahl von Arbeitsflächen sowie diverse andere Optionen ein.
Arbeitsflächen
Für ständig benötigte Fenster besteht die Möglichkeit, diese so zu kennzeichnen, dass sie nicht auf einer, sondern auf allen Arbeitsflächen sichtbar sind. Dazu öffnen Sie mit der Maus oder mit (Alt)+ (Leertaste) das Fenstermenü und aktivieren die Option AUF A RBEITSFLÄCHE jA LLE A RBEITSFLÄCHEN .
115
Kapitel 5
KDE
Systemabschnitt
Wenn das Panel den sogenannten Systemabschnitt enthält, können Hintergrundprogramme im Panel auf sich aufmerksam machen (z. B. wenn neue Updates verfügbar sind oder eine neue E-Mail eingetroffen ist). Der Systemabschnitt befindet sich normalerweise am rechten oder unteren Ende des Panels. Er erfüllt für sich keine Funktion, sondern ist lediglich ein Platzhalter, in dem andere Programme Icons darstellen können. Diese Funktion scheint selbstverständlich zu sein, und tatsächlich werden Sie auf den Systemabschnitt wohl nur aufmerksam, wenn er aus irgendeinem Grund im Panel fehlt und Benachrichtigungen über E-Mails, Updates etc. ausbleiben.
Geräteüberwachung
Das Plasmoid G ERÄTEÜBERWACHUNG informiert über neu angeschlossene externe Datenträger und hilft dabei, deren Dateisystem zu öffnen bzw. wieder sicher aus dem Verzeichnisbaum zu lösen (umount).
Schnellzugriff
Das Miniprogramm SCHNELLZUGRIFF ermöglicht einen raschen Zugriff auf den Inhalt des Heimatverzeichnisses und aller darin befindlichen Unterverzeichnisse und Dateien. Durch das Anklicken einer Datei starten Sie das zugrunde liegende Programm. Um einzelne Verzeichnisse mit Dolphin anzusehen, wählen Sie mit der rechten Maustaste das Kontextmenükommando Ö FFNEN aus.
Fensterverwaltung Die meisten Funktionen zur KDE-Fensterverwaltung sind Ihnen sicherlich aus anderen Betriebsbzw. Desktop-Systemen vertraut: Sie können Fenster verschieben, maximieren, minimieren etc. KDE wartet darüber hinaus aber mit einigen Besonderheiten auf, die auf den ersten Blick nicht offensichtlich sind: » Fenster vertikal/horizontal maximieren: Wenn Sie den Fenster-Button zum Maximieren des Fensters mit der mittleren bzw. rechten Maustaste anklicken, wird das Fenster nur vertikal bzw. horizontal maximiert. » Fenster gruppieren: KDE bietet ab Version 4.4 eine geradezu geniale Funktion an, um mehrere inhaltlich zusammengehörende Fenster zu einer Gruppe zusammenzufassen. Dazu klicken Sie die Titelleiste des einen Fensters mit der rechten Maustaste an und führen FENSTER ZUR G RUPPE VERSCHIEBEN jFENSTERNAME aus. Damit wird das aktuelle Fenster in das Fenster F ENSTERNAME integriert. Beide Fenster bzw. beide Programme sind nun als Dialogblätter in einem Fenster zusammengeführt (beachten Sie die geteilte Fensterleiste in Abbildung 5.5!) und können gemeinsam minimiert, maximiert und verschoben werden. Durch eine Drehung des Mausrads über der Titelleiste eines geteilten Fensters wechseln Sie das gerade aktive Dialogblatt. Mit dem Kontextmenükommando A US G RUPPE LÖSEN machen Sie aus dem Dialogblatt wieder ein eigenständiges Fenster. » Fenster in der linken/rechten Bildschirmhälfte platzieren: Wenn Sie ein Fenster mit der Maus verschieben und die Maus dabei bis an den linken bzw. rechten Bildschirmrand bewegen, wird das Fenster so platziert, dass es die gesamte linke bzw. rechte Bildschirmhälfte (abzüglich Panel) ausfüllt. Das ist vor allem bei sehr großen Bildschirmen ausgesprochen praktisch. (Die KDEEntwickler haben sich diese Funktion offensichtlich von Windows 7 abgeschaut.)
116
Aufbau des Desktops
Abschnitt 5.2
Abbildung 5.5: Eine Fenstergruppe, bestehend aus einem Terminalfenster und Dolphin
» Fenster kacheln (Tiling): Ab Version 4.5 können Sie mit (ª)+(Alt)+(F11) einen Tiling-Modus aktivieren. Alle offenen Fenster werden nun ohne Überlappung angeordnet. Das aktive Fenster füllt die rechte Desktop-Hälfte, die weiteren Fenster füllen das rechte obere Viertel etc. (siehe Abbildung 5.6). Wenn Sie weitere Fenster öffnen, Fenster schließen oder verschieben, wird die Fensteranordnung meistens (aber leider nicht immer) aktualisiert. Das Arbeiten im Tiling-Modus ist gewöhnungsbedürftig und – wenn überhaupt – nur bei einem großen Bildschirm zweckmäßig. Diverse Optionen zur Steuerung dieses Modus finden Sie im Systemsteuerungsmodul FENSTEREIGENSCHAFTENjERWEITERT . Um den Modus zu deaktivieren, drücken Sie nochmals (ª)+(Alt)+(F11).
Abbildung 5.6: Automatische Fensteranordnung durch Tiling
Die oben aufgezählten Effekte können Sie in den Modulen FENSTEREIGENSCHAFTEN und A RBEITSFLÄCHEN -E FFEKTE der Systemeinstellungen konfigurieren.
117
Kapitel 5
KDE
5.2 Dolphin In KDE 4 hat Dolphin das Universalprogramm Konqueror als Dateimanager abgelöst. Dolphin kann zwar nicht als Webbrowser verwendet werden, hat aber im Vergleich zu Konqueror eine wesentlich übersichtlichere Benutzeroberfläche. Konqueror-Fans können dieses Programm selbstverständlich weiterhin einsetzen (siehe den nächsten Abschnitt). Ansichten
Sie starten Dolphin im KDE-Menü mit FAVORITENjDATEIMANAGER oder mit RECHNERjPERSÖNLICHER O RDNER. Die Grundfunktionen des Programms sind rasch erklärt: Im Zentrum des Fensters werden die Dateien angezeigt, wobei es drei Darstellungsmodi gibt (siehe Abbildung 5.7): SYMBOLE, DETAILS und SPALTEN. In dem ein wenig exotischen Spaltenmodus wird jedes Unterverzeichnis in einer neuen Spalte dargestellt. (Computer-Veteranen, die sich noch an den NeXT-Computer erinnern, wird das Konzept vertraut vorkommen.) Sehr praktisch ist die in der Symbol- und Detailansicht verfügbare Gruppierungsfunktion: A NSICHT j ELEMENTE GRUPPIEREN fasst Dateien mit demselben Typ bzw. nach Anfangsbuchstaben zu Gruppen zusammen.
Abbildung 5.7: Die drei Darstellungsmodi von Dolphin
Mit dem Button VORSCHAU aktivieren Sie unabhängig vom Darstellungsmodus bei Bildern und Dokumenten eine Vorschau. Die Größe der Vorschaubilder im Symbolmodus können Sie mit einem Schieberegler einstellen. Standardmäßig erstellt Dolphin nur eine Vorschau, wenn die Datei kleiner als 3 MByte ist. Diesen Grenzwert können Sie mit E INSTELLUNGEN jDOLPHIN EINRICHTEN im Dialogblatt A LLGEMEINjVORSCHAUEN vergrößern. An dieser Stelle können Sie auch angeben, für welche Dateitypen eine Vorschau berechnet werden soll.
118
Dolphin
Abschnitt 5.2
Für Verschiebe- und Kopieroperationen kann der Innenbereich mit ANSICHT TEILEN horizontal oder vertikal geteilt werden, um zwei Verzeichnisse im selben Fenster darzustellen. Das aktuelle Verzeichnis wird in einer Navigationsleiste unterhalb des Menüs angezeigt. (Strg)+(L) schaltet zwischen zwei Ansichtsformen dieser Leiste um: Entweder werden die einzelnen Verzeichnisse als Buttons dargestellt, was einen raschen Verzeichniswechsel erlaubt; oder das Verzeichnis wird in Textform angezeigt, was eine rasche Eingabe eines anderen Verzeichnisses ermöglicht. Unabhängig von der gerade aktiven Ansichtsform können Sie mit (F6) ein neues Verzeichnis per Tastatur angeben. Links, rechts und unterhalb des eigentlichen Fensterinhalts können Sie mit ANSICHT SEITENLEISTEN bzw. mit den Tasten (F4), (F7), (F9) und (F11) ein Terminal, die Verzeichnishierarchie, eine Liste häufig benötigter Orte sowie zusätzliche Informationen anzeigen. Zur Liste der Orte können Sie per Drag&Drop neue Verzeichnisse hinzufügen.
Seitenleisten
Eine Besonderheit betrifft die Markierung von Dateien: In der KDE-Grundeinstellung ist dazu ein einfacher Mausklick nicht geeignet, weil damit die Datei angezeigt oder ausgeführt wird. Sie müssen deswegen gleichzeitig (Strg) (für Mehrfachmarkierungen) oder (ª) (für Bereichsmarkierungen) drücken.
Dateien markieren
Noch eleganter ist ein weiterer Markierungsmodus: Wenn Sie die Maus eine Weile über einer Datei oder einem Verzeichnis belassen (hover), wird ein grünes Plus-Zeichen eingeblendet. Ein Mausklick auf dieses Symbol markiert die Datei. Bei bereits markierten Zeichen erscheint ein rotes MinusZeichen, mit dem Sie die Markierung wieder auflösen können. Mit EXTRASjDATEI SUCHEN suchen Sie nach Dateien. Diese Suchfunktion ist allerdings ebenso simpel wie langsam. Wenn Sie eine effizientere Desktop-Suchfunktion benötigen, aktivieren Sie in den Systemeinstellungen im Modul ERWEITERTE BENUTZEREINSTELLUNGENjDESKTOPSUCHE den Nepomuk/Strigi-Server (siehe Seite 314). Meine persönlichen Erfahrungen mit der Desktop-Suche unter KDE waren bislang aber eher schlecht (großer Ressourcenverbrauch, mäßige Suchresultate).
Dateien suchen
Wenn Sie Dateien und Verzeichnisse löschen, landen diese vorerst im Papierkorb. Um den Inhalt des Papierkorbs anzusehen, klicken Sie in der Seitenleiste O RTE ((F9)) den entsprechenden Eintrag an. Erst wenn Sie dort alle Objekte markieren und (Entf) drücken, werden die Dateien endgültig gelöscht. Um Dateien sofort unwiderruflich zu löschen, drücken Sie (ª)+(Entf).
Dateien löschen
Unter Linux gelten alle Dateien und Verzeichnisse, deren Namen mit einem Punkt beginnen, als verborgen. Dolphin zeigt diese Dateien normalerweise nicht an, es sei denn, Sie führen ANSICHT j VERSTECKTE DATEIEN ANZEIGEN aus. Noch schneller können Sie die Anzeige verborgener Dateien mit (Alt)+(.) ein- und wieder ausschalten.
Verborgene Dateien
Damit nicht jeder Benutzer alle Dateien und Verzeichnisse lesen bzw. verändern kann, speichert Linux zu jeder Datei und zu jedem Verzeichnis den Besitzer sowie Zugriffsrechte. Das zugrunde liegende Konzept wird ab Seite 333 ausführlich beschrieben. Um den Besitzer oder die Zugriffsrechte zu ändern, klicken Sie die Datei mit der rechten Maustaste an und führen EIGENSCHAFTENjBERECH TIGUNGEN aus.
Zugriffsrechte
119
Kapitel 5
KDE
Zugriff auf Datenträger
Die Seitenleiste O RTE ((F9)) enthält unter anderem eine Liste aller Festplattenpartitionen, die per Mausklick in das Dateisystem eingebunden werden können. Wenn Sie ein USB- oder FirewireLaufwerk anschließen, erscheint im Panel ein entsprechender Hinweis. Ein Mausklick öffnet dann den Dateimanager und zeigt den Inhalt des Datenträgers an. Bevor Sie das Kabel vom Laufwerk lösen, müssen Sie entweder im KDE-Menü das Kontextmenükommando A USWERFEN oder in Dolphin in der Seitenleiste O RTE das Kontextmenükommando EINBINDUNG LÖSEN ausführen. Nur so ist sichergestellt, dass alle noch offenen Dateien geschlossen werden und keine Dateifehler auftreten.
Audio-CDs
Sie können in Dolphin auch das Inhaltsverzeichnis von Audio-CDs betrachten. Dazu geben Sie als Adresse audiocd:/ ein. Das Besondere an dieser Funktion besteht darin, dass alle Audio-Tracks scheinbar auch in Form von Audio-Dateien in den Formaten FLAC, MP3 (falls lame installiert ist) und Ogg Vorbis zugänglich sind. Wenn Sie die Dateien nun per Drag&Drop in ein Verzeichnis kopieren, werden die Audio-Dateien eingelesen (gegrabbt) und automatisch in das entsprechende Format umgewandelt. Im Systemeinstellungsmodul E RWEITERT jA UDIO-CDS können Sie einstellen, wie die CD ausgelesen werden soll, welche Parameter bei der Codierung der MP3- bzw. Ogg-Dateien gelten sollen etc. Wenn das Auslesen der CDs sehr lange dauert, können Sie im Dialogblatt A LLGEMEIN die Fehlerkorrektur deaktivieren. Das beschleunigt den Prozess oft um ein Vielfaches, reduziert bisweilen aber die Audio-Qualität hörbar.
Zugriff auf Netzwerkverzeichnisse
Über die Seitenleiste O RTE bzw. durch die Adressangabe smb:/ können Sie auf das lokale Netzwerk zugreifen. Um direkt auf ein bestimmtes Verzeichnis auf einem Samba- oder Windows-Server zuzugreifen, verwenden Sie die Schreibweise smb://servername/sharename. Diese Schreibweise ist auch dann notwendig, wenn Dolphin im Netzwerk keine Windows-Server erkennt, was je nach Firewallund Netzwerkkonfiguration öfter vorkommt.
Hinweis
Dolphin fragt jetzt nach dem Benutzernamen und dem Passwort für den Verbindungsaufbau zum Windows-Rechner oder Samba-Server. Dolphin merkt sich diese Kombination für einige Zeit, vergisst sie dann aber aus Sicherheitsgründen wieder, weswegen Sie die Angaben nach längeren Pausen wiederholen müssen. In der Systemsteuerung können Sie im Modul N ETZWERK & V ERBINDUNGENjFREIGABE Standardwerte für den Benutzernamen und das Passwort angeben. Wenn Dolphin Windows- oder Samba-Server im lokalen Netzwerk nicht findet, ist möglicherweise die Firewall Ihrer Distribution schuld. Sowohl bei Fedora als auch bei SUSE verhindern die Standardeinstellungen der Firewall die Nutzung von Windows-Netzwerkverzeichnissen. Abhilfe schafft die richtige Konfiguration der Firewall.
FTP
Wenn die Adresse (URL) mit ftp:// beginnt, wechselt Dolphin automatisch in den FTP-Modus. Die Oberfläche und Bedienung entsprechen dann beinahe der Verwendung des Programms als Dateimanager. Wenn Sie sich beim FTP-Server mit einem bestimmten Namen einloggen möchten (kein Anonymous-FTP), lautet die Schreibweise ftp://name@adresse. Sobald die Verbindung zum FTPServer hergestellt worden ist, erscheint eine Login-Box zur Eingabe des Passworts.
SSH
Mit Dolphin können Sie auch über das sichere Protokoll SSH mit einem anderen Rechner kommunizieren und Dateien kopieren. Dazu geben Sie als Adresse fish://username@rechnername/ ein. Nach dem Login zeigt Dolphin alle Dateien des externen Rechners an.
120
Konqueror
Abschnitt 5.3
5.3 Konqueror Das Programm Konqueror ist gleichermaßen Dateimanager für Fortgeschrittene, Webbrowser, Netzwerk-Client (FTP, SCP, Windows-Verzeichnisse etc.) und Dokument-Viewer (Bilder, Hilfedateien etc.). Die vielen Konqueror-Funktionen haben allerdings den Nachteil, dass das Menü vollkommen überladen und unübersichtlich ist. Davon einmal abgesehen, erfolgt die Bedienung von Konqueror ganz ähnlich wie bei Dolphin, weswegen ich im Folgenden nur noch auf die diversen Zusatzfunktionen eingehe. Weitere Informationen gibt die folgende Website: http://www.konqueror.org
Abbildung 5.8: Konqueror als Dateimanager
Um Konqueror als Dateimanager zu verwenden, geben Sie in der Adressleiste das gewünschte Verzeichnis an. Im Menü A NSICHT können Sie nun dieselben drei Darstellungsmodi wie bei Dolphin wählen. Konqueror kann zu allen Dateien, deren Dateiformat es erkennt, Vorschaubilder erzeugen (A NSICHT jVORSCHAU). Die Größe der Vorschaubilder der Symbolansicht verändern Sie mit (Strg)+(+) bzw. (Strg)+(-).
Verwendung als Dateimanager
Mit (F9) können Sie einen seitlichen Navigationsbereich (Sidebar) ein- bzw. wieder ausblenden. Darin können Sie Lesezeichen, Geräte, einen Verzeichnisbaum, einen Netzwerk-Browser oder andere Navigationshilfen anzeigen. Sehr elegant erfolgt der Zugriff auf Archive: Wenn Sie ein ZIP- oder TAR-Archiv anklicken (also z. B. name.tar oder name.tgz oder name.zip), wird der Inhalt dieses Archivs wie ein neues Verzeichnis direkt innerhalb von Konqueror angezeigt. Wenn Sie wissen möchten, in welchen Ihrer Verzeichnisse sich die größten Datenmengen befinden, werden Sie den Konqueror-Anzeigemodus DATEIGRÖSSEN schätzen lernen. Konqueror erzeugt in diesem Modus eine Grafik aus in sich verschachtelten Rechtecken, deren Fläche die Größe von Dateien widergibt (siehe Abbildung 5.9). Falls dieser Modus bei Ihnen nicht zur Verfügung steht, müssen Sie eventuell das entsprechende Konqueror-Plugin-Paket installieren (bei Ubuntu: die Pakete konqplugins und konq-plugins-l10n).
Festplattennutzung (fsview)
Farbgestaltung, Rekursionstiefe und andere Darstellungsdetails können Sie im ANSICHT-Menü einstellen. Per Mausklick können Sie in ein Unterverzeichnis wechseln, um so mehr Details über dessen Inhalt zu erfahren. Zur Dateigrößenansicht gelangen Sie auch, wenn Sie das Kommando fsview ausführen. In diesem Fall wird die Grafik ohne Konqueror-Menüs und anderes Beiwerk angezeigt.
121
Kapitel 5
KDE
Abbildung 5.9: Festplattennutzung visualisieren
Konqueror als Webbrowser
Um Konqueror als Webbrowser einzusetzen, geben Sie einfach in der Adressleiste eine Webadresse ein. Einige spezifische Besonderheiten des Programms sowie Tipps zur Verwendung von Plugins, Java etc. finden Sie ab Seite 151.
KIO-Protokolle
In der Adressleiste von Konqueror und Dolphin können Sie Webadressen, Dateinamen etc. angeben. Konqueror zeigt grundsätzlich sämtliche Daten im Browser an, Dolphin öffnet dagegen bei einigen Protokollen ein externes Programm. Damit Konqueror und Dolphin wissen, wie sie die Adresse interpretieren sollen, muss der Adresse das Protokoll vorangestellt werden (siehe Tabelle 5.1). Beachten Sie bitte, dass manchmal gar kein, manchmal ein, manchmal aber auch zwei Schrägstriche erforderlich sind! Für die Verarbeitung dieser Protokolle sind Module zuständig, die in der KDE-Nomenklatur KIO Slaves heißen (KIO = KDE Input/Output).
5.4 Konfiguration Die diversen KDE-Konfigurationsmodule sind in der Systemsteuerung zusammengefasst (Kommando systemsettings, siehe Abbildung 5.10). Da es nicht immer ganz einfach ist, das richtige Modul zu finden, haben die KDE-Entwickler das Programm mit einer Suchfunktion ausgestattet, in der Sie nach Schlüsselwörtern (z. B. Fenster) suchen können. Von einem gerade aktiven Modul gelangen Sie mit dem Button ÜBERSICHT zurück in die Modulübersicht. Einzelne Kontrollzentrumsmodule können auch in der Form kcmshell4 modulname aufgerufen werden. Eine Liste aller zur Auswahl stehenden Module ermitteln Sie mit kcmshell4 --list. Beachten Sie bei der Bedienung der Module, dass geänderte Einstellungen erst wirksam werden, sobald sie durch den Button A NWENDEN bestätigt werden. KDE enthält ebenso wie Gnome Konfigurationsmodule, die nicht den Desktop betreffen, sondern Systemeinstellungen (Netzwerk, Drucker etc.). Diese Module sind vor allem bei solchen Distributionen sehr hilfreich, die keine eigenen Konfigurationswerkzeuge anbieten. Soweit verfügbar, sollten Sie aber immer distributionsspezifische Konfigurationsprogramme vorziehen. Mitunter kommt es vor, dass die KDE-Module veraltet sind oder den Eigenheiten der jeweiligen Distribution in die Que-
122
Konfiguration
PROTOKOLL
BEDEUTUNG
file:/etc/fstab
lokale Datei
tar:/archivdatei
Zugriff auf eine TAR-Datei
audiocd:/
Zugriff auf eine Audio-CD
trash:/
gelöschte Dateien (Mülleimer)
http://www.kofler.info
Webseite
ftp://user@mars/verzeichnis
FTP-Server auf dem Rechner mars
sftp://user@mars/verzeichnis
SFTP-Server auf dem Rechner mars
fish://user@mars/verzeichnis
SSH-Zugriff auf den Rechner mars
smb://mars/myshare
Windows-Netzwerkverzeichnis
man:ls
man-Seite zum Kommando ls
info:emacs
info-Text zum Programm emacs
help:kmail
KDE-Hilfe zum Programm kmail
applications:/
Liste aller Programme
fonts:/
Liste aller Schriften
remote:/
allgemeiner Netzwerk-Browser
settings:/
Konfigurationsmodule des Kontrollzentrums
Abschnitt 5.4
Tabelle 5.1: Die wichtigsten KIO-Protokolle
re kommen. Eventuell müssen Sie bei Konfigurationsmodulen, die Systemeinstellungen betreffen, zuerst unter Angabe des root-Passworts in einen Administratormodus wechseln. Die meisten KDE-Programme speichern Ihre Einstellungen in Dateien des Verzeichnisses ~/.kde/ oder ~/.kde4/. Darin existieren unter anderem die folgenden Unterverzeichnisse: ~/.kde[4]/Autostart/ ~/.kde[4]/share/config/ ~/.kde[4]/share/apps/
Konfigurationsverzeichnisse
(persönliche Autostart-Programme) (Konfigurationseinstellungen) (sonstige programmspezifische Dateien)
Seit KDE 4.1 ist der Window Manager KWin für die 3D-Desktop-Effekte zuständig. Zur Konfiguration verwenden Sie das Systemeinstellungensmodul A RBEITSFLÄCHEN -EFFEKTE. In der Grundeinstellung sind nur relativ wenige Effekte aktiv, es gibt aber unzählige andere. Die 3D-Effekte funktionieren nur, wenn ein 3D-tauglicher Grafiktreiber aktiv ist.
3D-Desktop
Nach dem Start des Rechners müssen Sie sich einloggen, bevor Sie mit der Arbeit beginnen. Wenn Sie der einzige Benutzer des Rechners sind und keine Gefahr besteht, dass andere Personen Zugang zum Rechner haben, können Sie den ersten Login beim Rechnerstart automatisieren. Die Auto-Login-Funktion steuern Sie im Systemeinstellungsmodul ANMELDEBILDSCHIRM jVEREIN FACHUNG . Dort aktivieren Sie die Option A UTOMATISCHE A NMELDUNG ERLAUBEN und wählen den gewünschten Auto-Login-Benutzer aus. Hinter den Kulissen ist der KDE-Display-Manager (kdm) für den Login verantwortlich. Interna zu diesem Programm sind ab Seite 564 beschrieben.
Auto-Login
123
Kapitel 5
KDE
Abbildung 5.10: Das KDEKontrollzentrum
Wenn auf Ihrem Rechner sowohl KDE als auch Gnome installiert ist, ist für den Login möglicherweise der Gnome-Display-Manager zuständig. In diesem Fall müssen Sie den Auto-Login mit dem Gnome-Programm gdmsetup einrichten (siehe Seite 95). Welcher Display Manager läuft, stellen Sie am einfachsten in einem Konsolenfenster mit dem folgenden Kommando fest: user$
ps ax | egrep 'gdm|kdm'
Bei Novell- und SUSE-Distributionen erfolgt die Konfiguration der Auto-Login-Funktion desktopunabhängig in der Datei /etc/sysconfig/displaymanager. Versuchen Sie nicht, den Auto-Login mit KDE- oder Gnome-Werkzeugen zu verändern, Ihre Einstellungen werden bei nächster Gelegenheit von YaST überschrieben! Autostart
Bei jedem Logout werden alle laufenden Programme beendet. Beim nächsten Login bemüht sich KDE, die zuletzt laufenden Programme wieder zu starten, die letzte Sitzung also wiederherzustellen. Für KDE-Programme funktioniert das zumeist gut, für alle anderen Programme nur mit Einschränkungen (die zuletzt offenen Dokumente werden nicht geladen) oder gar nicht. Details zu diesem Verhalten stellen Sie im Modul S TARTEN UND BEENDEN jSITZUNGSVERWALTUNG der Systemeinstellungen ein. Der zuletzt gültige Zustand der Sitzung wird in Dateien des Verzeichnisses ~/.kde[4]/ share/config/session gespeichert. Unabhängig von der Sitzungsverwaltung können Sie im Verzeichnis ~/.kde[4]/Autostart Programme angeben, die nach jedem Login gestartet werden sollen. KDE erwartet in diesem Verzeichnis *.desktop-Dateien, die das zu startende Programm beschreiben. Am einfachsten erzeugen Sie derartige Dateien, indem Sie das Verzeichnis ~/.kde/Autostart mit Konqueror öffnen und das gewünschte Programm aus dem KDE-Menü per Drag&Drop dorthin kopieren. Alternativ können Sie zur Konfiguration auch das Systemsteuerungsmodul S TARTEN UND BEENDENjA UTOSTART einsetzen.
124
Konfiguration
Abschnitt 5.4
Wenn Sie beide Mechanismen, also die Sitzungsverwaltung und Autostart-Verzeichnisse, parallel nutzen, kann es vorkommen, dass ein zuletzt laufendes Programm doppelt gestartet wird. Beachten Sie auch, dass KDE mehrere Autostart-Verzeichnisse berücksichtigt: ~/.kde[4]/Autostart/ /usr/share/autostart/ /etc/xdg/autostart/
(persönliche Autostart-Programme) (globale Autostart-Programme für KDE) (globale Autostart-Programme für Gnome und KDE)
Mit dem Modul ANZEIGE UND MONITOR stellen Sie ein, ob und wie mehrere Monitore bzw. Signalausgänge genutzt werden sollen und in welcher Auflösung Sie arbeiten möchten. (Solange Sie nur einen Bildschirm verwenden, erkennt das Grafiksystem die optimale Konfiguration in der Regel selbstständig. Weitere Details zur Monitorkonfiguration finden Sie in Kapitel 23 und speziell in Abschnitt 23.6 ab Seite 23.6.)
Bildschirmauflösung und Dual-ScreenKonfiguration
Es gibt unzählige Möglichkeiten, auf das Aussehen (die Optik) des Desktops Einfluss zu nehmen. Wer Zeit und Lust hat, kann Stunden damit verbringen, den Desktop nach seinen eigenen Vorstellungen zu gestalten.
DesktopAussehen
» Desktop-Hintergrund: Zur Einstellung des Hintergrunds klicken Sie mit der rechten Maustaste auf den Desktop und führen EINSTELLUNGEN FÜR DESKTOP aus. Anschließend können Sie ein Hintergrundbild oder eine -farbe einstellen. » Desktop-Design: Im Modul E RSCHEINUNGSBILD DER A RBEITSFLÄCHEjA RBEITSFLÄCHENDESIGN können Sie im Dialogblatt A RBEITSBEREICH das Design (Thema) für die Arbeitsfläche einstellen. Das Design bestimmt die Grundeinstellungen für das Aussehen des Panels, des KDE-Menüs, der Fensterdekoration etc. sowie der hierfür eingesetzten Farben. Mit NEUES DESIGNS HERUNTERLADEN können Sie weitere Designs von der Website http://kde-look.org herunterladen und anschließend aktivieren (vergessen Sie nicht, das neue Design durch A NWENDEN auch zu aktivieren!). Sehr ansprechend ist meiner Ansicht nach das Design KALEBAN. Die Bildschirmabbildungen in diesem Kapitel nutzen das Design OXYGEN . » Gestaltung der Steuerelemente: Im Systemeinstellungsmodul E RSCHEINUNGSBILD VON A NWENDUNGEN jSTIL können Sie zwischen mehreren Layoutvarianten für die optische Gestaltung von Buttons, Optionsfeldern, Bildlaufleisten etc. auswählen. » Gestaltung der Fenster: Das Systemeinstellungsmodul ERSCHEINUNGSBILD DER A RBEITSFLÄCHEj FENSTERDEKORATION gibt leider nur wenige Möglichkeiten, auf das optische Aussehen der Fenster Einfluss zu nehmen. Sie haben auch hier die Auswahl zwischen mehreren Stilen, wobei die meisten davon aber ebenso alt sind, wie sie altmodisch aussehen. » Farben: Die Farben für die Fensterdekoration, das Menü, das Panel etc. sind an sich durch das Desktop-Design vorgegeben. Das Systemeinstellungsmodul E RSCHEINUNGSBILD VON A N WENDUNGEN jFARBEN ermöglicht davon abweichend die Einstellung eigener Farbschemata. Die vorgesehenen Dialogblätter sind leider unübersichtlich, und oft können Sie nur durch Ausprobieren feststellen, wie sich spezifische Veränderungen tatsächlich auswirken. Bequemer ist es, mit N EUE FARBSCHEMATA HERUNTERLADEN fertige Farbeinstellungen aus dem Internet zu beziehen.
125
Kapitel 5
Druckerkonfiguration
KDE
Das KDE-Kontrollzentrum kann mit dem Modul DRUCKEINRICHTUNG auch zur Konfiguration von Druckern verwendet werden. Unter openSUSE verwenden Sie zur Druckerkonfiguration besser YaST. Das KDE-Modul zur Druckerkonfiguration erscheint aus diesem Grund nicht im Systemeinstellungsdialog, Sie können es aber mit kcmshell printers starten.
Abbildung 5.11: KDE-Druckerkonfiguration
Den Assistenten zur Druckerkonfiguration starten Sie mit N EUER DRUCKER. Im ersten Schritt geben Sie Ihren Druckertyp (z. B. N ETZWERKDRUCKER) an, im zweiten Schritt den Hersteller und das Modell. Zum Abschluss der Konfiguration müssen Sie dem Drucker einen Namen geben. Optional können Sie im Feld A DRESSE noch angeben, wo sich der Drucker physikalisch befindet. Das ist praktisch, wenn es im Netzwerk mehrere Drucker gibt, die in verschiedenen Räumen bzw. Stockwerken aufgestellt sind. Alle Linux-Programme können nun die eingerichteten Drucker nutzen. Ist ein Drucker gerade nicht erreichbar oder stehen mehrere Druck-Jobs an, werden diese in einer Warteschlange verwaltet. Hintergrundinformationen zum Linux-Drucksystem CUPS finden Sie ab Seite 963. Dort ist auch beschrieben, welche Drucker von Linux unterstützt werden (und welche nicht), wie Drucker im Netzwerk genutzt werden können etc. Login-Icon
Je nach Konfiguration des Anmeldebildschirms wird dort zu jedem Benutzer ein kleines Bildchen angezeigt. Dieses Bild können Sie im Systemeinstellungsmodul P ERSÖNLICHE INFORMATIONEN einstellen bzw. ändern. In einem Konfigurationsdialog können Sie auch Ihr Passwort sowie diverse andere persönliche Einstellungen ändern. Das Login-Icon wird unter dem Namen ~/.face.icon im PNG-Format gespeichert.
MIME
Wenn nach einem Doppelklick auf eine Ogg-Datei in Konqueror das Programm Amarok erscheint, dann sind hierfür die MIME-Einstellungen von KDE verantwortlich. MIME steht für Multipurpose Internet Mail Extensions und ist eine Art Datenbank, die eine Zuordnung zwischen Dateitypen und Programmen herstellt (siehe auch Seite 307).
126
CDs/DVDs brennen mit K3b
Abschnitt 5.5
Sie können die Liste der MIME-Dateitypen im Systemeinstellungsmodul ERWEITERT jDATEIZUORDNUNGEN ansehen und auch verändern. Einzelnen Dateitypen können mehrere Programme zugeordnet werden. Das in der Rangfolge am höchsten stehende Programm wird verwendet, wenn die Datei durch einen Mausklick geöffnet wird. Alle anderen Programme stehen zur Auswahl, wenn Sie die Datei mit der rechten Maustaste anklicken und ÖFFNEN MIT ausführen. Standardmäßig verwendet KDE zumeist Konqueror als Webbrowser, KMail bzw. Kontact als E-MailProgramm und konsole als Konsolenprogramm. Wenn Sie möchten, dass KDE beim Anklicken entsprechender Links andere Programme startet, finden Sie entsprechende Einstellmöglichkeiten im Modul STANDARD-KOMPONENTEN der Systemeinstellungen.
Standardprogramme einstellen
Für die Verwaltung der Fenster, also für das Verschieben, Vergrößern, Verkleinern etc., ist der Window Manager verantwortlich. Unter KDE kommt dafür standardmäßig das Programm KWin zum Einsatz. Unzählige Einstellungen können Sie im Modul FENSTEREIGENSCHAFTEN der Systemeinstellungen ändern – etwa welche Funktionen die Maustasten in der Titelleiste des Fensters haben, nach welchen Kritierien neue Fenster platziert werden, ob und wie Fenster beim Verschieben einrasten etc. Nur ein Beispiel für die Konfigurationsvielfalt ist der Maximierungsbutton in der Titelleiste des Fensters: Ein gewöhnlicher Mausklick maximiert das Fenster; ein Klick mit der mittleren Maustaste maximiert das Fenster nur vertikal, und ein Klick mit der rechten Maustaste maximiert es horizontal.
Window Manager
Viele Fensteroperationen lassen sich auch mit der Tastatur erledigen. Die dafür vorgesehenen Kürzel können Sie im Modul TASTATUR UND MAUSjSTANDARD-K URZBEFEHLE der Systemsteuerung ansehen bzw. verändern.
5.5 CDs/DVDs brennen mit K3b K3b ist das vielseitigste Brennprogramm, das momentan unter Linux verfügbar ist. Der Funktionsreichtum des Programms begeistert selbst eingefleischte Gnome-Anhänger. Ein wenig abschreckend sind nur die bisweilen unübersichtlichen Menüs und Einstellungsdialoge. Aber keine Angst! Für Standardaufgaben, also beispielsweise für das Erstellen einer Backup-CD, sind diese Optionen nicht wichtig und können getrost ignoriert werden. K3b entscheidet sich praktisch immer für vernünftige Defaulteinstellungen. Je nachdem, ob Sie eine CD oder DVD brennen möchten, führen Sie nach dem Start DATEIjN EUES PROJEKT jN EUES DATENPROJEKT aus. Anschließend verschieben Sie die zu sichernden Verzeichnisse und Dateien aus dem Verzeichnisbaum (oben) in den CD/DVD-Bereich (unten). Der Statusbalken am unteren Fensterrand zeigt gleich an, wie viel Platz die ausgewählten Dateien beanspruchen.
Daten-CDs und -DVDs brennen
Der Button BRENNEN rechts unten im K3b-Fenster führt in einen komplexen Dialog, in dem Sie noch diverse Einstellungen vornehmen können. Im Normalfall können Sie die Vorgaben einfach beibehalten und starten den Brennvorgang endgültig mit einem weiteren B RENNEN-Button. Während des Brennens zeigt ein Dialog den aktuellen Status an. Es ist sehr zu empfehlen, nach dem Brennen zu überprüfen, ob wirklich alle Daten korrekt auf der CD oder DVD gespeichert worden sind (Option G EBRANNTE DATEN PRÜFEN im Brenndialog). Die Überprüfung dauert etwa genauso lange wie das Brennen. Das sollte Ihnen die höhere Sicherheit aber wert
Brennoptionen
127
Kapitel 5
KDE
Abbildung 5.12: CDs/DVDs brennen mit K3b
sein! Gerade bei DVDs sind Brennprobleme leider nichts Ungewöhnliches. (Verringern Sie gegebenenfalls die Geschwindigkeit auf die Hälfte der Maximalgeschwindigkeit Ihres DVD-Brenners.) Wenn Sie sich nicht sicher sind, ob die Geschwindigkeit Ihres Systems ausreicht, um eine CD oder DVD zu brennen, können Sie den Brennvorgang vorher testen (Option SIMULIEREN). Obwohl dabei keine Daten geschrieben werden, muss sich eine leere CD oder DVD im Laufwerk befinden! Die CD bzw. DVD bleibt aber unverändert. Normalerweise werden die Daten direkt von der Festplatte gelesen und sofort auf die CD oder DVD gebrannt. Wenn dabei Fehler auftreten, aktivieren Sie die Option ABBILD ERZEUGEN : K3b erzeugt nun vor dem Brennen eine einzige Datei, die alle notwendigen Daten enthält. Diese Datei wird dann im zweiten Schritt gebrannt. Da eine einzige Datei schneller gelesen werden kann als viele Einzeldateien, ist diese Vorgehensweise sicherer. Wenn Sie der CD bzw. DVD einen Namen geben möchten, können Sie dies im Dialogblatt DATEISYSTEM im Feld DATENTRÄGERNAME tun. K3b speichert alle Dateien so auf der CD, dass später jeder Linux-Benutzer alle Dateien lesen kann. Wenn Sie möchten, dass die ursprünglichen Zugriffsrechte erhalten bleiben, müssen Sie im Dialogblatt DATEISYSTEM den Button BENUTZERDEFINIERT und dann die Option DATEIBERECHTIGUNGEN ERHALTEN anklicken.
128
CDs/DVDs brennen mit K3b
Gewöhnliche CDs und DVDs können Sie nur einmal brennen. Wenn Sie relativ kleine Datenmengen brennen möchten, ist es natürlich ärgerlich, jedes Mal eine ganze CD/DVD dafür zu verschwenden. Für solche Fälle gibt es das Multi-Session-Verfahren. Die Grundidee besteht darin, dass zwar keine vorhandenen Daten geändert werden können, aber im noch freien Bereich der CD/DVD neue Daten hinzugefügt werden können.
Abschnitt 5.6
Multi-SessionCDs/DVDs
K3b unterstützt das Brennen von Multi-Session-CDs und -DVDs. Allerdings müssen Sie auf die richtige Einstellung der Optionen im Dialogblatt EINSTELLUNGEN achten: » Erste Session: Wenn Sie mit einer Multi-Session-CD/DVD beginnen, müssen Sie im Dialogblatt VERSCHIEDENES die Einstellung MEHRFACHSITZUNG STARTEN auswählen. » Weitere Sessions: Bei allen weiteren Sessions wählen Sie die Einstellung MEHRFACHSITZUNG FORTSETZEN . » Letzte Session: Um die CD bzw. DVD abzuschließen, wählen Sie die Einstellung MEHRFACHSIT ZUNG ABSCHLIESSEN . Weitere Sessions sind nun nicht mehr möglich. Wenn Sie die gleiche Datei in mehreren Sessions speichern, befindet sich die Datei mehrfach auf der CD bzw. DVD. Beim Lesen wird automatisch immer die neueste Version berücksichtigt (also die der letzten Session). Um eine CD oder DVD zu kopieren (egal, ob es sich um eine Daten- oder Audio-CD handelt), führen Sie EXTRASjMEDIUM KOPIEREN aus. Im Regelfall können Sie nun einfach auf START klicken – K3b kümmert sich selbst um die richtigen Einstellungen. Nur in Sonderfällen sind Veränderungen an den Einstellungen notwendig. Beachten Sie, dass im temporären Verzeichnis genug Platz sein muss, um den gesamten Datenträger zwischenzuspeichern.
CDs/DVDs kopieren
Wenn Sie zwei Laufwerke haben, geben Sie als QUELLMEDIUM das zweite Laufwerk an. Bei optimaler Hardware können Sie zudem die Option A BBILD ERZEUGEN deaktivieren. Das bedeutet, dass die Daten von der Original-CD/DVD gelesen und sofort auf dem neuen Datenträger gespeichert werden. Da das gründliche Auslesen gerade von Audio-CDs aber oft relativ lange dauert, liefert diese Variante nicht immer gute Ergebnisse. Besser ist es zumeist, die Option A BBILD ERZEUGEN zu aktivieren und dafür eine etwas größere Wartezeit in Kauf zu nehmen. Bei CDs unterscheidet K3b zwischen zwei Kopiermodi: N ORMALE KOPIE und K LON -KOPIE. Intern werden dabei unterschiedliche Programme eingesetzt. Im Regelfall liefert N ORMALE KOPIE gute Ergebnisse. Nur in Sonderfällen – z. B. beim Kopieren einer Video-CD – sollten Sie auf K LON -KOPIE zurückgreifen. Um ein ISO-Image zu brennen, führen Sie EXTRASjA BBILD BRENNEN aus. Im Brenndialog wählen Sie die zu brennende Datei aus, die normalerweise die Dateiendung *.iso hat. K3b errechnet nun automatisch eine MD5-Prüfsumme für die Datei. Die Prüfsumme wird normalerweise auch auf den Websites angegeben, die ISO-Images zum Download anbieten. Sie können damit überprüfen, ob Ihre heruntergeladene Datei wirklich exakt mit dem Original übereinstimmt.
ISO-Image brennen
129
Kapitel 5
KDE
5.6 KDE-Programme Dieser Abschnitt stellt einige häufig eingesetzte KDE-Programme vor. Weitere KDE-Programme werden in anderen Kapiteln vorgestellt, etwa KMail und Kontact im E-Mail-Kapitel 7. Dateiarchive (Ark)
Konqueror eignet sich ausgezeichnet dazu, *.tar.gz-, *.tgz- und *.zip-Archive anzusehen bzw. Dateien daraus zu extrahieren. Sie können mit Konqueror aber keine neuen Archive erstellen oder vorhandene Archive verändern. Genau für diese Aufgabenstellung ist das Programm Ark gedacht, das ähnliche Funktionen bietet wie beispielsweise WinZip.
Fernwartung
Wenn Sie auf Ihrem Rechner ein Problem haben, z. B. weil ein Programm nicht richtig funktioniert, kann Ihnen ein Linux-kundiger Freund am besten via Fernwartung helfen. Dazu starten Sie eine VNC-Verbindung mit PROGRAMMEjSYSTEMjA RBEITSFLÄCHE FREIGEBEN. Der Helfer kann einen beliebigen VNC-Client oder das KDE-Programm krdc einsetzen. Er sieht nun auf seinem Rechner in einem Fenster den gesamten Inhalt Ihres Bildschirms und kann per Maus und Tastatur alle Programme bedienen. Hintergründe zur Fernwartung sind ab Seite 598 beschrieben.
Konsole
Mit dem Programm Konsole können Sie eine oder mehrere Shells starten und in Textkonsolen darstellen. Zwischen den Shells wechseln Sie mit (ª)+(æ) bzw. +(Æ). Mit (Strg)+(ª)+(æ) bzw. +(Æ) ändern Sie die Reihenfolge der Reiter, und mit einem Doppelklick können Sie die Reiter neu benennen. Ebenfalls sehr praktisch ist die Möglichkeit, Dateinamen von konqueror per Drag&Drop in das Konsolenfenster zu verschieben. Damit sparen Sie eine Menge Tipparbeit.
KRunner
Das Tastenkürzel (Alt)+(F2) startet das winzige Programm KRunner, mit dem Sie wiederum ein anderes Programm starten können, indem Sie dessen Programmnamen eintippen. KRunner kann aber noch wesentlich mehr: Sie können damit z. B. einfache Berechnungen durchführen (Eingabe = 2*3), man-Seiten anzeigen (Eingabe man:ls), Konqueror-Webkürzel ausführen (Eingabe gg:kde für eine Google-Suche nach KDE), in eine andere Sitzung wechseln (switch benutzername), ein anders Energieverwaltungsprofil aktivieren (power profilname) etc.
Passwortverwaltung
Wenn Sie mit Konqueror zum ersten Mal ein Login-Formular ausfüllen (z. B. um eine Webmail-Seite wie GMX zu nutzen), erscheint ein Assistent zur Einrichtung der sogenannten digitalen Brieftasche. Das Programm KWallet hilft bei der sicheren Verwaltung von Formulardaten. Wenn Sie zu einem späteren Zeitpunkt auf dieselbe Seite surfen, füllt KWallet das Formular für Sie aus. KWallet wird auch von KMail/Kontact, NetworkManager und diversen anderen KDE-Programmen eingesetzt, um zentral Passwörter und andere Informationen zu speichern. Der Zugang zu diesen Daten, die KWallet verschlüsselt speichert, ist durch ein Master-Passwort abgesichert. Dieses Passwort müssen Sie im Verlauf jeder KDE-Sitzung nur einmal angeben. Bei der ersten Verwendung von KWallet erscheint ein Assistent zur Grundkonfiguration des Programms. Im ersten Schritt haben Sie die Wahl zwischen der hier beschriebenen BASIS-EINRICHTUNG und erweiterten Optionen. Im zweiten Schritt geben Sie an, dass Sie mit KWallet persönliche Informationen speichern möchten, und geben zweimal das Master-Passwort an. Aus Sicherheitsgründen sollte es sich nicht um dasselbe Passwort wie für den Login handeln.
130
KDE-Programme
Abschnitt 5.6
Sobald KWallet aktiv ist, erscheint im Systembereich des Panels ein Icon in der Form einer Geldbörse. Es führt zum KWalletManager, in dem Sie alle in KWallet gespeicherten Informationen bearbeiten und löschen können. Ein Klick auf *.pdf- oder *.ps-Dateien startet das Programm Okular und zeigt das Dokument an. Sie können das Dokument nun durchsuchen, einzelne Seiten ausdrucken etc.
PDF- und PostScript
Wenn Sie Ihre E-Mails signieren oder verschlüsseln oder andere Programme einsetzen, die PGPSchlüssel nutzen, ist ein zentrales Werkzeug zur Schlüsselverwaltung hilfreich. In KDE übernimmt das Programm KGpg diese Aufgabe. Zur Verwaltung von S/MIME-Zertifikaten ist das Programm Kleopatra (ehemals KGpgCertmanager) vorgesehen, das bei vielen Distributionen im Paket kdepim enthalten ist.
Schlüsselverwaltung
Je nach Distribution werden zusammen mit KDE gleich drei Texteditoren installiert: KEdit, KWrite und Kate. KEdit und KWrite sind einfach zu bedienen, stellen aber nur Grundfunktionen zur Verfügung. Kate richtet sich eher an Programmierer bzw. fortgeschrittene Anwender. Sie können damit mehrere geöffnete Dateien zu einer »Sitzung« zusammenfassen, Codeteile (z. B. Funktionen oder Klassen) zusammenklappen etc.
Texteditoren (KEdit, KWrite, Kate)
Unter KDE läuft normalerweise das Programm Klipper, das sich in der Grundeinstellung die letzten sieben Einträge der Zwischenablage merkt. Per Mausklick im Systemabschnitt kann einer dieser Einträge wieder zum aktiven Inhalt der Zwischenablage gemacht werden, womit ältere Einträge auf einfache Weise nochmals genutzt werden können. Optional können sogenannte Aktionen aktiviert werden: Dann analysiert Klipper alle neuen Einträge und führt automatisch dazu passende Operationen aus. Beispielsweise erscheint jedes Mal, wenn eine HTTP-Adresse markiert wurde, automatisch ein Konqueror-Fenster mit der entsprechenden Seite. Persönlich habe ich mit Klipper nie viel anfangen können und habe deswegen seinen automatischen Start deaktiviert (über den Menüeintrag BEENDEN).
Zwischenablage (Klipper)
Mit dem Programm Krename können Sie Dateien effizient umbenennen, mit einer fortlaufenden Nummer ausstatten, das Datum in den Dateinamen einbauen etc. Zum Umbenennen sind sogar reguläre Ausdrücke erlaubt. Bevor die Dateien tatsächlich verändert werden, zeigt eine Vorschau die alten und neuen Dateinamen. Krename ist ein unentbehrliches Werkzeug, wenn Sie eine umfangreiche Sammlung von Audio- oder Bilddateien neu organisieren möchten!
Dateien umbenennen (Krename)
131
Teil 2 Desktop-Anwendungen
6. Webbrowser Im Mittelpunkt dieses Kapitels steht Firefox, der zurzeit populärste Webbrowser für Linux. Anstatt lange auf die Bedienung dieses Programms einzugehen – wie man im Web surft, wissen Sie ja –, konzentriere ich mich in diesem Kapitel auf Konfigurationstipps und Anleitungen zur Installation von Plugins (Flash, Java) und Erweiterungen. Interessante Alternativen zu Firefox sind Google Chrome, Konqueror, Rekonq und Arora (KDE) sowie Epiphany und Midori (Gnome). Hinter den Kulissen unterscheiden sich die verschiedenen Webbrowser nicht nur durch Ihre Benutzeroberfläche, sondern auch durch die sogenannte Rendering Engine: Diese Software-Komponente (Bibliothek) ist für die Darstellung des HTML-Codes verantwortlich. Tabelle 6.1 fasst zusammen, welche Rendering Engine in welchem Browser zum Einsatz kommt. RENDERING ENGINE
WEBBROWSER
Gecko
Firefox, Iceweasel
KHTML
Konqueror
WebKit
Arora, Epiphany, Google Chrome, Konqueror (optional), Midori, Rekonq
Presto
Opera
Gecko versus Webkit
Tabelle 6.1: Rendering Engines
Interessant ist die Geschichte des zunehmend populären WebKits: Apple hat für seinen Webbrowser Safari ursprünglich die Rendering Engine KHTML eingesetzt. Aufgrund der umfangreichen Änderungen am Code bekam die Rendering Engine schließlich den neuen Namen WebKit und wird nun auch von Google und Nokia weiterentwickelt. Selbst viele Konqueror-Entwickler liebäugeln mittlerweile mit einem Umstieg von KHTML auf WebKit. Beginnend mit KDE 4.5 ist dies optional möglich, standardmäßig kommt aber noch immer KHTML zum Einsatz. Neben der Rendering Engine hat auch der JavaScript-Interpreter großen Einfluss darauf, wie schnell und zuverlässig der Webbrowser funktioniert, insbesondere bei modernen Web-2.0-Seiten. Je nach Webbrowser kommen abermals unterschiedliche Interpreter zum Einsatz, z. B. TraceMonkey bzw. JägerMonkey in Firefox, KJS in Konqueror, JavaScriptCore in vielen WebKit-Browsern, V8 in Google Chrome und Carakan in Opera.
JavaScriptInterpreter
Zu den spannendsten IT-Neuigkeiten des Jahres 2010 zählt ohne Zweifel die rasche Verbreitung von HTML5. Dabei handelt es sich um einen (noch nicht endgültig festgeschriebenen) Standard für diverse neue Techniken zur Gestaltung von dynamischen Webseiten mit Multimedia-Inhalten. Apple sieht in HTML5 auch einen probaten Ersatz für Flash. Aus Linux-Sicht wäre das durchaus wünschens-
HTML5
Kapitel 6
Webbrowser
wert, aber es ist ungewiss, ob die Marktmacht von Apple ausreicht, um Flash aus dem Weballtag zu verdrängen. Die meisten modernen Webbrowser unterstützen HTML5 zumindest teilweise. Die HTML5-Kompatibilität Ihres Browsers können Sie anhand der beiden folgenden Seiten leicht selbst testen. Die besten Resultate unter Linux werden Sie mit aktuellen Firefox- und Google-Chrome-Versionen erzielen. http://acid3.acidtests.org/ http://html5test.com/ HTML5 sieht unter anderem die Möglichkeit vor, Videos direkt im Webbrowser abzuspielen (also ohne zusätzliche Plugins). Das Problem dabei: Die am HTML5-Standard beteiligten Unternehmen konnten sich nicht auf einen Codec einigen. Das führt dazu, dass verschiedene Webbrowser unterschiedliche Codecs unterstützen: Microsoft (Internet Explorer) und Apple (Safari) setzen auf H.264. Dieser kommerzielle Codec ist für Open-Source-Software aber ungeeignet. Firefox und Google Chrome unterstützen deswegen Ogg Theora und WebM. (WebM ist aus dem MPEG-4-Codec VP8 der Firma On2 hervorgegangen. Google hat diese Firma gekauft und WebM als Open-Source-Code veröffentlicht.) Ob Sie ein Video einer HTML5-Seite tatsächlich abspielen können, hängt also davon ab, welchen Codec die Website einsetzt. Große Video-Websites wie YouTube werden Videos zukünftig voraussichtlich in drei Formen anbieten: im Flash-Format sowie mit HTML5 in den Codecs H.264 und WebM. Kleinere Seiten müssen sich aber wohl oder übel auf ein Format konzentrieren, was dazu führen wird, dass die Videos nur von einem Teil der Webbrowser abgespielt werden können. WebbrowserUpdates
Die meisten Distributionen führen im Rahmen des regulären Update-Systems nur Sicherheitskorrekturen, aber keine Versions-Updates durch. Das führt dazu, dass auf Debian-, RHEL- und Ubuntu-Installationen, die oft jahrelang im Einsatz sind, uralte Webbrowser laufen. Das ist nicht nur eine Zumutung für die Benutzer, sondern auch für die Distributoren alles andere als optimal: Die Rückportierung der Sicherheits-Updates aktueller Webbrowser auf alte Versionen ist aufwendig und oft gar nicht möglich. Als erster großer Distributor ist Ubuntu nun dazu übergegangen, Versions-Updates für den Standard-Webbrowser (also Firefox) durchzuführen, wobei auch alle Sprach- und Erweiterungspakete aktualisiert werden müssen. Für die neue Firefox-Version erforderliche neue Bibliotheken werden so installiert, dass sie das restliche System nicht beeinflussen, um Kompatibilitätsprobleme auszuschließen. Es ist anzunehmen, dass andere Distributoren auf kurz oder lang denselben Weg einschlagen werden. Hintergrundinformationen zum neuen Update-Konzept können Sie hier nachlesen: https://lists.ubuntu.com/archives/ubuntu-devel-announce/2010-June/000719.html
136
Firefox
Abschnitt 6.1
Andere Internetdienste Clients zum Lesen und Verfassen von E-Mails werden im nächsten Kapitel vorgestellt.
E-Mail
Tipps zum Download von Dateien mit FTP, wget und Torrent sowie zum Umgang mit SSH und scp finden Sie in Kapitel 16 ab Seite 381.
FTP, SSH, Torrent
Wenn Sie mit Twitter oder via identi.ca kommunizieren, können Sie dazu die Programme Choqok (KDE), Gwibber oder Pino (Gnome) einsetzen (siehe Abschnitt 6.5 am Ende dieses Kapitels).
Twitter
Die Internet-Dienste IRC (Internet Relay Chat) und Instant Messaging werden in diesem Buch nicht behandelt: Bei beiden Diensten handelt es sich um dynamische Kommunikationsformen mit einem direkten Kontakt zwischen den Gesprächspartnern (d. h., die Teilnehmer müssen gleichzeitig online sein). Wenn Sie nur IRC nutzen möchten, ist das Programm XChat eine gute Wahl. Wesentlich universeller sind die Programme Kopete, Konversation oder Quassel IRC (alle drei KDE), Empathy oder Pidgin (beide Gnome), die neben IRC diverse Instant-Messaging-Protokolle unterstützen, beispielsweise AIM, ICQ, MSN und Yahoo!.
Instant Messaging
http://www.xchat.org/ http://kopete.kde.org/ http://quassel-irc.org/ http://live.gnome.org/Empathy http://www.pidgin.im/ http://lwn.net/Articles/216456/ Ein weiteres Thema, auf das ich in diesem Buch nicht eingehe, ist Voice over IP (kurz VoIP) bzw. Telefonie über das Internet. Das bekannteste Programm dieser Gattung ist das kommerzielle Programm Skype. Die Linux-Version ist kostenlos, aber leider im Vergleich zur Windows-Version veraltet. Eine interessante Open-Source-Alternative zu Skype ist beispielsweise Ekiga.
VoIP
http://www.skype.com/download/skype/linux/ http://ekiga.org/
6.1 Firefox Firefox ist der populärste Webbrowser für Linux. Kurz einige Worte zur Herkunft des Programms: 1998 gab die Firma Netscape Ihren Netscape Navigator als Open-Source-Code frei. Im Rahmen des Mozilla-Projekts entstand die Mozilla Application Suite, die einen Webbrowser, einen E-Mail- und einen News-Client sowie einen HTML-Editor in einem Programm vereinte. Später wurde der Code in Komponenten zerlegt: Seither enthält das neue Programm Mozilla Firefox nur noch die WebbrowserFunktionen und das im nächsten Kapitel behandelte Programm Mozilla Thunderbird E-Mail- und News-Funktionen. (Weitere, in diesem Buch nicht behandelte Abkömmlinge sind der HTML-Editor Nvu und die Terminverwaltung Mozilla Sunbird.) Einige ehemalige Mozilla-Entwickler, die der Funktionstrennung skeptisch gegenüberstanden, gründeten mit SeaMonkey ein neues Projekt, das alle Funktionen wieder in ein Programm zusammenführt.
Geschichte und Namen
137
Kapitel 6
Webbrowser
Firefox und Debian
In der Vergangenheit gab es bei vielen Linux-Entwicklern mehrfach Unmut über die strengen Lizenzbedingungen des Firefox-Projekts: Obwohl es sich um Open-Source-Code handelt, darf ein Programm nur Firefox heißen, solange es nur »offiziellen« Code der Firefox-Entwickler enthält. Das führte insbesondere bei Updates oft zu Problemen: Viele Linux-Distributionen pflegen die ursprünglich mit der Distribution ausgelieferte Firefox-Version und bauen darin Sicherheits-Updates ein, anstatt ihren Nutzern immer wieder den Umstieg auf die gerade aktuelle Firefox-Version aufzuzwingen. Derartige Sicherheits-Updates standen aber nicht im Einklang mit der Firefox-Lizenzpolitik. Obwohl es in diesem Punkt durch die Vermittlung von Mark Shuttleworth (Ubuntu) zu einer Einigung zwischen dem Firefox- und dem Linux-Lager gekommen ist, entschied sich Debian, den Webbrowser Firefox und den E-Mail-Client Thunderbird unter eigenen Namen in seine Distribution zu integrieren. Aus diesem Grund heißt Firefox bei Debian Iceweasel und Thunderbird Icedove. Das erlaubt es Debian, ohne Rücksicht auf Firefox Änderungen am Code vorzunehmen, ein eigenes Browser-Icon zu verwenden etc.
Firefox 4.0
Damit dieses Buch nicht schon bei der Auslieferung veraltet ist, behandelt dieses Kapitel Firefox in der Version 4.0 (getestet mit Beta 6). Firefox 4 enthält unter anderem den WebM-Codec für HTML5-Videos und neue Funktionen zur Tab-Organisation. Ubuntu 10.10 und Fedora 14 werden zwar standardmäßig noch Firefox 3.6 enthalten, eine manuelle Installation ist aber unkompliziert: http://digitizor.com/2010/09/04/install-firefox-4-ubuntu/ http://digitizor.com/2010/08/27/install-firefox-4-fedora/
Abbildung 6.1: Der Webbrowser Firefox
138
Firefox
Abschnitt 6.1
Grundfunktionen Die Bedienung des Browsers ist genau so, wie Sie es von jedem anderen Browser gewohnt sind: Sie klicken Links an, speichern Lesezeichen von wichtigen Seiten etc. Auf diese elementaren Funktionen gehe ich hier nicht weiter ein – ich denke, Sie kommen selbst zurecht. Mit (Strg)+(T) sowie beim Anklicken von Links, die eine Webseite in einem neuen Fenster öffnen, erzeugt Firefox automatisch ein neues Dialogblatt (englisch Tab). Wer viel im Web surft, hat rasch 10, 20 Tabs offen, worunter die Übersichtlichkeit leidet. Firefox 4 bietet deswegen drei neue Funktionen an, die bei der Organisation der Tabs helfen:
Tabs
» Per Kontextmenü können Sie ein Tab in ein sogenanntes App-Tab umwandeln. App-Tabs werden vor allen anderen Tabs als Icons angezeigt (also ohne Text), was Platz spart. App-Tabs bietet sich für Seiten an, die Sie ohnedies ständig offen haben – z. B. Facebook, Twitter, Google Mail etc. » Ebenfalls per Kontextmenü können Sie die Tabs wahlweise oberhalb oder unterhalb der Adresszeile anzeigen. (Eine Darstellung der Tabs in der Titelleiste des Fensters, wie dies mittlerweile unter Windows und Mac OS X üblich ist, scheitert unter Linux am Window Manager. Google Chrome ist es zwar gelungen, dieses Limit zu umgehen, aber dafür fügt sich das Google-ChromeFenster optisch nur schlecht in den restlichen Desktop ein.) » Der neue Button TABS GRUPPIEREN (ganz rechts in der Tab-Zeile) verkleinert alle Tabs in Icons. Sie können die Tabs nun per Drag&Drop in Gruppen ordnen und diese Gruppen dann benennen (siehe Abbildung 6.2). Per Mausklick aktivieren Sie dann den Tab, in dem Sie weiter arbeiten möchten. Die Tab-Zeile zeigt nun nur noch die Tabs der gerade aktuellen Gruppe an. Um in eine andere Gruppe zu wechseln, müssen Sie abermals den Button TABS GRUPPIEREN anklicken.
Abbildung 6.2: Tab-Organisation in Firefox 4
139
Kapitel 6
Webbrowser
Popup-Fenster
Manche Websites nutzen JavaScript, um Popup-Werbefenster zu öffnen. Firefox verhindert das in den meisten Fällen und zeigt unterhalb der Adressleiste eine Warnung an. Dort können Sie bei Bedarf die unterdrückte Popup-Seite nachträglich öffnen bzw. Popups für die betreffende Website generell erlauben. (Beispielsweise funktioniert bei meiner Bank das Online-Banking nur über ein Popup-Fenster. Daher habe ich die Website meiner Bank vom Popup-Schutz ausgenommen.) Die aktuellen Popup-Einstellungen sowie die Liste der vom Schutz ausgenommenen Websites können Sie im Dialog BEARBEITEN jEINSTELLUNGENjINHALT ändern.
Darstellung internationaler Zeichen
Firefox versucht, den Zeichensatz von Webseiten automatisch zu erkennen, was zumeist auch gelingt. In seltenen Fällen scheitert der Webbrowser aber und zeigt dann internationale Zeichen (auch deutsche Umlaute) falsch an. Abhilfe: Probieren Sie es z. B. mit A NSICHTjZ EICHENKODIERUNGj UNICODE (UTF-8) oder -jWESTLICH (ISO-8859-1).
Textsuche
Mit BEARBEITENjSEITE DURCHSUCHEN bzw. mit (Strg)+(F) öffnen Sie einen Suchdialog. Noch schneller gelangen Sie mit (/) (A) (B) (C) zum Text abc. (Strg)+(G) wiederholt diese Suche. Als Variante zu dieser Suchfunktion können Sie mit (’) (A) (B) (C) nach Links suchen, die den Text abc enthalten.
Internetsuche
Anstatt für eine Google-Suche zuerst auf www.google.com oder www.google.de zu gehen, können Sie die Suchbegriffe direkt im Eingabefeld ganz rechts in der Navigationssymbolleiste angeben. Neben Google sind dort einige andere Suchmaschinen vorkonfiguriert. Über das Auswahlmenü können Sie auch eine neue Suchmaschine definieren. Der Menüeintrag SUCHMASCHINEN HINZUFÜGEN führt zu einer Firefox-Website, auf der Sie zahlreiche populäre Suchmaschinen einfach durch einen Mausklick auf den entsprechenden Link in das Suchmenü integrieren.
Chronik (History)
Firefox merkt sich für einige Tage die Namen und Adressen aller besuchten Websites. Diese SurfChronik können Sie mit (Strg)+(H) (History) in der Sidebar chronologisch anzeigen und durchsuchen. Der Speicherzeitraum beträgt standardmäßig 90 Tage. Wenn Sie den Speicherzeitraum verkürzen möchten, wählen Sie im Dialogblatt BEARBEITENjEINSTELLUNGEN jDATENSCHUTZ die Einstellung FIREFOX WIRD EINE C HRONIK NACH BENUTZERDEFINIERTEN E INSTELLUNGEN ANLEGEN . Im Dialog erscheinen nun diverse Optionen, die den Umgang mit der Seiten-Chronik, der Download-Chronik, den Formulardaten und Cookies steuern.
Privates Surfen
Normalerweise hinterlässt der Besuch jeder Website Spuren auf dem Computer: Die verwendeten Adressen erscheinen in der Chronik der besuchten Seiten, Cookies werden auf der Festplatte gespeichert, ebenso Bilder und HTML-Code im Seiten-Cache etc. Wenn Sie das nicht wollen, aktiviert EXTRASjPRIVATEN MODUS STARTEN (verfügbar ab Firefox 3.5) einen speziellen Modus, in dem Firefox diese Spuren beim Programmende bzw. bei der Deaktivierung des Modus löscht. Spötter bezeichnen diese Funktion als »Porno-Modus«. Es gibt aber auch ernsthafte Anwendungen, etwa wenn Sie auf einem fremden Rechner Online-Banking durchführen oder auf andere sensitive Daten zugreifen möchten. Beachten Sie, dass Sie selbstverständlich auch im PRIVATEN MODUS Spuren im Netz hinterlassen – zwar nicht auf dem lokalen Rechner, wohl aber auf dem Proxy-Server Ihres Internet-Providers sowie auf den Webservern der Seiten, die Sie besuchen.
Downloads
140
Um eine Datei auf Ihren Rechner herunterzuladen, reicht in vielen Fällen ein einfacher Klick auf den Link. Firefox fragt, ob Sie die Datei mit einem Programm öffnen oder auf der Festplatte speichern möchten. Sollte das nicht funktionieren, klicken Sie den Link mit der rechten Maustaste an und füh-
Firefox
Abschnitt 6.1
ren Z IEL SPEICHERN UNTER aus. Bei Downloads, die länger als ein paar Sekunden dauern, erscheint automatisch ein Statusdialog. Standardmäßig speichert Firefox Downloads im Verzeichnis ~/Downloads. Wenn Sie den Speicherort bei jedem Download manuell angeben möchten, führen Sie BEARBEITEN jEINSTELLUNGENjALLGEMEIN aus und aktivieren die Option JEDES MAL NACHFRAGEN , WO EINE DATEI GESPEICHERT WERDEN SOLL. Wenn Sie Login-Formulare ausfüllen (z. B. um eine Webmail-Seite wie GMX zu nutzen), erscheint eine Rückfrage, ob die Login-Daten gespeichert werden sollen. Das erspart bei einem neuerlichen Besuch der Website ein wiederholtes Ausfüllen.
Passwörter
Diese Bequemlichkeit hat natürlich ihren Preis: Wenn eine fremde Person Zugang zu Ihrem Rechner hat, öffnet Firefox auch den Zugang zu allen möglichen passwortgesicherten Websites. Deswegen können Sie sämtliche Passwörter selbst wiederum durch ein Master-Passwort schützen. Dieses Master-Passwort wird zur Verschlüsselung der anderen Passwörter eingesetzt. Sie müssen das Master-Passwort in Zukunft jeweils beim ersten Zugriff von Firefox auf die Passwortdatenbank angeben. Um ein Master-Passwort zu definieren, führen Sie B EARBEITEN jEINSTELLUNGEN jSICHERHEIT aus und aktivieren die Option MASTER-PASSWORT VERWENDEN. Vor dem Ausdruck wählen Sie mit DATEIjSEITE EINRICHTEN zwischen Hoch- und Querformat und geben die gewünschte Skalierung der Seite an (standardmäßig: Skalierung auf Seitenbreite). DATEIj DRUCKVORSCHAU liefert eine Seitenansicht des Drucks. DATEIjDRUCKEN startet den tatsächlichen Ausdruck.
Von der Windows-Version von Firefox sind Ihnen vielleicht die automatischen Firefox-Updates bekannt. Unter Linux ist diese Art der Updates unüblich. Hier kümmert sich die zentrale Paketverwaltung um alle Updates. Wie ich bereits in der Einleitung erwähnt habe (siehe Seite 136), beschränkt sich die Update-Version bei vielen Distributionen auf Sicherheits-Updates.
Hinweis
Bei vielen Distributionen verwendet Firefox die amerikanische Papiergröße letter, was in Europa je nach Drucker zu Problemen führen kann. Um die Standardgröße auf A4 umzustellen, öffnen Sie in Firefox die Seite about:config, suchen nach der Option print.postscript.paper_size und stellen diese per Doppelklick auf A4. Die neue Einstellung wird mit einem Neustart von Firefox wirksam.
Drucken
Firefox-Updates
Lesezeichen (Bookmarks) Firefox zeigt Lesezeichen wahlweise an bis zu drei Orten an: im L ESEZEICHEN-Menü, in einer Symbolleiste (A NSICHTjSYMBOLLEISTEN ) und in der sogenannten Sidebar, die Sie mit (Strg)+(B) (Bookmarks) ein- bzw. wieder ausschalten. Neue Lesezeichen speichern Sie wahlweise mit (Strg)+ (D) oder indem Sie die aktuelle Adresse per Drag&Drop in die Lesezeichen-Symbolleiste oder -Sidebar verschieben. Wenn Sie Ihre Lesezeichen neu organisieren möchten, führen Sie LESEZEICHENjLESEZEICHEN VERWALTEN aus. In einem eigenen Dialog können Sie nun Lesezeichen löschen, verschieben, umbenennen, sortieren, exportieren und importieren. Firefox-intern werden Lesezeichen in einer SQLiteDatenbank in der folgenden Datei gespeichert: ~/.mozilla/firefox/nnnn.default/places.sqlite
141
Kapitel 6
Webbrowser
RSS-Feeds
Viele Websites, die regelmäßig Neuigkeiten präsentieren (News-Ticker), stellen Links zu den aktuellen Artikeln auch in Form von RSS-Feeds zur Verfügung. Dabei handelt es sich um speziell formatierte XML-Dateien, die zu jeder neuen Meldung eine Kurzbeschreibung und den Link enthalten. Firefox kann derartige RSS-Feed als dynamisches Lesezeichen darstellen. Der Inhalt des Lesezeichens ändert sich automatisch, wenn neue Meldungen zur Verfügung stehen. In der Grundkonfiguration enthält Firefox ein Lesezeichen, das zum News-Ticker von BBC-News führt. Bei Websites, die einen RSS-Feed anbieten, zeigt Firefox am rechten Rand der Adresszeile ein orangefarbenes Symbol an ( »Diese Seite abonnieren ...«). Dieses Symbol klicken Sie an und bestätigen dann den Konfigurationsdialog. Das dynamische Lesezeichen erscheint nun wie eine ganze Gruppe von Lesezeichen, die auf die aktuellen Beiträge verweisen.
Firefox Sync
Um Lesezeichen zwischen mehreren Firefox-Installationen zu synchronisieren, können Sie die seit Version 4.0 direkt in Firefox integrierte Sync-Funktion nutzen. Die Konfiguration erfolgt mit BEARBEITENjEINSTELLUNGENjSYNC. (In früheren Firefox-Versionen musste die ehemals Weave genannte Synchronisierungsfunktion als Erweiterung installiert werden.) Firefox Sync synchronisiert standardmäßig nicht nur Ihre Lesezeichen, sondern auch die Passwörter, Grundeinstellungen des Browsers, die Chronik sowie die offenen Tabs. Wenn Sie möchten, können Sie den Geltungsbereich von Firefox Sync aber einschränken. Alle Daten werden standardmäßig auf einem Server des Firefox-Projekts gespeichert. (Alternativ können Sie auch selbst einen eigenen Server einrichten – das ist aber nur für Profis oder größere Firmen/Unternehmen zweckmäßig.) Ihre Daten werden mit der von Ihnen selbst gewählten, mindestens zwölf Zeichen langen Passphrase verschlüsselt und sind für niemanden lesbar, der diese Passphrase nicht kennt.
Xmarks
Eine populäre Alternative zu Firefox Sync ist das Plugin Xmarks (ehemals Foxmarks). Sein größter Vorteil besteht darin, dass Xmarks auch andere Browser unterstützt und so eine Synchronisation über verschiedene Rechner/Systeme ermöglicht. Xmarks ist allerdings weniger sicher als Firefox Sync. Nach der Installation hilft Ihnen ein Assistent dabei, ein Xmarks-Konto einzurichten. Dabei müssen Sie einen Account-Namen, Ihre E-Mail-Adresse und ein Passwort angeben. Wenn der Assistent nicht automatisch erscheint, starten Sie ihn mit EXTRASjXMARKSjXMARKS-EINSTELLUNGEN. Sobald der Account erstellt ist, übertragen Sie Ihre Bookmarks zum Xmarks-Server. (Optional können Sie auch Ihre Passwörter dort speichern. Davon rate ich Ihnen aber aus Sicherheitsgründen ab, auch wenn es den Arbeitskomfort weiter erhöht.) Xmarks enthält neben der Bookmark-Synchronisation einige Zusatzfunktionen: Beispielsweise kann es – ausgehend von Ihren Bookmarks – weitere interessante Seiten vorschlagen. Dahinter verbirgt sich offensichtlich das Geschäftsmodell von Xmarks. Persönlich habe ich keinen Bedarf an derartigen Empfehlungen und habe die entsprechenden Optionen im Einstellungsdialog auf der ENTDECKEN-Seite einfach deaktiviert.
142
Firefox
Hinweis
Ende September 2010 wurde bekannt, dass Xmarks seinen Dienst voraussichtlich Mitte Januar 2011 einstellen wird. Falls Xmarks bis dahin nicht von einer anderen Firma übernommen wird, sollten Sie die Synchronisierung Ihrer Lesezeichen rechtzeitig auf ein anderes System umstellen. Leider ist mir außer Xmarks kein Synchronisierungsdienst bekannt, der über die Grenzen eines bestimmten Browsers funktioniert.
Abschnitt 6.1
Konfiguration Firefox erzeugt beim ersten Start das Verzeichnis ~/.mozilla/firefox/profil.default, wobei profil eine zufällige Zeichenkette ist. In diesem Verzeichnis speichert Firefox alle Einstellungen, Bookmarks, den Cache etc.
Konfigurationsdateien
Falls Ihr Rechner an das Internet bzw. an das lokale Netzwerk angeschlossen ist, aber dennoch kein Webzugang möglich ist, verwendet Ihr lokales Netzwerk wahrscheinlich einen Proxy-Server. Das ist ein Rechner, der zwischen Ihrem PC und dem Internet steht. Er dient als Zwischenspeicher und beschleunigt so den Zugriff auf häufig benötigte Seiten. Der Proxy kann aber auch dazu dienen, bestimmte Webseiten zu blockieren oder alle Webzugriffe zu protokollieren. Wie Sie unter Linux selbst einen Proxy-Server einrichten können, ist ab Seite 909 beschrieben.
Proxy
Damit Firefox den Proxy nutzt, öffnen Sie das Dialogblatt BEARBEITEN jEINSTELLUNGEN jERWEITERTj N ETZWERKjEINSTELLUNGEN und geben die erforderliche Proxy-Adresse(n) an. Im Regelfall reicht es aus, die Felder für den HTTP- und FTP-Proxy auszufüllen. Die richtige Port-Nummer lautet zumeist 8080. (Fragen Sie Ihren Systemadministrator, wenn Sie die Proxy-Adresse nicht kennen.) Wenn Ihnen auf einzelnen Seiten die Schrift zu klein oder zu groß ist, können Sie mit (Strg)+(+) bzw. (Strg)+(-) den Zoomfaktor rasch ändern. Alternativ können Sie auch das Mausrad drehen und dabei gleichzeitig (Strg) drücken.
Schriftgröße
Um die Standardschriftgröße dauerhaft zu verändern, öffnen Sie das Dialogblatt B EARBEITENjEIN STELLUNGEN jI NHALT und stellen dort die Standardschriftart und optional im Dialog E RWEITERT die Mindestschriftgröße ein. Standardmäßig sind Java und JavaScript aktiv. Sie finden die entsprechenden Optionen im Dialog BEARBEITEN jEINSTELLUNGENjINHALT. Java funktioniert allerdings nur, wenn auch eine Java-Umgebung samt Mozilla-Plugin installiert ist (siehe Seite 160).
Java und JavaScript
Cookies sind winzige Dateien, die auf Ihrem Rechner gespeichert werden. Sie ermöglichen es der Website, Sie bei einem späteren Besuch wiederzuerkennen und Kontextinformationen zu speichern. Außerdem sind Cookies oft bei Bestellvorgängen (Anmeldung, Einkaufswagen etc.) erforderlich.
Cookies
Cookies sind nicht gefährlich und erhöhen in vielen Fällen den Komfort beim Surfen. Firefox akzeptiert deswegen Cookies von den meisten Websites standardmäßig. Cookies können aber zu einem gewissen Grad dazu missbraucht werden, Ihr Surf-Verhalten zu verfolgen. Wenn Sie den Einsatz von Cookies beschränken möchten, wählen Sie im Dialogblatt BEARBEITENj EINSTELLUNGEN jDATENSCHUTZ die Einstellung FIREFOX WIRD EINE C HRONIK NACH BENUTZERDEFINIERTEN E INSTELLUNGEN ANLEGEN . Im Dialog erscheinen nun diverse Optionen, um Regeln für den Gebrauch von Cookies festzulegen.
143
Kapitel 6
Webbrowser
Lokaler Cache
Firefox verwaltet einen lokalen Zwischenspeicher, in dem zuletzt besuchte Webseiten, Bilder etc. gespeichert werden. Wenn dieselbe Seite später ein zweites Mal betrachtet wird und sich seither nicht geändert hat, kann sie aus dem Cache geladen werden, was natürlich schneller ist. Standardmäßig werden bis zu 50 MByte auf der Festplatte für den Cache reserviert. Mit B EARBEITEN jE INSTELLUNGEN jE RWEITERT jNETZWERK jOFFLINE -S PEICHER stellen Sie die Cache-Größe ein bzw. löschen den Cache. Im Hauptfenster führt die Adresse about:cache zu einer Liste aller Dateien, die momentan zwischengespeichert sind.
about:config
Die wichtigsten Konfigurationseinstellungen ändern Sie ganz komfortabel in den Dialogen von BEARBEITENjEINSTELLUNGEN . Daneben gibt es unzählige weitere Optionen, die seltener benötigt werden. Eine alphabetische Liste dieser Optionen sowie deren aktuelle Einstellungen erhalten Sie, wenn Sie als Adresse about:config eingeben und dann (¢) drücken (siehe Abbildung 6.3). Im Textfeld FILTER können Sie die Optionsliste auf alle Einträge reduzieren, die den angegebenen Suchtext enthalten. Um eine Option zu verändern, führen Sie einen Doppelklick aus.
Abbildung 6.3: FirefoxKonfiguration Mittlere Maustaste
Firefox enthält eine ausgesprochen nützliche Funktion, mit der Sie in Textform (also nicht als Links) angegebene Webadressen besonders schnell öffnen können. Dazu markieren Sie die Webadresse mit der Maus. Anschließend reicht ein einfacher Klick mit der mittleren Maustaste, um die in der Zwischenablage enthaltene Adresse direkt zu öffnen. Bei einigen Distributionen, darunter Ubuntu, ist diese Funktion leider deaktiviert. Zur Aktivierung geben Sie als Adresse about:config ein und suchen dann nach der Option middlemouse.contentLoadURL. Durch einen Doppelklick stellen Sie diese Option von false auf true.
MIME
Die Abkürzung MIME steht für Multipurpose Internet Mail Extensions. MIME ist dafür verantwortlich, dass der Webbrowser weiß, welches Programm er starten soll, wenn Sie einen Link auf eine MP3oder PDF-Datei anklicken. Firefox berücksichtigt die allgemeinen Linux-MIME-Einstellungen (siehe Seite 308) sowie die MIME-Informationen aller installierten Plugins (siehe ab Seite 155). Zusätzliche bzw. abweichende Einstellungen speichert Firefox in der schwer lesbaren XML-Datei ~/.mozilla/ firefox/profil/mimeTypes.rdf. Den einfachsten Weg zu neuen bzw. geänderten MIME-Einstellungen bietet der Ö FFNEN -Dialog, der immer dann erscheint, wenn Firefox zwar einen MIME-Typ erkennt, aber kein Programm zuordnen kann. Sie haben nun die Möglichkeit, aus einer vorgegebenen Liste ein Programm auszuwählen oder selbst den vollständigen Dateinamen eines anderen Programms anzugeben. (Unter Linux befinden sich die meisten Programme im Verzeichnis /usr/bin.)
144
Firefox
Abschnitt 6.1
Einen Überblick über alle Firefox-spezifischen MIME-Einstellungen gibt BEARBEITEN jEINSTELLUNGEN jA NWENDUNGEN . Dort können Sie vorhandene Einstellungen ändern und löschen, aber leider keine neuen Einträge hinzufügen. Wie ich bereits in der Kapiteleinleitung erwähnt habe, ist bei Firefox die Rendering Engine Gecko für die eigentliche Darstellung der Webseiten verantwortlich. Gecko kann aber auch zur Darstellung von Benutzeroberflächen verwendet werden, bei Bedarf auch außerhalb des Webbrowsers. Die Grundlage dafür ist die XML User Interface Language (XUL).
Gecko und XUL
Zur Ausführung von XUL-Anwendungen ist die Rendering Runtime xulrunner verantwortlich, die bei den meisten Distributionen zusammen mit Firefox installiert wird. xulrunner beinhaltet Gecko. Die Trennung zwischen Firefox und xulrunner hat den Vorteil, dass andere Programme, die ebenfalls HTML-Seiten darstellen müssen (z. B. das E-Mail-Programm Thunderbird), auf das gemeinsame xulrunner-Paket zurückgreifen können. Das vereinfacht die Wartung und Updates.
Firefox-Erweiterungen (XPI-Dateien) Der vermutlich wichtigste Faktor für den Erfolg von Firefox auch unter Windows und Mac OS X und ein Alleinstellungsmerkmal im Vergleich zu allen anderen in diesem Kapitel vorgestellten Webbrowsern ist seine universelle Erweiterbarkeit durch XPI-Dateien. XPI steht für Cross Platform Installation. XPI-Dateien enthalten Firefox-Erweiterungen, wobei die Installationsdateien in einem Archiv samt JavaScript-Installationscode verpackt sind. Die Bandbreite der verfügbaren Erweiterungen reicht von Werbeblockern über Erweiterungen der Benutzeroberfläche, Download-Hilfen bis hin zu Werkzeugen für HTML-Entwickler (siehe auch Tabelle 6.2). ERWEITERUNG
FUNKTION
Adblock
blockiert die Anzeige von Werbe-Bitmaps und -Animationen.
Firebug
hilft Webentwicklern bei der Suche nach Fehlern im HTML-Code.
Flashblock
zeigt einen Button an, um Flash-Animationen zu starten.
FoxTab
zeigt Tabs mit (Strg)+(ÿ) dreidimensional an.
Linkification
wandelt als Text angegebene Adressen in echte Links um.
NoScript
erlaubt JavaScript-Code nur auf vertrauenswürdigen Seiten.
Readability
hilft dabei, längere Texte komfortabler zu lesen.
ReloadEvery
lädt eine Website regelmäßig neu und verhindert so Auto-Logouts.
Screengrab
erzeugt Screenshots von mehrseitigen Webseiten.
WebDeveloper
enthält diverse Tools für Webentwickler.
WOT (Web of Trust)
warnt vor gefährlichen Seiten (siehe unten).
Xmarks
synchronisiert Bookmarks zwischen mehreren Browsern.
Tabelle 6.2: Populäre Firefox-Plugins
145
Kapitel 6
Webbrowser
Das Dialogblatt EXTRASjA DD-ONSjA DD-ONS HERUNTERLADEN stellt einige besonders populäre Erweiterungen zur Auswahl. Unzählige weitere Erweiterungen finden Sie, wenn Sie auf dem Dialogblatt dem Link A LLE A DD-ONS ANSEHEN folgen. Er führt zu dieser Website: https://addons.mozilla.org/de/firefox/
Achtung
Zur Installation von Extensions reicht ein einziger Mausklick auf den Link zur betreffenden XPIDatei. Viele Erweiterungen werden allerdings erst nach einem Neustart von Firefox wirksam. EXTRASjA DD-ONSjERWEITERUNGEN gibt einen Überblick über bereits installierte Extensions sowie die Möglichkeit zur Deaktivierung bzw. Deinstallation. Ubuntu verpackt einige besonders populäre Erweiterungen in eigenen Paketen. Das hat den Vorteil, dass diese Erweiterungen im Rahmen der Ubuntu-Paketverwaltung installiert und aktualisiert werden (Link GET UBUNTU EXTENSIONS im Dialogblatt EXTRASjA DD-ONSjA DD-ONS HERUNTERLADEN ).
Web of Trusts (WOT)
Bevor der XPI-Installationscode ausgeführt wird, warnt Firefox davor, dass XPI-Dateien auch bösartigen Code enthalten können. Nehmen Sie diese Warnung ernst. Von Firefox-Extensions können ähnliche Risiken ausgehen wie von ActiveX-Dateien für den Microsoft Internet Explorer! Installieren Sie keine Erweiterungen, von deren Notwendigkeit und Sicherheit Sie nicht überzeugt sind! Standardmäßig lässt Firefox XPI-Installationen nur von den Websites addons.mozilla.org und update.mozilla.org zu. Wenn Sie zusätzliche Websites akzeptieren oder andererseits XPI-Installationen ganz unterbinden möchten, finden Sie die entsprechenden Einstellungen im Dialogblatt B EARBEITENjEINSTELLUNGENjSICHERHEIT beim Punkt WARNEN, WENN WEBSITES VERSUCHEN, A DDONS ZU INSTALLIEREN. Die Firefox-Erweiterung WOT zeigt bei allen Links in Wikipedia bzw. in den Ergebnissen der wichtigsten Suchmaschinen einen grünen, gelben order roten Ring an, der die Seite bewertet (grün = vertrauenswürdig, rot = gefährlich). Außerdem zeigt die Erweiterung vor dem Laden von potenziell gefährlichen Seiten einen unmissverständlichen Warndialog an bzw. blockiert die Seite (je nach Konfiguration). Die Erweiterung greift dabei auf eine Datenbank zurück, die von der Firma WOT gepflegt wird. Zudem dürfen alle registrierten WOT-Benutzer selbst Seiten bewerten. WOT funktioniert trotz des simplen Ansatzes verblüffend gut. Seine Installation ist absolut empfehlenswert, wenn ein Rechner überwiegend von Personen mit wenig Internet-Verständnis genutzt wird! Bei entsprechender Konfiguration dient WOT sogar als minimalistischer Schutz vor Seiten, die für Kinder ungeeignet sind. Die WOT-Konfiguration durch E XTRASjWOT kann allerdings nicht durch ein Passwort abgesichert werden und ist somit keine ernsthafte Hürde für neugierige Jugendliche.
Jetpack
Herkömmliche Firefox-Erweiterungen auf der Basis von XPI sind zwar sehr populär, in ihrem Ansatz aber veraltet. Beginnend mit Firefox 3.6 gibt es mit Jetpack ein zweites System für FirefoxErweiterungen, das stark auf HTML, JavaScript und CSS basiert. Theoretisch bietet Jetpack viele Vorteile gegenüber XPI, aber ob sich das System auch in der Praxis durchsetzen kann, bleibt abzuwarten. Momentan ist Jetpack auf jeden Fall noch nicht stabil, und es gibt noch keine nennenswerten Jetpack-Erweiterungen. https://jetpack.mozillalabs.com/
146
Google Chrome
Abschnitt 6.2
6.2 Google Chrome In der letzten Auflage dieses Buchs habe ich noch skeptische Worte für Google Chrome gefunden – aber meine Einschätzung hat sich mittlerweile geändert: Nachdem es nun endlich offizielle Versionen von Google Chrome für Linux gibt, ist dieses Programm neben Firefox zum wichtigsten Webbrowser für Linux geworden. Was macht Chrome so attraktiv? » Google Chrome ist ein vergleichsweise kleines und schnelles Programm. Firefox wirkt dagegen ein bisschen wie ein Dinosaurier. » Das radikal reduzierte Bedienungskonzept spricht gleichermaßen Einsteiger und fortgeschrittene Benutzer an. » Jede Webseite (jedes Tab) wird von einem eigenen Prozess ausgeführt. Sollte eine Seite einen Absturz verursachen, so ist davon nur das betreffende Dialogblatt betroffen. Der Webbrowser an sich läuft mit den anderen Seiten weiter. » Google Chrome enthält Nicht-Open-Source-Komponenten und kann daher nicht direkt ohne Weiteres in eine Linux-Distribution integriert werden. Dafür stellt Google für seinen Webbrowser eigene Paketquellen zur Verfügung, die bei der Installation von Google Chrome automatisch eingerichtet werden. Und damit wird der Nachteil der fehlenden Integration in gängige Distributionen zum Vorteil: Dank dieser Paketquellen wird Google Chrome regelmäßig automatisch aktualisiert. Damit ist sichergestellt, dass jederzeit die gerade aktuellste stabile Version von Google Chrome installiert ist. Gerade bei älteren Distributionen bietet Google Chrome den oft einfachsten Weg hin zu einem modernen, standardkonformen Webbrowser.
Abbildung 6.4: Der Acid3-Test in Google Chrome
147
Kapitel 6
Webbrowser
Gegen Google Chrome sprechen eigentlich nur Datenschutzbedenken sowie der Umstand, dass das Angebot an Erweiterungen wesentlich kleiner ist als für Firefox. Persönlich vermisse ich auch eine vertikale Lesezeichenleiste ((Strg)+(B) bei Firefox). Und so kommt es, dass bei aller Begeisterung für Google Chrome Firefox mein Standardbrowser bleibt. Google Chrome versus Chromium
Google Chrome ist zwar kostenlos, die Binärpakete von google.com stehen aber nicht unter einer Open-Source-Lizenz zur Verfügung! Wenn Sie auf reinen Open-Source-Code Wert legen, müssen Sie statt Google Chrome dessen Open-Source-Basis Chromium installieren. Chromium steht bei vielen Distributionen als Paket zur Verfügung und kann mühelos installiert werden. Es gibt nur wenige Unterschiede zwischen Google Chrome und Chromium: Bei Chromium fehlen das Google-Logo und die Chrome-Paketverwaltung GoogleUpdate. Auch auf die geplante Integration der Plugins für Flash und PDF müssen Sie verzichten (siehe unten). Der größte Nachteil von Chromium gegenüber Google Chrome besteht aber wohl darin, dass die meisten Distributionen ihre Chromium-Pakete wesentlich seltener (wenn überhaupt) aktualisieren. Statt der immer aktuellen Chrome-Version bleibt Chromium in der Regel bei der Version stehen, die die jeweilige Distribution ursprünglich ausgeliefert hat.
Installation
Sie finden RPM- und DEB-Installationspakete für Debian, Fedora, SUSE und Ubuntu in 32- und 64Bit-Versionen auf der folgenden Seite zum Download: http://www.google.com/chrome/ Bei den meisten Distributionen wird nach dem Download automatisch ein geeignetes Paketinstallationsprogramm gestartet. Ist das nicht der Fall, installieren Sie das Paket manuell mit rpm -i oder dpkg -i. Während der Installation wird automatisch eine eigene Paketquelle eingerichtet: bei Debian/Ubuntu in der Datei /etc/apt/sources.list.d/google-chrome.list, bei Fedora in /etc/yum.repos.d/ google-chrome.repo, bei openSUSE in /etc/zypp/repos.d/google-chrome.repo. Die Paketquelle stellt sicher, dass Sie in Zukunft über das Update-System neue Google-Chrome-Versionen erhalten.
Bedienung
Die Benutzeroberfläche von Google Chrome ist minimalistisch. Es gibt kein reguläres Menü. Dafür führt ein Button ganz rechts in der Symbolleiste zu einem Menü mit diversen Einträgen, um die aktuelle Seite auszudrucken, diverse Optionen einzustellen etc. Ebenso fehlt in Google Chrome ein eigenes Suchfeld. Stattdessen geben Sie die Suchbegriffe direkt im Adressfeld an. Die Suche wird standardmäßig (natürlich) mit Google durchgeführt, Sie können im Optionsdialog aber auch eine andere Suchmaschine einstellen. Die Dialogblätter der Webseiten werden direkt in der Titelzeile des Fensters angezeigt. Dieses Verfahren ist allerdings inkompatibel mit der üblichen Darstellung von Fenstern durch das DesktopSystem. Ästheten werden sich deshalb daran stören, dass die Google-Fensterdekoration anders aussieht als bei den restlichen Fenstern auf dem Desktop. Damit sich der Webbrower optisch besser dem Desktop-Design anpasst, können Sie im Dialog O PTIONEN jPRIVATES zwischen einer Menge vordefinierter Designs wählen oder die Option TITELLEISTE UND RÄNDER DES SYSTEMS VERWENDEN anklicken. Google Chrome verwendet dann eine herkömmliche Fenstergestaltung. Eine andere Mög-
148
Google Chrome
Abschnitt 6.3
lichkeit besteht darin, im Internet nach speziell für Ihre Distribution angepassten Designs zu suchen. Beispielsweise finden Sie auf den folgenden Seiten Open-Chrome-Designs, die zu den UbuntuGnome-Themen Radiance und Ambiance passen: http://sworiginal.deviantart.com/art/Chromium-Ambiance-10-10-179812565 http://sworiginal.deviantart.com/art/Chromium-Radiance-10-10-179809499 Wenn Sie mit (Strg)+(T) eine Browser-Seite öffnen, zeigt Google Chrome Icons von den am häufigsten genutzten Seiten bzw. Links zu gerade geschlossenen Webseiten an. Um im Web zu browsen, ohne Spuren auf dem lokalen Rechner zu hinterlassen, können Sie im Werkzeugmenü ein INKOGNITO-FENSTER öffnen. Recht inflexibel im Vergleich zu Firefox verhält sich Google Chrome bei der Verwaltung von Lesezeichen: Lesezeichen können nur in einer Symbolleiste dargestellt werden. Diese Lesezeichenleiste kann mit (ª)+(Strg)+(B) ein- und ausgeschaltet werden. Eine vertikale Lesezeichenleiste steht nicht zur Verfügung. Ebenso wenig werden dynamische Lesezeichen für RSS-Feeds unterstützt. Eine Alternative besteht darin, RSS-Feeds im Dienst Google Reader einzutragen. Das ermöglicht es, alle abonnierten Seiten zentral abzurufen. Die Konfiguration und Nutzung ist aber relativ umständlich. Immerhin enthält Google Chrome eine eingebaute Synchronisationsfunktion für Lesezeichen. Diese Funktion setzt voraus, dass Sie ein (kostenloses) Google-Konto einrichten bzw. ein vorhandenes Konto angeben. Die Synchronisation erfolgt zwischen allen Google-Chrome-Installationen, die Sie mit dem Google-Konto verknüpft haben. Die Synchronisationsfunktion ist leider inkompatibel zu anderen Webbrowsern. Wenn Sie Bookmarks zwischen Firefox und Google Chrome synchronisieren möchten, verwenden Sie am besten die Xmarks-Erweiterung. Google Chrome wirbt damit, dass ein sicherer PDF-Reader sowie das gerade aktuellste Flash-Plugin direkt in den Browser integriert sind. Leider gilt das nicht für Linux: Das Flash-Plugin fehlt noch, und es ist unklar, ob und wann es wie bei anderen Betriebssystemen in den Browser integriert wird.
Plugins
Der PDF-Reader ist zwar vorhanden, muss aber auf der Seite about:plugins explizit aktiviert werden. Klicks auf PDF-Links führen nun dazu, dass ein neues Tab geöffnet wird. Statt der PDF-Datei erschien dort bei meinen Tests allerdings nur die Fehlermeldung Missing Plug-in, obwohl die PluginDatei opt/google/chrome/libpdf.so durchaus vorhanden war. (Unter Mac OS X funktioniert das PDF-Plugin, es hat mich aber auch dort nicht begeistert: Dem PDF-Reader fehlen selbst elementare Einstellmöglichkeiten, z. B. zur seitenweisen Darstellung des Dokuments.) Wenn Sie mit Google Chrome also dem Plugin-Ärger entgehen möchten, haben Sie vorerst Pech. Immerhin ist die Plugin-Architektur von Google Chrome Firefox-kompatibel. Wenn Sie also Flash, den Acrobat Reader oder andere Plugins für Firefox installiert haben, funktionieren diese Plugins in der Regel auch unter Chrome. Wie Firefox kann auch Google Chrome um zusätzliche Funktionen erweitert werden. Das Erweiterungssystem von Google Chrome ist allerdings inkompatibel zu dem von Firefox, das Angebot dementsprechend noch viel kleiner. Einen Überblick über die verfügbaren Erweiterungen gibt die folgende Website:
Erweiterungen
https://chrome.google.com/extensions?hl=de
149
Kapitel 6
Webbrowser
6.3 Weitere Webbrowser (Arora, Dillo, Epiphany, Konqueror, Midori, Rekonq) Dieser Abschnitt gibt einen Überblick über einige weitere Webbrowser für Linux. Wie Sie gleich merken werden, ist das Angebot riesig!
Arora Arora ist ein einfacher, auf WebKit basierender Browser für KDE. Dieses relativ junge KDEProgramm hat eine ebenso übersichtliche wie funktionelle Oberfläche und kommt problemlos mit den wichtigsten Firefox-Plugins zurecht. ClickToFlash
Wenn Sie das Flash-Plugin installiert haben, aber nicht möchten, dass Flash-Animationen automatisch starten, aktivieren Sie die Option B EARBEITENjEINSTELLUNGEN jPRIVATSPHÄREjC LICKTOFLASH . Auf Webseiten mit Flash-Elementen erscheint nun der Button LOAD FLASH , der das Flash-Element aktiviert. ClickToFlash funktioniert also ganz ähnlich wie die Firefox-Erweiterung FlashBlock.
Dillo Dillo ist ein ebenso altmodischer wie minimalistischer Webbrowser (siehe Abbildung 6.5). Dillo verwendet eine eigene Rendering-Engine, die nicht kompatibel zu aktuellen HTML-Standards ist und momentan nicht einmal CSS versteht. Dillo hat keine JavaScript-Unterstützung und kann nicht durch Mozilla-kompatible Plugins erweitert werden. Dillo ist daher nur zur Darstellung von simplen ( »altmodischen«) Webseiten und von Hilfetexten geeignet.
Abbildung 6.5: Dillo
Dafür beansprucht Dillo kaum Ressourcen, ist schnell und stellt aufgrund der fehlenden JavaScriptUnterstützung selten ein Sicherheitsrisiko dar. Dillo wird unter anderem vom E-Mail-Programm Claws Mail zur Darstellung von HTML-E-Mails verwendet. Leider gibt es immer weniger Distributionen, die fertige Dillo-Pakete zur Verfügung stellen. Eine positive Ausnahme ist Fedora.
150
Weitere Webbrowser (Arora, Dillo, Epiphany, Konqueror, Midori, Rekonq)
Abschnitt 6.3
Epiphany Epiphany ist der offizielle Webbrowser des Gnome-Projekts. Dennoch ist das Programm kaum bekannt, weil die meisten Gnome-basierten Distributionen standardmäßig Firefox als Webbrowser installieren. Achten Sie bei der Installation darauf, dass Sie das Paket epiphany-browser installieren müssen. (Das Paket epiphany enthält ein gleichnamiges Spiel.) Bis Gnome 2.26 basierte Epiphany auf Gecko bzw. xulrunner, seit Gnome 2.28 kommt wie bei Arora die Rendering Engine WebKit zum Einsatz. Epiphany kommt mit Firefox-kompatiblen Plugins (inklusive Flash) zurecht. Die Benutzeroberfläche ist einfach und bietet nur wenige Konfigurationsmöglichkeiten. Die Adressleiste dient wie bei den meisten Webkit-basierten Browsern gleichzeitig zur Eingabe von Suchbegriffen. Lesezeichen werden mit dem eher unüblichen Tastenkürzel (Strg)+ (D) definiert und können nur über das L ESEZEICHEN -Menü genutzt werden.
Abbildung 6.6: Epiphany
Epiphany kann durch Extensions erweitert werden. Epiphany verwendet hierfür ein eigenes Format, weswegen das Angebot der Erweiterungen viel kleiner ist als bei Firefox. Zu den verfügbaren Erweiterungen zählen ein Werbeblocker, Mausgesten, ein eigener Download-Manager auf der Basis des Programms gwget etc.
Erweiterungen
Konqueror Das bereits im KDE-Kapitel vorgestellte Programm Konqueror ist ein Universal-Browser. Es stellt lokale Dateien, Webseiten, FTP-Verzeichnisse, Bilder etc. dar. An dieser Stelle werden nur einige Besonderheiten bei der Verwendung als Webbrowser beschrieben. Allgemeine Informationen zu Konqueror finden Sie auf Seite 121. Die Darstellung von Webseiten in Konqueror basiert auf der KDE-eigenen Rendering Engine KHTML. Es fällt den KDE-Entwicklern aber zunehmend schwer, diese Komponente konform zu den ständig neuen HTML- und Webstandards zu halten. Aus diesem Grund hat Konqueror bei der Darstellung moderner Webseiten mehr Probleme als andere Linux-Webbrowser.
KHTML versus Webkit
151
Kapitel 6
Webbrowser
Beginnend mit KDE 4.5 besteht die Möglichkeit, in Konqueror die Rendering Engine WebKit einzusetzen, sofern diese Rendering Engine installiert ist (unter Ubuntu: Paket webkitkde). Dazu führen Sie in einer Konsole als gewöhnlicher Benutzer (nicht als root!) das folgende Kommando aus: user$
keditfiletype text/html
Im Dialog DATEITYP BEARBEITEN wechseln Sie in das Dialogblatt EINBETTEN , wählen das Dienstprogramm WEBKIT aus, schieben es in der Hierarchieliste ganz nach oben und bestätigen den Dialog mit OK. Nach einem Neustart greift Konqueror auf Webkit zurück und ist dann ACID3-konform.
Abbildung 6.7: Konqueror als Webbrowser Konfiguration
Es gibt wahrscheinlich keinen anderen Webbrowser, bei dem Sie derart viele Konfigurationseinstellungen verändern können. E INSTELLUNGEN jKONQUEROR EINRICHTEN führt in einen Dialog mit unzähligen Modulen, wobei manche Module wiederum aus mehreren Dialogblättern bestehen!
Schnellsuche
Neben der von anderen Webbrowsern bekannten Internetsuche in einem eigenen Textfeld können Sie die Suche auch direkt in der Adressleiste durchführen. Dazu sind spezielle Abkürzungen definiert. Wenn Sie beispielsweise als Adresse gg:abc eingeben, wird bei http://www.google.com eine Suche nach dem Begriff abc durchgeführt. Im Konfigurationsdialog W EBKÜRZEL können Sie die Abkürzungsliste durch eigene Kürzel ergänzen.
Passwörter
Konqueror speichert Passwörter und Login-Informationen im KDE-Passwortsystem KWallet (siehe Seite 130).
Plugins
Sofern das Programm nspluginviewer installiert ist, das sich üblicherweise im Paket konquerornsplugins befindet, kann Konqueror dieselben Plugins wie Firefox nutzen. Wenn die Plugins nicht funktionieren, werfen Sie einen Blick in den Konfigurationsdialog E RWEITERUNGEN : Dort können Sie nachsehen, welche Plugins Konqueror gefunden hat, und einstellen, welche Verzeichnisse nach Plugins durchsucht werden. Mit dem Button NACH NEUEN PLUGINS SUCHEN können Sie neu installierte Plugins in die Konqueror-Plugin-Liste aufnehmen. Wenn Konqueror manche Firefox-Plugins erkennt, andere dagegen nicht, kann das daran liegen, dass Konqueror das xulrunner-Plugin-Verzeichnis ignoriert. Richten Sie (je nach Distribution)
152
Weitere Webbrowser (Arora, Dillo, Epiphany, Konqueror, Midori, Rekonq)
Abschnitt 6.3
zusätzlich das Verzeichnis /usr/lib/xulrunner/plugins oder /usr/lib/xulrunner-addons/plugins ein. Außer der Firefox-Plugin-Schnittstelle unterstützt Konqueror auch eigene, KDE-spezifische Plugins. Zu den populärsten Zusatzfunktionen zählen die Übersetzung von Webseiten, die Auto-RefreshFunktion, um eine Website nach einer bestimmten Zeit neu zu laden, sowie der DOM-Viewer, um die HTML-Struktur einer Seite zu visualisieren. Diese Plugins müssen oft extra installiert werden. Bei Fedora befinden sie sich beispielsweise im Paket konq-plugins, bei Kubuntu in diversen konquerorplugin-xxx-Paketen. Der Konqueror verwendet nicht direkt ein Java-Plugin, sondern den KJAS (KDE Java Applet Server, Datei kjavaappletviewer.so). KJAS wiederum startet den Java-Interpreter, also das Programm java. Falls Konqueror Probleme hat, diese Datei zu finden, ermitteln Sie deren vollständigen Dateinamen mit which java und tragen ihn im Konqueror-Konfigurationsdialog JAVA UND JAVASCRIPT ein.
Java
Midori Midori ist ein schlanker, auf WebKit und der Gtk-Bibliothek basierender Webbrowser. Die Bedienung folgt traditionellen Mustern und weist wenig Besonderheiten auf. Wegen seiner vergleichweise geringen Ressourcenanforderungen kommt das Programm unter anderem im Desktop-System XFCE standardmäßig zum Einsatz.
Abbildung 6.8: Midori
Rekonq Rekonq ist neben Arora ein weiterer Webkit-basierter Webbrowser für KDE. Rekonq ist ab Version 10.10 der Standard-Webbrowser von Kubuntu. Wer parallel auch Konqueror einsetzt, der wird sich darüber freuen, dass die beiden Webbrowser dasselbe System zur Lesezeichenspeicherung verwenden. In Konqueror definierte Lesezeichen sind damit in Rekonq benutzbar (und umgekehrt). Neue Lesezeichen definieren Sie mit (Strg)+(B). Anstelle der Lesezeichenleiste können Sie mit (ª)+ (Strg)+(B) eine vertikale Lesezeichenleiste ein- bzw. wieder ausschalten.
153
Kapitel 6
Webbrowser
Abbildung 6.9: Rekonq
Eine weitere Gemeinsamkeit mit Konqueror ist die Unterstützung von Webkürzeln. Sie können also wp:MBR eingeben, um in der Wikipedia nach MBR (also dem Master Boot Record) zu suchen. Rekonq verfügt über einen integrierten Filter zum Ausblenden von Werbung, den Sie mit R EKONQ EINRICHTEN jW ERBEFILTER konfigurieren oder bei Bedarf auch deaktivieren können.
Textmodus-Webbrowser Wahrscheinlich fragen Sie sich, welchen Sinn ein Webbrowser für den Textmodus macht. Tatsächlich kommt es aber immer wieder vor, dass man in Linux in einer Textkonsole arbeitet und rasch eine Webseite besuchen oder eine HTML-Dokumentation lesen möchte. Die Programme elinks, lynx und w3m machen genau das möglich. Nebenbei können Sie die Programme auch dazu einsetzen, um HTML-Dokumente in reinen Text umzuwandeln. Alle drei Programme sind ähnlich zu bedienen. Zahlreiche Optionen sowie Tastenkürzel sind in den man-Seiten bzw. im integrierten Hilfesystem dokumentiert. Aus Platzgründen stelle ich hier nur exemplarisch das bekannteste Programm Lynx näher vor. Lynx
Die Bedienung von Lynx ist einfach: Sie starten das Programm im Regelfall dadurch, dass Sie eine WWW-Adresse oder den Namen einer HTML-Datei als Parameter angeben. Lynx lädt das Dokument und zeigt die erste Seite an, wobei Überschriften und Links durch unterschiedliche Farben gekennzeichnet sind. Wenn Sie Lynx mit der Option -use_mouse starten, können Sie das Programm auch per Maus bedienen: Mit der linken Taste folgen Sie einem Link, die mittlere Taste zeigt ein Kontextmenü an, die rechte Taste führt zur vorherigen Seite zurück. Lynx verwendet zur Ausgabe standardmäßig den Latin-1-Zeichensatz. Damit Sonderzeichen in Unicode-Konsolen richtig dargestellt werden, geben Sie die Option -display_charset=utf-8 an. Das folgende Kommando zeigt, wie Sie Lynx als Konverter von HTML in reinen Text einsetzen: user$
154
lynx -dump quelle.html > ziel.txt
Plugins (Flash, Java, Adobe Reader, Multimedia)
Abschnitt 6.4
6.4 Plugins (Flash, Java, Adobe Reader, Multimedia) Plugins sind externe Erweiterungsprogramme mit Zusatzfunktionen zum Webbrowser. Plugins können mehr Funktionen zur Verfügung stellen als gewöhnliche Erweiterungen, allerdings ist die Installation in der Regel umständlicher. Zum Glück greifen alle gängigen Webbrowser auf das Mozilla-Plugin-System zurück. Einmal installierte Plugins sollten daher mit den meisten in diesem Kapitel vorgestellten Webbrowsern funktionieren. Selbst habe ich die im Folgenden vorgestellten Plugins überwiegend mit einer 64Bit-Version von Firefox getestet. Wenn Sie Konqueror als Webbrowser verwenden, muss zusätzlich das Paket konqueror-nsplugins installiert sein. Bei den populärsten Plugins handelt es sich leider durchweg um kommerzielle Programme, die zwar kostenlos sind, aber nicht als Open-Source-Code vorliegen. Aus Lizenzgründen werden diese Plugins bei den meisten Linux-Distributionen standardmäßig nicht mitgeliefert bzw. installiert. Immerhin gibt es zu allen gängigen kommerziellen Plugins Open-Source-Alternativen. Deren Einsatz ist aber teilweise mit Funktionseinschränkungen und Kompatibilitätsproblemen verbunden. Dies gilt insbesondere für die Open-Source-Implementierungen des Flash-Plugins. Beachten Sie, dass es auch Plugins gibt, die nur in einer Windows- und eventuell noch einer Mac-OS-X-Version vorliegen. LinuxAnwender bleiben in diesem Fall außen vor. Für Plugins ist übrigens keine eigene MIME-Konfiguration erforderlich. Die Plugin-Dateien enthalten alle erforderlichen Einstellungen. Wenn Firefox auf eine Seite stößt, deren Inhalte ein nicht installiertes Plugin erfordern, zeigt es eine entsprechende Warnung sowie einen Installations-Button an. Allerdings funktioniert die PluginInstallation aus Firefox heraus unter Linux grundsätzlich nicht! Stattdessen ist eine manuelle Installation erforderlich, wie sie in diesem Kapitel für einige Plugins genauer beschrieben wird.
Installation
Einen Überblick über alle momentan in Firefox verfügbaren Plugins samt der zugeordneten Dateiformate erhalten Sie, wenn Sie als Adresse about:plugins eingeben und (¢) drücken. Auch das Dialogblatt EXTRASjA DD-ONSjPLUGINS liefert eine Liste aller Plugins. Dort können Sie einzelne Plugins deaktivieren, was bei meinen Tests aber nicht immer funktioniert hat. 32-Bit-Plugins können nicht ohne Weiteres in einem Webbrowser ausgeführt werden, der als 64Bit-Kompilat vorliegt. Unbegreiflicherweise gibt es von den populärsten Plugins (Adobe Flash und Adobe Reader) nach wie vor keine 64-Bit-Versionen. Bei Flash ist immerhin Hoffnung in Sicht – es gibt eine Testversion eines 64-Bit-Kompilats, die aber noch keine große Verbreitung gefunden hat. Um die 64-Bit-Hürde zu umgehen, gibt es je nach Plugin verschiedene Lösungsansätze:
64-BitUnterstützung
» Adobe Flash: Zur Ausführung des 32-Bit-Flash-Plugins wird üblicherweise der nspluginwrapper eingesetzt (siehe unten). » Adobe Reader: Beim Adobe Reader ist die fehlende 64-Bit-Unterstützung keine große Einschränkung. Die PDF-Dateien können zwar nicht direkt im Webbrowser angezeigt werden, wohl aber im Adobe Reader, wenn dieser als externes Programm läuft. Persönlich ist mir diese Vorgehensweise ohnedies lieber: Ich empfand die Vermischung der Benutzeroberfläche des Webbrowsers mit jener von Adobe Reader schon immer als extrem unübersichtlich.
155
Kapitel 6
Webbrowser
Wenn Sie ein 32-Bit-Plugin oder -Programm in einer 64-Bit-Distribution nutzen möchten, benötigen Sie auf jeden Fall auch die grundlegenden 32-Bit-Bibliotheken. Unter Debian und Ubuntu müssen Sie dazu zumindest das Paket ia32-libs installieren. nspluginwrapper
Die Bibliothek nspluginwrapper erlaubt die Ausführung einiger 32-Bit-Plugins in 64-Bit-LinuxDistributionen sowie unter den Betriebssystemen NetBSD und FreeBSD. Der nspluginwrapper wird vor allem dazu eingesetzt, um die 32-Bit-Version des Flash-Plugins auszuführen. Der nspluginwrapper ist allerdings nicht zu allen Plugins kompatibel.
Verzeichnisse
Je nachdem, welche Distribution und Firefox-Version Sie einsetzen, werden die Plugin-Dateien an den folgenden Orten gesucht: » im Verzeichnis /usr/lib[64]/xulrunner/plugins » im Verzeichnis /usr/lib[64]/xulrunner-addons/plugins » im Verzeichnis /usr/lib[64]/mozilla/plugins » im Verzeichnis /usr/lib[64]/firefox/plugins » im Verzeichnis ~/.mozilla/plugins » in allen Verzeichnissen, die die Umgebungsvariable MOZ_PLUGIN_PATH angibt Die Vielzahl an Verzeichnissen führt dazu, dass Plugins bei vielen Rechnern nicht an einem einheitlichen Ort installiert werden, sondern quasi über die ganze Festplatte verteilt werden. Aus Kompatibilitätsgründen berücksichtigt auch xulrunner die Mozilla- und Firefox-spezifischen Verzeichnisse.
Adobe Flash Der Adobe Flash Player (ehemals Macromedia Flash) ermöglicht das Abspielen von Flash-Animationen. Das Programm ist als Plugin konzipiert, d. h., die Animationen erscheinen direkt im Webbrowser, oft eingebettet in eine ansonsten statische Seite. Flash ist zum Abspielen von YouTubeVideos erforderlich, wird aber sehr häufig auch zur Darstellung lästiger Werbe-Clips eingesetzt. Manche schlecht konzipierten Websites lassen sich überhaupt nur mit Flash betrachten. Für die Distributionen Debian, Fedora, openSUSE und Ubuntu finden Sie in den Kapiteln 35 bis 38 konkrete Installationsanleitungen für das Adobe-Flash-Plugin. Dieser Abschnitt gilt für alle anderen Distributionen bzw. soll als Hilfestellung dienen, wenn es Probleme gibt. Installation auf 32-Bit-Distributionen
Das Adobe-Flash-Plugin ist kostenlos verfügbar, momentan allerdings nur in einer 32-Bit-Version. Leider machen es die Lizenzbedingungen den meisten Distributionen unmöglich, selbst entsprechende Pakete zur Verfügung zu stellen. Einige Distributionen stellen ein kleines Paket mit einem Installations-Script zur Verfügung, das das Flash-Plugin in der aktuellen Version selbstständig herunterlädt und installiert. Beispielsweise kümmert sich bei aktuellen Ubuntu-Versionen das Paket flashplugin-installer um die FlashInstallation und um spätere Updates. Bei Debian installieren Sie das Paket flashplugin-nonfree (setzt die backports-Paketquelle voraus); wenn Sie das Flash-Plugin zu einem späteren Zeitpunkt aktualisieren möchten, führen Sie das Kommando update-flashplugin aus.
156
Plugins (Flash, Java, Adobe Reader, Multimedia)
Abschnitt 6.4
Wenn es für Ihre Distribution weder fertige Flash-Pakete noch ein Installations-Script gibt, müssen Sie Flash selbst installieren. Auf der folgenden Seite finden Sie das Flash-Plugin in Form von Debianund RPM-Paketen, als YUM-Paketquelle sowie als TAR-Archiv. http://get.adobe.com/de/flashplayer/ Das TAR-Archiv enthält lediglich die Plugin-Datei libflashplayer.so. Diese Datei kopieren Sie in eines der Plugin-Verzeichnisse (siehe die vorige Seite). Anschließend starten Sie Ihren Webbrowser neu – fertig! Bei 64-Bit-Distributionen gibt es zwei Varianten: Die eine besteht darin, die (im September 2010 noch nicht offiziell fertiggestellte) 64-Bit-Version des Flash-Plugins zu verwenden. Nach meinen Erfahrungen funktioniert diese Version bereits relativ gut. Die manuelle Installation erfolgt wie bei der 32-Bit-Version. Sie finden die 64-Bit-Testversion hier:
Installation auf 64-Bit-Distributionen
http://labs.adobe.com/downloads/flashplayer10.html Die andere Variante besteht darin, die 32-Bit-Version des Flash-Plugins zu installieren. Damit diese ausgeführt werden kann, müssen Sie sowohl die 32- als auch die 64-Bit-Version des nspluginwrapper installieren. Von der 32-Bit-Version sind in der Regel diverse 32-Bit-Bibliotheken abhängig. Nach der Installation führen Sie das Kommando mozilla-plugin-config aus: root#
mozilla-plugin-config -i -g -v
Es stellt die erforderlichen Verknüpfungen zwischen /usr/lib/mozilla/plugins (mit den 32-BitPlugins) und /usr/lib64/mozilla/plugins-wrapped her. Nach einem Neustart von Firefox besuchen Sie die folgende Seite, um die Installation zu testen:
Flash testen
http://www.adobe.com/software/flash/about/
Abbildung 6.10: Flash testen
Die Testseite zeigt animierte Werbung für diverse Adobe-Produkte an (willkommen in der FlashWelt!) und gibt Auskunft darüber, welche Flash-Version gerade aktuell ist und welche auf Ihrem Rechner installiert ist.
157
Kapitel 6
Webbrowser
FlashBlock
So toll Flash-Animationen sein können, so lästig ist ihre allgegenwärtige Präsenz für Werbezwecke. Die Firefox-Erweiterung FlashBlock schafft Abhilfe. Alle Flash-Objekte einer Seite erscheinen nun als Buttons. Die Animation beginnt erst, wenn dieser Button angeklickt wird (siehe Abbildung 6.11). Sie finden diese nützliche Firefox-Erweiterung, wenn Sie im Dialogblatt EXTRASjA DD-ONSjA DD-ONS HERUNTERLADEN nach flashblock suchen. Mit Z U FIREFOX HINZUFÜGEN installieren Sie die Erweiterung. Firefox muss neu gestartet werden, damit FlashBlock wirksam wird.
Abbildung 6.11: FlashBlock in der Praxis gnash, Lightspark und swfdec
Wichtige Programmkomponenten, die keiner freien Lizenz unterstehen, sind der Open-Source-Gemeinde immer ein Dorn im Auge. So verwundert es nicht, dass es auch zu Flash Open-Source-Alternativen gibt: den GNU Flash Movie Player (kurz gnash), das relativ neue Lightspark-Projekt sowie die (nicht mehr gewartete) swfdec-Bibliothek. Beide Software-Projekte beinhalten ein WebbrowserPlugin. Ein vollwertiger Ersatz für das Original-Flash-Plugin sind sie aber noch nicht – sowohl bei der Kompatibilität als auch bei der Darstellungsqualität gibt es noch erhebliche Einschränkungen. Weitere Informationen finden Sie hier: http://www.gnu.org/software/gnash/ http://sourceforge.net/apps/trac/lightspark http://swfdec.freedesktop.org/wiki/
Adobe Reader Adobe Reader ist ein Programm zur Darstellung von PDF-Seiten. Zwar gibt es zu diesem Zweck auch diverse Linux-Programme, unter anderem Evince (Gnome) und Okular (KDE), der Adobe Reader bietet aber einige Vorteile: » bessere Darstellungsqualität » ausgereiftere Druckfunktionen » komfortablere Bedienung » diverse Zusatzfunktionen (PDF-Formulare ausfüllen, einfache Änderungen an speziellen PDFDateien durchführen)
158
Plugins (Flash, Java, Adobe Reader, Multimedia)
Abschnitt 6.4
Der Adobe Reader ist kostenlos im Internet verfügbar, aus lizenzrechtlichen Gründen sind die meisten Distributionen aber nicht in der Lage, offizielle Adobe-Reader-Pakete in ihre Distribution zu integrieren. Aus diesem Grund müssen Sie das Programm von der Adobe-Website herunterladen und manuell installieren. Auf der folgenden Website finden Sie eine 32-Bit-Version des Adobe Readers als Debian- oder RPMPaket, als TAR-Archiv (*.tar.bz2) oder als ausführbares Installationsprogramm (*.bin).
Manuelle Installation
http://get.adobe.com/de/reader Die Debian- bzw. RPM-Pakete installieren Sie wie üblich mit dpkg -i bzw. rpm -i oder (wenn möglich) mit yum localinstall. Wenn Sie bei Debian-basierten 64-Bit-Distributionen Warnungen erhalten, dass die CPU-Architektur nicht stimmt, schafft die zusätzliche dpkg-Option --forcearchitecture Abhilfe. Zur Installation des TAR-Archivs führen Sie in einer Konsole die folgenden Kommandos aus: root# root# root#
tar xjf AdobeReader_ n.n.tar.bz2 cd AdobeReader sh INSTALL
Falls Sie sich für die .bin-Variante entschieden haben, setzen Sie deren Execute-Bit und führen die Datei dann aus: root# root#
chmod a+x AdobeReader_ n.n.bin ./AdobeReader_ n.n.bin
Im textbasierten Installationsprogramm bestätigen Sie durch (¢) das Installationsverzeichnis /opt und die automatische Installation des Mozilla-Plugins. Bei der Installation werden auch Startkommandos in die Gnome- und KDE-Menüs eingefügt. Wenn Sie die Installation auf einem 64-Bit-Betriebssystem durchgeführt haben, brauchen Sie grundlegende 32-Bit-Bibliotheken, bevor Sie den Adobe Reader starten können. Unter Debian und Ubuntu installieren Sie dazu die Bibliothek ia32-libs. Bei Fedora sorgen die im RPM-Paket des Adobe Readers definierten Abhängigkeiten dafür, dass die erforderlichen Bibliotheken automatisch installiert werden. Auf 32-Bit-Distributionen gibt es zwei Varianten, den Adobe Reader von Firefox aus zu nutzen: als Plugin oder als externes Programm. Vielen Anwendern ist die erste Variante vertraut, weswegen sie nach der Acrobat-Installation standardmäßig gilt. Persönlich ziehe ich aber die zweite Variante vor: Mir ist es lieber, die Bedienungselemente des Adobe Readers in einem eigenen Fenster zu nutzen. Um PDF-Dokumente in einem eigenen Fenster zu lesen, führen Sie in Firefox BEARBEITENj EINSTELLUNGEN jA NWENDUNGEN aus und wählen beim Dateityp PDF DOKUMENT die Aktion A DOBE ACROBAT VERWENDEN aus (nicht A DOBE ACROBAT (IN FIREFOX) VERWENDEN ).
Verwendung als Firefox-Plugin
Bei 64-Bit-Distributionen stellt sich die Frage nicht: Das Plugin liegt nur als 32-Bit-Version vor und wird von 64-Bit-Webbrowsern ignoriert. Ein Klick auf eine PDF-Datei startet den Adobe Reader deswegen immer als externes Programm.
159
Kapitel 6
JavaScript
Webbrowser
Adobe Reader unterstützt JavaScript. Diese Scripting-Sprache kann zwar für diverse nützliche Funktionen eingesetzt werden, sie stellt aber gleichzeitig ein potenzielles Sicherheitsrisiko dar und kann dazu genutzt werden, Informationen über das Lesen einer PDF-Datei an den Autor zu senden. Das ist ein oft ungewollter Eingriff in Ihre Privatsphäre. Nähere Informationen können Sie hier nachlesen: http://lwn.net/Articles/129729/ Um JavaScript im Adobe Reader auszuschalten, führen Sie B EARBEITEN jEINSTELLUNGENjJAVA SCRIPT aus und deaktivieren die entsprechende Option.
Java Damit Sie Java-Applets im Webbrowser nutzen können, brauchen Sie ein Java-Plugin. Bei 32-BitDistributionen haben Sie die Wahl zwischen dem Original von Oracle (ehemals Sun) oder reinen Open-Source-Implementierungen auf der Basis von IcedTea und OpenJDK. Da Oracle nicht in der Lage ist, sein Plugin als 64-Bit-Kompilat anzubieten, zwingt die Verwendung einer 64-BitDistribution zum Einsatz eines Open-Source-Javas. Das ist in der Regel aber kein Problem: Die Open-Source-Varianten von Java funktionieren mittlerweile ausgezeichnet. (Seit Sun den Java-Code unter der GPL freigegeben hat, basieren ja auch die Open-Source-Implementierungen von Java zu einem großen Teil auf Sun-Code – siehe auch Abschnitt 22.3 ab Seite 552.) Fast alle Distributionen stellen fertige Java-Plugin-Pakete zur Verfügung, deren Installation ein Kinderspiel ist. Vom Plugin-Paket sind in der Regel eine Menge weiterer Pakete abhängig, die die eigentliche Java-Runtime enthalten. Debian 5: Fedora 14: openSUSE 11.3: Ubuntu 10.10: Test
java-gjc-compat-plugin oder icedtea-gcjwebplugin java-1.6.0-openjdk-plugin java-1_6_0-sun-plugin, java-1_6_0-openjdk-plugin icedtea6-plugin oder sun-java6-plugin (aus der partner-Paketquelle)
Um sicherzustellen, dass alles funktioniert hat, öffnen Sie die folgende Webseite. Darin sollte ein Applet Auskunft über die installierte Java-Version geben (siehe Abbildung 6.12). http://www.java.com/de/download/help/testvm.xml
Abbildung 6.12: Testseite für das Java-Plugin
160
Plugins (Flash, Java, Adobe Reader, Multimedia)
Abschnitt 6.4
Wenn es für Ihre Distribution keine fertigen Sun- bzw. nun Oracle-Java-Pakete gibt, müssen Sie selbst Hand anlegen. Auf der folgenden Website finden Sie die Installationsdaten für 32- und 64-BitSysteme wahlweise im RPM-Format oder als selbstextrahierende Datei, wobei aber nur die 32-BitVersionen das Java-Plugin enthalten:
Manuelle Installation von Sun/Oracle Java
http://www.java.com/de/download/manual.jsp Bei Distributionen mit einem RPM-Paketverwaltungssystem führen Sie die Installation einfach mit rpm -i oder yum localinstall durch. Bei anderen Distributionen führen Sie zur Installation die folgenden Kommandos aus: root# root# root# root#
mkdir /usr/local/java cd /usr/local/java chmod u+x jre-n-linux-i586.bin ./jre-n-linux-i586.bin
Während der Installation wird eine Lizenzvereinbarung angezeigt. Die Anzeige beenden Sie mit (Q), anschließend bestätigen Sie die Lizenz durch die Eingabe von yes (¢). Die weitere Installation erfolgt ohne Rückfragen. Allerdings wird die Java-Plugin-Datei nicht in das Mozilla-PluginVerzeichnis installiert. Sie müssen selbst einen symbolischen Link einrichten: root# root#
cd /usr/lib/mozilla/plugins/ ln -s /usr/local/java/jren/plugin/i386/ns7/libjavaplugin_oji.so .
Falls Sie Java als RPM-Paket installiert haben, befinden sich die Java-Dateien im Verzeichnis /usr/java. Das korrekte ln-Kommando sieht dann so aus: root# root#
cd /usr/lib/mozilla/plugins/ ln -s /usr/java/jren/plugin/i386/ns7/libjavaplugin_oji.so .
Hinweis
Es ist sogar möglich, mehrere Java-Umgebungen parallel zu installieren. Welche Version standardmäßig aktiv sein soll, entscheidet alternatives (siehe Seite 540). Es darf aber nur ein Java-Plugin für den Webbrowser installiert werden! Wenn Sie Sun bzw. Oracle Java installieren, eine bereits vorhandene Open-Source-Java-Umgebung aber beibehalten möchten, müssen Sie deren PluginPaket vorher deinstallieren.
Multimedia (Audio- und Video-Player) Bis vor ein paar Jahren zählte zu einer »vollständigen« Plugin-Kollektion auch der RealPlayer. Dieses Programm, das in der Regel als Browser-Plugin genutzt wird, spielt im Webbrowser MP3Dateien sowie diverse Audio- und Video-Dateien in Real-eigenen Formaten ab. Mittlerweile ist eine RealPlayer-Installation überflüssig. Zu allen gängigen Media-Playern für Linux gibt es Browser-Plugins, und sofern die erforderlichen Codec-Bibliotheken installiert sind, unterstützen die Open-Source-Player auch die meisten Medienformate des RealPlayers! Außerdem kooperieren die Open-Source-Player in der Regel besser mit der Linux-Infrastruktur und insbesondere mit dem Audio-System als der notorisch schlecht gewartete RealPlayer. Kurz und gut: Wenn es keine zwingenden Gründe gibt, sollten Sie dem RealPlayer aus dem Weg gehen! Die besten
161
Kapitel 6
Webbrowser
Erfahrungen als RealPlayer-Ersatz habe ich mit dem auf MPlayer basierenden gecko-mediaplayer gemacht. Bei Ubuntu stehen momentan gleich fünf Webbrowser-Plugins für Multimedia-Player zur Auswahl: gecko-mediaplayer kaffine-mozilla mozilla-plugin-vlc totem-mozilla xine-plugin
Plugin auf der Basis von MPlayer; löst mozilla-mplayer ab Plugin auf der Basis von Kaffeine (KDE) Plugin auf der Basis von VLC Plugin auf der Basis von Totem (Gnome) Plugin auf der Basis von Xine
Für die meisten anderen Distributionen gibt es vergleichbare Pakete, die Paketnamen variieren aber. Entscheidend ist in jedem Fall, dass Sie auch die erforderlichen Codec-Pakete installieren, die sich aus Lizenz- und Patentgründen oft nicht in den offiziellen Paketquellen befinden. Mehr Informationen zu diesem leidigen Thema gibt Kapitel 10 (Audio und Video). Distributionsspezifische Installationstipps finden Sie für Debian, Fedora, openSUSE und Ubuntu in den Kapiteln 35 bis 38. Es ist problemlos möglich, mehrere Multimedia-Player parallel zu installieren, aber Sie sollten sich für ein Webbrowser-Plugin entscheiden. Sie vermeiden damit Konfigurationsprobleme. (Welches Plugin ist für welches Audio- bzw. Video-Format zuständig?)
6.5 Social Networking, Twitter-Clients An sich lassen sich Social-Networking-Dienste wie Facebook, Twitter oder Identi.ca natürlich mit jedem Webbrowser bedienen. Aber nachdem Facebook-Apps sich anscheinend zu den wichtigsten und am häufigsten eingesetzten Applikationen jedes modernen Smartphones entwickelt haben, darf natürlich auch Linux nicht zurückstecken und muss für diesen Zweck eigene Programme anbieten. Besonders Ubuntu hat sich das Social Networking auf die Fahnen geschrieben und grundlegende Funktionen in ein Panel-Applet integriert (siehe die Beschreibung des Messaging-Menü auf Seite 1124). Dieser Abschnitt stellt ganz kurz einige MicroBlogging-Clients vor, mit denen Sie Twitter- und Facebook-Nachrichten lesen bzw. selbst verfassen können. Wenn Ihnen die folgende Auswahl zu klein ist, sollten Sie noch einen Blick auf die Programme Qwit (KDE) und Twitux (Gnome) werfen:
Hinweis
http://code.google.com/p/qwit/ http://sourceforge.net/projects/twitux/
Choqok
162
Der Zugriff auf Twitter-Accounts durch externe Programme erfordert ab 31. August 2010 ein neues, sichereres Authentifizierungsverfahren. Viele Microblogging-Clients verwenden noch das alte Verfahren und müssen entsprechend aktualisiert werden. Der KDE-Microblogging-Client Choqok unterstützt die Dienste Twitter und Identi.ca. In typischer KDE-Manier umfasst der Konfigurationsdialog sechs Seiten – man würde es nicht für möglich halten, dass ein so einfaches Programm mit derart vielen Optionen ausgestattet ist. Wie auch immer: Einmal konfiguriert, funktioniert Choqok hervorragend.
Social Networking, Twitter-Clients
Abschnitt 6.5
Abbildung 6.13: Der Microblogging-Client Choqok
KDE besitzt ein eigenen Plasmoid, um Facebook-Neuigkeiten zu verfolgen und selbst Statusmeldungen zu verfassen. Die Bedienung des Miniprogramms ist so einfach wie die von Facebook. Mein einziger Kritikpunkt betrifft den Umstand, dass es sich um ein Plasmoid handelt und nicht um ein eigenständiges KDE-Programm.
FacebookPlasmoid
Abbildung 6.14: Das FacebookPlasmoid
Das unter anderem in Ubuntu eingesetzte Gnome-Programm Gwibber hilft dabei, Nachrichtenkanäle unterschiedlicher Micro-Blogging-Dienste gemeinsam zu lesen und neue Nachrichten zu versenden. Gwibber unterstützt die Nachrichtendienste von Twitter, Facebook, Flickr, StatusNet, Qaiku, FriendFeed, Digg und Identi.ca. Wenn Sie mehrere Konten eingerichtet haben, können Sie
Gwibber
163
Kapitel 6
Webbrowser
mit den Icons in der Statusleiste angeben, an welche Konten eine neue Nachricht gesendet werden soll. Leider ist die optische Kennzeichnung, welche Konten gerade aktiv sind, nicht besonders gut gelungen. Bei der Eingabe von Nachrichten werden Links (URLs) automatisch verkürzt, wobei Sie mit BEARBEITENjEINSTELLUNGEN jMELDUNGEN zwischen verschiedenen Link-Verkürzdiensten wählen können (tinyurl.com, tr.im etc.)
Abbildung 6.15: Der Microblogging-Client Gwibber MicroblogPlasmoid
Das KDE-Plasmoid Microblog ermöglicht es, Microblogging-Nachrichten von Twitter und Identi.ca direkt am Desktop anzuzeigen. Persönlich finde ich das total unpraktisch, aber die Geschmäcker sind verschieden. Bei Kubuntu befindet sich dieses Plasmoid sogar standardmäßig auf dem Desktop.
Pino
Das Gnome-Programm Pino bietet weniger Funktionen als Gwibber, läuft dafür aber stabiler und beansprucht wesentlich weniger Speicher und CPU-Kapazität. Pino unterstützt momentan die Nachrichtendienste Twitter und Identica. Achten Sie beim Einrichten der Konten darauf, dass Sie das richtige Passwort angeben! Anstatt bei einem falschen Passwort eine Fehlermeldung anzuzeigen, versucht Pino immer wieder, einen Login herzustellen. Twitter glaubt dann, dass ein Einbruchversuch vorliegt, und blockiert das Konto für eine Stunde.
164
7. E-Mail-Clients Dieses Kapitel fasst zuerst einige E-Mail-Grundlagen zusammen und führt Sie dann in den Umgang mit fünf E-Mail-Clients für Linux ein: » Thunderbird ist vielen Umsteigern aus der Windows-Welt bereits bekannt. Es handelt sich um die zu Firefox passende E-Mail-Komponente. Der E-Mail-Client hat ein funktionelles Layout und ist nicht mit Zusatzfunktionen überladen. Leider beansprucht Thunderbird sehr viel RAM und ist daher für ältere, schlecht ausgestattete Rechner nicht geeignet. » Evolution ist der Standard-E-Mail-Client des Gnome-Desktops. Das Programm wurde von Anfang an als Alternative zu Outlook konzipiert. Dementsprechend vielfältig sind die Funktionen des Programms: Außer E-Mails können Sie mit Evolution auch Termine und Kontakte verwalten, diese Daten mit einem PDA synchronisieren etc. Evolution kann auch in Kombination mit dem Microsoft Exchange-Server oder mit Groupwise eingesetzt werden. » Kontact ist das KDE-Gegenstück zu Evolution. Kontact bietet eine einheitliche Oberfläche über mehrere KDE-Einzelkomponenten zur Verwaltung von E-Mails, Kontakten, Terminen etc. Wenn Sie nur an den E-Mail-Funktionen interessiert sind, setzen Sie statt Kontact das Programm KMail ein. » Claws Mail ist ein schneller E-Mail-Client, der wegen seiner effizienten Nutzung des RAMs und der CPU oft auf älteren bzw. leistungsschwachen Rechnern eingesetzt wird. Zusatzfunktionen wie ein Spam-Filter, Verschlüsselung, Signierung etc. sind in Form von Plugins realisiert. » Mutt ist ein kleiner, textbasierter E-Mail-Client, der sich vor allem zum Lesen lokaler E-Mails (z. B. auf einem extern laufenden Server) anbietet. Eine naheliegende Frage für Linux-Einsteiger ist nun: Auf welches E-Mail-Programm sollen Sie setzen? Die Entscheidung ist insofern kritisch, als es bei einem späteren Wechsel oft schwierig ist, das vorhandene E-Mail-Archiv zu übernehmen: Jedes der oben aufgezählten Programme speichert E-Mails auf eine andere Weise, aber nur Kontact bzw. KMail bietet auch brauchbare Importfunktionen für die jeweils anderen Formate. Grundsätzlich machen Sie mit keinem der Programme etwas falsch. Zur Erledigung der Standardaufgaben inklusive Spam-Schutz und automatischer E-Mail-Filterung ist jedes Programm geeignet. Technisch orientierte Anwender werden die unzähligen Konfigurationsmöglichkeiten von KMail schätzen, während sich Mausverweigerer am ehesten mit Claws Mail anfreunden werden. Persönlich setze ich seit vielen Jahren Thunderbird ein und bin zufrieden damit.
Kapitel 7
E-Mail-Clients
E-Mail im Textmodus
Manche Linux- bzw. Unix-Freaks lesen bzw. verfassen E-Mails lieber in einer Konsole. Dazu stehen diverse Programme zur Wahl, beispielsweise cone, mutt (siehe Seite 186) und pine. Emacs-Freunde brauchen dank eines eigenen E-Mail-Modus ihren Editor gar nicht zu verlassen. Und wer Mails automatisiert in einem Script verschicken will, der sollte einen Blick auf das Kommando mail werfen.
E-Mail-Server
Nicht Thema dieses Kapitels ist die Konfiguration eines E-Mail-Servers (MTA = Mail Transfer Agent). Wenn Sie über einen Root-Server verfügen und einen eigenen Mail-Server auf der Basis von Postfix, Dovecot, SpamAssassin und ClamAV einrichten möchten, finden Sie in Kapitel 33 eine ausführliche Anleitung.
7.1 Grundlagen Aus Anwendersicht ist das Senden und Empfangen von E-Mails eine einfache Angelegenheit. Hinter den Kulissen sind die Vorgänge, die dabei stattfinden, aber nicht so trivial. Dieser Abschnitt gibt Ihnen daher einige Hintergrundinformationen zum Thema E-Mail. Wenn Sie nur auf der Suche nach einem einfach zu bedienenden E-Mail-Programm sind, können Sie diesen Abschnitt getrost überblättern. Wenn Sie auf der anderen Seite die Hintergründe noch besser verstehen möchten, finden Sie in Abschnitt 33.1 ab Seite 33.1 eine Zusammenfassung der Grundlagen zur E-Mail-ServerKonfiguration. Account
Wenn Ihnen ein Internet-Provider oder eine Firma eine E-Mail-Adresse zur Verfügung stellt, wird dieser Service auch als Account bezeichnet. Da viele Leute mehrere E-Mail-Adressen besitzen, können die meisten E-Mail-Programme mehrere Accounts verwalten. Damit Sie E-Mails von Ihrem Account lesen und neue Nachrichten versenden können, stellt Ihnen Ihr E-Mail-Provider Zugangsdaten zur Verfügung, die so ähnlich wie in Tabelle 7.1 aussehen:
Tabelle 7.1: AccountZugangsdaten mit Beispielen
PARAMETER
BEISPIEL
E-Mail-Adresse
[email protected] oder
[email protected] Postfach-Adresse für eingehende E-Mail (POP oder IMAP)
imap.firma.de oder pop.gmx.net
Login-/Benutzername für das Postfach
khofer oder 12345678
Passwort für das Postfach
xxxxxxxx
Server-Adresse für ausgehende E-Mail (SMTP)
smtp.firma.de mail.gmx.net
Login-/Benutzername für SMTP
khofer oder 12345678
Passwort für SMTP
xxxxxxxx
oder
Oft wird als Login-Name für das Postfach einfach die E-Mail-Adresse verwendet. Bei vielen Accounts gelten für SMTP derselbe Login-Name und dasselbe Passwort wie beim Postfach. Immer seltener kann SMTP auch ohne explizite Authentifizierung verwendet werden, wenn vorher ein POP-Zugriff erfolgt ist. Bei vorwiegend für die Benutzung über einen Webbrowser konzipierten E-Mail-Accounts
166
Grundlagen
Abschnitt 7.1
(z. B. GMX) müssen Sie oft zuerst einige Sicherheitsoptionen ändern, um eine POP- oder IMAPNutzung zuzulassen. Der Begriff MIME (Multipurpose Internet Mail Extensions) wird bei E-Mail-Programmen auf zwei verschiedene Weisen verwendet. Einerseits hilft die richtige MIME-Konfiguration dem E-Mail-Programm, richtig mit Attachments umzugehen und eine per E-Mail versandte PDF-Datei mit einem PDF-Viewer zu öffnen. Hintergrundinformationen zur MIME-Konfiguration finden Sie auf Seite 307.
MIME
Andererseits kann sich MIME auch auf die Codierung des Nachrichtentexts beziehen. Ursprünglich war E-Mail nur für 7-Bit-ASCII-Zeichen gedacht. Nachrichten mit Sonderzeichen (also mit Zeichen, deren Code größer als 127 ist) bereiteten Schwierigkeiten. Um diese Probleme zu umgehen, wurden verschiedene MIME-Typen zur Codierung der Nachrichten definiert. Oft sollen alle E-Mails mit einigen Zeilen Text abgeschlossen werden, die etwa den Firmennamen, eine Adresse etc. enthalten können. Damit Sie diesen Text nicht ständig neu eingeben müssen, können Sie bei den meisten E-Mail-Programmen eine sogenannte Signatur definieren. Manche verwenden dazu automatisch die Datei ~/.signature.
Signatur
Die drei Abkürzungen POP, SMTP und IMAP bezeichnen verschiedene Protokolle zur Übertragung von E-Mails zwischen Ihrem Rechner und dem E-Mail-Provider:
Protokolle
» POP: Zur Übertragung von E-Mails vom Provider auf Ihren Rechner kommt üblicherweise das Post Office Protocol (POP) zum Einsatz. Damit das E-Mail-Programm mit dem Provider kommunizieren kann, benötigt es drei Informationen: die Adresse des POP-Servers, den POPLogin-Namen und das POP-Passwort. » IMAP: Eine Alternative zu POP ist das Internet Message Access Protocol. Der Hauptunterschied zu POP besteht darin, dass bei IMAP die E-Mails üblicherweise auf dem IMAP-Server bleiben. Das E-Mail-Programm dient in diesem Fall also nur zur Kommunikation mit dem Server. IMAP ist dann optimal, wenn Sie Ihre E-Mails von unterschiedlichen Rechnern aus bearbeiten möchten, ohne die Nachteile eines Webmail-Systems in Kauf zu nehmen. IMAP kommt vor allem in größeren Unternehmen zum Einsatz. Dagegen bieten nur relativ wenige E-Mail-Provider IMAP an. Einer der Gründe besteht darin, dass IMAP relativ hohe Ressourcen-Anforderungen an den Provider stellt. Alle in diesem Kapitel vorgestellten E-Mail-Programme unterstützen IMAP. » SMTP: Zum Versenden eigener E-Mails wird das Simple Mail Transfer Protocol (SMTP) verwendet. Zur Kommunikation mit dem SMTP-Server des Providers benötigt das E-Mail-Programm meist nur die Adresse des SMTP-Servers. Ob auch beim SMTP-Server eine Authentifizierung erforderlich ist, hängt vom Provider ab. Bei einigen Providern gilt eine vorherige POP-Authentifizierung automatisch auch für SMTP. Andere Provider verlangen eine eigene SMTP-Authentifizierung. Während der Account-Konfiguration können Sie bei einigen E-Mail-Programmen Port-Nummern für POP, IMAP und SMTP angeben. Üblich sind die folgenden Werte: POP: IMAP: SMTP:
110 bzw. 995 (SSL-verschlüsselt) 143 bzw. 993 (SSL-verschlüsselt) 25 bzw. 465 (SSL-verschlüsselt)
Eine Erklärung, wozu Ports dienen, finden Sie auf Seite 880.
167
Kapitel 7
E-Mail-Clients
Interna der E-Mail-Verwaltung Es gibt verschiedene Möglichkeiten, E-Mails zu verwalten: » Lokales Stand-alone-Programm: Der Normalfall besteht darin, dass Sie Ihre E-Mail auf dem lokalen Rechner mit einem E-Mail-Client (MUA) wie Thunderbird verarbeiten. Dieses Programm kümmert sich allein um alle Aspekte der E-Mail-Verwaltung: empfangen, versenden, verfassen, speichern etc. Alle in diesem Kapitel vorgestellten Programme agieren so. » Lokale Aufgabenteilung: Die zweite Variante entspricht dem Unix-üblichen Ansatz, Teilaufgaben auf einzelne Programme zu verteilen: In diesem Fall verwenden Sie einen lokalen Mail-Server (MTA) zum Versenden von E-Mails, Fetchmail zum Abholen neuer E-Mails vom POP-Server Ihres E-Mail-Providers und schließlich ein beliebiges E-Mail-Programm, das auf die beiden anderen Programme zurückgreift. Dieses Konzept war früher unter Unix/Linux weit verbreitet, ist inzwischen wegen des hohen Konfigurationsaufwands aber selten geworden. Zwingend erforderlich ist es weiterhin, wenn Sie textbasierte E-Mail-Clients einsetzen. Diese Programme sind vielfach nicht in der Lage, selbst E-Mails abzuholen bzw. zu versenden. » Webmail: Alternativ können Sie natürlich auch eines der vielen Webmail-Systeme einsetzen, wie sie von GMX, Yahoo etc. angeboten werden. Dazu benötigen Sie kein eigenes E-Mail-Programm, sondern nur einen Webbrowser. In diesem Fall ist dieses Kapitel für Sie hinfällig.
Lokale E-Mails Traditionell verwendet Unix bzw. Linux E-Mails als lokales Kommunikationsmedium. Manche Netzwerkdienste protokollieren Fehler daher nicht nur in einer Logging-Datei, sondern versenden auch eine E-Mail an root. Da viele Linux-Benutzer die Existenz solcher E-Mails nie bemerken, kommen lokale E-Mails zunehmend außer Mode. Manche Distributionen nutzen dieses Verfahren aber noch immer, um diverse Warnungen zu versenden (z. B. Red Hat und Fedora). Damit Sie in der Lage sind, diese E-Mails zu lesen, müssen Sie diesen Mechanismus kennen. Der lokale E-Mail-Versand erfolgt vollkommen unabhängig von Ihrem E-Mail-Client und funktioniert nur, wenn auf dem Rechner ein E-Mail-Server (MTA) installiert ist. Unter Fedora und Red Hat kommt dabei Sendmail zum Einsatz. Bei den meisten anderen Distributionen ist standardmäßig kein MTA installiert. In der Minimalkonfiguration kann Sendmail E-Mails nur lokal versenden und zustellen (Absender und Empfänger sind also Programme bzw. Accounts auf dem lokalen Rechner). Die Konfiguration und SPAM-Schutzmaßnahmen externer E-Mail-Server verhindern einen »echten« E-Mail-Versand. Inbox
168
»Lokal zustellen« bedeutet, die E-Mail an das Ende der Datei /var/spool/mail/loginname anzufügen. Diese Datei im mbox-Format enthält für den jeweiligen Benutzer alle neuen (noch nicht abgeholten) E-Mails des Systems. Gelegentlich wird diese Datei auch einfach als Inbox bezeichnet. Auch das oben erwähnte Progamm Fetchmail fügt die von einem externen POP-Server abgeholten E-Mails in die Inbox ein.
Grundlagen
Die Gefahr ist groß, dass Sie derartige E-Mails nie zu sehen bekommen – und das gleich aus zweierlei Gründen: Erstens ignorieren die meisten grafischen E-Mail-Clients /var/spool/mail/loginname, und zweitens sind System-Mails meist an root adressiert, während Sie als gewöhnlicher Benutzer arbeiten.
Abschnitt 7.1
Lokale E-Mails lesen
Die Lösung für das erste Problem besteht darin, zum Lesen der lokalen E-Mails ein Programm zu verwenden, das /var/spool/mail/loginname berücksichtigt. Das trifft unter anderem auf alle textbasierten E-Mail-Programme zu. Um die zweiten Hürde zu nehmen, stehen zwei Wege zur Wahl: Entweder loggen Sie sich vorübergehend als root ein (su -l oder sudo -s) und starten dann ein textbasiertes E-Mail-Programm, oder Sie erweitern die Datei /etc/aliases um eine Zeile, die alle an root adressierten E-Mails in Ihre eigene lokale Inbox umleitet: # /etc/aliases ... # kofler erhält alle an root adressierten E-Mails root: kofler Damit die Änderung wirksam wird, müssen Sie anschließend das Kommando newaliases ausführen. Noch eleganter ist es natürlich, alle an root adressierten E-Mails in die Inbox des Benutzers umzuleiten, der normalerweise für die Administration des Rechners verantwortlich ist. Wenn als MTA sendmail installiert ist, fügen Sie dazu am Ende der /etc/aliases eine Zeile nach dem folgenden Muster hinzu. Damit erhält in Zukunft der Benutzer kofler alle E-Mails für root.
/etc/aliases
# am Ende von /etc/aliases ... root: kofler Die geänderte Einstellung wird erst wirksam, wenn Sie das Kommando newaliases ausführen. Zum Lesen der E-Mails können Sie nun auf su -l verzichten. Sie müssen aber weiterhin ein Programm verwenden, das die lokale Mailbox auswertet. Neben textbasierten Programmen wie mutt kommen hierfür auch Evolution und Kontact infrage, wenn ein zusätzlicher Account entsprechend eingerichtet wird. (Thunderbird ist dazu leider nicht in der Lage.)
Mailbox-Formate und -Konvertierung Alle E-Mail-Programme bieten die Möglichkeit, eingetroffene oder selbst verfasste E-Mails in Verzeichnissen zu speichern. Dabei kommt oft das mbox-Format zur Anwendung: Alle E-Mails eines Verzeichnisses (Ordners) werden einfach zu einer langen Textdatei verbunden. Zur Trennung zwischen den E-Mails dienen Zeilen, die mit From beginnen. Das Format ist im Internet dokumentiert, z. B. unter:
mbox-Format
http://www.qmail.org/qmail-manual-html/man5/mbox.html Die meisten E-Mail-Clients erzeugen neben den mbox-Dateien zusätzliche Verwaltungsdateien mit einem Inhaltsverzeichnis zu den Mailbox-Dateien. Diese Verwaltungsdateien beschleunigen den Zugriff auf einzelne E-Mails, sind aber nicht zwischen den E-Mail-Programmen kompatibel.
169
Kapitel 7
E-Mail-Clients
Auch die Art und Weise, ob und wie Hierarchien von Mail-Verzeichnissen unterstützt werden, hängt ganz vom jeweiligen E-Mail-Programm ab. Es gibt hierfür keinen gemeinsamen Standard. Das mbox-Format erleichtert es, den E-Mail-Client zu wechseln. Im Regelfall müssen Sie lediglich die mbox-Dateien (ohne die zusätzlichen Verwaltungsdateien) in das Verzeichnis kopieren, in dem der E-Mail-Client sie erwartet. Neben dem mbox-Format unterstützen manche E-Mail-Programme und die meisten E-Mail-Server auch das maildir-Format. Dabei wird jede einzelne E-Mail in einer eigenen Datei gespeichert. Eine Mailbox besteht aus allen Dateien innerhalb eines Verzeichnisses. Der offensichtliche Vorteil besteht darin, dass einzelne Nachrichten einfacher gelöscht werden können.
Andere Formate
Unter Windows ist von einem gemeinsamen Standard zur Speicherung von E-Mails natürlich keine Rede. Zwar gibt es auch einige Windows-Programme, die das mbox-Format verwenden; die Mehrheit der E-Mail-Clients verwendet aber jeweils ihr eigenes Format.
Tipp
maildir-Format
Wenn Sie bisher unter Windows mit Microsoft Mail bzw. Outlook Express gearbeitet haben und nun unter Linux auf Thunderbird umsteigen möchten, sollten Sie einen Zwischenschritt einlegen und zuerst die Windows-Version von Thunderbird installieren. Damit können Sie nämlich OutlookExpress-E-Mails importieren. Anschließend kopieren Sie das gesamte E-Mail-Verzeichnis nach Linux.
Signierung und Verschlüsselung von E-Mails E-Mails werden zwar viel schneller als gewöhnliche Post zugestellt, bedauerlicherweise ist es aber um die Sicherheit von E-Mails weniger gut bestellt: Für technisch versierte Personen ist es relativ einfach, E-Mails mit falschen Absenderadressen zu versenden, von Ihnen an andere Personen versandte E-Mails zu lesen oder gar zu manipulieren. Aus diesem Grund sollten Sie niemals wirklich vertrauliche Daten in einer nicht verschlüsselten E-Mail versenden (z. B. eine Kreditkartennummer). Durch die Signierung und Verschlüsselung können Sie Ihre E-Mail-Kommunikation wesentlich sicherer machen. Alle in diesem Kapitel vorgestellten E-Mail-Programme sind in der Lage, E-Mails zu signieren und zu verschlüsseln und können natürlich auch mit derart behandelten E-Mails umgehen. Trotz der unbestrittenen Vorteile signierter bzw. verschlüsselter E-Mails werden Sie in der Praxis nur selten auf derartige E-Mails stoßen. Bequemlichkeit, die relativ komplexe Schlüsselverwaltung und zwei zueinander inkompatible Standards (PGP und S/MIME) stehen einer weiten Verbreitung im Wege. Schlüssel
Zum Signieren bzw. Verschlüsseln werden sogenannte Schlüssel verwendet. Ein elektronischer Schlüssel ist einfach ein langer Zahlencode.
Geheimer und öffentlicher Schlüssel
Zum Signieren und Verschlüsseln von E-Mails werden die sogenannten asymmetrischen Verfahren eingesetzt. Jeder Schlüssel besteht daher aus zwei Teilen: aus einem geheimen Schlüssel, der normalerweise nur auf der Festplatte des Besitzers gespeichert ist, und aus einem öffentlichen Schlüssel, der z. B. im Internet publiziert wird. Das Besondere an den asymmetrischen Verfahren
170
Grundlagen
Abschnitt 7.1
besteht darin, dass zum Signieren oder Verschlüsseln der eine Teil des Schlüssels verwendet wird, zur Kontrolle der Signatur bzw. zum Entschlüsseln dagegen der andere Teil des Schlüssels. Das Signieren einer E-Mail bedeutet, dass vor dem Versenden einer Nachricht eine Prüfsumme errechnet wird. Diese Prüfsumme wird verschlüsselt. Der Empfänger kann anhand der Prüfsumme sicherstellen, dass die E-Mail tatsächlich vom angegebenen Empfänger stammt und dass sie nach dem Versenden nicht manipuliert wurde.
Signieren
Wenn Sie eine E-Mail signieren, verwendet das E-Mail-Programm dazu Ihren geheimen Schlüssel. Zur Kontrolle der Signatur reicht aber der öffentliche Schlüssel aus. Das bedeutet: Nur Sie selbst können Ihre E-Mails signieren (weil nur Sie Ihren geheimen Schlüssel besitzen). Es kann aber jeder Ihre signierte E-Mail kontrollieren, weil jeder über das Internet Zugang zu Ihrem öffentlichen Schlüssel hat. Ihre signierte E-Mail kann jeder lesen, auch wenn der Empfänger Ihren öffentlichen Schlüssel nicht kennt oder ein E-Mail-Programm ohne Signaturfunktionen verwendet (z. B. ein Webmail-Interface). In solchen Fällen wird unterhalb der E-Mail der Signaturcode angezeigt. Dieser Code behindert das Lesen der eigentlichen Nachricht nicht. Ein Empfänger ohne Signaturmöglichkeiten kann aber nicht kontrollieren, ob die E-Mail tatsächlich von Ihnen stammt. Das Verschlüsseln einer E-Mail bedeutet, dass die E-Mail nicht im Klartext versendet wird, sondern in einer verschlüsselten Form. Niemand kann den Inhalt dieser E-Mail lesen, wenn er nicht den richtigen Schlüssel kennt, um die Verschlüsselung wieder aufzuheben.
Verschlüsseln
Zum Verschlüsseln wird der öffentliche Schlüssel des Empfängers (!) verwendet. (Wenn Sie also eine verschlüsselte E-Mail an Gabi versenden möchten, müssen Sie sich zuerst den öffentlichen Schlüssel von Gabi besorgen.) Die verschlüsselte E-Mail kann anschließend nur noch durch den geheimen Schlüssel des Empfängers entschlüsselt werden. Diesen Schlüssel hat nur Gabi. Ihre verschlüsselte E-Mail kann nur der Empfänger lesen, der den geheimen Teil des Schlüssels besitzt, dessen öffentlicher Teil zur Verschlüsselung eingesetzt wurde. Wenn der Empfänger seinen geheimen Schlüssel verloren oder irrtümlich gelöscht hat oder wenn er ein E-Mail-Programm ohne Verschlüsselungsfunktionen verwendet, sieht er nur eine lange Liste von Zahlen und Codes. Die Nachricht ist dann vollkommen wertlos. Es wäre zu einfach, wenn es zum Signieren, Verschlüsseln und zur Schlüsselverwaltung nur ein Verfahren gäbe! Etabliert haben sich vielmehr zwei Verfahren, die beide als sicher gelten:
PGP versus S/MIME
» PGP bzw. GPG bzw. OpenPGP: Am Anfang stand das Software-Projekt PGP (Pretty Good Privacy). Als PGP zu einem kommerziellen Produkt wurde, schuf die Open-Source-Gemeinde das dazu weitgehend kompatible Projekt GPG (GNU Privacy Guard). Open PGP ist schließlich ein öffentlicher Internet-Standard, dem sowohl PGP als auch GPG entsprechen. Standardmäßig wird durch PGP nur die eigentliche Nachricht signiert bzw. verschlüsselt. Wenn Sie auch Anhänge signieren bzw. verschlüsseln möchten, müssen Sie die Variante PGP/MIME nutzen.
171
Kapitel 7
E-Mail-Clients
Das aus Anwendersicht vielleicht wichtigste Merkmal von PGP besteht darin, dass es sehr einfach ist, die erforderlichen Schlüssel selbst zu erzeugen. Damit eignet sich PGP nicht nur für große Unternehmen, sondern auch für kleine Betriebe. Auch in der Linux- und Open-Source-Szene dominiert PGP. Sowohl Gnome als auch KDE bieten ausgereifte Werkzeuge zur Schlüsselverwaltung an. Leider unterstützen manche Windows-E-Mail-Clients PGP nicht bzw. erst nach der Installation von Erweiterungen oder Plugins. » S/MIME: S/MIME (Secure Multipurpose Internet Mail Extension) basiert auf anderen Verschlüsselungsalgorithmen. Als S/MIME-Schlüssel müssen sogenannte X.509-Zertifikate verwendet werden. S/MIME-signierte bzw. -verschlüsselte Dokumente haben bei manchen öffentlichen Behörden denselben Wert wie eigenhändig unterschriebene Schriftstücke. Das gilt allerdings nur, wenn die eingesetzten X.509-Zertifikate von autorisierten Trustcentern (CA = Certificate Authority) nach der Kontrolle von Persönlichkeitsdaten (z. B. des Personalausweises) herausgegeben wurden. Derartige Zertifikate kosten aufgrund des hohen administrativen Aufwands relativ viel Geld, sind dafür aber vertrauenswürdiger als selbst erzeugte Schlüssel. S/MIME ist in der Windows-Welt weit verbreitet und wird auch von allen drei in diesem Kapitel vorgestellten E-Mail-Clients unterstützt – wenn auch zum Teil weniger gut als PGP. Die größte Hürde für Privatanwender besteht darin, sich einen S/MIME-Schlüssel zu beschaffen. Leider sind die beiden Verfahren miteinander inkompatibel. Eine PGP-verschlüsselte E-Mail kann nicht mit den Mitteln von S/MIME gelesen werden und umgekehrt. Es gibt zwar E-Mail-Programme, die mit beiden Verschlüsselungsmechanismen zurechtkommen, aber in diesem Fall benötigen Sie für beide Verfahren jeweils eigene Schlüssel. Außerdem kann eine E-Mail immer nur mit einem Verfahren verschlüsselt werden, nicht mit beiden. Kurz und gut: PGP bietet nach dem aktuellen Wissensstand alles, um sicher und ohne zusätzliche Kosten miteinander zu kommunizieren. Der wesentliche Vorteil von S/MIME besteht darin, dass es bei der Verwendung von qualifizierten X.509Zertifikaten einen anderen rechtlichen Charakter hat. Schlüsselverwaltung
Die meisten E-Mail-Clients können die zum Senden und Empfangen erforderlichen Schlüssel selbst verwalten bzw. bei Bedarf einen neuen Schlüssel erzeugen. Da die Schlüssel aber oft auch für andere Aufgaben benötigt werden, ist es zweckmäßig, die Schlüsselverwaltung losgelöst vom E-Mail-Programm durchzuführen. Gnome unterstützt Sie bei dieser Aufgabe durch das Programm Seahorse, KDE durch KGpg und Kleopatra (für S/MIME). Die primäre Aufgabe der Schlüsselverwaltung besteht darin, die öffentlichen Teile der Schlüssel Ihrer Kommunikationspartner in einem sogenannten Schlüsselbund zu sammeln. Beim Import neuer Schlüssel müssen Sie diese »signieren«. Das bedeutet, dass Sie davon überzeugt sind, dass der importierte Schlüssel tatsächlich von der richtigen Person stammt. Sofern Sie mit PGP-Schlüsseln arbeiten, befinden sich alle Verwaltungsdateien im Verzeichnis ~/.gnupg.
172
Thunderbird
Abschnitt 7.2
7.2 Thunderbird Das E-Mail-Programm Thunderbird ist wie Firefox aus dem ehemaligen Mozilla-Projekt hervorgegangen. Obwohl es mit nahezu allen Distributionen mitgeliefert wird, ist es oft nicht installiert. Der Grund: Sowohl Gnome als auch KDE sehen ein anderes Programm als Standard-E-Mail-Client vor (siehe die beiden folgenden Abschnitte). Persönlich ziehe ich aus mehreren Gründen Thunderbird vor und arbeite seit vielen Jahren mit diesem Programm (aktuell in Version 3.1): » Thunderbird ist ein reines E-Mail-Programm. Das macht die Bedienung übersichtlicher. » Das Programm steht auch unter Windows zur Verfügung und bietet sich daher für Nutzer an, die ihr E-Mail-Archiv in einem Windows-kompatiblen Format verwalten möchten. » Der Spamfilter funktioniert gut und ist einfach zu bedienen. Leider ist auch bei Thunderbird nicht alles Gold, was glänzt. Seit Version 3.n verwendet das Programm ein neues System zur Indizierung lokal gespeicherter E-Mails. Damit funktioniert die Suche in E-Mails zwar wesentlich besser als früher, dafür dauert aber die anfängliche Indizierung (vor allem bei einem Versionswechsel von Thunderbird 2.n auf 3.n) schier endlos. Um auch die E-Mails von IMAP-Accounts zu indizieren, lädt Thunderbird standardmäßig ungefragt alle E-Mails herunter, was bei großen IMAP-Verzeichnissen ebenfalls sehr lange dauern kann und eigentlich dem Prinzip von IMAP-Accounts widerspricht.
Kritik
Zu guter Letzt setzt Thunderbird voraus, dass Sie auf einem leistungsfähigen Rechner mit viel RAM arbeiten. Thunderbird beansprucht für sich (je nach Nutzung) oft mehrere Hundert MByte! Eine eher polemische Kritik an Thunderbird können Sie z. B. hier nachlesen: http://www.theregister.co.uk/2010/08/08/thunderbird_3_no/ Ein Problem für sich ist die oft mangelhafte Integration von Thunderbird in diverse LinuxDistributionen. Besonders geärgert habe ich mich zuletzt mit Ubuntu 10.04 (immerhin eine für den Unternehmenseinsatz gedachte LTS-Version), die zwar Thunderbird-3.0-Pakete enthält, aber keine dazu passenden Erweiterungspakete (das betrifft z. B. Lightning). Unter Debian werden Sie vergeblich nach einem Thunderbird-Paket suchen. Aufgrund der strengen Bestimmungen für die Benutzung der registrierten Marke »Thunderbird« benannten die DebianEntwickler das Programm in Icedove um. Die Verwendung eines eigenen Namens erlaubt es Debian, das Programm um eigenen Code zu erweitern und eigene Icons einzusetzen.
Icedove
Bei vielen Distributionen ist Thunderbird in mehrere Pakete aufgeteilt. Eines enthält die Grundfunktionen, und weitere Pakete enthalten die Menü- und Dialogtexte für verschiedene Sprachen. Vergessen Sie nicht, auch das deutsche Sprachpaket zu installieren! In Gnome bzw. KDE sollten Sie anschließend Thunderbird als Standard-E-Mail-Programm einrichten (siehe Seite 99 bzw. 127).
Installation
Account-Konfiguration Beim ersten Start erscheint automatisch der Konten-Assistent, der Ihnen bei der Konfiguration hilft. Sie können den Assistenten bei Bedarf auch selbst starten: Dazu führen Sie BEARBEITEN jKONTENEINSTELLUNGEN aus und klicken auf den Button KONTEN-A KTIONENjKONTO HINZUFÜGEN .
173
Kapitel 7
E-Mail-Clients
Im Assistenten müssen Sie in der Regel nur drei Informationen angeben: Ihren Namen, Ihre E-MailAdresse und das Passwort für den E-Mail-Zugang. Thunderbird versucht die restlichen Parameter (POP oder IMAP-Account, Adresse der Mail-Server etc.) selbst zu erraten, was in vielen Fällen gelingt. Falls Ihr E-Mail-Server sowohl POP als auch IMAP unterstützt, entscheidet sich Thunderbird für IMAP. Bei Bedarf können Sie mit BEARBEITEN jKONTEN-EINSTELLUNGEN unzählige weitere Optionen einstellen (siehe Abbildung 7.1). Beachten Sie, dass Sie bei vielen E-Mail-Servern den BENUTZERNAMEN in den Dialogblättern S ERVER-EINSTELLUNGEN und POSTAUSGANG-SERVER (SMTP) manuell einstellen müssen. Thunderbird verwendet hierfür einfach den ersten Teil der E-Mail-Adresse, was aber vielfach nicht korrekt ist. Bei POP-Accounts empfiehlt sich (zumindest anfänglich) die Aktivierung der Option SERVER-EINSTELLUNGEN jN ACHRICHTEN AUF DEM SERVER BELASSEN. Damit erreichen Sie, dass Thunderbird abgeholte E-Mails auf dem Server nicht löscht. Sollten Sie später auf ein anderes E-Mail-Programm umsteigen, können Sie die E-Mails nochmals herunterladen.
Abbildung 7.1: AccountKonfiguration in Thunderbird
Grundfunktionen Neue E-Mails werden im Ordner POSTEINGANG gesammelt (siehe Abbildung 7.2). Unterhalb der Nachrichtenliste wird der Text der gerade ausgewählten E-Mail angezeigt. Mit einem Doppelklick innerhalb der Nachrichtenliste öffnen Sie ein eigenes E-Mail-Dialogblatt (Tab), das mehr Komfort und Platz zum Lesen umfangreicher E-Mails gibt. Wenn in HTML-Mails enthaltene Dateien und Bilder aus Sicherheitsgründen nicht geladen werden, schafft der Button E XTERNE INHALTE ANZEIGEN Abhilfe.
174
Thunderbird
Abschnitt 7.2
Abbildung 7.2: E-MailVerwaltung in Thunderbird
Eine Neuerung in Thunderbird 3 sind die verschiedenen Darstellungsformen der Ordneransicht:
Ordneransichten
» Standardmäßig ist die Ansicht G RUPPIERTE O RDNER aktiv. Das ist vor allem dann vorteilhaft, wenn Sie mehrere E-Mail-Konten eingerichtet haben. In diesem Fall werden Ordner aus verschiedenen Konten zusammengefasst. Damit sehen Sie alle neuen Nachrichten in einem zentralen Posteingangsordner, alle gelöschten Nachrichten in einem zentralen Papierkorb etc. » Die Ansicht A LLE O RDNER verzichtet auf diese Gruppierung und ordnet stattdessen alle Ordner dem jeweiligen Konto oder dem LOKALEN O RDNER zu. (Der LOKALE O RDNER ist ein kontounabhängiger Speicherort auf der lokalen Festplatte. Der LOKALE O RDNER wird automatisch eingerichtet.) » UNGELESENE O RDNER zeigt alle Ordner, die ungelesene E-Mails enthalten. » FAVORITEN -O RDNER zeigt alle Ordner, die zuvor in einer anderen Ordneransicht per Kontextmenü als FAVORITEN deklariert wurden. » LETZTE O RDNER zeigt die zuletzt aktiven Ordner. Alle neuen E-Mails landen im Ordner POSTEINGANG. Dieser wird nach ein paar Tagen unübersichtlich. Deswegen sollten Sie E-Mails, die Sie nicht löschen möchten, in eigenen Ordnern archivieren. Am einfachsten drücken Sie dazu (A). Thunderbird verschiebt die Nachricht dann in einen Ordner, dessen Name sich aus dem Kontonamen, Archiv und der aktuellen Jahreszahl ergibt (also z. B. KONTOj ARCHIVE j2010).
E-Mails lesen und verfassen
Alternativ können Sie natürlich selbst eigene Unterordner anlegen und E-Mails per Drag&Drop dorthin verschieben. Passen Sie aber auf, wo Sie die Unterordner erzeugen: Wenn Sie mit IMAP arbeiten und möchten, dass die E-Mail in einem neuen Ordner des Mail-Servers archiviert wird, müssen Sie den Ordner dort erzeugen (und nicht innerhalb von LOKALER O RDNER)! Vorhandene E-Mails beantworten Sie mit (Strg)+(R) (reply) bzw. mit (ª)+(Strg)+(R) (reply all) bzw. mit den entsprechenden Kommandos des N ACHRICHT -Menüs. Der Unterschied zwischen den beiden Varianten besteht darin, dass die Antwort im ersten Fall nur an den Versender geht, aber im zweiten Fall auch an alle Personen, die die ursprüngliche E-Mail ebenfalls empfangen haben.
175
Kapitel 7
E-Mail-Clients
Beim Beantworten wird automatisch der gesamte Nachrichtentext zitiert (also mit dem Zeichen > oder mit einer Linie eingerückt). Beim Beantworten von Text-Mails müssen Sie manchmal mit BEARBEITENjN EU UMBRECHEN einen neuen Zeilenumbruch durchführen, damit der Text besser lesbar wird. Alle versandten Nachrichten werden im Ordner G ESENDET gespeichert. N ACHRICHT jA LS NEU BEARBEITEN öffnet die Nachricht im V ERFASSEN -Fenster. Auf diese Weise ist es ganz einfach, die Nachricht neuerlich zu versenden, wahlweise unverändert oder modifiziert. Beim Verfassen neuer E-Mails verwendet Thunderbird automatisch das HTML-Format. Beachten Sie aber, dass sich nicht jeder Empfänger über diese Formatierung freut. Fortgeschrittene Anwender betrachten HTML-Mails als Sicherheitsrisiko. Um eine einzelne E-Mail als reine Textnachricht zu verfassen, führen Sie im V ERFASSEN -Fenster das Kommando EINSTELLUNGEN jFORMATj N UR REINTEXT aus oder drücken die (ª)-Taste, während Sie den Button V ERFASSEN oder A NTWORTEN anklicken. Wenn Sie generell nur Text-Mails erstellen möchten, deaktivieren Sie im Konfigurationsdialog BEARBEITEN jKONTENjVERFASSEN die Option N ACHRICHTEN IM HTML-FORMAT VERFASSEN . E-Mails suchen und filtern
Thunderbird 3.1 bietet drei Möglichkeiten, um nach E-Mails zu suchen: » Globale Suche: Um eine Suche in allen E-Mails durchzuführen, geben Sie die Suchbegriffe im Textfeld rechts oben im Thunderbird-Fenster ein. Nach wenigen Sekunden zeigt Thunderbird in einem Dialogblatt alle Suchergebnisse an. Sie können nun die Suchergebnisse einschränken und nur die E-Mails aus einer bestimmten Zeit, von oder an bestimmte Personen, aus einem bestimmten Ordner etc. anzeigen (siehe Abbildung 7.3). Die Suchfunktion ist ebenso mächtig wie gewöhnungsbedürftig: Auf der einen Seite faszinieren die tolle Aufbereitung der Ergebnisse und die guten Filtermöglichkeiten; auf der anderen Seite ist die Bedienung nicht immer besonders intuitiv und bedarf einiger Übung. Dennoch gilt: Noch nie war das Durchsuchen großer MailArchive so einfach. » Schnellfilter: Hier geben Sie die Suchbegriffe im Eingabefeld S CHNELLFILTER ein und drücken (¢). Thunderbird reduziert nun die Liste der E-Mails im gerade aktuellen Verzeichnis auf alle E-Mails, die die Suchbegriffe im Absender-, Empfänger- oder Betreff-Feld enthalten. Optional können Sie die Suche auch auf den Nachrichteninhalt ausweiten. Dieser SCHNELLFILTER steht ab Version 3.1 zur Verfügung. » Virtuelle Ordner: Mit DATEIjN EUjVIRTUELLER O RDNER können Sie Suchkriterien formulieren. Diese Kriterien werden als virtueller Ordner gespeichert. Immer, wenn Sie diesen Ordner auswählen, werden darin alle E-Mails angezeigt, die den Suchkriterien entsprechen.
Adressbuch
In das Adressbuchfenster gelangen Sie mit dem A DRESSBUCH -Button bzw. einfach mit (Strg)+(2). Dort öffnet ein Mausklick auf die E-Mail-Adresse das Fenster zum Verfassen einer neuen E-Mail. Beim Verfassen neuer E-Mails erscheint bei der Eingabe von E-Mail-Adressen automatisch eine Auswahlliste, sobald die Anfangsbuchstaben einer vorhandenen Adresse entsprechen. Im Adressbuchfenster können Sie mehrere Adresslisten verwalten. Standardmäßig sind zwei Listen vorgesehen: PERSÖNLICHES A DRESSBUCH und G ESAMMELTE A DRESSEN . Wenn Sie möchten, speichert Thunderbird automatisch alle Adressen, an die Sie E-Mails senden, in einem Adressbuch. Die entsprechende Option finden Sie im Dialogblatt BEARBEITEN jEINSTELLUNGENjVERFASSEN jA DRESSIEREN.
176
Thunderbird
Abschnitt 7.2
Abbildung 7.3: Globale E-Mail-Suche in Thunderbird
Um E-Mail-Adressen manuell zu speichern, reicht ein einfacher Mausklick auf den Stern, der neben jeder E-Mail-Adresse in der Nachrichtenansicht angezeigt wird. Bei bereits bekannten Adressen wird dieser Stern gefüllt angezeigt, bei unbekannten Adressen als Kontur. Weitere Kontaktdaten können Sie anschließend im Adressbuchfenster hinzufügen. Mit EXTRASjIMPORTIEREN können Sie zudem bereits vorhandene Adressbuchdateien in den verschiedensten Formaten einlesen. In Thunderbird ist ein Spamfilter integriert. Alle spamverdächtigen E-Mails werden als Junk klassifiziert und in den gleichnamigen Ordner verschoben. Zur Verbesserung der Spamerkennung trainieren Sie den Spamfilter einige Tage lang. Während dieser Zeit klicken Sie bei jeder E-Mail, die Thunderbird falsch klassifiziert hat, auf den JUNK-Button. Noch effizienter geht es per Tastatur: (J) klassifiziert zuvor markierte E-Mails als Spam, (ª)+(J) hebt eine irrtümliche Markierung als Spam auf. Weitere Optionen uzr Spambekämpfung finden Sie im Konfigurationsdialog B EARBEITEN j EINSTELLUNGEN jSICHERHEIT.
Spamfilter
Unabhängig vom Spamfilter können Sie mit EXTRASjFILTER weitere Filterregeln definieren. Auf diese Weise können Sie alle eintreffenden E-Mails, die ein bestimmtes Kriterium erfüllen, markieren oder automatisch in einen beliebigen Ordner verschieben. Das ist insbesondere zur automatischen Verarbeitung von E-Mails aus Mailing-Listen praktisch.
Filter
Thunderbird speichert lokal heruntergeladenen E-Mails sowie alle Konfigurationseinstellungen im Verzeichnis ~/.thunderbird/xxxxxxxx.default, wobei xxxxxxxx eine zufällig generierte Zeichenkette ist. Die E-Mail-Ordner liegen im mbox-Format vor und befinden sich im Unterverzeichnis Mail.
Interna
Wenn Sie von Windows auf Linux umsteigen, können Sie Ihr Mail-Verzeichnis der ThunderbirdInstallation unter Windows einfach in das betreffende Linux-Verzeichnis kopieren. Wenn Sie unter Windows mit einem anderen E-Mail-Client gearbeitet haben (z. B. Microsoft Mail), empfiehlt es sich, einen Zwischenschritt einzulegen: Die Windows-Version von Thunderbird bietet wesentlich bessere Import-Werkzeuge als die Linux-Version und hilft bei der Übertragung Ihrer E-Mail-Archive in ein Linux-kompatibles Format.
177
Kapitel 7
E-Mail-Clients
Beachten Sie, dass Thunderbird E-Mails normalerweise nicht physikalisch löscht. Die E-Mails werden nur als gelöscht markiert, verbleiben aber in der Datei. Deswegen beanspruchen Verzeichnisse für den Posteingang, für Spam-Mails sowie der Papierkorb oft unverhältnismäßig viel Platz. Abhilfe schafft das Kontextmenükommando KOMPRIMIEREN, das gelöschte E-Mails endgültig aus den mboxDateien entfernt.
Erweiterungen und Zusatzfunktionen Add-ons
Ähnlich wie bei Firefox können auch bei Thunderbird zusätzliche Funktionen in Form von Add-ons hinzugefügt werden. Einen Überblick über alle bereits installierten Erweiterungen gibt der Dialog EXTRASjA DD-ONS: https://addons.mozilla.org/de/thunderbird Thunderbird-Erweiterungen werden wie Firefox-Erweiterungen als XPI-Dateien weitergegeben. Zur Installation müssen Sie die XPI-Datei in ein lokales Verzeichnis herunterladen. Anschließend führen Sie in Thunderbird E XTRASjA DD-ONSjINSTALLIEREN aus und wählen die Datei aus. Eine direkte Installation per Mausklick in Firefox ist nicht möglich, weil Firefox von sich aus nicht zwischen eigenen Erweiterungsdateien und solchen für Thunderbird unterscheiden kann. Erweiterungen werden erst nach einem Neustart von Thunderbird wirksam.
32- versus 64-Bit
Wenn Sie eine 64-Bit-Version von Thunderbird nutzen, brauchen Sie in der Regel auch 64-Bit-Versionen der Erweiterungen. Die Add-on-Verwaltung lädt aber vielfach 32-Bit-Versionen herunter und beklagt dann deren Inkompatibilität mit der Thunderbird-Version. In solchen Fällen müssen Sie sich die korrekte 64-Bit-Erweiterung selbst im Netz suchen.
E-Mails signieren/ verschlüsseln
In Thunderbird sind Kryptografiefunktionen für S/MIME bereits fix integriert. Sie finden alle erforderlichen Einstellungen im Dialogblatt BEARBEITEN jKONTENjS/MIME-SICHERHEIT . Der Button Z ERTIFIKATE führt zu einem weiteren Dialog zur Verwaltung der X.509-Zertifikate, die bei S/MIME als Schlüssel dienen. Damit Sie in Thunderbird PGP-signierte oder -verschlüsselte E-Mails lesen oder selbst verfassen können, müssen Sie das Add-on Enigmail installieren. Sie finden die XPI-Datei auf der oben angegebenen Add-on-Website. Das Add-on setzt voraus, dass auf dem Rechner gnupg installiert ist. Das ist bei nahezu allen Distributionen der Fall. Alle Verschlüsselungsfunktionen sind über das OPEN PGPMenü im Hauptfenster und im VERFASSEN -Fenster zugänglich. Bei manchen Distributionen gibt es für Enigmail sogar ein eigenes Paket, das mit den Paketverwaltungswerkzeugen installiert werden kann.
News lesen/ verfassen
178
Mit Thunderbird können Sie auch Usenet-News-Gruppen lesen und selbst neue Einträge verfassen. Dazu richten Sie mit BEARBEITEN jKONTENjKONTO HINZUFÜGEN ein neues News-Gruppen-Konto ein. Dabei müssen Sie die Adresse eines für Sie zugänglichen News-Servers angeben. (Die meisten Internet-Provider stellen einen derartigen Server zur Verfügung.) Im Thunderbird-Hauptfenster können Sie nun auf dieses Konto zugreifen und einzelne Gruppen abonnieren. Anschließend können Sie die News-Beiträge wie E-Mails lesen und beantworten.
Evolution
Tipp
Wenn Sie News-Beiträge nur lesen bzw. suchen möchten, verwenden Sie dazu besser Google Groups. Der Vorteil von Google Groups besteht darin, dass Sie auch Zugang zu alten NewsBeiträgen haben. Auf News-Servern werden die Beiträge aus Platzgründen nur für einige Wochen archiviert.
Abschnitt 7.3
http://groups.google.com Thunderbird enthält keine Funktionen zur Terminverwaltung. Abhilfe schafft das Add-on Lightning. Es hilft bei der Synchronisation von Terminen mit externen Servern in den Formaten CalDAV oder WCAP und kann Termine im Format iCal importieren und exportieren. Es ist seit Langem geplant, Lightning in Thunderbird zu integrieren, aber es ist unklar, ob es je dazu kommen wird.
Terminverwaltung
http://www.mozilla.org/projects/calendar/lightning/ Ubuntu-spezifische Tipps zur Installation von Lightning finden Sie hier: https://help.ubuntu.com/community/ThunderbirdLightning
7.3 Evolution Das Programm Evolution wurde ursprünglich von der Firma Ximian (die mittlerweile ein Teil von Novell ist) als Alternative zu Microsoft Outlook konzipiert. Mittlerweile ist Evolution das StandardE-Mail-Programm des Gnome-Desktops. Evolution kann nicht nur zum Lesen und Schreiben von E-Mails verwendet werden, sondern enthält auch Funktionen zur Adress- und Terminverwaltung, zur Synchronisation dieser Daten mit einem Palm-kompatiblen PDA sowie mit dem Microsoft Exchange Server, zur Verschlüsselung von E-Mails mit PGP oder S/MIME etc.
Account-Konfiguration Beim ersten Start von Evolution erscheint ein Assistent zur Einrichtung des E-Mail-Accounts. Der Assistent muss vollständig ausgeführt werden, bevor Evolution genutzt werden kann. Die Konfiguration beginnt mit der Angabe Ihres Namens und Ihrer E-Mail-Adresse. Im nächsten Dialog folgen die Daten des Mail-Servers, von dem Sie Ihre E-Mail holen: Hier geben Sie den Server-Typ (z. B. POP oder IMAP), die Adresse des Servers sowie Ihren Login-Namen (Benutzernamen) an. Nach dem Passwort werden Sie erst beim ersten Verbindungsaufbau gefragt. Bei vielen E-Mail-Providern können Sie die Datenübertragung mit den Verfahren TSL oder SSL verschlüsseln und gewinnen dadurch zusätzliche Sicherheit. Im nächsten Dialog können Sie diverse Optionen einstellen, z. B. ob Evolution regelmäßig nach neuen E-Mails schauen soll. In einem weiteren Schritt konfigurieren Sie den Mail-Server (SMTP), an den Sie E-Mail senden. Sie müssen nicht nur den SMTP-Rechnernamen eingeben, sondern auch die Authentifizierungsoptionen einstellen. In den meisten Fällen lautet der richtige Legitimationstyp ANMELDEN . BENUTZERNAME bezeichnet nun den Login-Namen für SMTP. Nach dem Passwort werden Sie erst gefragt, wenn Sie zum ersten Mal E-Mails versenden.
179
Kapitel 7
E-Mail-Clients
Zuletzt müssen Sie dem Account noch einen Namen geben (standardmäßig einfach Ihre E-MailAdresse) und Ihre Zeitzone angeben, damit Evolution die Sendezeit korrekt eintragen kann. Falls Sie die Konfiguration nachträglich ändern oder weitere Einstellungen vornehmen möchten, gelangen Sie mit BEARBEITENjEINSTELLUNGENjE-MAIL-KONTEN in einen umfassenden Konfigurationsdialog. Wenn Ihre E-Mails am Schluss immer denselben Text enthalten (z. B. Mit freundlichen Grüßen ...), können Sie hierfür im Dialogblatt IDENTITÄT eine Signatur angeben.
Grundfunktionen Wenn Sie zum ersten Mal den Button VERSCHICKEN/A BRUFEN anklicken oder (F9) drücken, um neue E-Mails zu laden, müssen Sie das Passwort für Ihr Postfach angeben. Das Passwort wird in der Gnome-Passwortverwaltung gespeichert. Evolution lädt bei HTML-Mails aus Sicherheitsgründen keine Dateien (auch keine Bilder), auf die die HTML-Nachricht verweist. Sie können dieses Verhalten im Konfigurationsdialog B EARBEITEN jEINSTELLUNGENjE-MAIL-EINSTELLUNGEN jHTML-NACHRICHTEN ändern.
Abbildung 7.4: E-MailVerwaltung in Evolution
Neue E-Mails verfassen Sie mit (Strg)+(N) und versenden sie mit (Strg)+(¢). Beim ersten Versenden fragt Evolution nach dem Passwort für den SMTP-Server, der ausgehende Nachrichten entgegennimmt. Standardmäßig erzeugt Evolution reine Text-Mails. Um eine HTML-Mail zu schreiben, führen Sie im V ERFASSEN -Fenster FORMATjHTML aus. Anschließend bieten diverse Buttons und die Menüs EINFÜGEN und FORMAT eine Menge Formatierungsmöglichkeiten. Wenn Sie E-Mails grundsätzlich als HTML-Mails schreiben möchten, führen Sie BEARBEITENjEINSTELLUNGEN aus und aktivieren im Dialogblatt E DITOREINSTELLUNGEN jA LLGEMEIN die Option N ACHRICHTEN IN HTML FORMATIEREN .
180
Evolution
Abschnitt 7.3
Evolution enthält direkt unterhalb der Symbolleiste ein Suchfeld, um rasch nach E-Mails zu suchen. Wenn Sie immer wieder dieselben Suchkriterien nutzen, lohnt es sich, einen sogenannten Suchordner (ehemals »virtueller Ordner«) einzurichten. Darin werden alle E-Mails angezeigt, die bestimmten Suchkriterien entsprechen. Sie erstellen derartige Ordner mit BEARBEITENjSUCH ORDNER oder S UCHEN jS UCHORDNER AUS S UCHE ANLEGEN . Zur Erkennung unerwünschter E-Mails verwendet Evolution automatisch Bogofilter oder SpamAssassin, je nachdem, welches Programm bereits installiert ist. Das gewünschte Programm wählen Sie mit BEARBEITEN jEINSTELLUNGEN jE-MAIL-EINSTELLUNGEN jUNERWÜNSCHT aus.
Spamfilter
Um den Spamfilter auf die in einem Ordner bereits vorhandenen Nachrichten anzuwenden, markieren Sie alle Nachrichten mit (Strg)+(A) und führen dann N ACHRICHT jÜBERPRÜFUNG AUF UNERWÜNSCHTE N ACHRICHT aus. Bei Verzeichnissen mit vielen E-Mails dauert dieser Vorgang recht lange. Als Spam erkannte Nachrichten werden in das Verzeichnis UNERWÜNSCHT verschoben. Der Spamfilter agiert anfangs sehr vorsichtig, um zu vermeiden, dass richtige E-Mails irrtümlich als Spam klassifiziert werden. Deswegen ist es in den ersten Wochen häufig erforderlich, Nachrichten manuell als Spam zu kennzeichnen. Dazu markieren Sie die Nachrichten und klicken auf den Button UNERWÜNSCHT bzw. drücken (Strg)+(J). Der Spamfilter versucht, Muster in den so markierten Nachrichten zu entdecken, die in der Folge bei der richtigen Klassifizierung weiterer E-Mails helfen. Der Spamfilter wird also nach und nach immer besser. (Nach meinen Erfahrungen funktioniert der Spamfilter von Evolution schlechter als der von Thunderbird. Weder die Verarbeitungs- noch die Lerngeschwindigkeit kann mit der von Thunderbird mithalten.) Außer mit dem Spamfilter kann Evolution mit sogenannten Filterregeln eintreffende E-Mails automatisch in bestimmte Verzeichnisse verschieben oder auch gleich löschen. Das ist praktisch, wenn Sie sehr viele E-Mails erhalten und diese anhand von Mustern (z. B. anhand bestimmter Wörter in der Betreffzeile) eindeutig zuzuordnen sind. Das ist typischerweise dann der Fall, wenn Sie in mehreren Mailing-Listen eingetragen sind.
Filter
Der einfachste Weg zur Definition einer neuen Filterregel besteht darin, die Nachricht zu markieren und dann N ACHRICHT jREGEL ANLEGENjFILTER ÜBER MAILINGLISTE auszuführen. Wenn Evolution die Filterregel nicht selbst richtig erkennt, können Sie sie ändern bzw. weitere Kriterien hinzufügen. Evolution speichert ab der Version 2.32 E-Mails in ~/.local/share/evolution, Konfigurationseinstellungen in ~/.config/evolution und diverse Cache-Dateien in ~/.cache/evolution. Für E-MailOrdner kommt das mbox-Format zur Anwendung, wobei Evolution zusätzliche Indexdateien anlegt.
Interna
Beachten Sie aber, dass ältere Evolution-Versionen das Verzeichnis ~/.evolution Zur Speicherung der E-Mails verwenden und Konfigurationseinstellungen im Verzeichnis ~/.gconf/apps/evolution abgelegen. Wenn erstmals eine neuere Evolution-Version ausgeführt wird, kommt es zu einer automatischen Migration der Daten.
Zusatzfunktionen Das Evolution-Adressbuch ist in Wirklichkeit eine vollständige Kontaktverwaltung, in der Sie neben Namen und E-Mail-Adressen unzählige weitere Daten speichern können. In das Adressbuch gelan-
Adress- und Kontaktverwaltung
181
Kapitel 7
E-Mail-Clients
gen Sie mit A NSICHT jFENSTERjKONTAKTE oder einfach mit (Strg)+(F2). Mit DATEIjIMPORTIEREN j EINZELNE DATEI IMPORTIEREN können Sie Adressbuchdateien im Format LDIF (Lightweight Directory Interchange Format) importieren. Kalender und Terminverwaltung
Das K ALENDER-Modul hilft bei der Terminverwaltung. Vorhandene Termine können in unterschiedlichen Ansichten dargestellt werden: alle Termine eines Tags, einer Arbeitswoche, der gesamten Woche oder eines Monats. Viele Darstellungsdetails, z. B. die typische Arbeitszeit oder Schriftfarben, können Sie mit BEARBEITENjEINSTELLUNGEN jK ALENDER Ihren persönlichen Vorlieben anpassen. Zur Eingabe neuer Termine führen Sie DATEIjN EUjTERMIN aus oder doppelklicken an der entsprechenden Stelle im Zeitplan. Bei Terminen, die sich regelmäßig wiederholen (jede Woche, jeden Monat, jedes Jahr etc.), geben Sie im Dialogblatt WIEDERHOLUNG das Intervall und gegebenenfalls einen Endzeitpunkt an.
Aufgabenliste
Evolution enthält auch ein Modul zur Verwaltung von Aufgaben (also eine Art To-do-Liste). Die Aufgaben können wahlweise in einer eigenen Ansicht oder als Teilbereich der Kalenderansicht dargestellt werden.
Evolution Express Für Gelegenheitsanwender, die nur einen simplen E-Mail-Client suchen, erscheint Evolution zunehmend überladen. Abhilfe schafft Evolution Express: Wenn Sie Evolution mit der Option --express starten, erscheint es mit einer etwas reduzierten Benutzeroberfläche. Ausgeblendet sind unter anderem alle oben beschriebenen Zusatzfunktionen (siehe Abbildung 7.5). Evolution Express soll damit vor allem auf Netbooks besser bedienbar sein.
Abbildung 7.5: Evolution Express
Prinzipiell ist Evolution Express sicherlich eine gute Idee – sie geht nur nicht weit genug. Erst wer einmal mit der Mail-Anwendung von Apples iPad gearbeitet hat, weiß, wie ein auf die wesentlichen Funktionen reduziertes E-Mail-Programm aussehen kann. Davon ist Evolution Express meilenwert entfernt. (So radikal wie Apple hätten die Evolution-Entwickler gar nicht vorgehen müssen. Aber
182
Kontact bzw. KMail
Abschnitt 7.4
sowohl dem Menü als auch den Konfigurationsdialogen würde eine weitere Schrumpfung auf die Hälfte durchaus gut tun.)
7.4 Kontact bzw. KMail Kontact ist ein universelles Programm zur Verwaltung von E-Mails, Kontakten, Terminen, Aufgaben, Notizen sowie zur Anzeige von Nachrichten aus RSS-Feeds. Kontact sieht wie Evolution eine Synchronisation der Daten mit PDAs vor. Hinter den Kulissen ist Kontact eigentlich nur eine Benutzeroberfläche, um verschiedene KDE-Programme einheitlich zu bedienen. Dieser Abschnitt konzentriert sich auf die E-Mail-Komponente KMail. Beachten Sie, dass sich das Menü von Kontact verändert, je nachdem, welche Komponente gerade aktiv ist. Die folgenden Menükommandos gelten, wenn die E-Mail-Komponente aktiv ist. Wenn Sie nur an den E-Mail-Funktionen interessiert sind, können Sie KMail auch als eigenständiges Programm starten und ersparen sich so den durch Kontact bedingten Overhead. Kontact bzw. KMail ist stark technisch orientiert. Das Programm bietet zahllose Funktionen und lässt sich von Linux-Profis sehr effizient nutzen. Die Bedienung ist aber nicht immer intuitiv. LinuxEinsteigern ist das Programm daher nur eingeschränkt zu empfehlen. EINSTELLUNGEN jKMAIL EINRICHTEN führt Sie in den Konfigurationsdialog. Standardmäßig ist bereits eine sogenannte Standard-Identität eingerichtet. Mit Ä NDERN stellen Sie hier Ihren tatsächlichen Namen, die E-Mail-Adresse und bei Bedarf weitere Optionen ein.
AccountKonfiguration
Die eigentliche Account-Konfiguration erfolgt im Konfigurationsmodul Z UGÄNGE. Darin müssen Sie zumindest ein Eingangs- und ein Ausgangspostfach einrichten. Zuerst werden Sie in der Regel mit HINZUFÜGEN den Posteingang für Ihren POP- oder IMAP-Server einrichten. Für den Postausgang ist bereits das Programm sendmail vorgesehen, das in der Regel aber nur für den lokalen Versand von E-Mails konfiguriert ist. Deswegen müssen Sie ein weiteres SMTP-Postfach einrichten und dieses dann als STANDARD-Postfach markieren. Sobald Sie den Konfigurationsdialog verlassen, speichert Kontact die Passwörter mit KWallet in einer zentralen Datenbank. Deswegen müssen Sie das Master-Passwort von KDallet angeben (siehe auch Seite 130). Neue E-Mails sind standardmäßig reine Text-Mails. Wenn Sie eine HTML-Formatierung wünschen, führen Sie O PTIONEN jFORMATIERUNG (HTML) aus. Die fertige E-Mail versenden Sie mit (Strg)+(¢).
E-Mails verfassen
KMail führt automatisch eine Rechtschreibprüfung durch und markiert alle nicht erkannten Wörter rot. Mit A NSICHT jWÖRTERBUCH können Sie zwischen verschiedenen Wörterbüchern wählen. Wenn die Rechtschreibprüfung nicht funktioniert, installieren Sie das Paket aspell-de.
183
Kapitel 7
E-Mail-Clients
Abbildung 7.6: E-Mails verwalten mit Kontact
Spam
KMail enthält keine integrierte Spamerkennung, kann diese Aufgabe aber an andere Programme delegieren. Bei der Konfiguration eines Spamfilters hilft das Kommando EXTRASjA NTI-SPAM A SSISTENT . Sie müssen sich lediglich für eines der installierten Spamprogramme entscheiden – alles andere erledigt der Assistent. Als Spam erkannte E-Mails landen von nun an im Ordner M ÜLLEIMER. Wie bei den anderen E-Mail-Programmen steigt die Trefferquote, wenn Sie falsch klassifizierte EMails manuell als Spam bzw. Nicht-Spam markieren.
Filter
Im Menü EINSTELLUNGEN können Sie Filter definieren, um E-Mails anhand verschiedener Kriterien in verschiedenen Verzeichnissen abzulegen oder auf andere Weise zu bearbeiten. KMail kennt sogar spezielle POP-Filter für POP3-Accounts, die es sogar ermöglichen, unerwünschte E-Mails direkt auf dem Server zu löschen, ohne sie vorher herunterzuladen.
Interna
Standardmäßig speichert KMail E-Mails im maildir-Format im Verzeichnis ~/.kde/share/apps/ kmail/mail. Wenn Sie das mbox-Format vorziehen, finden Sie eine entsprechende Einstellmöglichkeit im Dialogblatt E INSTELLUNGEN jKMAIL EINRICHTEN jDIVERSESjO RDNER. Diese Einstellung gilt allerdings nur für neue Ordner.
7.5 Claws Mail Beim ersten Start von Claws Mail erscheint ein Assistent, der Ihnen beim Einrichten des ersten E-Mail-Kontos hilft. Weitergehende Einstellungen können Sie später mit KONFIGURATION jKONTOEIN STELLUNGEN durchführen. Die Grundfunktionen von Claws Mail unterscheiden sich kaum von denen der anderen hier vorgestellten E-Mail-Clients, weswegen ich hier nicht weiter darauf eingehe. Claws Mail speichert die E-Mails in einem Verzeichnis, dessen Name sich aus dem ersten eingerichteten E-Mail-Konto ergibt. Dabei kommt das eher unübliche MH-Format zur Anwendung.
184
Claws Mail
Abschnitt 7.6
Ähnlich wie beim maildir-Format wird jede E-Mail in einer eigenen Datei gespeichert. Eigene Indexdateien stellen sicher, dass die E-Mails effizient sortiert werden können. Wenn Sie bereits vorhandene mbox-E-Mail-Verzeichnisse unter Claws Mail verwenden möchten, müssen Sie diese Ordner importieren oder das mailMBOX-Plugin installieren. Konfigurationseinstellungen werden in ~/.claws-mail gespeichert. Die Steuerung von Claws Mail ist vollständig per Tastatur möglich. Wenn Sie die vordefinierten Tastenkürzel verändern oder neue Kürzel definieren möchten, aktivieren Sie im Dialogblatt KONFIGURATION jEINSTELLUNGENjWEITERES die Option PERSONALISIERTE TASTATURKOMBINATIONEN. Anschließend können Sie das Tastenkürzel jedes Menüeintrags neu zuweisen, solange sich der Mauszeiger über einem betreffenden Menüeintrag befindet. Nach einer Grundinstallation hat Claws Mail keinen Spamfilter, kann keine HTML-Mails anzeigen etc. Der Grund: Diese und viele weitere Zusatzfunktionen sind als Plugins realisiert. Bei vielen Distributionen müssen Sie die Plugins in Form von eigenen Paketen installieren. Anschließend führen Sie KONFIGURATION jERWEITERUNGEN aus und laden (aktivieren) die gewünschten PluginDateien aus dem Verzeichnis /usr/lib/claws-mail/plugins. Plugin-Einstellungen führen Sie im Dialog KONFIGURATION jEINSTELLUNGENjERWEITERUNGEN durch.
Plugins
Abbildung 7.7: E-Mail verwalten mit Claws Mail
Eine Stärke von Claws Mail sind die umfassenden Möglichkeiten, die das Programm zur Vorverarbeitung, Filterung und Nachverarbeitung aller eintreffenden E-Mails bietet. Zur Konfiguration führen Sie KONFIGURATION jVORVERARBEITUNG, -jFILTERUNG etc. aus.
Filter und Aktionen
Die Konfigurationsdialoge sind leider etwas unübersichtlich: Sie müssen dem neuen Filter bzw. der Regel einen Namen geben, in einem Zusatzdialog eine Bedingung definieren und diese Bedingung mit HINZUFÜGEN speichern, in einem weiteren Zusatzdialog eine Aktion definieren und ebenfalls mit HINZUFÜGEN speichern und schließlich die neue Regel der Regelliste HINZUFÜGEN. Anfangs werden Sie vermutlich den HINZUFÜGEN-Button vergessen, was Claws Mail mit einer Warnung quittiert.
185
Kapitel 7
E-Mail-Clients
7.6 mutt Zum Lesen lokaler E-Mails bietet sich das textbasierte E-Mail-Programm mutt an (siehe Abbildung 7.8). Vor dem ersten Einsatz muss das zumeist gleichnamige Paket installiert werden. In einem Konsolenfenster führen Sie zuerst su -l aus, um sich als root anzumelden, und starten das Programm dann mit dem Kommando mutt. Das Programm zeigt auf der Startseite die Titelzeilen aller E-Mails an. Wenn der aktive Benutzer noch keine einzige E-Mail empfangen hat, beklagt sich Mutt darüber, dass es die Datei /var/mail/benutzer noch nicht gibt. Diese Warnung können Sie ignorieren. Sie tritt nicht mehr auf, sobald die erste E-Mail eingetroffen ist. Mit den Cursortasten bewegen Sie sich durch die Inbox. (¢) zeigt den Text der ausgewählten E-Mail an. Mit (Leertaste) blättern Sie durch die Nachricht. (J) führt zur nächsten Nachricht, (I) zurück in die Inbox. (?) zeigt einen Hilfetext mit allen wichtigen Tastenkürzeln an. Um eine neue E-Mail zu verfassen, drücken Sie (M) und geben den Empfänger und die SubjectZeile an. Anschließend startet Mutt den durch die Umgebungsvariable $EDITOR oder durch den Link /etc/alternatives/editor ausgewählten Editor. Dort schreiben Sie den Nachrichtentext, speichern ihn und verlassen den Editor. Anschließend versenden Sie die E-Mail in Mutt durch (Y). (Q) beendet das Programm. Beim Verlassen stellt Mutt zwei Fragen: Sollen mit (D) als
gelöscht markierte E-Mails endgültig gelöscht werden? Und sollen gelesene Nachrichten nach /home/username/mbox verschoben werden? Wenn Sie vorhaben, die E-Mails später noch mit einem anderen Programm zu bearbeiten, sollten Sie beide Fragen mit (N) beantworten. Besonders die zweite Frage ist kritisch: In der lokalen mbox-Datei findet nur noch Mutt die E-Mails, nicht aber ein externes Programm wie z. B. der POP-Server Dovecot.
Abbildung 7.8: Lokale E-Mails mit mutt lesen
mutt wertet beim Start die Umgebungsvariablen $MAIL und $MAILDIR aus. Wenn eintreffende E-Mails im mbox-Format in /var/mailname gespeichert werden (der Normalfall), muss $MAIL den vollständigen Namen der mbox-Datei enthalten. Wenn der lokale Mail-Server (MTA) hingegen so konfiguriert ist, dass die E-Mails im Maildir-Format in einem lokalen Benutzerverzeichnis gespeichert werden, muss $MAIL leer sein und $MAILDIR den vollständigen Pfad zum Maildir-Verzeichnis enthalten.
186
8. Foto- und Bildverwaltung Dieses Kapitel beschreibt, wie Sie unter Linux Bilder von einer Digitalkamera oder einem Scanner einlesen und wie Sie die Bilderflut anschließend verwalten. Für alle drei Aufgaben, insbesondere zur Bildverwaltung, gibt es zahllose Programme. Nach einleitenden Informationen zu Digitalkameras und Scannern stelle ich Ihnen die folgenden Programme näher vor: » XSane, SimpleScan und Skanlite: Scan-Programme » Shotwell: Foto-Import und Bildverwaltung für Gnome » digiKam: Foto-Import und Bildverwaltung für KDE » F-Spot: Foto-Import und Bildverwaltung auf Basis der Mono-Bibliothek » Hugin: Panoramas zusammensetzen » Diverse Programme, um Screenshots zu erstellen Beschränken Sie sich bei der Programmauswahl nicht auf das von Ihrem Desktop-System angebotene Standardprogramm! Es spricht nichts dagegen, unter Gnome ein KDE-Programm zum Scannen oder unter KDE das dem Gnome-Universum zugeordnete Programm F-Spot einzusetzen. Wesentlich problematischer ist der Umstand, dass Bildverwaltungsprogramme oft nur wenige Jahre gewartet werden. Was nützt es, wenn Sie viel Zeit in die Kategorisierung Ihrer Bilder investieren, das eingesetzte Programm aber plötzlich nicht mehr verfügbar ist? Insofern kann ich Ihnen leider keine Empfehlung für ein bestimmtes Programm geben – Hellsehen zählt nicht zu meinen Stärken. Der Platz reicht hier nicht aus, um auf alle Programme zur Bildverarbeitung einzugehen. Tabelle 8.1 gibt einen Überblick über weitere Programme. Natürlich können Sie zur Verwaltung Ihrer Bilder auch einfach die Datei-Manager Nautilus bzw. Konqueror einsetzen. Diese Programme bieten aber wesentlich weniger Bearbeitungsfunktionen und Darstellungsoptionen. Wenn Sie im Rahmen der Bildverwaltung mehr tun möchten, als nur den Kontrast zu optimieren oder die Bildgröße zu ändern, sollten Sie auch einen Blick auf das folgende Kapitel werfen. Dort stelle ich Ihnen Gimp vor, das leistungsfähigste Bildverarbeitungsprogramm unter Linux. Es bietet Funktionen, die vielfach mit Adobe Photoshop vergleichbar sind! Wenn Ihnen der Sinn eher nach einer automatisierten Konvertierung oder Weiterverarbeitung vieler Bilder steht, ist schließlich der Abschnitt zum Thema Grafik-Konverter ab Seite 369 lesenswert.
Weitere Programme
Kapitel 8
Tabelle 8.1: Weitere Programme zur Verwaltung von Bildern
Foto- und Bildverwaltung
PROGRAMM
WEBSITE
BESCHREIBUNG
eog
http://www.gnome.org/projects/eog/
Gnome-Foto-Viewer, wenige Funktionen
Gthumb
http://live.gnome.org/gthumb
Gnome-Bildverwaltung
Gwenview
http://gwenview.sourceforge.net/
KDE-Foto-Viewer
KPhotoAlbum
http://www.kphotoalbum.org/
KDE-Bildverwaltung
Mirage
http://mirageiv.berlios.de/
Gnome-Foto-Viewer
Picasa
http://picasa.google.com/linux/
Google-Bildverwaltung, kostenlos, aber nicht Open-Source
xv
http://www.trilon.com/xv/
Uralt-Foto-Viewer, nicht Open-Source
Nahezu alle hier aufgezählten Programme enthalten Druckfunktionen, deren Grenzen aber oft schnell erreicht sind: Insbesondere der randfreie Druck auf Fotopapier bzw. der Druck mehrerer Fotos auf eine Seite bereitet oft Probleme. Werfen Sie eventuell einen Blick auf das Programm gnome-photo-printer, dessen Entwicklung aber offensichtlich eingeschlafen ist.
8.1 Digitalkameras In diesem Abschnitt geht es natürlich nicht um die Bedienung von Digitalkameras an sich, sondern darum, wie die Bilder von der Digitalkamera zum Linux-Rechner übertragen werden. Fast alle Kameras sehen hierfür einen USB-Anschluss oder eine USB-Docking-Station vor. Uneins sind sich die Kamerahersteller allerdings über das Protokoll zum Datenaustausch: » USB-Datenträger: Am einfachsten ist der Datentransport bei Kameras, die sich wie ein USBDatenträger verhalten. In diesem Fall behandelt Linux die Kamera wie eine Festplatte mit USBAnschluss bzw. wie einen USB-Memorystick. » PTP-Kameras: Viele Kameras unterstützen auch das Picture Transfer Protocol (PTP). Dieses Protokoll sieht nicht nur Kommandos zur Übertragung von Bildern vor, sondern auch einfache Steuerungsfunktionen (z. B. um per Computersteuerung ein Foto zu erstellen). » Kameras mit herstellerspezifischem Protokoll: Schließlich gibt es einige alte Kameramodelle aus der Anfangszeit digitaler Fotografie, die nur ein herstellerspezifisches Protokoll unterstützen. Von diesen Kameras werden unter Linux zwar viele populäre Modelle unterstützt, aber leider nicht alle. Selbst wenn Ihr Kameramodell von Linux nicht unterstützt wird, ist die Übertragung der Bilder möglich. Sie brauchen dazu ein externes Speicherkartenlesegerät, das von Linux dann wie eine externe Festplatte behandelt wird. Diese Vorgehensweise hat zudem den Vorteil, dass sie die Batterie der Kamera nicht beansprucht.
188
Scanner
Abschnitt 8.2
Zur Übertragung der Bilder stehen je nach Protokoll verschiedene Linux-Programme zur Auswahl: Bei den meisten Distributionen wird automatisch ein geeignetes Programm gestartet, sobald eine Digitalkamera mit dem Rechner verbunden wird. Bei Kameras, die sich als USB-Datenträger identifizieren, kann natürlich auch jeder beliebige DateiManager zur Übertragung der Bilddateien eingesetzt werden. Der KDE-Universalbrowser Konqueror ist in der Lage, das PTP-Protokoll direkt zu interpretieren. Dazu geben Sie als Adresse camera:/ an. Zur Kommunikation mit PTP-Kameras bzw. mit Kameras mit einem herstellerspezifischen Protokoll stellt die Bibliothek libgphoto2 die erforderlichen Funktionen zur Verfügung. Sie können diese Bibliothek direkt durch das Kommando gphoto2 nutzen. Beispielsweise versucht gphoto2 --autodetect, die angeschlossene Kamera zu erkennen, und zeigt die entsprechenden Informationen an. gphoto2 --get-all-thumbnails überträgt verkleinerte Symbole aller auf der Kamera gespeicherten Bilder in das lokale Verzeichnis. Bemerkenswert ist, dass bei manchen Kameras mit gphoto2 --capture-image sogar per Kommando Fotos erstellt werden können, sodass die Kamera wie eine Webcam genutzt oder für Überwachungszwecke eingesetzt werden kann. Weitere Informationen zu gphoto2 finden Sie auf der folgenden Website:
gphoto2
http://gphoto.sourceforge.net/ In der Praxis ist die direkte Anwendung der gphoto-Funktionen allerdings unüblich. Nahezu alle Bildverarbeitungsprogramme enthalten komfortable Oberflächen zum Bildimport, wobei diese Programme hinter den Kulissen durchweg auf libgphoto2 zurückgreifen. Die meisten Digitalkameras speichern Bilder im JPEG-Format, das einen guten Kompromiss zwischen Bildgröße und Qualität bietet. Einige Kameras bieten darüber hinaus die Möglichkeit, Bilder im sogenannten RAW-Format zu speichern. Dabei handelt es sich um herstellerspezifische Formate, die sicherstellen, dass keinerlei Bildinformationen verloren gehen. Allerdings sind RAW-Dateien zumeist sehr groß und können nur mit speziellen Programmen betrachtet werden.
RAW-Bilder
Nur wenige Bildbetrachter bzw. Bildverwaltungsprogramme unter Linux kommen auf Anhieb mit RAW-Dateien zurecht. Mit dem Kommando dcraw aus dem gleichnamigen Paket können Sie RAWDateien manuell in andere Bildformate umwandeln. Wenn Sie mit Gimp arbeiten, bietet das Zusatzpaket gimp-dcraw mehr Komfort. Gimp kann dann RAW-Dateien der meisten Kamerahersteller direkt laden. Weitere Informationen zu dcraw finden Sie unter: http://www.cybercom.net/~dcoffin/dcraw/
8.2 Scanner Seit Digitalkameras allgegenwärtig sind, hat die Bedeutung von Scannern abgenommen. Dennoch ist es bisweilen erforderlich, den Scanner aus dem Keller zu holen, um ein Bild in guter Qualität einzuscannen. Gängige Scanner werden an die USB-Schnittstelle angeschlossen. Grundsätzlich kommt Linux mit den meisten Scannern zurecht, es gibt aber natürlich auch Ausnahmen. Erkundigen Sie sich unbedingt vor dem Scanner-Kauf, ob das Gerät Linux-kompatibel ist: http://www.sane-project.org/sane-supported-devices.html
189
Kapitel 8
Foto- und Bildverwaltung
SANE Konfiguration
Für den Scanner-Zugriff ist das Programmpaket SANE verantwortlich (Scanner Access Now Easy ). In vielen Fällen wird Ihr Scanner sofort beim Anstecken erkannt, d. h., Scan-Programme wie XSane, Simple Scan oder Skanlite funktionieren auf Anhieb. Ist das nicht der Fall, müssen Sie SANE zuerst konfigurieren. (Bei SUSE ist die Scanner-Konfiguration zwingend erforderlich. Dabei hilft das YaSTModul HARDWARE jSCANNER.) Wenn ein derartiges Konfigurationsprogramm fehlt, müssen Sie die Konfigurationsdateien im Verzeichnis /etc/sane.d/* selbst modifizieren. Dieses Verzeichnis enthält für jeden Gerätehersteller eine Datei, in der sich normalerweise nur wenige Einträge befinden. Die folgenden drei Zeilen zeigen beispielhaft den Inhalt von epson.conf. Sie sind ausreichend, um alle unterstützten USB- und SCSI-Scanner von Epson zu erkennen. # /etc/sane.d/epson.conf usb scsi EPSON scsi "EPSON SC" Probleme können ganz neue Geräte bereiten, deren ID-Nummern sich noch nicht in der USBDatenbank der Linux-Hardware-Datenbank befinden. In solchen Fällen müssen Sie mit lsusb die ID-Nummer des Scanners herausfinden und wie im folgenden Beispiel eine zusätzliche Zeile in die betreffende Konfigurationsdatei einbauen: user$ lsusb Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 002 Device 002: ID 04b8:010b Seiko Epson Corp. Perfection 1240 ... # Ergänzung in /etc/sane.d/epson.conf usb 0x04b8 0x010b Sofern das Paket sane-utils installiert ist, sollten die Kommandos sane-find-scanner und scanimage -L den Scanner jetzt erkennen:
Hinweis
user$ sane-find-scanner found USB scanner (vendor=0x04b8 [EPSON], product=0x010b [Perfection1240]) at libusb:006:002 found USB scanner (vendor=0x0bda, product=0x8187) at libusb:001:002 ...
190
SANE berücksichtigt nur die Herstellerdateien, die in /etc/sane.d/dll.conf angegeben sind. Wenn SANE Ihren Scanner nicht erkennt und Sie sich vergewissert haben, dass SANE diesen Scanner prinzipiell unterstützt, sollten Sie einen Blick in dll.conf werfen und sicherstellen, dass der Herstellername Ihres Scanners dort nicht auskommentiert ist.
Scanner
Normalerweise werden Sie zum Scannen nicht direkt mit der SANE-Bibliothek kommunizieren, sondern eine der verfügbaren Benutzeroberflächen einsetzen. Am populärsten sind die in den folgenden Abschnitten vorgestellten Programme XSane, Simple Scan und Skanlite. Wenn Sie das Scannen durch ein Script automatisieren möchten, finden Sie im Paket sane-utils das Kommando scanimage. Wenn Sie mehrere Seiten effizient scannen und dann in ein PDF-Dokument umwandeln möchten, sollten Sie einen Blick auf gscan2pdf werfen.
Abschnitt 8.2
Scannen mit SANE
XSane XSane ist ein ebenso komfortables wie funktionsreiches Programm zum Scannen von Bildern (siehe Abbildung 8.1). Bevor Sie das erste Bild scannen, ändern Sie den Modus von S CHWARZWEISS in G RAUSTUFEN oder FARBE und wählen die gewünschte Auflösung. Standardmäßig verwendet XSane nur 72 DPI, also eine sehr grobe Auflösung.
Abbildung 8.1: Scannen mit XSane
Mit dem Button VORSCHAUSCAN im VORSCHAU-Fenster führen Sie einen ersten Scan durch. Mit dem Button SICHTBAREN BEREICH AUSWÄHLEN schränken Sie den Scanbereich auf die Größe Ihres Motivs ein. Wenn Sie gleich beim Scannen einen Weißabgleich durchführen möchten, markieren Sie mit den Pipetten WÄHLE WEISSEN PUNKT und WÄHLE SCHWARZEN PUNKT jeweils einen Punkt im Vorschaubild, der weiß bzw. schwarz ist. Scan-Profis können im Hauptfenster und auf Basis des Histogramms (FENSTERjZ EIGE HISTOGRAMM) weitere Farbkorrektureinstellungen vornehmen.
191
Kapitel 8
Foto- und Bildverwaltung
Mit SCANNEN im Hauptfenster führen Sie den eigentlichen Scan in voller Auflösung durch. XSane zeigt das Scan-Ergebnis in einem neuen Fenster an. Dort können Sie das Bild drehen, weichzeichnen und skalieren. FILTERjENTFLECKEN versucht, Scan-Fehler bzw. Staub aus dem Bild zu entfernen. Bei großen Scans dauert dieser Prozess relativ lange, führt nach meinen Erfahrungen aber nur selten zu einer merklichen Bildverbesserung. Zuletzt speichern Sie Ihren Scan mit DATEIjSPEICHERN . Scans optimieren
Es ist eine eigene Kunst, qualitativ hochwertige Scans zu erstellen. Noch schwieriger ist es, Scans in einer guten Qualität wieder auszudrucken. Meistens muss das eingescannte Bild dazu vorher mit einem Bildverarbeitungsprogramm wie Gimp optimiert werden. Wenn Sie Probleme mit Moiré-Mustern haben, versuchen Sie es einmal mit den Filtern WEICHZEICHNENjGAUSSSCHER WEICH ZEICHNER oder V ERBESSERN jE NTFLACKERN !
Simple Scan Wesentlich einfacher zu bedienen als XSane ist das relativ neue Gnome-Programm Simple Scan (siehe Abbildung 8.2). Mit dem Button SCANNEN lesen Sie nun das gesamte Bild ein. Wenn nötig, können Sie das eingescannte Bild anschließend drehen und zuschneiden. (Z USCHNEIDEN markiert den Bereich des Bildes, den Sie anschließend speichern möchten.) S PEICHERN öffnet schließlich einen Dialog, um das Bild zu speichern. Standardmäßig scannt Simple Scan in einer Auflösung von ca. 300 DPI und in Farbe. Mit DOKUMENT jSCANjTEXT können Sie die Auflösung auf 150 DPI reduzieren. DOKUMENT jEINSTELLUNGEN führt in einen einfachen Konfigurationsdialog, in dem Sie die DPI-Einstellungen und die Seitengröße verändern können.
Abbildung 8.2: Scannen mit Simple Scan
Skanlite Das KDE-Gegenstück zu Simple Scan heißt Skanlite (siehe Abbildung 8.3). Die eingescannten Bilder werden in einem eigenen Fenster angezeigt und können dann unter einem beliebigen Namen in den Formaten PNG, JPEG oder BMP gespeichert werden.
192
Shotwell
Abschnitt 8.3
Abbildung 8.3: Scannen mit Skanlite
8.3 Shotwell Shotwell ist ein relativ neues Programm zur Verwaltung von Fotos und anderen Bildern. Es ersetzt bei aktuellen Fedora- und Ubuntu-Versionen das Programm F-Spot, das von diesen Distributionen in der Vergangenheit zur Bildverwaltung eingesetzt wurde. Im Vergleich zu F-Spot bietet Shotwell zwar weniger Funktionen, läuft dafür aber schneller und stabiler.
Abbildung 8.4: Bildverwaltung mit Shotwell
Shotwell kann auf zwei Arten verwendet werden: Einerseits zum sofortigen Ansehen von Bildern in einem Verzeichnis (also ohne vorherigen Import, aber auch ohne Verwaltungsfunktionen), andererseits zur Organisation großer Fotosammlungen (das erfordert den vorherigen Import der Bilder). Beim Import aus einem vorhandenen Verzeichnis haben Sie die Wahl, ob die Bilddateien an ihrem bisherigen Ort bleiben sollen oder in ein von Shotwell verwaltetes Verzeichnis kopiert werden sollen. Die Bilder werden dabei in die Unterverzeichnisse ~/Bilder/jahr/monat/tag verteilt. Das Basisverzeichnis kann bei Bedarf mit B EARBEITEN jEINSTELLUNGEN verändert werden.
Import
193
Kapitel 8
Foto- und Bildverwaltung
Fotos können auch per Drag&Drop aus dem Dateimanager in Shotwell importiert werden. Beachten Sie, dass Shotwell Video-Dateien beim Import ignoriert! Wenn Sie also mit Ihrer Kamera auch Videos aufnehmen, müssen Sie die resultierenden Dateien selbst in ein geeignetes Verzeichnis kopieren. Shotwell ist in der Lage, mit F-Spot verwaltete Fotos zu importieren. Die Bilddateien werden dabei nicht kopiert, sondern bleiben an ihrem bisherigen Ort. Shotwell benötigt zum Import Zugriff auf die F-Spot-Bilddatenbank ~/.config/f-spot/photos.db. Leider gehen beim Import viele in F-Spot durchgeführte Bildmanipulationen verloren. Richtig gedrehte Bilder stehen also wieder auf dem Kopf etc. Immerhin bleiben in F-Spot definierte Tags erhalten. Ereignisse
Die Bilder werden beim Import automatisch »Ereignissen« zugeordnet, wobei jeder Tag, an dem Fotos entstanden sind, als Ereignis gilt. Ereignisse können problemlos umbenannt und per Drag&Drop zusammengefügt werden. Um die Fotos eines Tages mehreren Ereignissen zuzuordnen, markieren Sie mehrere Fotos und führen dann (Strg)+(N) aus.
Bilder bearbeiten
Shotwell bietet einige simple Bearbeitungsfunktionen an: Die Bilder können in 90-Grad-Schritten gedreht und beschnitten werden. Das Drehen der Bilder per Tastatur erfordert leider eine besondere Fingerübung – wie F-Spot verwendet auch Shotwell die auf deutschen Tastaturen schwer erreichbaren Tastenkürzel (_[) bzw. (_]). Außerdem kann der Rote-Augen-Effekt behoben und der Kontrast der Bilder verbessert werden. Leider funktioniert die Korrektur des Rote-Augen-Effekts noch schlechter als bei den meisten anderen Programmen. Sämtliche Bearbeitungsschritte werden nicht direkt an der Bilddatei durchgeführt, sondern in der Datenbank des Programms gespeichert und bei der Anzeige des Bilds angewendet. Mit dem Kontextmenükommando Z URÜCK ZUM O RIGINAL kann jedes veränderte Bild wiederhergestellt werden. Das sichert einerseits die Integrität der Originaldateien, erschwert aber andererseits einen späteren Wechsel auf ein anderes Programm. Um ein Bild zu löschen, führen Sie (Entf) oder das Kontextmenükommando IN DEN MÜLL VERSCHIE BEN aus. Damit wird das Bild innerhalb der Bilddatenbank in einen OpenShot-eigenen PAPIERKORB gelegt. Erst wenn Sie den Papierkorb explizit leeren, werden die Bilddateien nach einer Rückfrage endgültig gelöscht.
Sonstige Funktionen
Ausgewählte Bilder können mit Tags (Markierungen) versehen, in einer sehr einfachen Diaschau angezeigt, in ein Verzeichnis exportiert oder auf Facebook, Flickr oder Picasa veröffentlicht werden.
8.4 digiKam digiKam ist ein sehr vielseitiges KDE-Programm zum Fotoimport von Digitalkameras, zur Verwaltung der Bilder und zur Durchführung einfacher Bearbeitungsschritte. Wie F-Spot und gThumb bietet das Programm diverse Hilfsmittel zur Kategorisierung der Bilder. digiKam ist durch ein Plugin-System erweiterbar. Dank derartiger Plugins kann es direkt mit RAW-Dateien umgehen, Farbprofile verwalten, diverse Filter auf Bilder anwenden etc. Wie viele andere KDE-Programme glänzt digiKam durch eine unvergleichliche Funktionsvielfalt; gleichzeitig ist aber die Benutzeroberfläche überladen und die Bedienung unübersichtlich.
194
digiKam
Abschnitt 8.4
Beim ersten Start des Programms müssen Sie ein Basisverzeichnis für Ihre Bilder konfigurieren (standardmäßig ~/Bilder). Bei Bedarf können Sie dieses Verzeichnis später mit E INSTELLUNGEN j DIGI K AM EINRICHTEN jA LBEN verändern. Ein Assistent hilft Ihnen dabei, einige weitere Grundeinstellungen durchzuführen. Sie machen nichts verkehrt, wenn Sie die Vorschläge des Programms einfach übernehmen. Wenn Linux Ihre Digitalkamera als USB-Speichermedium betrachtet, starten Sie den Import der dort befindlichen Bilder mit IMPORTIEREN jUSB-SPEICHERGERÄTE . Alle anderen Kameras müssen Sie vor dem ersten Import konfiguieren: In den meisten Fällen ist es ausreichend, im Dialog IMPORTIEREN jK AMERAS HINZUFÜGEN den Button A UTOMATISCHE ERKENNUNG anzuklicken. Die Kamera wird von nun an im K AMERA -Menü aufgelistet. Den Import starten Sie nun mit I MPORTIEREN j K AMERA jK AMERANAME. In jedem Fall erscheint nun ein Dialog mit einer Vorschau aller Bilder. Der Button AUSGEWÄHLTE HERUNTERLADEN führt in einen Dialog zur Auswahl des Zielverzeichnisses. Anschließend werden die markierten Bilder dorthin kopiert.
Fotoimport
Grundsätzlich können Sie mit digiKam nur Bilder verwalten, die sich innerhalb des Basisverzeichnisses befinden. Gegebenenfalls müssen Sie Ihre bisher woanders gespeicherten Bilder vorher dorthin importieren.
Bildverwaltung
Jedes Verzeichnis innerhalb des Basisverzeichnisses bezeichnet digiKam als Album. Alternativ können Sie auch in der Datumsansicht nach den Bildern suchen (siehe Abbildung 8.5). Ein Mausklick auf das gerade aktuelle Bild vergrößert es, ein weiterer Klick führt zurück in die Albenansicht. Auf der rechten Fensterseite können Sie zusätzliche Bildeigenschaften, Kommentare und Stichwörter einblenden bzw. dort ändern. Diese zusätzlichen Daten, die bei der späteren Suche nach Bildern helfen, werden nicht direkt in den Bildern, sondern in der Datei digikam4.db im Basisverzeichnis gespeichert.
Abbildung 8.5: Bildverwaltung mit digiKam
195
Kapitel 8
Foto- und Bildverwaltung
Bilder richtig drehen
Soweit die Kamera die Orientierung der Bilder in den EXIF-Daten vermerkt, dreht BILDjA UTOMATISCHES DREHEN /S PIEGELN alle Bilder im aktuellen Verzeichnis richtig. Wenn das nicht funktioniert, drehen (Strg)+(ª)+(æ) bzw. +(Æ) die zuvor markierten Bilder um 90 Grad nach links bzw. rechts.
Bilder bearbeiten
In der Ordneransicht können nur ganz elementare Bearbeitungsschritte durchgeführt werden (z. B. das Bild drehen). Weitergehende Operationen stehen zur Verfügung, wenn Sie per Kontextmenü BEARBEITEN ausführen. digiKam zeigt das Bild dann in einem neuen Fenster an. Dort können Sie das Bild rahmen, beschriften, Farben und Helligkeit optimieren, weichzeichnen, schärfen, rote Augen korrigieren, die Größe ändern etc. Änderungen werden normalerweise direkt in der Originaldatei gespeichert. Wenn Sie die nicht verlieren möchten, müssen Sie das veränderte Bild mit DATEIjSPEICHERN UNTER sichern. Die Menüs EXTRAS und STAPELVERARBEITUNG führen zu diversen Zusatzfunktionen. Sie können damit alle markierten Bilder gemeinsam konvertieren oder ändern. Zahlreiche digiKam-Funktionen sind als Plugins realisiert (KIPI = KDE Image Plugin Interface). Wenn einzelne digiKam-Funktionen bei Ihnen fehlen, stellen Sie sicher, dass die Plugins installiert und in den Dialogen EINSTELLUNGEN j DIGI K AM EINRICHTEN jKIPI-M ODULE und -jB ILDMODULE auch aktiviert sind.
Bilder ansehen und exportieren
A NSICHTjDIASCHAUjA LLE bzw. A NSICHT jDIASCHAUjA USWAHL präsentiert das aktuelle Album bzw. die gerade ausgewählten Bilder als Diaschau ohne besondere Effekte. Während die Präsentation aktiv ist, können Sie auch mit dem Mausrad vor- und zurückblättern. Das Zeitintervall für den Bildwechsel sowie einige andere Optionen können Sie mit E INSTELLUNGEN jDIGIK AM EINRICHTENjDIASCHAU angeben. Wenn Sie die Diaschau mit Überblendeffekten und Musikuntermalung durchführen möchten, verwenden Sie A NSICHT jDIASCHAUjERWEITERTE DIASCHAU. In einem mehrblättrigen Dialog können Sie diverse Einstellungen vornehmen, die allerdings immer für alle Bilder gelten: Sie können also nicht einem bestimmten Bild einen Effekt zuordnen oder je nach Bild unterschiedliche Zeitintervalle für den Bildwechsel einstellen. Beachten Sie, dass die Auswahl der Bildeffekte variiert, je nachdem, ob Sie die Option O PENGL-ÜBERGÄNGE aktivieren oder nicht. (Eine Präsentation mit O PENGLÜBERGÄNGEN erfordert einen 3D-tauglichen Grafiktreiber.) Das Menü EXPORTIEREN enthält ein ganzes Dutzend Kommandos, um die zuvor ausgewählten Bilder auf Facebook, Flickr, Picasa etc. zu exportieren, als HTML-Gallerie zu speichern, in eine FlashPräsentation umzuwandeln oder in ein beliebiges Verzeichnis auf dem lokalen Rechner oder einem Rechner im Netzwerk zu speichern (A UF FREMDRECHNER EXPORTIEREN ). Wenn Sie mehrere zuvor markierte Bilder als E-Mail versenden möchten, führen Sie BILDjBILDER PER E-M AIL VERSENDEN aus. Dabei können Sie zwischen verschiedenen E-Mail-Clients auswählen und wahlweise die maximale E-Mail-Größe oder die gewünschte Bildgröße (z. B. maximal 800 Pixel) vorgeben. digiKam skaliert die Bilder dann entsprechend. Den Exportdialog dürfen Sie erst schließen, nachdem Sie die E-Mail versandt haben – andernfalls findet das E-Mail-Programm die temporären Bilddateien nicht mehr!
196
F-Spot
Abschnitt 8.5
8.5 F-Spot Das Programm F-Spot (siehe Abbildung 8.6) war in der Vergangenheit bei vielen Gnome-basierten Distributionen das Standardprogramm zur Bildverwaltung. Fedora und Ubuntu sind mittlerweile aber auf Shotwell umgestiegen, sodass von den großen Distributionen eigentlich nur noch SUSE auf F-Spot setzt. (Die meisten anderen Distributionen stellen aber weiterhin F-Spot-Pakete zur Verfügung – Sie haben also die Wahl, welches Bildverwaltungsprogramm Sie einsetzen möchten.) F-Spot besticht durch eine ansprechende Benutzeroberfläche und originelle Ideen: Beispielsweise werden Änderungen an Bildern nie in den Originaldateien gespeichert, sondern in sogenannten Versionen. Damit können Sie jederzeit zwischen dem Original und bearbeiteten Versionen eines Bilds wechseln und brauchen keine Angst vor unwiderruflichen Änderungen zu haben. Auch die Organisation aller Bilder auf einer Zeitachse ist mit zunehmender Bildanzahl ein attraktives Merkmal.
Abbildung 8.6: Bildverwaltung mit F-Spot
Leider hat das Programm auch Schattenseiten: Die Bedienung ist gewöhnungsbedürftig und nicht sehr intuitiv. Außerdem beansprucht das Programm eine Menge RAM und CPU-Kapazität und lässt sich nur auf schnellen Rechnern zufriedenstellend nutzen. Das liegt nicht zuletzt auch daran, dass das Programm auf der Mono-Bibliothek basiert. Vor der ersten Verwendung muss das bisherige Foto-Archiv importiert werden. F-Spot verwendet standardmäßig das Verzeichnis ~/Fotos zur Speicherung aller Bilder (~/Bilder/Fotos bei Ubuntu). Wenn Sie ein anderes Verzeichnis wünschen, geben Sie den gewünschten Ort vor dem ersten Bildimport mit BEARBEITEN jEINSTELLUNGEN an.
Foto-Verzeichnis einrichten
Um den Foto-Altbestand zu importieren, führen Sie FOTOjIMPORTIEREN aus und geben das Quellverzeichnis an. Im Importeintrag führt der Listeneintrag O RDNER WÄHLEN in einen Verzeichnisauswahldialog. Wenn die Bilddateien an ihrem bisherigen Ort bleiben sollen, deaktivieren Sie sofort die Option DATEIEN IN DEN FOTOORDNER KOPIEREN . (Wenn Sie die Option später verändern, beginnt
197
Kapitel 8
Foto- und Bildverwaltung
der Importvorgang von Neuem!) F-Spot speichert nun diverse Informationen in einer Bilddatenbank (Datei ~/.config/f-spot/photos.db). Fotos von der Digitalkamera importieren
Der Import neuer Fotos von der Digitalkamera erfolgt im Prinzip genauso wie der Import vorhandener Bilder. Wichtig ist, dass die Option DATEIEN IN DEN FOTOORDNER KOPIEREN nun aktiv ist – die Bilddateien sollen ja von der Speicherkarte der Digitalkamera in das lokale Foto-Verzeichnis kopiert werden! F-Spot ist nicht in der Lage, Bilder auf der Digitalkamera zu löschen. Diesen Arbeitsschritt müssen Sie nach dem Import selbst erledigen. F-Spot legt beim Import die Unterverzeichnisse in der Form Fotos/2010/12/31 an und ordnet die Bilddateien entsprechend ein. In der F-Spot-Benutzeroberfläche können Sie wahlweise über die Zeitleiste oder über die O RDNER-Ansicht in der Seitenleiste ((F9)) gezielt auf Fotos eines bestimmten Ordners bzw. Zeitpunkts zugreifen.
Bilder verwalten
F-Spot zeigt eine Bildübersicht an. Die Vorschaugröße verändern Sie durch den Regler rechts unten. Ein Doppelklick auf ein Bild führt in den Bearbeitungsmodus. Änderungen am Bild werden in einer neuen Datei gespeichert, die sich im selben Verzeichnis wie das Original befindet. Dem ursprünglichen Dateinamen wird (BEARBEITET N ) hinzugefügt. Welche Version eines Bildes gerade sichtbar ist, geht aus dem Kontextfeld links unten hervor. Mit FOTOjVERSION wählen Sie die gerade angezeigte Version aus. Um Änderungen rückgängig zu machen, aktivieren Sie die Version BEARBEITET und löschen sie mit FOTOjVERSION LÖSCHEN. Um die Bilder besser zu organisieren, können Sie ihnen per Drag&Drop Markierungen zuordnen. F-Spot sieht standardmäßig fünf Markierungen vor (Favoriten, Versteckt, Orte, Personen und Ereignisse). Sie können nach Belieben weitere Markierungen definieren, Bildern mehrere Markierungen zuweisen etc. Ein Doppelklick auf eine Markierung schränkt die Bildansicht auf derart markierte Bilder ein. Damit Sie wieder alle Bilder sehen, müssen Sie den Suchfilter löschen. Es gibt kein Bedienelement von F-Spot, das verrät, wo sich die Bilder physikalisch befinden. Sie können allerdings ein oder mehrere Bilder markieren und dann per Kontextmenü O RT DES FOTOS KOPIEREN ausführen. F-Spot kopiert dann die vollständigen Dateinamen aller markierten Bilder in die Zwischenablage.
Bilder bearbeiten
Um Bilder zu verändern, aktivieren Sie den Modus BILD BEARBEITEN, blenden mit (F9) die Seitenleiste ein und aktivieren dort das Dialogblatt BEARBEITEN. Nun können Sie das aktuelle Bild zuschneiden, den Rote-Augen-Effekt reduzieren (das funktioniert leider bemerkenswert schlecht), die Farben ändern etc. Außerdem können Sie das Bild drehen, wahlweise mit den dazu vorgesehenen Buttons oder mit (_[) oder (_]). Änderungen am Bild werden in einer neuen Datei gespeichert, die sich im selben Verzeichnis wie das Original befindet. Dem ursprünglichen Dateinamen wird BEARBEITET N hinzugefügt. Welche Version eines Bildes gerade sichtbar ist, ist nur ersichtlich, wenn Sie die Seitenleiste eingeblendet haben und ein Bild angeklickt ist: Über ein Listenfeld können Sie nun zwischen O RIGINAL und BEARBEITET (N ) wählen. Wenn Sie eine bestimmte Version des Bilds nicht mehr brauchen, führen Sie FOTOjVERSION LÖSCHEN aus.
198
Panoramas zusammensetzen mit Hugin
Abschnitt 8.6
Wenn Ihnen die beschränkten Bearbeitungsmöglichkeiten von F-Spot nicht ausreichen, klicken Sie das Bild mit der rechten Maustaste an und führen Ö FFNEN MIT G IMP aus. F-Spot erstellt auch in diesem Fall zuerst eine Kopie der Bilddatei. A NSICHT jDIASHOW bzw. (F5) startet eine automatische Anzeige aller gerade ausgewählten Bilder. Leider nervt der Effekt beim Bildwechsel. Zudem gibt es keine Einstellmöglichkeit für die Verweildauer der Bilder. Wenn Sie manuell durch die Bilder blättern möchten, starten Sie besser mit (F11) den Vollbildmodus. Dort können Sie sich mit den Cursortasten durch die Bilder bewegen (aber leider nicht mit der Maus!). Das gerade angezeigte Bild können Sie auch im Vollbildmodus mit (_[) bzw. (_]) drehen.
Diashow
Um eine Auswahl von Fotos in ein anderes Verzeichnis zu kopieren, auf eine CD zu brennen oder als E-Mail zu versenden, markieren Sie die gewünschten Bilder mit (Strg) und der Maustaste. Anschließend führen Sie eines der folgenden Kommandos aus:
Fotos exportieren, brennen oder versenden
» FOTOjEXPORTIEREN NACH O RDNER kopiert die Bilder in einen neuen Ordner. Auf Wunsch wird dabei auch eine HTML-Datei erzeugt, die einen optisch ansprechenden Zugriff auf die Bilder über einen Webbrowser ermöglicht. » FOTOjEXPORTIEREN NACH CD übergibt die Bilder an das Programm Brasero. » FOTOjPER E-MAIL VERSCHICKEN erzeugt eine E-Mail, die die markierten Bilder enthält. Sie haben dabei die Möglichkeit, die Bildgröße zu reduzieren, wobei der Dialog gleich angibt, wie groß die resultierende E-Mail in etwa sein wird. » FOTOjEXPORTIEREN NACH PICASAWEB, -FLICKR, -23HQ, -Z OOOMR und -SMUGMUG exportiert Ihre Bilder in die angegebenen Websites zum Foto-Sharing. Wenn Sie viele Bilder aus einer großen Sammlung markieren möchten, ist die Markierung per Maus zu unhandlich. Effizienter ist es, die Bilder zuerst mit einem Tag zu kennzeichnen, alle gekennzeichneten Bilder anzuzeigen und mit (Strg)+(A) auszuwählen.
8.6 Panoramas zusammensetzen mit Hugin Das Programm Hugin hilft dabei, mehrere einzelne Bilder zu einem großen Panoramabild zusammenzusetzen. Dieser Abschnitt gibt nur eine ganz kurze Einführung in das Programm. Wenn Sie mit Hugin arbeiten, werden Sie rasch feststellen, dass es unzählige weitere Optionen und Einstellmöglichkeiten gibt, deren korrekte Anwendung aber Kenntnisse der zugrundeliegende optischen Begriffe und Verfahren voraussetzt – und die kann ich hier nicht vermitteln. Lesenswert sind auf jeden Fall die Tutorials auf der Hugin-Webseite sowie der folgende Bericht auf http://lwn.net, der unter anderem auf die Anwendung von Hugin zur Bearbeitung von Gruppenfotos eingeht: http://hugin.sourceforge.net/tutorials/ http://lwn.net/Articles/351053/ Am einfachsten ist es, den Hugin-Assistenten zu nutzen und sich auf die Automatismen von Hugin zu verlassen. Im ersten Schritt laden Sie alle Bilder Ihres Panoramas. Mit AUSRICHTEN starten Sie einen Analyseprozess, der je nach Anzahl und Größe der Bilder und der CPU-Geschwindigkeit meh-
199
Kapitel 8
Foto- und Bildverwaltung
rere Minuten in Anspruch nimmt. Hugin versucht, übereinstimmende Merkmale auf den Bildern zu finden, anhand derer es die Bilder aneinanderfügen kann. Sobald dieser Prozess abgeschlossen ist, erscheint ein Vorschaufenster (siehe Abbildung 8.7). Im Dialogblatt PROJKETION können Sie das Projektionsverfahren ändern, wobei Sie zumeist mit Z YLINDRISCH oder SPHÄRISCH die besten Ergebnisse erzielen. Im Dialogblatt BESCHNITT wird ein Auswahlrechteck über dem Bild eingeblendet. Sie können nun dessen Größe und Position einstellen. Das Reckteck gibt die Ausmaße des endgültigen Panoramabilds an. Wenn Sie mit dem Ergebnis zufrieden sind, schließen Sie das Vorschaufenster und starten im Hauptfenster die Panoramaerstellung. Die resultierende Datei wird im TIFF-Format gespeichert.
Abbildung 8.7: Panoramas mit Hugin zusammensetzen
Nicht immer ist das Ergebnis so gut wie in Abbildung 8.8. Sie können nun versuchen, in den vielen Dialogblättern von Hugin manuell diverse Parameter zur Panoramaerstellung einzustellen. Nach meinen Erfahrungen führt das aber nur dann zum Erfolg, wenn Sie nicht auf gut Glück probieren, sondern ein fundiertes Wissen darüber haben, wie Hugin funktioniert.
Hinweis
Abbildung 8.8: Panoramaaufnahme im Hochschwabmassiv (Steiermark)
200
Die von mir getestete Version von Hugin aus der universe-Paketquelle von Ubuntu identifiziert automatisch Kontrollpunkte für übereinstimmende Bildmerkmale in den Bildern. Der dabei eingesetzte Algorithmus ist aber offensichtlich in den USA patentiert, weswegen er bei manchen Hugin-Installationen fehlt oder extra aus einer anderen Paketquelle installiert werden muss. Bei Fedora finden Sie das Paket autopano-sift-C in der rpmfusion-Paketquelle.
Screenshots erstellen
Abschnitt 8.7
8.7 Screenshots erstellen Ein Screenshot ist ein Abbild des aktuellen Bildschirm- oder Fensterinhalts in einer Grafikdatei. Die folgenden Abschnitte beschreiben ganz kurz einige Möglichkeiten, solche Screenshots zu erstellen. Bei Gnome ist das Programm gnome-panel-screenshot direkt in den Desktop integriert. Wie unter Windows erstellt (Druck) einen Screenshot des gesamten Bildschirms, (Alt)+(Druck) eine Abbildung des gerade aktiven Fensters. Anschließend wird das Programmfenster sichtbar und bietet die Möglichkeit, die Abbildung zu speichern. Als einziges Format ist PNG vorgesehen.
Gnome
Um unter KDE Bildschimabbildungen zu erstellen, starten Sie das Programm ksnapshot und stellen den gewünschten Aufnahmemodus ein (VOLLBILD, FENSTER oder BEREICH ). Mit dem Button N EUES BILDSCHIRMFOTO erstellen Sie den Screenshot. Beim Speichern wird je nach Dateikennung automatisch das entsprechende Format verwendet.
KDE
Auch mit dem im nächsten Kapitel beschriebenen Bildverarbeitungsprogramm Gimp können Sie mit DATEIjERSTELLENjSCREENSHOT eine Bildschirmabbildung erstellen. Das ist besonders dann praktisch, wenn Sie das Bild anschließend ohnedies mit Gimp weiterbearbeiten möchten.
Gimp
Wenn Sie viele Screenshots erstellen, werden Sie vermutlich Shutter mögen: Dieses Programm bietet unzählige Zusatzfunktionen, um den gewünschten Bildausschnitt auszuwählen, das aufgenommene Bild mit Wasserzeichen zu versehen etc.
Shutter
http://shutter-project.org/ Als Screencast bezeichnet man ein Video, das den Bildschirminhalt über längere Zeit verfolgt. Screencasts eignen sich hervorragend, um Programmfunktionen zu dokumentieren. Screencasts können Sie z. B. mit den Programmen Istanbul und GTK Record My Desktop (beide Gnome), ScreenKast und Kdenlive (beide KDE), Xvidcap, VLC oder RecordMyDesktop (Kommandozeile) aufnehmen.
Screencasts
201
9. Gimp Hinter dem Kürzel Gimp (GNU Image Manipulation Program) verbirgt sich ein Programm zur Bildverarbeitung, das in vielerlei Hinsicht ähnliche Funktionen wie das kommerzielle Programm Adobe Photoshop bietet. Der wesentliche Unterschied: Gimp ist freie Software (GPL). Mit Gimp können Sie: » Bitmap-Dateien in den unterschiedlichsten Formaten lesen und speichern (zu den unterstützten Formaten zählen unter anderem GIF, JPEG, PNG und TIFF), » PostScript-Dateien (EPS/PS) und Photoshop-Dateien (PSD) importieren, » Fotos und eingescannte Bilder nachbearbeiten (Farb- und Helligkeitsverteilung ändern, aufhellen, den Kontrast verstärken etc.), » diverse Filter anwenden, etwa um Kanten hervorzuheben, optische Effekte zu erzielen etc., » Teile eines Bilds markieren, ausschneiden, separat bearbeiten und zu neuen Bildern zusammensetzen (Fotomontage), » neue Grafikelemente in ein Bild einarbeiten (Linien, Füllmuster, Farbverläufe, Texte etc.), » Gimp-Operationen automatisieren, » Gimp im Batch-Betrieb auf eine ganze Sammlung von Dateien anwenden und » die resultierenden Bilder drucken bzw. speichern (als Bitmap, als PostScript-Datei oder im Gimpeigenen Format XCF, das neben den eigentlichen Bilddaten auch Bearbeitungsinformationen wie Masken und Ebenen speichert). Dieses Kapitel gibt eine erste Einführung in Gimp 2.6. Auch wenn es aus Platzgründen nicht einmal ansatzweise möglich ist, die vielen Features von Gimp ausführlich zu beschreiben, so vermittelt dieses Kapitel zumindest detaillierte Informationen zu allen elementaren Funktionen. Weitere Informationen finden Sie im Internet, beispielsweise hier: http://www.gimp.org/ http://www.gimp.org/docs/ http://manual.gimp.org/ http://gimp-savvy.com/ Natürlich gibt es auch eine Reihe von Büchern zu Gimp. Das Erlernen der Funktionen von Gimp ist allerdings nur der erste Schritt zu tollen Ergebnissen. Zumindest ebenso wichtig ist das Verständnis, wie diese Funktionen in der Praxis sinnvoll angewandt werden können. Bevor Sie Ihre Ergebnisse in einem Print-Shop in Plakatgröße ausdrucken, sollten Sie sich zudem mit den zahlreichen Problemen der Farbdarstellung am Bildschirm und am Drucker beschäftigen (Kalibrierung). Ein PhotoshopBuch, das sich primär mit solchen Grundlagen der Bildverarbeitung beschäftigt und weniger mit Bedienungsdetails, kann daher auch für Gimp-Anwender eine sinnvolle Investition sein.
Kapitel 9
Gimp
Traum und Wirklichkeit
Gimp ist ein sehr vielseitiges und leistungsfähiges Programm (und dieses Kapitel beschreibt gerade einmal die ersten fünf Prozent!). Dennoch ist die Gefahr groß, dass Sie das Programm nach einigen ersten Experimenten enttäuscht wieder von Ihrer Festplatte löschen. Das hat vor allem zwei Gründe: Einerseits erfordert das Programm eine intensive Einarbeitung, bevor es effizient genutzt werden kann; und andererseits stellt Gimp erhebliche Hardware-Ansprüche. Um komfortabel arbeiten zu können, brauchen Sie ausreichend Speicher, eine schnelle CPU und einen großen Monitor. Falsche Erwartungen resultieren auch daraus, dass Gimp oft als freie, ansonsten aber gleichwertige Variante zu Adobe Photoshop beschrieben wird. Das greift ein wenig zu kurz: » Die Bedienung von Gimp unterscheidet sich zum Teil erheblich von der Photoshops. Echte GimpFans werden natürlich einwenden, dass die Bedienung von Gimp intuitiver und effizienter sei. Für manche Funktionen mag das stimmen, bei anderen hat man aber den Eindruck, das Programm sei von Technikern für Techniker entwickelt worden. Zudem ist es für Photoshop-Umsteiger oft schwierig, die richtigen Funktionen im verschachtelten Menü zu finden. » Das Erstellen von (PostScript-)Dateien für professionelle Druckaufgaben ist mit Gimp schwieriger als mit anderen Programmen. Die Herstellung von Bildern mit Sonder- oder Schmuckfarben (Duplex-Bildformat) ist zwar prinzipiell möglich, die Funktionen sind aber wenig komfortabel. Eine direkte Unterstützung von Pantone-Farben fehlt ganz, soll aber eventuell in Zukunft in Form von kommerziellen Plugins zur Verfügung gestellt werden.
Alternativen zu Gimp
Wenn Ihnen Gimp zu komplex ist, stellen auch die in Kapitel 8 vorgestellten Programme zur Bildverwaltung elementare Bearbeitungsfunktionen zur Verfügung. Wenn es nur darum geht, rasch den Kontrast eines Bilds zu optimieren, kommen Sie damit schneller ans Ziel. Falls Sie auf der Suche nach einem einfachen Mal- bzw. Zeichenprogramm im Stil von Microsoft Paint sind, sollten Sie einen Blick auf das KDE-Programm kolourpaint werfen. Was die Komplexität und die Funktionsfülle angeht, ist krita etwa in der Mitte zwischen Gimp und kolourpaint angesiedelt. Das Programm ist Teil der KDE-Office-Suite. Es vereint eine relativ einfache Bedienung mit fortgeschrittenen Funktionen (inklusive einer Ebenenverwaltung und zahlreicher Filter). Kommandos, um zahlreiche Bilddateien rasch in ein anderes Format zu konvertieren, finden Sie schließlich ab Seite 369. Gimp und alle oben aufgezählten Alternativen sind Bildbearbeitungsprogramme (pixelbasiert). Unter Linux stehen auch einige vektorbasierte Zeichenprogramme zur Auswahl: die OpenOffice-Komponente Draw, das hervorragende SVG-Zeichenprogramm Inkscape oder das KDE-Office-Programm krita.
9.1 Erste Schritte Sie starten Gimp entweder über das Desktop-Menü oder einfach durch das Kommando gimp. Im Gegensatz zu Adobe Photoshop, wo sämtliche Bedienungselemente in einem großen Fenster integriert sind, erscheinen nach dem Start von Gimp mehrere Fenster, die verschiedene Bedienungselemente enthalten. Beim weiteren Arbeiten wird auch für jede Bilddatei ein eigenes Fenster geöffnet. Außerdem gibt es diverse weitere Werkzeugfenster, die erst bei Bedarf erscheinen (siehe
204
Erste Schritte
Abschnitt 9.1
auch das Menü FENSTER). Das führt dazu, dass oft eine Menge Gimp-Fenster offen sind. Wenn Sie neben Gimp noch andere Programme laufen haben, wird die Fensterfülle rasch unübersichtlich. Seit Gimp 2.6 können der Werkzeugkasten und die anderen Dialoge/Paletten nicht mehr minimiert werden. Der Werkzeugkasten kann nicht einmal geschlossen werden – das führt zum Programmende von Gimp. Geschlossene Dialoge können Sie mit FENSTERjK ÜRZLICH GESCHLOSSENE DOCKS wiederherstellen.
Abbildung 9.1: Links das GimpHauptfenster, in der Mitte ein Werkzeugfenster, rechts ein Bildfenster
Das beste Rezept gegen die Gimp-Fensterflut ist es, Gimp in einer eigenen Arbeitsfläche zu starten: Wenn Ihr Webbrowser, E-Mail-Programm, OpenOffice etc. in der Arbeitsfläche 1 laufen, wechseln Sie in die Arbeitsfläche 2, bevor Sie Gimp starten. Die gewünschte Arbeitsfläche aktivieren Sie je nach Desktop durch einen einfachen Mausklick im Arbeitsflächenumschalter (zumeist rechts unten im Panel). Ab Gimp 2.8 wird es auch möglich sein, das Programm in einem großen Fenster mit Dialogblättern (Tabs) zu nutzen. Leider ist noch unklar, wann Gimp 2.8 fertig werden soll – voraussichtlich irgendwann 2011. Gimp war bis Version 2.4 mit zwei Menüs ausgestattet. Eines befand sich in der Toolbox, das zweite in jedem Bildfenster. Mit Gimp 2.6 wurden beide Menüs der Einfachheit halber in das Menü des Bildfensters integriert. Dieses Menü kann auch an jeder Stelle des Bilds als Kontextmenü geöffnet werden (rechte Maustaste), was besonders bei kleinen Bildfenstern praktisch ist.
Menübedienung
DATEIjÖ FFNEN führt zu einem Dateiauswahldialog. Dieser Dialog zeigt eine Vorschau zum gerade ausgewählten Bild. Nach dem Öffnen wird die Bilddatei in einem neuen Bildfenster angezeigt.
Bilder laden und speichern
Beim Speichern stehen Ihnen eine ganze Menge von Dateiformaten zur Wahl. Wenn Sie ein Bild später mit Gimp weiterbearbeiten möchten, sollten Sie es als name.xfc.gz speichern. Damit verwenden Sie das Gimp-eigene XFC-Format, das die Kontextinformationen Ihrer Komposition erhält (z. B. alle Bildebenen). Die zusätzliche Erweiterung .gz bewirkt, dass die Datei komprimiert wird.
205
Kapitel 9
Gimp
Abbildung 9.2: Warnung beim Speichern
Relativ häufig erscheint vor dem Speichern eine Warnung, die wie in Abbildung 9.2 oder so ähnlich aussieht. Sie bedeutet, dass das Bild vor dem Speichern verändert werden muss: Wenn das Bildformat keine Transparenz unterstützt, werden durchsichtige Teile des Bilds weiß hinterlegt. Wenn das Bildformat keine Ebenen kennt (was bei allen Bitmap-Formaten der Fall ist), müssen alle Ebenen zu einer einzigen Ebene vereint werden. Derartige Änderungen betreffen nur die gespeicherte Datei, nicht die im Arbeitsspeicher befindlichen Bilddaten von Gimp. Daher können Sie ohne Bedenken einfach E XPORTIEREN anklicken. Allerdings sollten Sie das Bild später auch im Gimp-eigenen XCF-Format speichern. Bildansicht
Solange das Bildfenster aktiv ist, zoomen Sie mit (+) in das Bild hinein und mit (-) wieder hinaus. (1) setzt den Zoomfaktor auf 1:1. A NSICHT jFENSTER ANPASSEN bzw. (Strg)+(E) passt die Fenstergröße an die aktuelle Bildansicht an. Wenn Sie also bei einem hochauflösenden Bild den Zoomfaktor verkleinert haben, wird nun auch die Fenstergröße verkleinert. Wenn das Bild im aktuellen Zoomfaktor größer als das Fenster ist, kann nur ein Ausschnitt angezeigt werden. Der gerade sichtbare Ausschnitt kann wie üblich durch die Schiebebalken des Fensters verändert werden. Alternativ können Sie das Bild auch einfach mit der mittleren Maustaste verschieben.
Drucken
DATEIjDRUCKEN führt in einen Druckdialog mit mehreren Dialogblättern. In vielen Fällen erscheint vorher dieselbe Export-Warnung wie beim Speichern in Bitmap-Formaten, die Sie bedenkenlos durch EXPORTIEREN bestätigen können. An den Arbeitsdaten in Gimp ändert sich durch den Ausdruck nichts! Im Dialogblatt BILDEIGENSCHAFTEN stellen Sie ein, wie groß das Bild auf dem Ausdruck sein soll und wie es platziert wird (standardmäßig zentriert). Im Dialogblatt A UFTRAG können Sie den Druckjob so einstellen, dass er erst später ausgeführt wird – eine tolle Sache, wenn Sie den gemeinsamen Drucker gerade nicht durch einen aufwendigen Druck blockieren möchten. Die Einstellmöglichkeiten im Dialogblatt DRUCKQUALITÄT hängen stark vom Druckertreiber ab: Bei einem einfachen Drucker können Sie hier nur die Auflösung einstellen, bei einem Fotodrucker mit einem guten Linux-Treiber stehen Ihnen unzählige weitere Parameter zur Verfügung. Noch mehr Einstellmöglichkeiten beim Ausdruck bietet der G UTENPRINT-Druckdialog, der zumeist extra installiert werden muss (Paket gimp-gutenprint). Nach einem Neustart von Gimp verwenden Sie zum Drucken das Kommando DATEIjPRINT WITH GUTENPRINT.
206
Überlebensregeln
Abschnitt 9.2
9.2 Überlebensregeln Fast alle Funktionen von Gimp können per Tastatur ausgewählt und durchgeführt werden. Dabei tritt allerdings oft das Problem auf, dass sich der Tastaturfokus nicht im Bildfenster befindet, sondern im zuletzt benutzten Dialog (wo andere Tastenkürzel gelten).
Tastaturbedienung
Wenn Sie im Gimp-Konfigurationsdialog DATEIjEINSTELLUNGEN jO BERFLÄCHE die Option DYNAMISCHE TASTENKÜRZEL aktivieren, können Sie die Tastenkürzel von Menükommandos ganz einfach ändern: Beginnen Sie die Menüauswahl mit der Maus, und lassen Sie diese über dem Menükommando stehen, ohne die Auswahl durch einen Mausklick abzuschließen. Dann drücken Sie die gewünschte Tastenkombination – fertig. Die Tastenkürzel werden in der Datei ~/.gimp-n.n/menurc gespeichert. Wenn Sie eine schon begonnene Mausaktion abbrechen möchten, drücken Sie (bei noch gehaltener linker Taste) zusätzlich die rechte Taste. Lassen Sie dann zuerst die linke und dann die rechte Taste wieder los.
Mausaktionen abbrechen
Die exakte Mauspositionierung fällt in Gimp oft schwer. Verwenden Sie Hilfslinien! Der Mauszeiger rastet in unmittelbarer Nähe dieser Linien ein (er wird quasi magnetisch angezogen). Zum Zeichnen von Hilfslinien klicken Sie mit der Maus eines der beiden Lineale an und ziehen es heraus. Zum Verschieben vorhandener Lineale aktivieren Sie zuerst den V ERSCHIEBEN-Button der Toolbox (Vierfachpfeil). Sie dürfen beliebig viele Lineale verwenden, und Sie können diese vorübergehend mit A NSICHT jMAGNETISCHE HILFSLINIEN ausblenden.
Hilfslinien
Integraler Bestandteil von Gimp ist der Werkzeugkasten, der oft auch als Toolbox bezeichnet wird. Wenn Sie dieses Fenster schließen, beenden Sie Gimp! Der Werkzeugkasten enthält eine Palette von Icons mit den Werkzeugen von Gimp. Alle Werkzeuge können auch per Tastatur aktiviert werden. Die Tastenkürzel sind im Menü WERKZEUGE angegeben.
Werkzeugkasten
Zu allen Werkzeugen gibt es einen Einstellungsdialog. Dieser Dialog wird normalerweise unterhalb der Werkzeug-Icons angezeigt. Wenn der Einstellungsdialog nicht sichtbar ist, öffnen Sie ihn per Doppelklick auf das entsprechende Werkzeug-Icon. Darüber hinaus werden viele elementare Funktionen durch die Einstellungen der Dialoge PINSEL (Stift- und Pinselformen) und MUSTER (Füllmuster) beeinflusst. Diese Dialoge werden durch das Kontextmenükommando DIALOGE geöffnet.
Dialoge
Alle Dialoge (nicht aber die Bildfenster) können per Drag&Drop ineinander verschoben und angedockt werden. Damit vermeiden Sie, dass Sie den Überblick über unzählige Gimp-Fenster verlieren. Die Drag&Drop-Operationen beginnen im Dialogtitel, der unterhalb des Fenstertitels angezeigt wird. Verschiebeoperationen können wahlweise in einem anderen Dialog enden (dann werden die Dialoge übereinander in Form von Reitern angezeigt) oder in den schmalen Docking-Leisten ober- und unterhalb von Dialogen (dann werden die Dialoge untereinander angedockt). Wenn Sie ein Untermenü häufig benötigen – z. B. das Menü BILDjTRANSFORMATIONEN mit den Transformationskommandos –, machen Sie daraus einfach einen eigenen Dialog. Dazu müssen Sie das Menü im Bildfenster als Kontextmenü öffnen. Nur dort (nicht aber im regulären Menü) erscheint oberhalb jedes Menüs eine gestrichelte Linie. Sobald Sie die anklicken, wird das Menü zu einem eigenen Fenster.
Menüs loslösen
207
Kapitel 9
Gimp
Farben
Alle Mal- und Zeichenkommandos berücksichtigen die in der Toolbox eingestellte Vorder- und Hintergrundfarbe. Der Dialog zum Verändern dieser Farben wird durch einen Doppelklick auf das jeweilige Farbfeld aufgerufen. Das kleine Symbol links unten stellt die Standardfarben Schwarz und Weiß wieder her; der Doppelpfeil vertauscht Vorder- und Hintergrundfarbe.
Undo und Redo
Mit (Strg)+(Z) können Sie die letzten fünf Operationen rückgängig machen. (Strg)+(Y) stellt die zurückgenommenen Operationen wieder her. Im Konfigurationsdialog UMGEBUNG können Sie die Anzahl der Undo-Ebenen einstellen. (Vorsicht: Der dafür benötigte Speicherplatz kann rasch sehr groß werden.) Der Dialog JOURNAL bietet darüber hinaus einen komfortablen Zugriff auf die letzten Arbeitsschritte. Das Fenster zeigt jeden Arbeitsschritt und zeigt das Bild zum damaligen Zeitpunkt als Icon an. Durch einen Mausklick können Sie den jeweiligen Zustand wiederherstellen.
Reglereinstellung
Viele Effekte und Einstellungen werden durch Regler gesteuert. Diese Regler sind mit der Maus aber nur schwer exakt einzustellen. Verwenden Sie stattdessen die Cursortasten!
Ansichten
Oft ist es praktisch, parallel zum vergrößerten bzw. verkleinerten Bild eine zweite Ansicht im Maßstab 1:1 anzuzeigen. Dazu öffnen Sie einfach mit A NSICHTjN EUE A NSICHT ein zweites Fenster des aktuellen Bilds. Dort können Sie unabhängig vom ersten Fenster die Vergrößerung einstellen und die Kennzeichnung der Markierung ( »Marching Ants«) mit (Strg)+(T) sowie die der Lineale mit (ª)+(Strg) +(T) abschalten. Dadurch erhalten Sie einen guten Eindruck davon, wie das endgültige Bild aussieht.
9.3 Fotos bearbeiten Dieser Abschnitt beschreibt einige oft benötigte Techniken zur Bearbeitung von Fotos bzw. eingescannten Bildern. Eine Einführung in grundlegende Werkzeuge von Gimp folgt in den weiteren Abschnitten dieses Kapitels.
Bilder drehen, skalieren und ausschneiden Bild rotieren
Mit BILDjTRANSFORMATIONEN drehen Sie das aktuelle Bild um 90 Grad nach links und oder rechts, stellen es auf den Kopf oder spiegeln es.
Bildauflösung ändern
Mit BILDjBILD SKALIEREN gelangen Sie in den Skalierungsdialog. Dort geben Sie einfach die gewünschte Bildgröße in Pixel an. Alternativ kann die Größenangabe auch in Prozent erfolgen, z. B., um die Breite und Höhe des Bilds auf 25 Prozent zu verkleinern. Mit dem Interpolationsmodus K UBISCH erzielen Sie in der Regel die besten Ergebnisse.
Bildausschnitt erstellen
Um ein Rechteck aus einem Bild auszuschneiden, aktivieren Sie in der Toolbox das Zuschneidewerkzeug (WERKZEUGEjTRANSFORMATIONENjZ USCHNEIDEN). Anschließend können Sie mit der Maus den gewünschten Bildausschnitt markieren. Die Auswahl kann nun korrigiert werden. Ein Mausklick in den markierten Bereich schneidet das Bild aus.
208
Fotos bearbeiten
Abschnitt 9.3
Helligkeit, Kontrast und Farben ändern Mit WERKZEUGEjFARBEN jHELLIGKEIT -KONTRAST gelangen Sie in einen einfachen Dialog, in dem Sie die Helligkeit und den Kontrast mit zwei Schiebereglern verändern können. Zumeist erzielen Sie mit kleinen Veränderungen das beste Ergebnis.
Helligkeit und Kontrast
Fotos nutzen oft nicht den gesamten Farbraum. Der hellste Punkt im Bild, der in Wirklichkeit weiß sein sollte, ist oft nur ein flauer Grauton. Mit WERKZEUGEjFARBEN jWERTE können Sie diesen Mangel beheben. Der W ERTE-Dialog bietet eine Menge Bearbeitungsmöglichkeiten, von denen hier nur die wichtigsten erwähnt werden:
Weißabgleich
» Mit dem Button A UTOMATISCH führen Sie einen automatischen Weißabgleich durch. Das Ergebnis ist zwar mathematisch optimal, liefert aber oft eine zu extreme Helligkeits- bzw. Farbverteilung. » Mit den drei Pipetten-Buttons können Sie jeweils einen Punkt im Bild markieren, der schwarz, in einem mittleren Grau bzw. weiß sein sollte. (Oft reicht es aus, nur einen dieser drei Punkte zu markieren.) » Im Dialogbereich QUELLWERTE können Sie die drei Dreiecke verschieben, um so den Weiß-, Grauund Schwarzpunkt zu markieren. Das darüber angezeigte Histogramm gibt an, wie viele Punkte des Bilds eine bestimmte Helligkeit haben. Üblicherweise wird der Schwarzpunkt an den Beginn und der Weißpunkt an das Ende des Histogramms verschoben. Der Graupunkt sollte in der Mitte zwischen Weiß- und Schwarzpunkt liegen. Wenn Sie den Graupunkt verschieben, wird das Bild blasser (links) bzw. farbintensiver (rechts).
Abbildung 9.3: Weißabgleich durchführen
Beachten Sie, dass ein Weißabgleich bei einer Abendaufnahme den Charakter des Bilds komplett zerstört. In solchen Fällen ist es ja durchaus gewollt und richtig, dass das Bild dunkel ist oder einen Rot- oder Orange-Stich hat (Sonnenuntergang)!
209
Kapitel 9
Gimp
Eine interessante Alternative zum Weißabgleich ist der Dialog WERKZEUGEjFARBEN jK URVEN. Darin können Sie die Zuordnung zwischen den ursprünglichen Farben und den gewünschten Farben durch Kurven steuern, von denen Sie einzelne Punkte verschieben. Wenn Sie die Sättigung oder den Farbton des Bilds verändern möchten, sollten Sie sich mit dem recht komplexen Dialog FILTERjFARBEN jFILTERPAKET anfreunden. Die eigentliche Farbveränderung erfolgt durch Buttons in den Zusatzdialogen FARBTON , SÄTTIGUNG und WERT . Schwarz-WeißBilder
Um ein Farbbild in den Graustufenmodus umzuwandeln, führen Sie einfach B ILDjMODUSjG RAUSTUFEN aus. Damit wird auch die interne Darstellung des Bilds verändert, d. h., die Darstellung von Farben ist nicht mehr möglich. Wenn Sie über das Graustufenbild nun eine rote Überschrift schreiben möchten, müssen Sie das Bild zuerst mit BILDjMODUSjG RAUSTUFEN in den Farbmodus zurückverwandeln. (Die Farbinformation wird dadurch nicht wiederhergestellt, aber Sie können nun neue Bildelemente in Farbe hinzufügen.) Wenn Sie ein Bild mit einer Grundfarbe wünschen (z. B. ein Bild mit lauter Blautönen), führen Sie WERKZEUGEjFARBEN jEINFÄRBEN aus. Im nun erscheinenden Dialog können Sie mit dem FARBTON Regler die Grundfarbe auswählen. Der Wert von 0 bis 360 bezieht sich auf eine Farbe im Farbkreis (HSV-Farbmodell).
Bild schärfen oder weichzeichnen Kein Bildverarbeitungsprogramm kann ein verwackeltes Bild retten. Mit den folgenden Operationen können Sie aber die Wahrnehmungsqualität eines Bilds spürbar verbessern. Beachten Sie, dass alle hier beschriebenen Filter immer nur für den gerade markierten Bildbereich gelten. Führen Sie gegebenenfalls vorher (Strg)+(A) aus, um das gesamte Bild zu markieren! » Schärfen: FILTERjVERBESSERN jSCHÄRFEN versucht, das Bild zu schärfen, indem es Helligkeitsveränderungen betont. Relativ gut funktioniert das bei Nachtaufnahmen. Eine mögliche Alternative ist das Kommando FILTERjVERBESSERN jNL-FILTER mit der Option K ANTENVERSTÄRKUNG. Auch der Filter V ERBESSERN jUNSCHARF MASKIEREN ist einen Versuch wert. » Weichzeichnen: Die gegenteilige Wirkung haben die diversen Kommandos FILTERjWEICH ZEICHNEN jX XX . Diese Filter mindern Helligkeitsübergänge. Das Bild wirkt dadurch weicher, aber auch etwas unschärfer. Relativ starke Effekte erzielen Sie mit dem GAUSSSCHEN WEICHZEICHNER. » Rauschen eliminieren: Geradezu spektakuläre Verbesserungen bei verrauschten Bildern erzielen Sie mit FILTERjWEICHZEICHNEN jSELEKTIVER GAUSSSCHER WEICHZEICHNER. Probieren Sie es beispielsweise mit einem Radius von 4 Pixeln und einem maximalen Deltawert von 10. Das bedeutet, dass der Weichzeichner nur dann zum Einsatz kommt, wenn der Farbunterschied nahe beieinander liegender Pixel gering ist (kleiner gleich 10). Bei starken Farbunterschieden – z. B. entlang einer Hauskante – bleibt der Weichzeichner dagegen unwirksam, weswegen die Schärfe des Bilds weniger leidet als bei anderen Weichzeichnern. (Abbildung 9.4 zeigt das Ergebnis des Weichzeichners, wobei die optische Verbesserung bedingt durch den Druck des Buchs leider nur teilweise sichtbar ist.) » Wenn Sie ein eingescanntes Bild mit Flecken haben, können Sie FILTERjVERBESSERN jFLECKEN ENTFERNEN aufrufen. Allerdings wird das Bild dadurch weicher und unschärfer. Oft ist es zweckmäßig, die Flecken zu markieren und den Filter nur auf die markierten Bereiche anzuwenden.
210
Fotos bearbeiten
Abschnitt 9.3
Abbildung 9.4: Rauschminderung mit dem selektiven Gaußschen Weichzeichner
Rote Augen entfernen Der Rote-Augen-Effekt entsteht vor allem bei Porträtaufnahmen, wenn der Blitz nahe am Objekt ist: Die Pupillen sind weit geöffnet. Deswegen wird das Blitzlicht von der durchbluteten Netzhaut rot reflektiert. Bevor Sie mit der Bearbeitung beginnen, wählen Sie den zu bearbeitenden Bereich mit der Zoom-Funktion aus (VERGRÖSSERN/VERKLEINERN in der Toolbox). Dadurch wird nicht mehr das gesamte Bild, sondern nur der Bereich rund um die Augen dargestellt. Mit dem Werkzeug E LLIPTISCHE A USWAHL (zweites Symbol in der Toolbox) markieren Sie den roten Bereich der Augen. Beim zweiten Auge drücken Sie zusätzlich (ª), um die bereits vorhandene Markierung zu ergänzen. Markieren Sie lieber ein bisschen zu viel als ein bisschen zu wenig! Wenn es beim ersten Versuch nicht klappt, lösen Sie die Markierung mit (Strg)+(ª)+(A) bzw. mit A USWAHLj N ICHTS auf und versuchen es nochmals.
Bereich markieren
Abbildung 9.5: Rote Augen entfernen
211
Kapitel 9
Tipp
Rote-AugenFilter aufrufen
Gimp
FILTERjVERBESSERN jROTE A UGEN ENTFERNEN ersetzt das Rot der Augen durch einen Grauton. Der Lichtreflex im Auge bleibt dabei erhalten. Den Schwellenwert für den Rotton, ab dem die Farbe verändert wird, müssen Sie nur in Ausnahmefällen verändern. Während der Bildbearbeitung im Zoom-Modus verlieren Sie oft das Gefühl für den Gesamteindruck des Bilds. Öffnen Sie mit ANSICHTjNEU eine zweite Ansicht des Bilds, in der das gesamte Gesicht zu sehen ist!
Hautunreinheiten entfernen Heilen-Werkzeug
Um kleinere Hautunreinheiten zu eliminieren, benutzen Sie zuerst die Zoom-Funktion, um den zu bearbeitenden Bereich zu vergrößern. Anschließend aktivieren Sie das H EILEN -Werkzeug in der Toolbox ((H), verfügbar ab Gimp 2.4) und wählen einen Pinsel aus, der etwas größer ist als das Gebiet, das Sie bearbeiten möchten. Wenn der Pinsel zu klein ist, vergrößern Sie ihn mit dem Regler SKALIEREN . Nun klicken Sie zuerst zusammen mit (Strg) auf ein Gebiet reiner Haut und dann ohne (Strg) auf die Hautunreinheit (siehe Abbildung 9.6). Fertig! Nur in hartnäckigen Fällen müssen Sie die Operation wiederholen.
Abbildung 9.6: Hautunreinheiten entfernen
Bilder beschriften Mit dem Text-Werkzeug können Sie Bilder mit Text versehen. Die Vorgehensweise ist einfach: Sie aktivieren das Werkzeug in der Toolbox, stellen die wichtigsten Parameter ein (Schriftgröße, Schriftfarbe etc.) und klicken auf das Bild. Nun erscheint der Gimp-Text-Editor, in dem Sie den Text eingeben (siehe Abbildung 9.7). Der Text erscheint gleichzeitig auch im Bild, und Sie können die Textparameter natürlich auch nachträglich verändern.
212
Fotos bearbeiten
Abschnitt 9.3
Abbildung 9.7: Bilder beschriften
Im Dialog TEXT EINSTELLUNGEN können Sie die Ausrichtung des Texts ändern (linksbündig, rechtsbündig, zentriert etc.). Wenn Sie den gesamten Text an eine andere Position verschieben möchten, müssen Sie das Werkzeug E BENEN UND A USWAHL VERSCHIEBEN aktivieren (Toolbox-Symbol Vierfachpfeil, Tastenkürzel (M)). Zum Verschieben müssen Sie direkt in den Text klicken.
Textposition ändern
Das Verschieben von Text bzw. nachträgliche Änderungen am Text sind nur möglich, weil Gimp Texte intern als eigene Ebenen speichert. (Gimp-Bilder können aus mehreren Ebenen zusammengesetzt werden, die einander überlagern. Weitere Informationen und Tipps zum Umgang mit Ebenen folgen auf Seite 227.)
Texte sind Ebenen!
Ebenen bieten also eine zusätzliche Flexibilität, können aber Probleme bei der Bearbeitung des restlichen Teils des Bilds verursachen: Alle Gimp-Kommandos gelten nämlich immer nur für die gerade aktive Ebene. Solange eine Textebene aktiv ist, kann das dahinter liegende Bild nicht bearbeitet werden. Wenn Sie das möchten, öffnen Sie mit DATEIjDIALOGEjEBENEN (im Gimp-Menü, Tastenkürzel (Strg)+(L)) den Ebenendialog und klicken die Hintergrundebene an. Wollen Sie später den Text verändern, müssen Sie entsprechend wieder die Textebene aktivieren. Beachten Sie, dass beim Speichern in einem Bitmap-Format (JPEG, PNG etc.) alle Ebenen zu einer einzigen Ebene vereint werden (nur in der Bitmap-Datei, nicht im noch laufenden Gimp). Wenn Sie den Text später nochmals bearbeiten möchten, müssen Sie die Datei unbedingt auch im GimpFormat speichern (name.xcf.gz)! Die folgenden Absätze sind ein kleiner Ausflug in die fortgeschrittenen Funktionen von Gimp. Sie zeigen, wie Sie Text nicht mit einer einheitlichen Farbe schreiben, sondern mit einer sich ändernden Textfarbe (siehe Abbildung 9.8). Ebenso könnten Sie den Text mit einem Muster hinterlegen.
Text mit Farbverlauf oder Muster
Der erste Schritt besteht darin, mit dem oben beschriebenen Textwerkzeug den Text zu verfassen und zu formatieren (Schriftart, Schriftgröße etc.). Der Textinhalt und die Formatierung sollten end-
213
Kapitel 9
Gimp
gültig sein, weil bei nachträglichen Änderungen die im Folgenden beschriebene Farbunterlegung wieder verloren geht. Als Textfarbe verwenden Sie am besten eine Farbe, die dem Hintergrund oder dem geplanten Farbverlauf ähnlich ist. Der Grund: Gimp verwendet das sogenannte Anti-Aliasing. Dabei kommen zur Darstellungsoptimierung im Randbereich des Schriftzugs weniger farbintensive Pixel zum Einsatz. Es kann passieren, dass diese Pixel bei der folgenden Bearbeitung nicht oder nur teilweise die neue Farbe annehmen.
Tipp
Alle Mal- und Zeichenwerkzeuge von Gimp wirken im gesamten markierten Bereich. Um den Schriftzug neu einzufärben, muss dieser markiert werden. Das ist in diesem Fall recht einfach, wenn man das richtige Kommando findet. Es lautet E BENEjTRANSPARENZjA USWAHL AUS A LPHAKANAL. Dazu muss die Textebene aktiv sein. Um zu zeigen, was gerade markiert ist, umgibt Gimp den markierten Bereich mit einer gestrichelten, wandernden Linie, den sogenannten marching ants. Wenn diese Linie Sie bei der Abschätzung der optischen Effekte stört, drücken Sie einfach (Strg)+(T). Die gestrichelte Linie verschwindet, und am markierten Bereich ändert sich nichts. Mit demselben Tastenkürzel können Sie die marching ants wieder einblenden. Nun wählen Sie in der Toolbox das Werkzeug MIT FARBVERLAUF FÜLLEN aus (Tastenkürzel (L)). Standardmäßig variiert der Farbverlauf von der Vorder- zur Hintergrundfarbe. Diese beiden Farben können Sie nach Belieben einstellen. Darüber hinaus gibt es eine ganze Menge vordefinierter Farbverläufe, die im gleichnamigen Dialog zur Auswahl stehen.
Abbildung 9.8: Text mit Farbverlauf versehen
Um den eingestellten Farbverlauf anzuwenden, zeichnen Sie mit der Maus eine Linie. Diese Linie gibt den Start- und Endpunkt des Farbverlaufs an. Je nachdem, wie Sie die Option W IEDERHOLUNG eingestellt haben, wird außerhalb dieses Bereichs alles mit den Start- bzw. Endfarben gefüllt, oder der Verlauf wird periodisch variiert. Experimentieren Sie einfach ein wenig mit dem Werkzeug! Für
214
Fotos bearbeiten
Abschnitt 9.3
den Schriftzug aus Abbildung 9.8 wurde der vordefinierte Verlauf B RUSHED A LUMINIUM mit Sägezahnwiederholung eingesetzt. Aus Abbildung 9.8 gehen auch der Start- und Endpunkt des Verlaufs hervor. (Die Linie vom Start- zum Endpunkt ist nicht Teil des Bilds. Sie verschwindet, sobald der Verlauf gezeichnet wird.)
Weitwinkel-Bilder entzerren Wenn Sie Fotos in einer starken Weitwinkeleinstellung aufnehmen, kann es zu einer deutlich sichtbaren perspektivischen Verzerrung kommen. In der Wirklichkeit vertikale Kanten (z. B. von Gebäuden) erscheinen im Bild geneigt. Abhilfe schafft das Werkzeug P ERSPEKTIVE VERÄNDERN ((ª)+(P)). Dabei wählen Sie die Funktionsweise R ÜCKWÄRTS/KORRIGIEREND, den Interpolationsmodus K UBISCH und die Vorschau BILD + G ITTER. Durch einen Mausklick auf das Bild wird ein Raster über das Bild gelegt. Diesen Raster können Sie mit der Maus an Ihr Bild anpassen (siehe Abbildung 9.9). Dabei kann jeder Punkt des Rasters verschoben werden, nicht nur die Ecken! Das korrekte Einstellen des Rasters erfordert meist mehrere Schritte, bei denen die Platzierung des Rasters immer weiter optimiert wird. (Vermeiden Sie es, mehrere Transformationen hintereinander durchzuführen. Mit jeder Transformation geht Bildqualität verloren!) Die Transformation lösen Sie durch den Button TRANSFORMATION aus. Das resultierende Bild müssen Sie nun beschneiden (siehe Abbildung 9.10).
Abbildung 9.9: Raster für die perspektivische Transformation einstellen
215
Kapitel 9
Gimp
Abbildung 9.10: Vor und nach der perspektivischen Entzerrung
9.4 Malwerkzeuge Wenn Sie Gimp nicht nur dazu verwenden möchten, um relativ einfache Effekte bei der Bearbeitung von Fotos zu erzielen, müssen Sie sich etwas intensiver mit den Grundfunktionen von Gimp auseinandersetzen. Dieser und die weiteren Abschnitte dieses Kapitels beschreiben die wichtigsten Grundfunktionen. Mit den Malwerkzeugen STIFT, PINSEL und A IRBRUSH können Sie sowohl ganz neue Grafiken erstellen als auch vorhandene Bilder verändern. Dabei sollte Ihnen aber immer bewusst sein, dass Gimp ein pixelorientiertes Bildverarbeitungsprogramm ist und kein vektororientiertes: Das Ergebnis einer Maloperation sind veränderte Pixel. Gimp speichert aber keinerlei Informationen über das gezeichnete Objekt; dieses kann daher nachträglich nicht mehr manipuliert werden. Erste Experimente mit den Malwerkzeugen führen Sie am besten in einem leeren, weißen Bild aus. Ihre bisherigen Ergebnisse können Sie ganz bequem mit (D) (Standardfarben), (Strg)+(A) (alles markieren) und (Strg)+(X) (ausschneiden) löschen. Zum Experimentieren mit Farben können Sie mit FILTERjRENDERjWOLKEN jPLASMA rasch ein buntes Bild erzeugen. Stift, Pinsel, Airbrush, Radierer
Die Malwerkzeuge STIFT ((N)), PINSEL ((P)) und A IRBRUSH ((A)) sind miteinander eng verwandt. Alle drei Werkzeuge verwenden als Zeichenstift die im PINSEL-Dialog eingestellte Form. Während der STIFT diese Form als Schwarz-Weiß-Muster interpretiert und daher sehr scharfe Kanten liefert, berücksichtigt der PINSEL auch die Graustufen. Mit dem AIRBRUSH kommt schließlich noch die Bearbeitungszeit ins Spiel: Je länger diese Sprühdose angewandt bzw. je öfter sie über einen Punkt bewegt wird, desto intensiver fällt das Ergebnis aus. Die Intensität pro Zeit und pro Mausbewegung kann durch Optionen gesteuert werden. Abbildung 9.11 zeigt alle drei Werkzeuge, wobei jeweils dasselbe Zeichenmuster verwendet wurde. Bei allen drei Werkzeugen können diverse zusätzliche Einstellungen durchgeführt werden. Der RADIERER ((ª)+(E)) scheint auf den ersten Blick einfach nur die inverse Funktion zum PINSEL darzustellen. Statt der Vordergrundfarbe wird eben die Hintergrundfarbe angewandt. Ein Unterschied wird sichtbar, wenn das Werkzeug in einer sogenannten schwebenden Auswahl verwendet
216
Malwerkzeuge
Abschnitt 9.4
Abbildung 9.11: Anwendungsbeispiele für Stift (oben), Pinsel und Airbrush (unten)
wird (siehe den nächsten Abschnitt): Dann wird die schwebende Auswahl um die Pinselform verkleinert. Tipp
Wenn Sie mit den vier Werkzeugen eine gerade Linie zeichnen bzw. löschen möchten, drücken Sie am Startpunkt einmal kurz die Maustaste. Dann bewegen Sie die Maus zum Zielpunkt und drücken dort ein zweites Mal kurz die Maustaste, diesmal aber in Kombination mit (ª). Mit dem Werkzeug T INTE verwandeln Sie Ihre Maus in eine kalligrafische Feder. Besonders attraktiv sind dabei die vielfältigen Gestaltungsformen der Feder.
Schreiben mit Feder und Tinte
Mit dem Werkzeug FÜLLEN ((ª)+(B)) können Sie einen farblich abgeschlossenen Bereich mit der Vordergrundfarbe, der Hintergrundfarbe oder einem im MUSTER-Dialog eingestellten Muster füllen.
Füllen mit Farben und Mustern
In der Grundeinstellung erfasst das Werkzeug innerhalb der aktuellen Markierung den zusammenhängenden Bereich aller Pixel, deren Farben um maximal 15 Werte vom Startpixel abweichen (bei einer Werteskala von 0 bis 255). Der zulässige Wertebereich kann mit SCHWELLE im Optionendialog verändert werden. Wenn Sie den gesamten markierten Bereich ausfüllen möchten, müssen Sie als Schwellenwert 255 auswählen. Das Werkzeug K LONEN (Stempel-Symbol) kennt zwei recht unterschiedliche Anwendungen, je nachdem, ob als Quelle MUSTER oder BILD angegeben wird:
Klonen ohne Gentechnik
» MUSTER: Hier funktioniert das Werkzeug so ähnlich wie der PINSEL. Der Unterschied besteht darin, dass nicht in einer Farbe, sondern mit einem Muster gemalt wird. Die Musterauswahl erfolgt im MUSTER-Dialog. Außerdem müssen Sie im PINSEL-Dialog einen Zeichenstift einstellen. » BILD: Statt eines vorgegebenen Musters verwenden Sie jetzt das aktuelle (oder ein anderes) Bild als Quelle. Dazu markieren Sie mit (Strg) und der Maustaste den Startpunkt des Quellbereichs.
217
Kapitel 9
Gimp
Anschließend können Sie mit der Maustaste Bereiche aus dem Quellbereich kopieren. In der Praxis wird dieses Tool meist dazu verwendet, Mängel im Bild (etwa Verdeckungen) zu kaschieren. Es eignet sich aber auch dazu, bequem einen Bildbereich von einem Bild in ein anderes (oder von einer Ebene in eine andere) zu kopieren. Die Option A USRICHTUNG gibt an, wie sich das Tool bei wiederholter Anwendung verhalten soll. Die Grundeinstellung lautet K EINE: Jedes Mal, nachdem beim Klonen die Maustaste losgelassen wird, beginnt das neuerliche Kopieren wieder beim Startpunkt im Muster. Die Option A USGERICHTET bewirkt hingegen, dass die relative Position zum Startpunkt erhalten bleibt. Das kopierte Gesamtmuster wird dadurch nahtlos. (Wenn Sie aus einem Bild klonen, wird die aktuelle Position des Kopierpunkts durch ein Fadenkreuz angezeigt.) Farben
Fast alle Werkzeuge, die keine Füllmuster verwenden, greifen auf die aktuelle Vorder- und/oder Hintergrundfarbe zurück. Die Grundeinstellung lautet S CHWARZ / WEISS und kann mit (D) hergestellt werden. Die beiden Farben können sehr bequem mit (X) vertauscht werden. Zur Einstellung von Vorder- und Hintergrundfarbe gibt es zahlreiche Möglichkeiten: » Per Doppelklick auf das Vorder- bzw. Hintergrundfarbfeld in der Toolbox aktivieren Sie den Standarddialog zur Farbauswahl. Es lohnt sich, mit diesem Dialog ein wenig zu experimentieren! » Mit DATEIjDIALOGEjPALETTEN (Gimp-Menü) aktivieren Sie einen Dialog, in dem einige vordefinierte Farbpaletten zur Auswahl stehen. » Falls Sie im Farbmodus INDIZIERT arbeiten (siehe den folgenden Hinweis), können Sie die tatsächlich verfügbaren Farben mit DATEIjDIALOGEjINDIZIERTE PALETTE anzeigen. » Schließlich können Sie mit der FARBPIPETTE ((O)) per Mausklick die Vorder- oder Hintergrundfarbe (mit (Strg)) aus dem vorhandenen Bild auswählen. In der Grundeinstellung arbeitet Gimp immer mit RGB-Farben (224 Farben, d. h. mit je 256 Rot-, Grün- und Blautönen). Wenn Sie GIF-Bilder bearbeiten, stehen hingegen maximal 256 Farben zur Verfügung. Zwischen dem RGB-Modus und einer limitierten Farbanzahl kann mit B ILDjMODUSjRGB und INDIZIERT umgeschaltet werden. Als dritter Modus kommt noch der G RAUSTUFEN -Modus mit 256 Grauschattierungen infrage. Der Farbmodus hat keinen Einfluss auf das Aussehen der Farbauswahldialoge. Bei den diversen Maloperationen wird automatisch die am ehesten passende Farbe verwendet. Beachten Sie auch, dass im Farbmodus INDIZIERT eine Menge Operationen (insbesondere Filter) nicht zur Verfügung stehen. Zumeist ist es daher zweckmäßig, ein Bild zuerst im RGB-Modus zu bearbeiten und es erst zum Schluss in den indizierten Farbmodus umzuwandeln.
Farbverläufe
218
Das FARBVERLAUF -Werkzeug (Tastenkürzel (L)) füllt einen zuvor markierten Bereich mit einem kontinuierlichen Übergang zwischen zwei oder mehreren Farben. Dazu wird mit der Maus inner- oder außerhalb der Markierung eine unsichtbare Linie gezeichnet. Die Farben werden im Verlauf dieser Linie angewandt, wobei für den Startpunkt (und den Bereich davor) die Vordergrundfarbe und für den Endpunkt die Hintergrundfarbe eingesetzt wird. Mit anderen Worten: Es ist entscheidend, in welche Richtung Sie die Gradationslinie zeichnen!
Malwerkzeuge
Abschnitt 9.5
FARBVERLAUF kann sinnvollerweise nur mit Markierungen verwendet werden (siehe den nächsten Abschnitt). Ohne Markierung wird das gesamte Bild erfasst, was bestenfalls zur Herstellung eines Hintergrunds dienen kann. Der Farbverlauf kann in den WERKZEUGEINSTELLUNGEN durch unzählige Optionen beeinflusst werden, von denen hier nur die wichtigsten genannt sind: » Der VERSATZ-Regler steuert, wie weich (0) oder hart die Farbübergänge aussehen sollen. » Der FARBVERLAUF -Modus gibt an, wie die Farben für den Farbübergang gemischt werden. Besonders interessant ist der Modus VG NACH TRANSPARENT, bei dem die Vordergrundfarbe ausgeblendet wird. » Der FORM-Modus gibt an, ob der Farbverlauf linear, kreisförmig (radial), sternförmig etc. aussehen soll. » WIEDERHOLUNG steuert, ob der Farbverlauf wiederholt werden soll oder nicht. Mit dem WEICHZEICHNER ((ª)+(U), Tropfen-Symbol) können Sie je nach Einstellung die Farben im Bereich des Pinsels verwischen oder verstärken (und dadurch die Kanten hervorheben). Vorsicht: Beim Weichzeichnen wird das Bild immer dunkler, die jeweils dunkelsten Farbanteile der betroffenen Pixel werden also bevorzugt.
Schärfen bzw. weichzeichnen
Wenn Sie die Schärfe in einem größeren Bildbereich verändern möchten, markieren Sie diesen Bereich und wenden dann einen WEICHZEICHNEN - oder VERBESSERN -Filter an. Mit dem Werkzeug A BWEDELN/N ACHBELICHTEN können Sie einzelne Bildteile mit einem Pinsel aufhellen oder abdunkeln. A BWEDELN eignet sich insbesondere dazu, nachträglich Glanzlichter in ein Bild einzubringen.
Abwedeln und Nachbelichten
Mit dem Werkzeug V ERSCHMIEREN ((S), Finger-Symbol) können Sie einen Bildbereich verschmieren. Die Farbe einzelner Pixel wird dazu der Durchschnittsfarbe der Pixel aus der Umgebung angeglichen. Der Schieberegler RATE gibt an, wie stark die Verschmierung sein soll. Die Standardeinstellung ist meist zu intensiv. Oft benötigen Sie auch einen größeren Pinsel, um zufriedenstellende Ergebnisse zu erzielen.
Verschmieren
Alle in diesem Abschnitt vorgestellten Operationen lassen sich durch einige Optionen noch genauer steuern. Die wichtigsten Einstellungsmöglichkeiten finden Sie im jeweiligen Werkzeugdialog, der normalerweise unterhalb der Toolbox angezeigt wird. Wenn das nicht der Fall ist, hilft ein Doppelklick auf das Toolbox-Symbol weiter. Weitere Optionen befinden sich in den P INSEL- und MUSTER-Dialogen.
Zusätzliche Optionen
» MODUS: Gibt an, auf welche Weise die bisherigen und die neuen Farben kombiniert werden sollen, z. B. durch Addition, Subtraktion, Multiplikation oder durch die Veränderung der Sättigung. Die Wirkung der Modi ist im Voraus oft nur schwer zu erraten. Am anschaulichsten sind die Modi N UR A BDUNKELN bzw. N UR A UFHELLEN . » DECKKRAFT: Gibt an, ob die Operation (100 Prozent) deckend oder transparent durchgeführt werden soll. Im zweiten Fall scheint das bisherige Bild unter dem neuen Muster durch. Die Operation kann jetzt mehrfach angewandt werden, die Intensität nimmt dabei immer mehr zu.
219
Kapitel 9
Gimp
9.5 Auswahl (Markierung) Die Anwendung von Malwerkzeugen auf das gesamte Bild ist die Ausnahme. Vielmehr sollen die meisten Operationen zumeist nur auf ganz bestimmte Teile des Bilds angewandt werden. Das Problem besteht darin, den gewünschten Bereich eines Bilds vorher möglichst exakt zu markieren. (Besonders schwierig ist das in Fotos, wenn beispielsweise eine Person oder ein Objekt vom Hintergrund getrennt werden soll.) Es gibt zwei Typen von Markierungen: die gewöhnliche und die sogenannte schwebende Auswahl. Der Unterschied wird auf Seite 224 beschrieben. Der markierte Bereich wird durch einen blinkenden Rand (marching ants) gekennzeichnet. Für die Arbeit mit Markierungen sind die in Tabelle 9.1 zusammengefassten Tastenkürzel unentbehrlich.
Tabelle 9.1: Markierungen bearbeiten
TASTENKÜRZEL
FUNKTION
(Strg)+(T)
schaltet die blinkende Kennzeichnung der Markierung aus bzw. wieder an (Toggle); die Markierung bleibt dabei erhalten.
(Strg)+(I)
invertiert die Markierung, d. h., alles, was bisher außerhalb war, ist jetzt innerhalb.
(Strg)+(A)
markiert das gesamte Bild.
(ª)+(Strg)+(A)
löst die Markierung auf.
Bereiche markieren Gimp stellt eine ganze Reihe unterschiedlicher Methoden zur Auswahl, um damit Bereiche zu markieren. Im Folgenden werden nur die wichtigsten Methoden vorgestellt. Rechtecke und Ellipsen
Rechteckige, elliptische und kreisförmige Markierungen werden mit den Werkzeugen RECHTECKIGER bzw. E LLIPTISCHER BEREICH ((R) bzw. (E)) und der Maus gezeichnet. Während der Auswahl können zusätzlich zur linken Maustaste die in Tabelle 9.2 beschriebenen Tasten gedrückt werden. Um Markierungen möglichst exakt an den Grenzen eines Objekts herzustellen, können Sie vorher Hilfslinien zeichnen. Wenn Sie die Umrandungslinie eines Recktecks oder einer Ellipse markieren möchten, können Sie entweder zwei entsprechende Objekte voneinander abziehen (siehe unten) oder das Kommando A USWAHLjRAND verwenden (siehe Seite 223).
Tabelle 9.2: Markierungsform beeinflussen
220
TASTENKÜRZEL
FUNKTION
(ª)
Quadrat bzw. ein Kreis
(Strg)
Der Startpunkt ist kein Eckpunkt, sondern der Mittelpunkt.
(ª)+(Strg)
Quadrat/Kreis um den Mittelpunkt
Auswahl (Markierung)
Oft möchten Sie die Markierung aus mehreren Teilen zusammensetzen – etwa aus einem Kreis und zwei Rechtecken. Vielleicht wollen Sie daraus noch einen Teil ausschneiden. Wenn bereits eine Markierung besteht, haben die Tasten (ª) und (Strg) am Beginn der Markierung die in Tabelle 9.3 beschriebene Bedeutung. TASTENKÜRZEL
FUNKTION
(ª)
zur Markierung hinzufügen
(Strg)
von der Markierung abziehen
(ª)+(Strg)
gemeinsame Schnittmenge aus bisheriger und neuer Markierung bilden
Abschnitt 9.5
Markierungen zusammensetzen
Tabelle 9.3: Markierungen kombinieren
Wahrscheinlich erscheint Ihnen das als Widerspruch zu Tabelle 9.2, die die Bedeutung von (ª) und (Strg) bei der Markierung von Rechtecken und Ellipsen beschrieb. Entscheidend ist aber der Zeitpunkt, wann (ª) und (Strg) gedrückt werden! Wenn Sie beispielsweise die Markierung aus Abbildung 9.12 herstellen möchten, markieren Sie zuerst das Rechteck. Anschließend drücken Sie (E), bewegen die Maus in die Mitte der unteren Linie des Rechtecks, drücken (Strg) (Subtraktion) und beginnen die Markierung. Während Sie die Ellipse zeichnen, drücken Sie zusätzlich noch (ª). (Die Tastenkombination (ª)+(Strg) bewirkt jetzt, dass ein Kreis rund um den Startpunkt markiert wird.) Die Veränderung von (ª)+(Strg) während der Markierung, d. h., während die linke Maustaste gedrückt bleibt, erfordert einige Übung, funktioniert dann aber recht gut.
Abbildung 9.12: Markierungen zusammensetzen
Tipp
Zur Wiederholung nochmals eine Überlebensregel: Wenn Sie eine schon begonnene Markierung abbrechen möchten, drücken Sie (bei noch gehaltener linker Maustaste) zusätzlich die rechte Taste, und lassen Sie dann zuerst die linke und dann die rechte Taste wieder los. Einige Stunden Übung mit Gimp – und Sie haben die Fingerfertigkeit einer Pianistin! Mit dem Werkzeug FREIE A USWAHL ((F), Lasso-Symbol) markieren Sie einfach den Bereich, den Sie mit der Maus bei gedrückter Maustaste umfahren. Wenn die Umrandung nicht geschlossen ist, verbindet Gimp die Start- und Endpunkte durch eine Linie. Da es mit der Maus ausgesprochen schwierig ist, die Umrandungslinie exakt zu zeichnen, ist das Werkzeug trotz Verbesserungen in Gimp 2.6 selten praxistauglich.
Lasso
Mit dem Werkzeug Z USAMMENHÄNGENDEN BEREICH WÄHLEN ((U), Zauberstab-Symbol) wird ein zusammenhängender Bereich ähnlichfarbiger Pixel ausgewählt, z. B. die glänzend rote Autokarosserie in einem Bild. Dazu klicken Sie einfach mit der Maus einen Startpunkt an, dessen Farbe möglichst charakteristisch für den gewünschten Bereich ist. Mit noch immer gedrückter Maustaste
Zauberstab
221
Kapitel 9
Gimp
können Sie nun die Selektionsschwelle vergrößern (Bewegung nach rechts) oder verkleinern (nach links). Eine Variante zum Zauberstab ist N ACH FARBE AUSWÄHLEN ((ª)+(O)). Der Unterschied liegt darin, dass alle ähnlichfarbigen Bereiche im Bild ausgewählt werden, unabhängig davon, ob die Bereiche aneinandergrenzen oder nicht. Magnetische Schere
Mit dem Werkzeug M AGNETISCHE SCHERE setzen Sie entlang des zu markierenden Objekts Punkte. Gimp bemüht sich, sowohl die Punkte als auch die Verbindungskurven zwischen den Punkten entlang von Kontrast- oder Farbgrenzen zu platzieren. Um den Kurvenzug zu schließen, klicken Sie den Startpunkt nochmals an. Anschließend können Sie einzelne Punkte mit der Maus verschieben oder bei Bedarf zusätzliche Punkte einfügen. Erst ein Klick in das Innere des Kurvenzugs wandelt diesen in eine Markierung um. In vielen Fällen werden Sie mit der magnetischen Schere wesentlich bessere Ergebnisse als mit dem Lasso erzielen.
Vordergrundauswahl
Das Werkzeug VORDERGRUNDAUSWAHL steht ab Gimp 2.4 zur Verfügung. Im ersten Schritt markieren Sie – ähnlich wie mit dem Lasso – ganz grob die Umrisse des Objekts. Gimp hinterlegt nun alles, was nicht markiert werden soll, mit einer farbigen Maske (standardmäßig in Blau, wahlweise aber auch in Rot oder Grün). Im zweiten Schritt malen Sie mit einem Pinsel, dessen Größe Sie schrittweise reduzieren, über (große) Teile des zu markierenden Bereichs. Mit der Option HINTERGRUND MARKIEREN können Sie alternativ auch Teile des nicht auszuwählenden Objekts übermalen. In jedem Fall sollten Sie die Objektgrenzen nicht überschreiten. Gimp versucht anhand der gekennzeichneten Teile herauszufinden, was noch zu Ihrem Objekt gehört und was nicht, und verbessert so die Auswahl. (¢) beendet schließlich die Auswahl und führt zu einer herkömmlichen Markierung.
Abbildung 9.13: Vordergrundauswahl
Dieses neuartige Verfahren wirkt noch nicht ganz ausgereift. Bei manchen Motiven funktioniert es verblüffend gut, bei anderen dagegen nur enttäuschend. Insbesondere mit dem Freistellen von Personen hatte ich wenig Glück. Weitere Informationen zu diesem neuen Auswahlverfahren finden Sie hier: http://www.siox.org/ Markierungsoptionen
222
Bei den Einstellungen der meisten oben behandelten Werkzeuge stehen die beiden folgenden Optionen zur Verfügung. Die Optionen müssen vor Beginn der Markierung eingestellt werden; eine nachträgliche Veränderung ist wirkungslos!
Auswahl (Markierung)
Abschnitt 9.5
» K ANTEN GLÄTTEN : Diese Option führt dazu, dass Grau- bzw. Farbschattierungen am Begrenzungsrand der Markierung interpoliert werden. Die markierte Form sieht deswegen glatter aus, die Kanten sind weniger scharf (siehe Abbildung 9.14). » K ANTEN AUSBLENDEN : Diese Option bewirkt, dass der Übergangsbereich zwischen dem markierten und dem nicht markierten Bereich fließend verläuft. Die Wirkung wird erst sichtbar, wenn Sie den markierten Bereich verschieben oder bearbeiten. In Abbildung 9.14 wurde ein Kreis einmal ohne K ANTENGLÄTTUNG, einmal mit dieser Funktion und ein drittes Mal mit A USBLENDEN (Radius 15) markiert und verschoben.
Abbildung 9.14: Markierung ohne Kantenglättung, mit Kantenglättung und mit Ausblenden
Wenn eine Markierung bereits hergestellt ist, bietet Gimp einige Möglichkeiten, um die Form nachträglich noch zu verändern. Die entsprechenden Kommandos befinden sich durchweg im A USWAHL-Menü.
Markierungen vergrößern bzw. verkleinern
A USWAHLjVERGRÖSSERN und -jVERKLEINERN vergrößert bzw. verkleinert die Markierung um eine beliebige Anzahl von Pixeln. Mit A USWAHLjA USBLENDEN können Sie die Markierung nachträglich mit einem Übergangsbereich umgeben (wie durch die oben beschriebene Option K ANTEN AUSBLENDEN ). Der Rand der Markierung ist nun keine scharfe Trennlinie mehr, sondern stellt einen fließenden Übergang dar. Dieser Übergangsbereich wird erst bemerkbar, wenn die Markierung bearbeitet wird, es gibt aber ansonsten kein optisches Feedback. A USWAHLjSCHÄRFEN ist eine Art Umkehrfunktion zu A USWAHLjA USBLENDEN : Eine so bearbeitete Markierung folgt exakt den Pixelgrenzen und wirkt daher scharf (aber auch pixelig). Sehr interessant ist A USWAHLjRAND: Damit wird ein Streifen innerhalb und außerhalb der bisherigen Begrenzung markiert (siehe Abbildung 9.15). Aus einer kreisförmigen Markierung wird also ein Ring. Die neue Markierung hat automatisch einen Übergangsbereich (RAND), der eine Schwäche des Tools verbergen soll: Der Rand wird nicht in jeder Richtung gleich stark aufgetragen. Einen ähnlichen Effekt wie in Abbildung 9.15 können Sie auch mit B EARBEITEN jA USWAHL NACHZIEHEN erzielen. Dieses Kommando wendet einen Zeichenstift entlang einer Markierungskurve an.
223
Kapitel 9
Gimp
Abbildung 9.15: Links die Ausgangsmarkierung, rechts die gefüllte Umrandung
Quick Mask
Die Quick-Mask-Funktion schalten Sie mit A USWAHLjSCHNELLE MASKE oder mit (ª)+(Q) ein bzw. aus. Während diese Funktion aktiv ist, werden alle Teile des Bilds, die momentan nicht markiert sind, unter einer roten Maske ausgeblendet. Alle Zeichenwerkzeuge und manche Filter verändern nun nicht das Bild, sondern das Ausmaß der Markierung bzw. der roten Maske. » Zeichenwerkzeuge wie Stift, Pinsel, das Füllwerkzeug etc. vergrößern den roten Bereich (und verkleinern damit die Markierung). » Gerade die umgekehrte Wirkung hat der Radierer: Er verkleinert den roten Bereich (und vergrößert damit die Markierung). » Manche Filter verändern den markierten Bereich. (Versuchen Sie es beispielsweise mit VERZERREN jW ELLEN .) Die wohl wichtigste Anwendung der Quick Mask besteht darin, eine vorhandene Auswahl mit Zeichenwerkzeugen zu verbessern (oder auch eine ganz neue Auswahl mit diesen Werkzeugen zu erstellen). Die Veränderung der Auswahl durch Filter dient dagegen eher künstlerischen Zwecken. Vielleicht finden Sie es irritierend, dass Stift, Pinsel etc. die Auswahl verkleinern, der Radierer die Auswahl dagegen vergrößert. Dann fällt Ihnen die Arbeit wahrscheinlich leichter, wenn Sie einfach Ihre Auswahl vor der Aktivierung der Quick Mask invertieren und nach der Deaktivierung nochmals invertieren.
Schwebende Auswahl Eine schwebende Auswahl ist der wohl verwirrendste Aspekt beim Umgang mit Markierungen. Eine schwebende Auswahl sieht auf den ersten Blick wie eine normale Auswahl aus (d. h., zur Kennzeichnung wird dieselbe blinkende Auswahllinie verwendet, die auch eine Auswahl kennzeichnet). Intern ist eine schwebende Auswahl aber eine Ebene. Daraus ergeben sich zusätzliche Möglichkeiten, aber auch einige Einschränkungen. Eine schwebende Auswahl ist eine Sonderform einer Ebene. Weitere Informationen zu Ebenen folgen ab Seite 227. Auf jeden Fall sollten Sie während der Arbeit mit einer schwebenden Auswahl den Ebenen-Dialog öffnen ((Strg)+(L) oder DIALOGEjEBENEN.)
224
Auswahl (Markierung)
Abschnitt 9.5
Die folgende Liste zählt die wichtigsten Möglichkeiten auf, wie Sie zu einer schwebenden Auswahl gelangen: » Sie verwenden eines der Markierungswerkzeuge (Rechteck, Ellipse, Lasso etc.) und verschieben anschließend die gerade durchgeführte Markierung mit der Maus. » Sie kopieren eine Markierung (BEARBEITENjKOPIEREN und EINFÜGEN ). » Sie markieren einen Bildbereich und führen A USWAHLjSCHWEBEND aus. Sobald eine schwebende Auswahl vorliegt, ergeben sich die folgenden Bearbeitungsmöglichkeiten: » Eine schwebende Auswahl lässt sich bequem innerhalb des Bilds verschieben. Dabei müssen Sie die Auswahl innerhalb des markierten Bereichs anklicken. Ein Klick innerhalb des rechteckigen Auswahlrands, aber außerhalb des markierten Bereichs führt hingegen dazu, dass die schwebende Auswahl mit dem Hintergrund vereint wird. Welche Operation Gimp ausführen wird, erkennen Sie im Voraus am Maussymbol (Vierfachpfeil oder Anker). » Der Umriss einer schwebenden Auswahl kann mit dem RADIERER verkleinert werden. Sie löschen also mit einem Zeichenstift Teile der schwebenden Auswahl. Die schwebende Auswahl wird im gelöschten Bereich durchsichtig. » Wenn im Ebenendialog ((Strg)+(L)) die Option E RHALTE TRANSPARENZ abgeschaltet wird, kann der Umriss der schwebenden Auswahl mit den Malwerkzeugen STIFT, PINSEL und A IRBRUSH vergrößert werden. (Die T RANSPARENZ-Option verhindert normalerweise, dass Maloperationen über den markierten Bereich hinaus wirken.) Maloperationen sind allerdings auf ein rechteckiges Gebiet beschränkt, das die schwebende Auswahl umgibt. Wenn Sie die schwebende Auswahl darüber hinaus vergrößern möchten, müssen Sie zuerst die entsprechende Ebene vergrößern. Dazu klicken Sie im Ebenendialog die Ebene SCHWEBENDE A USWAHL an und führen per Kontextmenü das Kommando E BENENGRÖSSE aus. Im nun erscheinenden Dialog können Sie die Ebene vergrößern. » Im Ebenendialog kann der Transparenzgrad der schwebenden Auswahl frei eingestellt werden (DECKKRAFT-Regler). Damit kann eine Markierung durchscheinend gemacht werden. » Sie können aus einer schwebenden Auswahl eine gewöhnliche Ebene machen. Ein Doppelklick im Ebenendialog und ein neuer Name reichen dazu aus. Im Vergleich zu einer gewöhnlichen Auswahl gibt es aber auch Einschränkungen: Insbesondere funktionieren die A USWAHL-Kommandos nicht (eben weil die schwebende Ebene keine Auswahl ist). Somit ist es auch unmöglich, eine schwebende Auswahl einfach mit (Strg)+(I) zu invertieren. Ebenso wenig kann eine schwebende Auswahl mit einer Quick Mask verändert werden.
Das gleichzeitige Arbeiten mit einer schwebenden Auswahl und einer Markierung ist in der Regel verwirrend. In manchen Fällen ist diese Kombination aber ein nützliches Hilfsmittel, um den Gültigkeitsbereich einer verschiebbaren schwebenden Auswahl einzuschränken.
Hinweis
Während eine schwebende Auswahl existiert, kann außerhalb eine neue Markierung begonnen werden. Die schwebende Auswahl ist dann nur im Bereich dieser Markierung sichtbar. Der Ort der Markierung bleibt aber unverändert, wenn die schwebende Auswahl verschoben wird.
225
Kapitel 9
Schwebende Auswahl auflösen
Gimp
Je nachdem, welches Werkzeug der Toolbar gerade aktiv ist, reicht ein einfacher Mausklick außerhalb der schwebenden Auswahl, um diese mit dem Hintergrund bzw. mit der gerade aktiven Ebene zu verbinden. Sie erkennen das daran, dass die Maus als Anker dargestellt wird. Alternativ können Sie auch das Kommando E BENEjVERANKERN bzw. (Strg)+(H) ausführen. Eine Rückverwandlung in eine normale Markierung ist leider nicht möglich.
Markierungen kopieren und einfügen Wie in beinahe allen Programmen kann ein markierter Bereich mit (Strg)+(C) in einen Puffer kopiert bzw. mit (Strg)+(X) ausgeschnitten werden. (Strg)+(V) fügt die Markierung wieder ein – und zwar als schwebende Auswahl. Das BEARBEITEN-Menü kennt allerdings noch einige exotischere Kommandos: IN A USWAHL EINFÜGEN ist eine Variante von E INFÜGEN . Dazu muss vor dem Einfügen eine neue Markierung erstellt werden. Durch EINFÜGEN IN A USWAHL wird der Inhalt der Zwischenablage in den markierten Bereich eingefügt und durch dessen Rand beschnitten. Wie beim normalen EINFÜGEN kann die schwebende Auswahl natürlich nach dem Kommando noch verschoben werden. BEAREITENjEINFÜGEN ALSjN EUES BILD erzeugt ein neues Bild, in das der aktuelle Inhalt der Zwischenablage eingefügt wird. Das Bild bekommt automatisch die Größe der Markierung. Mit BEARBEITENjA BLAGENjIN A BLAGE KOPIEREN bzw. ... VERSCHIEBEN können Sie der kopierten bzw. ausgeschnittenen Markierung einen Namen geben, über den diese dann später eingefügt werden kann. Der Vorteil: Sie können mehrere Bereiche im Zwischenpuffer lassen und bei Bedarf darauf zugreifen. (Diese Zwischenpuffer werden auch als Teil einer XCF-Datei gespeichert!)
Markierungen bzw. Auswahl verschieben und transformieren Es wurde bereits erwähnt, dass Sie nach der Durchführung einer Markierung (während das Markierungswerkzeug der Toolbox noch aktiv ist) die Markierung mit der Maus verschieben können. Dabei entsteht eine schwebende Auswahl. Wesentlich mehr Optionen haben Sie, wenn Sie zum Verschieben das Werkzeug EBENEN UND A USWAHLEN VERSCHIEBEN (Vierfachpfeil-Symbol, (M)) einsetzen. Nun können Sie die Option W IRKT AUF auf EBENE, A USWAHL oder PFAD einstellen: » Ebene verschieben: Wenn es eine schwebende Auswahl gibt, verschieben Sie diese Auswahl, andernfalls die aktive Ebene. (Bei einfachen Kompositionen bedeutet das, dass der gesamte Hintergrund verschoben wird. Das ist nur selten erwünscht.) » Auswahl verschieben: Damit verschieben Sie den Umriss der Auswahl (nicht ihren Inhalt!). » Pfad verschieben: Pfade bieten besondere Möglichkeiten, eine Markierung zu definieren und zu bearbeiten. Sie werden in diesem Buch allerdings nicht behandelt. Auch mit den Werkzeugen DREHEN , SKALIEREN , SCHEREN, PERSPEKTIVE VERÄNDERN und SPIEGELN können Sie wahlweise den Inhalt der aktiven Ebene bzw. der schwebenden Auswahl oder aber die Form der Markierung verändern. Achten Sie vor der Anwendung der Kommandos darauf, dass die Option WIRKT AUF richtig eingestellt ist!
226
Ebenen
Abschnitt 9.6
9.6 Ebenen Gimp-Bilder können aus mehreren Ebenen zusammengesetzt sein. Die einzelnen Ebenen können unterschiedlich groß und teilweise durchsichtig sein. Daraus ergeben sich eine Menge Bearbeitungsmöglichkeiten: Stellen Sie sich vor, Sie wollen per Fotomontage ein Aquarium nachbilden: Dazu verwenden Sie als Hintergrundebene ein Bild mit Wasser, in das Sie eventuell noch einige Luftblasen einfügen. Darüber ordnen Sie einige Ebenen mit Fischen an und ganz oben eine Ebene, die das Aquarium einrahmt. Im endgültigen Bild verdecken die Pixel der oberen Ebenen die Pixel der unteren Ebenen. Die Gesamtkomposition gelingt natürlich nur, wenn in jeder Ebene alle nicht relevanten Teile durchsichtig sind – und nicht etwa weiß! (Andernfalls würde die oberste Ebene alle anderen Ebenen verdecken.) Wahrscheinlich hat Gimp Sie bereits ungewollt mit Ebenen konfrontiert: Jedes Mal, wenn Sie Text einfügen, wenn Sie Bildteile markieren, kopieren und wieder einfügen oder wenn Sie auf eine andere Weise eine schwebende Auswahl erzeugt haben (siehe den vorigen Abschnitt), hat Gimp Ihr Bild in mehrere Ebenen zerlegt. Der große Vorteil von Ebenen besteht darin, dass jede Ebene individuell für sich verändert werden kann, ohne das restliche Bild zu beeinflussen. Generell gelten alle Gimp-Zeichenoperationen immer nur für die gerade aktive Ebene. (Dieser Aspekt stiftet oft Verwirrung, wenn nicht klar ist, dass es mehrere Ebenen gibt bzw. welche Ebene gerade aktiv ist.) Die Manipulation von Ebenen erfolgt in einem eigenen Dialog, der mit DATEIjDIALOGEjEBENEN (GimpMenü) oder einfach mit (Strg)+(L) geöffnet wird. Einige Ebenenoperationen können direkt mit den Buttons am unteren Ende des Dialogs ausgeführt werden, für die restlichen Kommandos gibt es ein Kontextmenü. Alle in diesem Abschnitt angegebenen Kommandos beziehen sich auf dieses Kontextmenü! Einige Ebenenkommandos können aber auch über das E BENEN-Menü des Bildfensters ausgeführt werden.
Ebenendialog
Abbildung 9.16 zeigt den Ebenendialog zusammen mit einer wenig originellen Fotocollage, die aus einem Farbverlauf als Hintergrund, einem Beschriftungstext und drei elliptischen Fotos besteht. Die Fotos wurden aus anderen Bilddateien ausgeschnitten, mit (Strg)+(C) kopiert und mit (Strg)+(V) in die Collage eingefügt. Dabei müssen Sie zwei Dinge beachten: Vor dem Einfügen müssen Sie die Hintergrundebene aktivieren, und danach müssen Sie der eingefügten Ebene einen Namen geben (hier Bild 1 bis Bild 3). Im Ebenendialog können Sie auch neue, leere Ebenen einfügen. Gimp fragt Sie, ob die Ebene durchsichtig, weiß oder mit der aktuellen Hintergrundfarbe gefüllt sein soll. Im Regelfall ist T RANSPARENT die beste Entscheidung.
Leere Ebenen einfügen
Durch Anklicken des Augensymbols im Ebenendialog können Sie entscheiden, welche Ebene im Bildfenster sichtbar sein soll. Wenn Sie nur eine einzige Ebene sehen möchten, klicken Sie das Augensymbol mit (ª) und der Maustaste an – damit werden alle anderen Ebenen unsichtbar.
Sichtbarkeit von Ebenen
Ebenen können im Ebenendialog durch die Pfeil-Buttons nach oben bzw. nach unten verschoben werden. Die oberste (sichtbare) Ebene hat Vorrang. Nichttransparente Teile dieser Ebene verdecken alle darunter liegenden Ebenen.
Ebenenhierarchie
227
Kapitel 9
Gimp
Abbildung 9.16: Erste Experimente mit Ebenen
Ebenen bearbeiten
Unabhängig von der Sichtbarkeit können Sie immer nur eine Ebene bearbeiten (verändern). Diese Ebene wählen Sie im Ebenendialog durch einen einfachen Mausklick aus. Die Ebene wird dort durch einen blauen Balken hervorgehoben. (In Abbildung 9.16 sind zwar alle Ebenen sichtbar, aber nur die Ebene Bild 1 ist aktiv.)
Achtung
Um erste Experimente mit Ebenen zu machen, erzeugen Sie einfach ein paar neue Ebenen. Klicken Sie die Ebenen der Reihe nach an, und malen Sie irgendwelche Muster darauf. Dann verschieben Sie die Ebenen im Ebenendialog nach oben bzw. unten, verändern den Deckungsgrad (DECKKRAFT ) einzelner Ebenen etc. Ganz egal, welche Ebenen gerade angezeigt werden: Sämtliche Bearbeitungsschritte gelten nur für die gerade aktive Ebene – selbst wenn diese gerade unsichtbar ist. Es wird Ihnen beinahe unweigerlich passieren, dass Sie zwar die Sichtbarkeit der Ebenen verändern, dann aber eine noch aktive, unsichtbare Ebene bearbeiten. Achten Sie also darauf, dass die richtige Ebene markiert ist! Markierungen sind von Ebenen unabhängig. Sie können in einer Ebene etwas markieren, dann eine andere Ebene aktivieren und die Markierung dort weiterverwenden. Ebenen (um)benennen
Um einer Ebene einen neuen Namen zu geben, reicht ein Doppelklick auf die Ebene im Ebenendialog. (Auf diese Weise können Sie übrigens auch eine schwebende Auswahl in eine normale Ebene umwandeln – geben Sie ihr einfach einen neuen Namen.)
Ebenen vereinen
Es gibt verschiedene Kommandos in den Menüs BILD und EBENE, mit denen mehrere Ebenen zu einer neuen Ebene kombiniert werden: » EBENE VERANKERN vereint eine schwebende Auswahl mit der zuletzt aktiven Ebene. » N ACH UNTEN VEREINEN vereint die ausgewählte Ebene mit der darunter liegenden Ebene. » SICHTBARE EBENEN VEREINEN vereint alle sichtbaren Ebenen (also alle Ebenen, bei denen das Augen-Icon angezeigt wird).
228
Ebenen
Abschnitt 9.6
» BILD ZUSAMMENFÜGEN vereint wirklich alle Ebenen (egal ob sie sichtbar oder unsichtbar sind).
Die Option SPERRE im Ebenendialog gibt an, ob der Alphakanal (also die Transparenz) der Ebene bei Mal- und Filteroperationen erhalten bleiben soll. Das ist in vielen Fällen zweckmäßig.
Tipp
Speichern Sie die Datei in einer XCF-Backup-Datei, bevor Sie Ebenen vereinen! Immer wieder ergibt sich die Notwendigkeit, ein vollendet geglaubtes Bild doch noch einmal verändern zu müssen. Wenn Sie dann keine Ebeneninformationen mehr besitzen, sind viele Veränderungen fast unmöglich.
Transparenz
Am einfachsten ist dies anhand eines Beispiels zu verstehen: Eine Ebene enthält Text, der Rest ist durchsichtig. Nun möchten Sie die Textfarbe ändern. Dazu wenden Sie das Werkzeug FARBVERLAUF auf die Ebene an. Wenn die Option S PERRE aktiv ist, werden nur die Pixel der Ebene geändert, die bisher den Text enthielten. Wenn die Option dagegen nicht aktiv ist, wird die gesamte Ebene mit dem Farbverlauf ausgefüllt, d. h., der Text verschwindet. Der durchsichtige Teil einer Ebene bzw. des ganzen Bilds wird durch ein graues Schachbrettmuster angedeutet. Sowohl der Grauton als auch die Größe dieses Schachbrettmusters kann mit DATEIjEINSTELLUNGEN jA NZEIGE (Gimp-Menü) verändert werden. Die Größe der im Ebenendialog angezeigten Vorschau-Icons können Sie ebenfalls verändern (Dialogblatt O BERFLÄCHE). Damit geänderte Einstellungen wirksam werden, müssen Sie den Ebenendialog schließen und neu öffnen. Die unterste Ebene Hintergrund nimmt eine Sonderstellung ein. Zum einen kann kein Teil der Ebene durch Ausschneiden unsichtbar gemacht werden (es sei denn, die Ebene wurde schon bei DATEIjN EU als transparent gekennzeichnet). Zum anderen muss die Hintergrundebene immer die unterste Ebene sein. Beide Einschränkungen können ganz einfach überwunden werden, wenn Sie ALPHAKANAL HINZUFÜGEN ausführen und damit auch der Hintergrundebene Transparenzinformationen geben.
Bild- und Ebenengröße In Gimp sind die Größe der Ebenen und die Größe des Bilds voneinander unabhängig. Das spart Speicherplatz, weil es nicht notwendig ist, dass jede Ebene so groß wie das gesamte Bild ist. Die Größe einer Ebene kann durch drei Kommandos verändert werden: » EBENEjEBENENGRÖSSE ermöglicht es, die Ebene zu vergrößern oder zu verkleinern. Das Kommando lässt den Ebeneninhalt bei einer Vergrößerung unverändert. Bei einer Verkleinerung wird der Inhalt entsprechend beschnitten. » EBENEjEBENE AUF BILDGRÖSSE passt die Größe der aktuellen Ebene der Bildgröße an. » EBENEjEBENE SKALIEREN verkleinert bzw. vergrößert dagegen den Bildinhalt. Analoge Kommandos gibt es auch für das gesamte Bild: BILDjLEINWANDGRÖSSE und BILDjSKALIEREN . B ILDjA UTOMATISCH ZUSCHNEIDEN entfernt den weißen Rand an den Rändern eines Bilds.
229
Kapitel 9
Gimp
Ebenen verschieben
Ebenen können mit dem V ERSCHIEBEN-Werkzeug relativ zum Gesamtbild verschoben werden. Die Ebene muss dazu vorher im Ebenen-Dialog aktiviert werden! Eine Ebene darf aus dem Rahmen des Gesamtbilds hinaus bewegt werden. Die außerhalb befindlichen Informationen gehen dabei nicht verloren, werden aber nicht angezeigt. (Dazu müssten Sie das Bild vergrößern – siehe oben.) Oft gehören mehrere Ebenen inhaltlich zusammen und sollen daher gemeinsam verschoben werden. Das V ERSCHIEBEN-Werkzeug wirkt aber immer nur auf die gerade aktuelle Ebene. Die Lösung des Problems besteht darin, in allen betroffenen Ebenen das Verkettungssymbol (neben dem Augensymbol) anzuklicken. Sobald eine mit diesem Symbol gekennzeichnete Ebene verschoben wird, werden alle anderen so markierten Ebenen mit verschoben.
230
10. Audio und Video Dieses Kapitel erklärt (zumindest, so weit wie es der Gesetzgeber zulässt), wie Sie unter Linux Audio-Dateien anhören, CDs auslesen (rippen), MP3-Tags einstellen, Video-DVDs und -Dateien abspielen, Video-Dateien schneiden und recodieren und via DVB-T fernsehen. Dabei setze ich voraus, dass das Audio- und Video-System Ihrer Distribution grundsätzlich funktioniert (siehe Seite 504 sowie 597). Im Detail gehe ich auf die folgenden Programme ein: » Audio-Player: Amarok, Banshee, Rhythmbox » Multimedia-Player: Dragon Player, Kaffeine, MPlayer, Totem, VLC, xine » MP3- und Audio-Tools: Audacity, EasyTAG, gtkPod, Sound Juicer » Video-Schnitt: OpenShot, PiTiVi » DVD-Tools: DVD95, HandBrake, K9Copy, OGMrip » Fernsehen: dvb-apps, Miro Zum Thema Multimedia ließe sich natürlich noch viel mehr schreiben, durchaus auch ein ganzes Buch! So viel Platz ist hier aber nicht. Der Grundlagenabschnitt, der dieses Kapitel einleitet, gibt Ihnen jedoch zumindest einen Überblick über eine Menge weiterer Multimedia-Programme, die Ihnen unter Linux zur Verfügung stehen.
10.1 Multimedia-Grundlagen Encoder und Decoder Encoder wandeln unkomprimierte Audio- oder Video-Daten in ein komprimiertes Format um (z. B. MP3, Ogg oder MPEG-4). Die Aufgabe des Encoders ist es, die Daten einerseits möglichst stark zu komprimieren, andererseits aber für geringe Qualitätsverluste zu sorgen. Das ist ein rechenintensiver und daher verhältnismäßig langsamer Vorgang.
Encoder
Decoder sind für die umgekehrte Richtung zuständig, also für die Umwandlung der komprimierten Daten in ein Format, das an Soundkarten bzw. die Grafikkarte weitergegeben werden kann. Jeder Audio- oder Video-Player muss daher auf Decoder für das jeweilige Format zurückgreifen. Decoder benötigen Sie aber auch, wenn Sie komprimierte Dateien in ein unkomprimiertes Format zurückverwandeln möchten (siehe auch Seite 371). Das kann beispielsweise dann sinnvoll sein, wenn Sie eine herkömmliche Audio-CD erzeugen möchten. (Dazu benötigen Sie unkomprimierte WAV-Dateien.)
Decoder
Kapitel 10
Audio und Video
Manchmal besteht auch der Wunsch, Audio- oder Video-Dateien von einem Format in ein anderes umzuwandeln oder stärker zu komprimieren. Dieser Vorgang wird üblicherweise als Recodieren (Recoding) bezeichnet. Codecs
Das dem Encoder/Decoder zugrunde liegende Verfahren wird als Codec bezeichnet. Umgangssprachlich meint Codec aber zumeist die Bibliothek bzw. das Modul/Plugin zur (De-)Codierung eines bestimmten Audio/Video-Formats. Es existieren zahllose Codecs, wobei für Windows und Mac OS X der Decoder-Teil zumeist kostenlos verfügbar ist. (Codec-Entwickler wollen in der Regel einen möglichst hohen Marktanteil ihres Formats erreichen.) Etwas schwieriger ist die Situation unter Linux. Im Rahmen des FFmpeg-Projekts gibt es zu vielen populären Codecs Open-Source-Implementierungen für den Decoder und zumeist auch für den Encoder. Allerdings ist der rechtliche Status dieser Programme bzw. Bibliotheken teilweise zweifelhaft, weil viele Codecs durch Patente und Lizenzen geschützt sind. Mangels besserer Alternativen greifen dennoch die meisten Audio- und Video-Player auf die Bibliotheken des FFmpegProjekts zurück (z. B. MPlayer, VLC, xine sowie auf GStreamer aufbauende Gnome-Programme). Die andere Variante besteht darin, die für Windows gedachten Codecs unter Linux einzusetzen. Dazu sind viele der für Linux verfügbaren Audio- bzw. Video-Player in der Lage. (Eine Zwischenschicht macht die für Windows gedachten Funktionen auch für Linux nutzbar.) Allerdings kommt diese Variante nur für Linux-Rechner mit x86-kompatiblen Prozessoren infrage. Die Codecs sind üblicherweise in Paketen gesammelt, die je nach Distribution z. B. w32codecs, w64codecs oder win32codecs heißen. Aber natürlich gibt es auch hier rechtliche Bedenken: Obwohl die Codecs für Windows kostenlos verfügbar sind, ist eine freie Weitergabe bzw. die Nutzung unter Linux zumeist nicht vorgesehen. Aufgrund der unklaren rechtlichen Situation (die auch von der nationalen Gesetzgebung abhängt), sind im Standardlieferumfang der meisten Linux-Distributionen nur relativ wenige Codecs enthalten. Bei vielen Distributionen ist anfänglich nicht einmal eine MP3-Wiedergabe möglich. Abhilfe schaffen in der Regel inoffizielle Paketquellen (siehe Seite 237). Ein anderer Ausweg aus dem rechtlichen Dilemma sind offiziell lizenzierte Codecs, die die Firma Fluendo zum (natürlich kostenpflichtigen) Download anbietet. Die Pakete sind allerdings nur für das GStreamer-Audio-System geeignet und damit inkompatibel zu vielen in diesem Kapitel vorgestellten Programmen. http://www.fluendo.com/
Streaming
Um live via Internet Radio zu hören oder fernzusehen, stellen viele Radio- und TV-Sender einen kontinuierlichen Datenstrom zur Verfügung. Damit kann die Wiedergabe sofort nach dem Start der Übertragung beginnen. Ein herkömmlicher Download ist nicht vorgesehen (oft auch aus Lizenzgründen). Manche Audio- und Video-Player bieten aber die Möglichkeit, den gerade abgespielten Datenstrom mitzuschneiden (also in eine Datei zu übertragen). YouTube, der zurzeit sicherlich populärste Video-Anbieter, setzt übrigens nicht auf Streaming, sondern bietet die Videos wahlweise in Form von Flash-Dateien oder als HTML5-Audio-Dateien an. Das Abspielen von YouTube-Videos setzt also entweder einen Webbrowser mit Flash-Plugin voraus (siehe Seite 156) oder einen HTML5-kompatiblen Browser samt der erforderlichen Codecs (siehe Seite 135).
232
Multimedia-Grundlagen
Abschnitt 10.1
Wenn Sie selbst Streaming anbieten möchten, z. B. um diverse elektronische Geräte in Ihrem Haushalt mit Audio- oder Video-Streams zu versorgen, können Sie dazu unter anderen ffserver (Teil des FFmpeg-Projekts), Icecast (nur Audio), SHOUTcast oder VLC einsetzen.
Verschlüsselung, CSS, DRM Nach der massenhaften Verbreitung von MP3-Dateien durch diverse Tauschbörsen wollte die Multimedia-Industrie ein vergleichbares Desaster im Video-Bereich vermeiden. Deswegen sind nahezu alle Video-DVDs durch das CSS (Content Scrambling System) verschlüsselt. Der dadurch erreichte Schutz hat sich freilich als gering erwiesen. Die Verschlüsselung ist ziemlich primitiv und wurde rasch geknackt. (Details dazu können Sie in der Wikipedia nachlesen.)
CSS
Weit mehr Mühe als mit dem Verschlüsselungsalgorithmus hat sich die Medienindustrie gegeben, um jegliche Open-Source-Techniken zur Entschlüsselung zu kriminalisieren. Aus diesem Grund ist der Einsatz einer Entschlüsselungsbibliothek in vielen Ländern verboten. Im Mai 2007 hat ein finnisches Gericht in erster Instanz CSS als »unwirksam« klassifiziert und damit die Umgehung von CSS erlaubt. So weit sind wir hierzulande leider noch nicht: In Deutschland ist es aufgrund des Urheberrechtsgesetzes sogar verboten, die Installation einer Bibliothek zur CSSEntschlüsselung zu beschreiben. Auch wenn es im Internet unzählige Websites mit entsprechenden Anleitungen gibt, darf ich diese Informationen hier weder wiedergeben noch einen entsprechenden Link angeben. (Die Grenzen der Pressefreiheit sind enger, als man denkt.) Damit Sie mich richtig verstehen: Es geht hier nicht um illegales Kopieren! Ich darf Ihnen nicht einmal erklären, wie Sie Ihre gerade in einem Geschäft erworbene DVD unter Linux ansehen können – etwas, was unter Windows eine Selbstverständlichkeit ist. Sie sehen schon, dem Video-Genuss unter Linux stehen weniger technische als vielmehr rechtliche Probleme im Weg. Den meisten Linux-Freaks wird es mit der Hilfe von Google dennoch gelingen, ihr System zufriedenstellend zu konfigurieren. Für Einsteiger ist es aber praktikabler, einen billigen DVD-Player an den Fernseher oder an einen geeigneten Computer-Monitor anzuschließen. Vielleicht verzichten Sie auch auf den Kauf der einen oder anderen DVD und lesen stattdessen wieder mal ein Buch. CSS war freilich nur der Anfang: Blu-Ray-Discs sehen wesentlich bessere Schutzmechanismen vor, die zum Teil direkt in der Hardware implementiert werden müssen (also beispielsweise in der Grafikkarte). Zwar wurden auch diese Schutzmaßnahmen bereits geknackt, die Vorgehensweise ist aber komplizierter geworden. Generell unternimmt die Medienindustrie momentan alles, um das Abspielen bzw. Auslesen von Video-Datenträgern am Computer zu erschweren. Der einzige Trost für Linux-Freunde besteht darin, dass mittlerweile auch Windows-Anwender zunehmend Probleme haben, eine Blu-Ray-Disc einfach anzusehen. Selbst die eigentlich sehr multimedia-begeisterte Firma Apple macht aus diesen Gründen bisher einen Bogen rund um Blu-Ray.
Blu-Ray
DRM steht für Digital Rights Management. Damit wird eine Audio- oder Video-Datei durch technische Verfahren an eine bestimmte Hardware gebunden. Die Datei kann zwar mühelos kopiert, auf einem anderen Rechner aber nicht abgespielt werden. Lange Zeit waren alle Downloads von Apples iTunes-Shop durch DRM geschützt. Allerdings hat sich hier in den letzten Jahren eine Kursände-
DRM
233
Kapitel 10
Audio und Video
rung abgezeichnet: Digitale Musik wird zunehmend DRM-frei verkauft – nicht zuletzt aufgrund des Drucks, den Apple auf die Musikindustrie gemacht hat. Tot ist DRM aber leider noch lange nicht: Obwohl es bei Musik nicht funktioniert hat, versuchen Medienanbieter nun Videos, eBooks etc. DRM-geschützt zu verkaufen. Linux-Anwender sind von der legalen Nutzung DRM-geschützter Medien nahezu vollständig ausgeschlossen, und eine Besserung dieser Situation ist nicht in Sicht. Kaufen Sie nach Möglichkeit nur DRM-freie Musik bzw. Videos!
Audio- und Video-Formate Es existieren unzählige Audio- und Video-Formate. Dieser Abschnitt macht gar nicht erst den Versuch, diese Formate vollständig aufzuzählen bzw. zu beschreiben. Vielmehr fasst er einige Linuxspezifische Informationen zu häufig eingesetzten Formaten zusammen. Einen guten Überblick über populäre Audio- und Video-Codecs gibt der folgende Wikipedia-Artikel: http://de.wikipedia.org/wiki/Codec Alle im Folgenden aufgezählten Formate werden in der einen oder anderen Form von Linux unterstützt. Allerdings gibt es vielfach rechtliche Probleme (meist mit Patenten), die verhindern, dass die Codecs offiziell in eine Distribution integriert werden können (siehe auch Seite 237). WAV
WAV ist ein von Microsoft definiertes, sehr einfaches Audio-Format ohne Komprimierung. Die resultierenden Dateien sind frei von Qualitätsverlusten, aber leider riesig. WAV-Dateien können unter Linux problemlos erzeugt und abgespielt werden, es gibt weder Lizenz- noch Patentprobleme.
MP3
MP3 steht für MPEG-1, Audio Layer 3, wobei MPEG wiederum eine Abkürzung für Moving Pictures Experts Group ist. MP3 ist das bei Weitem populärste Dateiformat zur Komprimierung von AudioDaten. Für Linux existieren diverse MP3-Decoder, sowohl in Form eigenständiger Kommandos oder Programme (mpg123) als auch als Bibliotheken. Bei MP3-Encodern zum Erzeugen von MP3-Dateien ist die Auswahl kleiner, in der Praxis kommt eigentlich nur noch lame zum Einsatz. Obwohl das MP3-Verfahren überwiegend im Fraunhofer Institut entwickelt wurde, gibt es mehrere Firmen, die über MP3-Patente verfügen (unter anderen Alcatel, Sisvel und Thomson, das die Fraunhofer-Patente verwaltet). Das bedeutet, dass MP3-Encoder lizenziert werden müssen – selbst dann, wenn sie kostenlos weitergegeben werden. Aus diesem Grund gibt es kaum noch eine LinuxDistribution, die MP3-Encoder direkt mitliefert. Auch im Internet werden MP3-Encoder überwiegend nur noch von Websites in solchen Ländern zum Download angeboten, wo die MP3-Patente nicht gelten. Etwas besser sieht die Lage bei MP3-Decodern (MP3-Playern) aus: Zwar ist auch diese Technik patentiert, das Fraunhofer Institut und die Firma Thomson haben aber zum Ausdruck gebracht, dass Open-Source-Player bis auf Weiteres ohne Lizenz eingesetzt werden können: http://mp3licensing.com/
234
Multimedia-Grundlagen
ID3-Tags sind Zusatzinformationen, die innerhalb der MP3-Datei gespeichert werden. Sie können unter anderem die folgenden Informationen umfassen: Titel, Interpret, Albumname, Komponist, ein Bild des CD-Covers etc. Es gibt zwei gängige Standards zur Speicherung der ID3-Informationen: ID3v1 und ID3v2 mit vielen zusätzlichen Textfeldern und Erweiterungsmöglichkeiten. Alle AudioPlayer werten ID3-Tags aus, wobei die meisten Player kompatibel zu beiden Standards sind.
Abschnitt 10.1
ID3-Tags
Die Informationen für die ID3-Tags werden in der Regel bereits beim Auslesen (Rippen) von Audio-Tracks ermittelt und gespeichert. Außerdem existieren zahllose Kommandos und Benutzeroberflächen, um die ID3-Informationen nachträglich zu vervollständigen, zu korrigieren bzw. von ID3v1 auf ID3v2 umzustellen (suchen Sie in Ihrem Paketmanager nach id3). Besonders komfortabel ist das Gnome-Programm EasyTAG, populäre Alternativen sind Ex Falso oder Kid3. Auch manche Audio-Player sind in der Lage, ID3-Tags zu verändern, beispielsweise Amarok. Zur Suche nach CD-Cover-Dateien können Sie CoverFinder einsetzen. Zwar helfen auch AudioPlayer wie Amarok oder Rhythmbox bei der Cover-Suche, diese Programme integrieren die Cover aber in eine interne Datenbank. Ogg Vorbis ist die Open-Source-Alternative zum MP3-Format. Ogg Vorbis bringt einen neuen AudioDatentyp (Dateikennung .ogg) samt der Software zum Encodieren und Decodieren mit sich. Ogg Vorbis ist als Reaktion auf die Patent- und Lizenzschwierigkeiten mit dem MP3-Format entwickelt worden. Die Audio-Qualität ist so gut wie die von MP3. Das Ogg-Format unterstützt zwar keine ID3-Tags; Titel- und Meta-Informationen können aber in den Vorbis-Tags gespeichert werden. Detaillierte Informationen finden Sie unter:
Ogg Vorbis
http://www.vorbis.com/ Leider hat sich das Ogg-Vorbis-Format bisher nicht durchsetzen können. Im Internet werden Sie nur selten Ogg-Musikdateien finden, und auch Ogg-kompatible Audio-Player sind Mangelware. Apples iPod kann beispielsweise nichts mit Ogg-Dateien anfangen. Deswegen ist das Ogg-Format eigentlich nur dann eine Option, wenn Sie Audio-Dateien nur am lokalen Computer anhören möchten, nicht aber auf externen Playern. Windows Media Audio (WMA) ist ein weiterer, von Microsoft entwickelter Audio-Codec mit DRMUnterstützung. Der Codec ist unter dem Namen VC-1 standardisiert und steht auch als OpenSource-Implementierung zur Verfügung (z. B. für den MPlayer bzw. im Rahmen der ffmpeg/libavcodec0d-Pakete).
WMA
Advanced Audio Coding (AAC) ist eine Weiterentwicklung des MP3-Verfahrens, das im MPEG-2Standard spezifiziert wird und ebenfalls DRM-Unterstützung bietet. AAC ist weit verbreitet und kommt unter anderem bei fast allen Audio-Dateien von Apple iTunes zum Einsatz. Mit faac/faad bzw. libfacc/libfaad existieren AAC-Encoder und -Decoder für Linux, die allerdings nur DRM-freie AAC-Dateien erzeugen bzw. verarbeiten können.
AAC
ATSC A/52 oder kurz AC-3 ist ein von Dolby Digital entwickeltes Mehrkanal-Audio-Format, das unter anderem für die Tonspur der meisten DVDs zum Einsatz kommt. Mit liba52 existiert ein OpenSource-Decoder.
ATSC A/52 und AC-3
235
Kapitel 10
Audio und Video
Real Audio
Die Firma RealNetworks hat eine Reihe kommerzieller Audio- und Video-Formate entwickelt, die in Konkurrenz zu den Windows-Media-Formaten stehen. Während Sie in der Praxis nur selten auf Real-Video-Daten stoßen werden, genießen die Real-Audio-Formate noch eine relativ hohe Popularität, insbesondere bei Radiosendern. Real-Audio-Dateien und -Streams können Sie wahlweise mit dem kostenlosen RealPlayer oder mit den meisten Open-Source-Multimedia-Playern anhören (siehe Seite 161).
MPEG-1, -2 und -4
MPEG-1, -2 und -4 definieren diverse Formate zur Komprimierung von Audio- und Video-Daten. Wichtige Teile von MPEG-4 sind gleich in mehreren alternativen Codecs implementiert, die alle MPEG-4-kompatibel sind. Dazu zählen XviD und WebM (beide Open Source), DivX und H264.
WMV
Unter dem Namen Windows Media Video (WMV) hat auch Microsoft eigene Video-Codecs entwickelt. Die WMV-Versionen 1 bis 3 (oft auch WMV7 bis -9 genannt, weil sie zusammen mit dem Windows Media Player 7 bis 9 ausgeliefert wurden) bieten ähnliche Eigenschaften wie MPEG-4, unterstützen aber zusätzlich DRM.
Theora
Theora ist das Video-Gegenstück zu Ogg-Vorbis. Auch der Theora-Codec bietet ähnliche Eigenschaften wie MPEG-4, basiert aber vollständig auf Open-Source-Code und ist damit frei verfügbar. Der Codec wird unter anderem vom Wikimedia-Projekt eingesetzt. Firefox 3.5 kann ohne Installation irgendwelcher Plugins Theora-Videos abspielen. http://www.theora.org/ Wenn Sie selbst Theora-Videos erstellen möchten, um Arbeitsabläufe am Computer zu dokumentieren (sogenannte Screencasts), können Sie dazu beispielsweise das Gnome-Programm Istanbul einsetzen: http://live.gnome.org/Istanbul
WebM
Im Zuge der zuletzt rasanten Entwicklung an HTML5 bestand für die Browser-Entwickler die Notwendigkeit, Audio- und Video-Codecs in ihre Webbrowser zu integrieren. Während Microsoft und Apple auf proprietäre Codecs setzen (H264), kommt H264 für Open-Source-Software nicht infrage. Die Codecs Ogg und Theora wären eine Alternative, sind aber zu wenig verbreitet. Diesen gordischen Konten durchschlug Google, indem es den Codec-Entwickler On2 aufkaufte und den von dieser Firma entwickelten MPEG-4-Codec VP8 unter dem neuen Namen WebM als Open-SourceCode freigab. Voraussichtlich werden in Zukunft die meisten Webbrowser WebM direkt unterstützen oder zumindest dazu kompatibel sein (Internet Explorer 9). Die einzige wichtige Ausnahme ist Apples Webbrowser Safari, der zurzeit ausschließlich H264 versteht.
Video-Container Ein Film besteht aus mehreren Komponenten, die intern voneinander getrennt sind: Zum eigentlichen Video (ohne Ton) kommen die Audio-Kanäle hinzu (oft in mehreren Sprachen, in Stereo und/oder in Mehrkanaltechnik wie Dolby Surround), bisweilen auch Untertitel (ebenfalls in mehreren Sprachen) und Metadaten (z. B. das DVD-Menü). Auf einer DVD liegen diese Komponenten in einzelnen Dateien vor. Soll ein Film aber in einer Datei verpackt werden, ist ein Container-Format erforderlich.
236
Multimedia-Grundlagen
Abschnitt 10.1
Das populärste derartige Format ist AVI (Audio/Video Interleave): Sie kennen das Format sicher von Ihrer Digitalkamera, die selbst aufgenommene Videos so verpackt. Allerdings ist das AVI-Format relativ alt und mit vielen Einschränkungen verbunden. Beispielsweise können in AVI-Dateien keine Untertitel verpackt werden (bzw. nur mit Tricks, die aber inkompatibel zu den meisten Playern sind). Ebenfalls sehr weit verbreitet ist das von Apple definierte Container-Format QuickTime (QT oder MOV).
AVI, MOV und QT
In den letzten Jahren wurden zudem einige weitere Container-Formate entwickelt: Matroska (MKV), MP4 und OggMedia (OGM). Der größte Nachteil dieser Formate besteht darin, dass derartige Dateien in der Regel nur am Computer abgespielt werden können, nicht aber auf DVD-Playern (schon gar nicht auf älteren Modellen). Dafür bieten diese Container-Formate eine Menge zusätzlicher Möglichkeiten. Falls Sie die Wahl haben, sollten Sie das MKV-Format vorziehen, das momentan die meisten Funktionen bietet und sich bei video-begeisterten PC-Anwendern als eine Art inoffizieller Standard etabliert hat.
MKV, MP4 und OGM
Hinweis
Um es nochmals klarzustellen: Die hier vorgestellten Formate beschreiben lediglich den Container. Aus den Dateikennung *.avi *.mkv, *.mp4, *.mov, *.ogm bzw. *.qt geht nicht hervor, welche Audio- und Video-Codecs intern zum Einsatz kommen. Jedes Container-Format unterstützt diverse Codecs. Je nachdem, welche Codecs auf Ihrem Rechner installiert sind, kann es daher sein, dass Ihr Video-Player eine AVI-Datei abspielen kann, eine andere aber nicht.
Rechtliche Situation, Zusatzpakete Ich habe nun bereits mehrfach erwähnt, dass je nach Ort, Gesetzgebung und der Reichweite bzw. Gültigkeit von Patenten eine standardmäßige Auslieferung diverser Codecs und EntschlüsselungsSoftware unmöglich ist. Da Linux-Distributionen international heruntergeladen werden, müssen sie dem kleinsten gemeinsamen Nenner entsprechen. Zu vielen Distributionen gibt es aber mehr oder weniger inoffizielle Paketquellen, in denen solche Pakete gesammelt sind. Sie müssen diese Paketquellen einrichten und können die gewünschten Pakete dann selbst herunterladen. Auf den Websites dieser Paketquellen werden Sie zumeist den Hinweis lesen, dass Sie sich vor dem Download selbst vergewissern müssen, dass die Verwendung der so zur Verfügung gestellten Software in Ihrem Land zulässig ist. Weitere Informationen fassen die im Folgenden aufgezählten Websites zusammen. Teilweise finden Sie auch in den Distributionskapiteln ab Seite 1053 konkrete Installationstipps. Debian: Fedora: openSUSE: Ubuntu:
http://debian-multimedia.org/ http://fedoraproject.org/wiki/Multimedia, http://rpmfusion.org/ und http://rpm.livna.org/ http://en.opensuse.org/Restricted_formats, http://packman.links2linux.de/ https://help.ubuntu.com/community/RestrictedFormats, http://www.medibuntu.org/
237
Kapitel 10
Audio und Video
10.2 Programmübersicht Audio- und Video-Player Audio-Player
Das Programmangebot zum Abspielen von Audio- und Media-Dateien ist nahezu unüberschaubar. Die populärsten Audio-Player sind momentan solche Programme, die gleichzeitig bei der Verwaltung einer großen MP3-Kollektion helfen. Dazu zählen die Programme Amarok (KDE), Banshee (Gnome/ Mono) und Rhythmbox (Gnome), die ich Ihnen in Abschnitt 10.3 ab Seite 242 näher vorstellen werde. Nicht alle Anwender sind glücklich über die Fülle von Funktionen, die die oben aufgezählten AudioPlayer bieten. Amarok-Anwender, denen dieses Programm seit Version 2.0 zu groß und komplex geworden ist, finden in Minirok eine abgespeckte Version, die an Amarok 1.n erinnert. GnomeNutzern, die einen minimalistischen Audio-Player suchen, sei das Programm Exaile empfohlen. Nicht mehr gewartet und kaum noch verbreitet ist das WinAmp-ähnliche Programm XMMS. Ebenfalls weitgehend obsolet sind die Linux-Version des RealPlayers und dessen Open-Source-Variante Helix-Player. Die Weiterentwicklung dieser Programme stagniert, zudem bereitet das Zusammenspiel mit dem Linux-Audio-System seit Jahren Probleme. Vermeiden Sie daher die Installation des RealPlayers! Wenn Sie Real-Audio- oder Real-Video-Dateien im Webbrowser abspielen möchten, installieren Sie besser ein Webbrowser-Plugin eines Multimedia-Players (siehe Seite 161).
MultimediaPlayer
Die sogenannten Multimedia-Player sind primär zum Abspielen von Video-Dateien konzipiert, kommen in der Regel aber auch mit Video-Streams und DVDs zurecht und können teilweise sogar zum Fernsehen verwendet werden. Sozusagen nebenbei können Multimedia-Player auch einzelne Audio-Dateien abspielen, ohne sich aber um die Verwaltung Ihrer MP3-Sammlung zu kümmern. Die wichtigsten Vertreter dieser Gruppe sind Dragon Player und Kaffeine (beide KDE), MIRO, MPlayer, Totem (Gnome), VLC und xine. Details zu diesen Programmen beschreibe ich in Abschnitt 10.4 ab Seite 246.
DVDs ansehen
Damit Sie unter Linux eine nicht-kommerzielle DVD ansehen können, brauchen Sie einen Multimedia-Player sowie Codecs für AC-3 (Ton) und MPEG-2 (Bild). Außerdem sollte der Treiber für Ihre Grafikkarte die XVideo-Erweiterung (kurz XV) unterstützen (siehe Seite 597). Grundsätzlich ist eine Video-Wiedergabe auch ohne XVideo möglich, beansprucht dann aber zusätzliche CPU-Leistung. Zum Ansehen kommerzieller, durch CSS verschlüsselter DVDs brauchen Sie eine zusätzliche Bibliothek, die diese Schutzmaßnahme umgeht. In vielen Ländern ist es nicht zulässig, diese Bibliothek zu installieren (siehe auch Seite 233). Eine rechtlich wasserdichte Alternative ist der Fluendo DVD Player, der momentan allerdings ca. 20 EUR kostet (siehe http://www.fluendo.com/).
Kommandos
Wer es gern spartanisch hat, kann Audio-Dateien auch per Kommando abspielen. Diese Kommandos sind trotz des fehlenden Komforts wichtig, weil vielfach andere Programme darauf zurückgreifen, anstatt selbst einen entsprechenden Audio-Decoder zu implementieren. mpg123 ist das klassische Kommando zum Abspielen von MP3-Dateien. Mit mpg123 -w out.wav in.mp3 können Sie auch MP3Dateien in WAV-Dateien umwandeln. madplayer in eine Alternative zu mpg123. Es basiert auf der libmad-Bibliothek. Das Programm kann MP3-Dateien in eine ganze Reihe anderer Formate umwandeln. mad und libmad unterstehen der GPL, was bei mpg123 nicht der Fall ist. mpg321 ist eine weitere Alternative zu mpg123 und greift
238
Programmübersicht
Abschnitt 10.2
ebenfalls auf libmad zurück. ogg123 spielt Ogg-Dateien ab. Das Kommando ist Teil des vorbistools-Pakets und setzt die Bibliotheken libogg und libvorbis voraus. Mit vorbiscomment können Sie die Kommentare (Meta-Tags) von Ogg-Dateien lesen und verändern. Das direkte Abspielen einer CD ist insofern ein Sonderfall, als die Player-Software nur relativ triviale Aufgaben zu erledigen hat: Das Programm muss das Inhaltsverzeichnis einer Audio-CD einlesen und die Audio-Tracks dann abspielen. Das Programm überlässt dabei dem CD-Laufwerk die meiste Arbeit (also das Auslesen der Daten, die Fehlerkorrektur etc.).
CDs spielen und auslesen
Es bestehen zwei Möglichkeiten, wie die Audio-Daten zur Sound-Karte kommen: Wenn es ein Audio-Kabel vom CD/DVD-Laufwerk zur Audio-Karte gibt, wird das Audio-Signal direkt in die AudioKarte eingespeist. Fehlt dieses Kabel bzw. verwenden Sie ein externes Laufwerk (USB/Firewire), werden die digitalen Audio-Daten ausgelesen. Das Audio-System ist dafür verantwortlich, daraus Audio-Signale zu machen. Im Gegensatz zu Daten-CDs werden Audio-CDs nicht in das Dateisystem eingebunden. Der Zugriff auf die CD erfolgt normalerweise direkt über die Device-Datei (z. B. /dev/cdrom oder /dev/scd0). Die meisten oben aufgezählten Audio- und Multimedia-Player können quasi nebenbei auch CDs abspielen. Reine CD-Player sind die Ausnahme geworden. Zu den wenigen Vertretern zählen die Kommandos cdcd und tcd. Die meisten CD-Player nehmen Kontakt mit einem CDDB-Server auf (CD Database), in der Regel mit http://www.freedb.org. Auf diesem Server befindet sich eine Datenbank, die zu allen dort registrierten CDs den Titel, die Gruppe bzw. die Interpreten sowie das Inhaltsverzeichnis in Textform speichert. Wenn Ihre CD bei freedb.org bekannt ist, zeigt der CD-Player also nicht mehr einfach die Track-Nummer an, sondern vielleicht »Led Zeppelin: Dazed and Confused«. Die Erkennung der CD basiert auf einem ID-Wert, der sich aus den Längen der Tracks der CD errechnet.
CDDB und freedb
Für die Kommunikation mit dem CDDB-Server gelten in der Regel diese Parameter: Adresse: freedb.freedb.org IP-Port: 8880 (cddbp) freedb.freedb.org leitet die Anfragen automatisch an einen von mehreren Mirror-Servern weiter. Falls der IP-Port 8880 durch eine Firewall blockiert ist, können Sie freedb.org auch über HTTP ansprechen (also über das Protokoll zur Übertragung von Webseiten). In diesem Fall sind folgende Angaben erforderlich: Adresse: freedb.freedb.org IP-Port: 80 CGI-Script: ~cddb/cddb.cgi Unter KDE können Sie die CDDB-Parameter für alle Programme im Systemeinstellungsmodul ERWEITERT jCDDB einstellen. Sogenannte Ripper oder Grabber lesen Musik-Tracks einer Audio-CD in digitaler Form. Das ist schwieriger, als es auf den ersten Blick klingt. Die Audio-Tracks liegen zwar in digitaler Form vor, aber in einer anderen Form als bei einer Daten-CD mit einem richtigen Dateisystem. Wenn es beim Auslesen der Daten Probleme gibt, ist es für das CD-Laufwerk sehr schwierig, exakt die Stelle zu
CD-Ripper
239
Kapitel 10
Audio und Video
finden, an der das Auslesen fortgesetzt werden soll. Ebenso ist es beinahe unmöglich, Lesefehler – etwa durch verdreckte oder zerkratzte CDs – zu korrigieren. Sowohl die Auslesegeschwindigkeit als auch die Qualität der Audio-Dateien hängt zudem stark von der Qualität des CD/DVD-Laufwerks ab. Ripper liefern als Ergebnis üblicherweise WAV-Dateien. Zum Auslesen von Audio-CDs und zur anschließenden Umwandlung der WAV-Dateien in ein besser geeignetes Format (MP3 oder Ogg) werden Sie in der Regel eine grafische Benutzeroberfläche verwenden. Unter Gnome können Sie dazu Sound Juicer oder Rhythmbox verwenden, unter KDE Amarok, Dolpin oder Konqueror (siehe Seite 120). Wenn Sie den Prozess per Script automatisieren möchten, werden Sie an den Kommandowerkzeugen icedax und cdparanoia Freude finden (siehe Seite 371). Fernsehen am Computer
Neben speziellen Video-Angeboten für Computer (also YouTube und Co.) ist es auch möglich, herkömmliche Fernsehkanäle zu empfangen, am Computer anzusehen und aufzunehmen. Linux wird damit zum digitalen Videorecorder. Voraussetzung ist eine (Analog-)TV-Karte oder ein DVB-TEmpfänger (üblicherweise mit USB-Anschluss). Viele marktübliche Geräte sind Linux-kompatibel, aber leider nicht alle. Recherchieren Sie also vor dem Kauf im Internet! Ist die TV-Karte oder der DVB-T-Empfänger einmal eingerichtet (siehe auch Seite 263), können Sie nahezu jeden Linux-Multimedia-Player zum Fernsehen verwenden. Darüber hinaus gibt es spezielle TV-Benutzeroberflächen, die noch viel mehr Möglichkeiten bieten: Anzeige des TV-Programms, Aufnahme von Sendungen, zeitversetztes Fernsehen, Streaming (Client/Server-Funktionen) etc. Die Programme können oft auch als Audio- und Video-Player sowie zum Ansehen von Fotos verwendet werden. All diese Funktionen sind in eine hübsche Benutzeroberfläche verpackt, die eine einfache Bedienung des Home Theater PC (HTPC) erlaubt. Das bekannteste Programm ist MythTV, das auch im Zentrum der von Ubuntu abgeleiteten Distribution Mythbuntu steht. Zunehmend populär wird XBMC und das davon abgeleitete Programm Boxee, zu dem D-Link sogar eine hübsche Set-Top-Box anbietet (die »Boxee Box«, siehe http://www.boxee.tv/box). Weitere Alternativen sind Element (http://lwn.net/Articles/380202/), Freevo, MMS, Moovida sowie VDR bzw. deren Kompilation durch die Zeitschrift c’t (c’t-VDR). Dem selbst gebauten Media-Center auf Linux-Basis steht also scheinbar nichts mehr im Wege. Ganz so toll, wie es hier klingt, ist es in der Praxis leider nicht: Die Konfiguration der Programme ist oft haarsträubend kompliziert. Viele Programme sind für den amerikanischen Markt optimiert und scheitern im deutschen Sprachraum bereits bei elementaren Details (z. B. dem Sendesuchlauf). Bastler finden hier eine Spielwiese für Wochen. Kurz und gut: Erwarten Sie keine Lösungen, die nach der Installation quasi auf Knopfdruck funktionieren!
Fernbedienung
Falls Ihr Computer einen Infrarot-Empfänger hat oder ein Empfänger in der TV-Karte bzw. im DVBT-Empfänger integriert ist, können Sie die TV-Funktionen auch per Fernbedienung steuern. Für die Verarbeitung der Signale ist das Paket lirc verantwortlich (Linux Infrared Remote Control), allerdings ist je nach Fernbedienung erst eine aufwendige Konfiguration erforderlich. (Dass der Multimedia-Player auf Anhieb die Signale der Fernbedienung richtig interpretiert, ist leider unwahrscheinlich.) Das deutsche Ubuntu-Wiki gibt eine umfassende Beschreibung von lirc: http://wiki.ubuntuusers.de/Lirc
240
Programmübersicht
Wenn Sie digitale Medien nicht nur konsumieren, sondern selbst erzeugen bzw. bearbeiten wollen, brauchen Sie Werkzeuge zum Audio- und Video-Schnitt, zur Recodierung von Dateien, zur Erzeugung von DVD-Menüs (DVD-Authoring) etc. Tabelle 10.1 gibt einen Überblick über die populärsten derartigen Programme. Programme bzw. Programmpakete ohne grafische Benutzeroberfläche sind darin als Kommandos gekennzeichnet. PROGRAMM
FUNKTION
Ardour
Mehrspur-Audio-Recorder
Audacity
Audio-Editor
Avidemux
Video-Schnitt und -Konvertierung
Bombono
DVD-Authoring (siehe auch http://lwn.net/Articles/387566/)
Cinelerra CV
Video-Editor für Profis
DeVeDe
einfaches DVD-Authoring
DVBcut
DVB-T-Stream speichern
dvdauthor
DVD-Authoring (Kommando)
dvd-slideshow
erzeugt aus Fotos eine DVD-taugliche Dia-Show
DVDStyler
DVD-Authoring
FFmpeg
Audio- und Video-Konverter (Kommando)
Gnome Sound Recorder
einfacher Audio-Recorder (Gnome, Paket gnome-media[-apps])
Handbrake
Video-Konverter
Kdenlive
Video- und DVD-Menü-Editor (KDE)
KHdRecord
einfacher Audio-Recorder (KDE 3)
Kino
Video-Editor, Video-Schnitt
kMediaFactory
einfaches DVD-Authoring (KDE)
LiVES
Live-Video-Schnitt
ManDVD
DVD-Authoring
Mencoder
Audio- und Video-Konverter (Kommando, basiert auf MPlayer)
Open Movie Editor
einfacher Video-Editor
OpenShot
Video-Schnitt
PiTiVi
Video-Schnitt
QDVDAuthor
DVD-Authoring
Rosegarden
Audio- und Midi-Sequenzer (vergleichbar mit Cubase)
Steamripper
Ripper für Audio-Streams (Kommando)
traGtor
Audio- und Video-Konverter (KDE, basiert auf FFmpeg)
Transcode
Video-Konverter (Kommando)
Abschnitt 10.2
Audio- und Videoschnitt
Tabelle 10.1: Werkzeuge zum Audio- und Video-Schnitt und zum DVDAuthoring
241
Kapitel 10
Audio und Video
Beachten Sie, dass ein Teil der in Tabelle 10.1 aufgezählten Programme nicht mehr aktiv gewartet wird. Vielfach ist eine manuelle Installation erforderlich. Für multimedia-begeisterte LinuxAnwender gibt es übrigens auch eigene Distributionen, z. B. 64 Studio und Ubuntu Studio. Ein guter Startpunkt für die Suche nach weiteren Multimedia-Tools ist einmal mehr das deutsche UbuntuWiki: http://wiki.ubuntuusers.de/Multimedia Eine kompakte Einführung zum Thema DVD-Authoring gibt der folgende, schon etwas ältere Artikel (2006): http://www.kraus.tk/publications/DVDauthoring-Artikel/dvdauthoring.html Eine etwas aktuellere Übersicht der verfügbaren Programme gibt eine dreiteilige Grumpy-EditorSerie lwn.net: http://lwn.net/Articles/261820/ (Teil 1: Analog-Videos einlesen) http://lwn.net/Articles/262985/ (Teil 2: Video-Schnitt) http://lwn.net/Articles/263387/ (Teil 3: DVD-Struktur erzeugen) DVDs kopieren und rippen
Nichtkommerzielle DVDs dürfen Sie kopieren bzw. auslesen und als Filmdatei auf Ihrer Festplatte speichern. Dabei helfen die Programme AcidRip, DVD::rip, DVD95, Handbrake, K9Copy und OGMrip. Einige dieser Programme stelle ich in Abschnitt 10.7 ab Seite 261 näher vor.
10.3 Audio-Player (Amarok, Banshee, Rhythmbox) Dieser Abschnitt stellt in alphabetischer Reihenfolge die wichtigsten Audio-Player für Linux vor. Die hier präsentierten Programme kümmern sich außerdem um die Verwaltung Ihrer MP3-Kollektion, sodass es einfach ist, ein bestimmtes Album auszuwählen und abzuspielen. Dazu müssen Sie beim ersten Start des Players das Musik-Verzeichnis angeben, das dann erfasst wird. Dieser Vorgang beansprucht bei großen MP3-Kollektionen beim ersten Mal relativ viel Zeit. Als Grundlage für die Kategorisierung dienen die ID3-Tags der MP3-Dateien. Wenn diese Daten fehlen oder nicht stimmen, macht keines der im Folgenden vorgestellten Programme Spaß! Beachten Sie, dass die Player nur für die Benutzeroberfläche zuständig sind. Welche Audio-Formate die Programme abspielen können, hängt davon ab, welche zum Player passenden Codec-Bibliotheken installiert sind! Die meisten hier vorgestellten Programme können Ihre MP3-Sammlung mit einem MP3-Player synchronisieren. Das funktioniert in der Regel gut, mit einer prominenten Ausnahme: Bei aktuellen iPod-Modellen gehen bei jeder Synchronisation alle Cover-Bilder auf dem iPod verloren, und das zumeist ohne Warnung! Abhilfe: Verwenden Sie zur Synchronisation nicht den Audio-Player, sondern das Programm gtkPod (siehe Seite 253).
242
Audio-Player (Amarok, Banshee, Rhythmbox)
Amarok ist das populärste und ausgereifteste KDE-Programm zum Abspielen von Audio-Dateien und zur Verwaltung großer Audio-Bibliotheken. Wegen seiner ansprechenden, klaren Benutzeroberfläche ist das Programm seit Jahren mein Lieblings-Audio-Player, den ich regelmäßig auch bei Gnome-basierten Distributionen einsetze. In diesem Fall müssen Sie je nach Distribution zusätzlich das Paket kde-l10n-de installieren, damit die Menüs in deutscher Sprache erscheinen. Amarok greift zur Audio-Wiedergabe auf das KDE-Sound-System Phonon zurück.
Abschnitt 10.3
Amarok
Abbildung 10.1: Audio-Dateien mit Amarok anhören
Etwas ungewöhnlich ist das Startverhalten: Amarok erscheint nicht als Fenster, sondern als Icon im Panel. Erst ein Klick auf dieses Icon öffnet die Benutzeroberfläche. Beim ersten Start fragt das Programm, wo sich Ihre Audio-Dateien befinden, und erstellt eine Bibliothek aller verfügbaren Titel. Amarok speichert diese Informationen in einer Datenbank, wobei der Datenbank-Server in Amarok integriert ist (Embedded MySQL). Über das Kontextmenükommando METADATEN BEARBEITEN können Sie die ID3-Tags eines einzelnen Titels oder eines ganzen Albums ändern. Amarok verwendet beim Speichern der ID3-Tags allerdings Version 2.4 des ID3-Standards. Nicht alle MP3-Player sind zu dieser Version kompatibel. Ihre Audio-Sammlung können Sie in der linken Seitenleiste LOKALE SAMMLUNG anzeigen und nach verschiedenen Kriterien ordnen. Ein Doppelklick auf ein Genre oder Album fügt alle entsprechenden Tracks der Wiedergabeliste (rechts) hinzu. Im mittleren Teil des Fensters können Sie Informationen zum gerade gespielten Titel einblenden, z. B. den Liedtext oder die Wikipedia-Seite der Band. Wenn Sie eine CD eingelegt haben, können Sie die darauf enthaltenen Titel auslesen (rippen), in das MP3- oder Ogg-Format umwandeln und Ihrer Musiksammlung hinzufügen. Dazu klicken Sie in der linken Seitenleiste den Eintrag A UDIO-CD mit der rechten Maustaste an und führen Z UR SAMMLUNG KOPIEREN jLOKALE S AMMLUNG aus. In mehreren Dialogen können Sie nun das Audio-Format, den Aufbau der Dateinamen, die Codierqualität etc. einstellen. In typischer KDE-Manier haben diese Dialoge mehr Optionen, als Sie es für möglich halten würden. Das Erzeugen von MP3-Dateien setzt voraus, dass lame installiert ist!
243
Tipp
Kapitel 10
Banshee
Audio und Video
Amarok fragt bei jedem Start nach dem KWallet-Passwort. Amarok verwendet die KDE-Passwortdatenbank, um darin die Zugangsdaten für last.fm zu speichern. Unbegreiflich ist nur, warum Amarok auf jeden Fall Kontakt zu KWallet aufnimmt, selbst wenn Sie das last.fm-Plugin noch nie verwendet haben. Wenn die KWallet-Passwortabfrage Sie stört, können Sie in EINSTELLUNGENj A MAROK EINRICHTENjINTERNET-DIENSTE das last.fm-Plugin deaktivieren. Es gibt momentan zwei populäre Audio-Player für den Gnome-Desktop: das hier beschriebene Programm Banshee (siehe Abbildung 10.2) und Rhythmbox (siehe unten). Persönlich gefällt mir Banshee besser: Das Programm sieht optisch ansprechender aus und wird schneller weiterentwickelt. Das Haupthindernis für eine größere Verbreitung ist seine Abhängigkeit von der Mono-Bibliothek, was in manchen Distributionen (z. B. Fedora) nicht gern gesehen wird. Von den »großen« Distributionen setzt deswegen einzig openSUSE auf Banshee; die meisten anderen Distributionen stellen aber zumindest Banshee-Pakete zur Verfügung.
Abbildung 10.2: Audio-Dateien mit Banshee anhören
Banshee ist durch Plugins erweiterbar (siehe B EARBEITEN jEINSTELLUNGENjERWEITERUNGEN). Mit den Plugins können Sie unkompliziert Audio-CDs rippen und der Audio-Bibliothek hinzufügen, Platten-Cover aus dem Internet herunterladen, Ihre Audio-Sammlung mit einem MP3-Player synchronisieren, MP3-Dateien bei Amazon kaufen und herunterladen etc. Ähnlich wie bei Rhythmbox müssen die zu verwaltenden Audio-Dateien zuerst »importiert« werden (MEDIENjMEDIEN IMPORTIEREN jLOKALER O RDNER). Die Eigenschaften werden in der Datenbank ~/.config/banshee-1/banshee.db gespeichert. In der Folge können Sie Titel nach verschiedenen Kriterien auswählen, in Listen organisieren, bewerten etc. Im Vergleich zu anderen Audio-Playern fehlt leider die Möglichkeit, die Audio-Sammlung nach Genres zu gruppieren. Immerhin können Sie im Suchfeld mit genre:Name die Anzeige der Musikbibliothek auf jene Alben und Künstler reduzie-
244
Audio-Player (Amarok, Banshee, Rhythmbox)
Abschnitt 10.4
ren, die dem angegebenen Genre entsprechen. Das ist aber wenig intuitiv und erfordert, dass Sie auswendig wissen, welche Genres es in Ihrer Sammlung gibt. Auch bei Rhythmbox (siehe Abbildung 10.3) müssen Sie zuerst Ihre Musiksammlung mit M USIKj O RDNER IMPORTIEREN erfassen. Standardmäßig überwacht Rhythmbox diesen Ordner nun auf Veränderungen (siehe die entsprechende Option in BEARBEITENjEINSTELLUNGENjMUSIK).
Rhythmbox
Abbildung 10.3: Audio-Dateien mit Rhythmbox anhören
Wenn Sie Ihre Audio-Verzeichnisse grundlegend ändern, ist es das Beste, in Rhythmbox alle Titel zu markieren, zu löschen und anschließend neu zu importieren. Verwenden Sie zum Löschen von Titeln aus der Datenbank aber auf keinen Fall das Kommando BEARBEITEN jIN DEN MÜLL VERSCHIEBEN! Dieses Kommando betrifft nicht die Rhythmbox-Musikdatenbank, sondern es löscht Ihre MP3-Dateien! Rhythmbox speichert die Musikdatenbank in der Datei ~/.local/share/rhythmbox/rhythmdb.xml. Die Bedienung von Rhythmbox ist einfach: Sie wählen ein Genre, einen Interpreten und/oder ein Album aus und klicken auf den Button W IEDERGABE. Rhythmbox spielt nun alle in der Liste angezeigten Titel. Die Genre-Auswahlliste wird standardmäßig nicht angezeigt. Um die Liste einzublenden, führen Sie BEARBEITEN jEINSTELLUNGENjA LLGEMEIN aus und wählen die Browser-Ansicht GENRES, K ÜNSTLER UND A LBEN . Um eigene Wiedergabelisten (Play-Listen) zu erzeugen, führen Sie MUSIKjWIEDERGABELISTEjN EUE WIEDERGABELISTE aus und geben der neuen Liste einen Namen. Anschließend aktivieren Sie in der Seitenleiste MUSIKSAMMLUNG jMUSIK und fügen dann per Drag&Drop Titel in die neue Liste ein. Es ist auch möglich, ganze Genres, Interpreten oder Alben einzufügen. Ubuntu installiert zusammen mit Rhythmbox ein Plugin, das es ermöglicht, MP3-Dateien im Ubuntu One Music Shop (U1MS) zu kaufen. Wie sein Name andeutet, setzt U1MS einen Ubuntu-One-Account voraus (siehe Seite 1125). Meine Erfahrungen mit dem U1MS waren überwiegend negativ, aber vielleicht hat sich die Stabilität mittlerweile verbessert: http://kofler.info/blog/114/126/
245
Kapitel 10
Audio und Video
10.4 Multimedia-Player (Dragon Player, Kaffeine, MPlayer, Totem, VLC, xine) Die in diesem Abschnitt vorgestellten Multimedia-Player sind primär zum Abspielen von VideoDateien oder -Streams und DVDs konzipiert. Die meisten Programme eignen sich zudem auch zum Fernsehen sowie zur Wiedergabe einzelner Audiodateien, ohne dass gleich die ganze MusikSammlung neu erfasst werden muss. Zu den meisten im Folgenden vorgestellten Playern gibt es Web-Plugins, die das komfortable Abspielen von Multimedia-Dateien direkt im Browser ermöglichen (siehe auch Seite 161). Dragon Player
Dragon Player (siehe Abbildung 10.4) ist ein minimalistischer Video-Player für KDE. Das Programm kommt unter anderem in Kubuntu zum Einsatz, wo es den KDE-Standard-Player Kaffeine ersetzt. Die Bedienung des Programms beschränkt sich auf das absolute Minimum. Die wichtigsten Kommandos können auch per Tastatur durchgeführt werden: (F) aktiviert bzw. deaktiviert den Vollbildmodus, (M) schaltet den Ton ein/aus (Mute), (R) zeigt das DVD-Menü an, (Leertaste) unterbricht die Wiedergabe bzw. nimmt sie wieder auf, (S) beendet die Wiedergabe endgültig.
Abbildung 10.4: Dragon Player Kaffeine
Abbildung 10.5: Kaffeine
246
Kaffeine (siehe Abbildung 10.5) ist der Standard-Player des KDE-Desktops. Die Benutzeroberfläche ist schnörkellos. Zu den attraktivsten Features zählt die Unterstützung des Mausrads, dessen Drehung das Video um 15 Sekunden vor bzw. zurück bewegt. Kaffeine nutzt die KDE-MultimediaBibliothek Phonon, wobei Phonon je nach Konfiguration bzw. Distribution wiederum auf xine, GStreamer oder VLC als Backend zurückgreift.
Multimedia-Player (Dragon Player, Kaffeine, MPlayer, Totem, VLC, xine)
MPlayer (siehe Abbildung 10.6) war über viele Jahre der beste und populärste Multimedia-Player für Linux. Diesen Status hat das Programm aber mittlerweile verloren: Im Vergleich zu den anderen hier vorgestellten Programmen ist MPlayer sperrig in der Bedienung und schwierig bei der Konfiguration (Video-Backend, CD/DVD-Device etc.). Lästig ist auch, dass das Programm als einziger der hier vorgestellten Player keine DVD-Navigationsmenüs anzeigen kann. Zur Auswahl der Sprache, der Untertitel etc. müssen Sie das Kontextmenü verwenden.
Abschnitt 10.4
MPlayer
Nach der Installation von MPlayer stehen gleich zwei Varianten des Programms zur Verfügung: mplayer adresse startet die minimalistische Version ohne Benutzeroberfläche, gmplayer adresse die ansprechendere Variante mit einer einfachen Benutzeroberfläche (siehe Abbildung 10.6). Bei einigen Distributionen befindet sich gmplayer in einem eigenen Paket, das zumeist den Namen mplayer-gui hat. Falls Ihre Grafikkarte nicht XVideo-kompatibel ist, müssen Sie beim Start die Option -vo x11 angeben. Mplayer benötigt dann aber mehr Rechenleistung. user$
gmplayer dvd://
Abbildung 10.6: MPlayer
Es gibt diverse Tastenkürzel zur Bedienung des Programms, die in der Datei /etc/mplayer/ input.conf definiert und in man mplayer dokumentiert sind. Die wichtigsten sind (P) (Pause) und (Q) (Quit). Mit den Cursortasten bewegen Sie sich im Film vor bzw. zurück. Beim Start von MPlayer können unzählige Optionen übergeben werden, die in man mplayer ausführlich dokumentiert sind. Hier werden nur einige ganz wichtige Optionen kurz vorgestellt: -ao treiber gibt den gewünschten Audio-Ausgabe-Treiber an (z. B. oss, sdl). -ao help zeigt eine Liste der verfügbaren Treiber an. -fs
startet das Programm im Full-Screen-Modus.
-framedrop überspringt einzelne Bilder, wenn die CPU-Leistung nicht für die Berechnung aller Bilder ausreicht. Der Vorteil dieser radikalen Maßnahme besteht darin, dass Audio- und VideoInformationen synchron bleiben.
247
Kapitel 10
Audio und Video
-vo treiber gibt den gewünschten Video-Ausgabe-Treiber an (z. B. x11, xv). -vo help zeigt eine Liste der verfügbaren Treiber an. Die Optionen können auch in ~/.mplayer/config bzw. in /etc/mplayer/mplayer.conf eingestellt werden. Jede Option wird in einer eigenen Zeile in der Form vo=x11 eingetragen. Totem
Totem (siehe Abbildung 10.7) ist der Standard-Player des Gnome-Desktops. Totem erfüllt diese Aufgabe zufriedenstellend, wenn auch ohne Bravour: Die Benutzeroberfläche ist funktionell, aber altbacken, Zusatzfunktionen gibt es keine. Immerhin ist es möglich, Totem ohne Menü und Statuszeile auszuführen (A NSICHTjBEDIENELEMENTE ANZEIGEN). Noch besser ist, Sie aktivieren mit (F11) den Vollbildmodus. Aktuelle Totem-Versionen basieren auf GStreamer, in der Vergangenheit gab es auch Totem-Versionen, die die xine-Bibliotheken nutzten. Wenn Totem zum Abspielen von Audio-Dateien eingesetzt wird, nervt es mit der Anzeige psychedelischer Muster. Diese Grafikeffekte unterbinden Sie bei Bedarf mit B EARBEITENjEINSTELLUNGENj A NZEIGE.
Abbildung 10.7: Totem
VLC
Der Multimedia-Players VLC (ehemals VideoLan Client, siehe Abbildung 10.8) ist momentan der modernste Multimedia-Player für Linux und bietet technisch versierten Anwendern eine herrliche Spielwiese. Die Stärken von VLC liegen in der Streaming-Anwendung, VLC kann aber selbstverständlich auch DVDs und Video-Dateien abspielen. VLC greift auf externe Codec-Bibliotheken zurück (z. B. FFmpeg, libmpeg2 und x264), und die Benutzeroberfläche basiert auf der Qt-Bibliothek. Eine Besonderheit des Programms besteht darin, dass Filtereffekte in Echtzeit angewendet werden können. Das ermöglicht es z. B., ein mit einer Digitalkamera hochkant aufgenommenes Video beim Abspielen richtig zu drehen.
xine
xine (siehe Abbildung 10.9) ist der wahrscheinlich am weitesten verbreitete Multimedia-Player für Linux. Die Stärken von xine liegen in der Unterstützung zahlloser Audio- und Video-Formate. Einzig die Benutzeroberfläche wirkt etwas spröde. Immerhin kann das Programm weitestgehend über die Tastatur gesteuert werden. xine ist für Linux auch deswegen von großer Bedeutung, weil die
248
Multimedia-Player (Dragon Player, Kaffeine, MPlayer, Totem, VLC, xine)
Abschnitt 10.5
Abbildung 10.8: VLC
xine-Benutzeroberfläche vollständig von den zugrunde liegenden Bibliotheken getrennt ist. Das ermöglicht es anderen Programmen, auf die xine-Bibliotheken zurückzugreifen. Zum Start des Players führen Sie einfach xine aus. Wenn das Kommando nicht zur Verfügung steht, haben Sie wahrscheinlich nur die xine-Bibliotheken, aber nicht die Benutzeroberfläche installiert. Sie benötigen noch das Paket xine-ui. Die Steuerung der Grundfunktionen des Programms erfolgt durch ein Bedienfeld. Wenn dieses nicht angezeigt wird, müssen Sie es mit dem xine-Kontextmenükommando B EDIENPULT ANZEIGEN bzw. mit (G) einblenden. Die Navigations-Buttons, die in etwa den Knöpfen einer Fernbedienung für einen DVD-Player entsprechen, aktivieren Sie mit M ENÜSjN AVIGATION bzw. mit (Alt)+(E). Die DVDWiedergabe beginnen Sie mit dem gleichnamigen Button, oder Sie starten das Programm gleich in der Form xine dvd:/. EINSTELLUNGEN jEINSTELLUNGEN bzw. (Alt)+(S) führt in einen komplexen Konfigurationsdialog, der mehr Einstellmöglichkeiten bietet, als Sie sich vorstellen können. Das gilt insbesondere, wenn Sie im Dialogblatt GUI Ihre xine-Erfahrung von BEGINNER auf A DVANCED oder EXPERT stellen. Diese Änderung müssen Sie mit A NWENDEN quittieren, damit sie wirksam wird. Die Konfiguration wird in ~/.xine gespeichert. Beachten Sie, dass diese Konfigurationsdatei für alle Player gültig ist, die auf die xine-Bibliotheken zurückgreifen. Weitere Konfigurationstipps sowie Informationen zu xine finden Sie auf der folgenden umfassenden Website: http://xinehq.de/
249
Kapitel 10
Audio und Video
Abbildung 10.9: xine
10.5 Audio- und MP3-Tools (Audacity, EasyTAG, gtkPod, Sound Juicer) Dieser Abschnitt stellt einige Programme vor, die beim Erzeugen und Verwalten von Audio- und MP3-Dateien helfen: Audacity hilft beim Aufnehmen und Schneiden von Audio-Dateien, EasyTAG erlaubt das Einstellen bzw. Ändern der ID3-Tags von MP3-Dateien, gtkPod synchronisiert Ihre MP3-Sammlung mit Ihrem iPod, und Sound Juicer liest Audio-CDs aus und erzeugt Ogg- oder MP3Dateien. Audacity
Audacity ist ein sehr vielseitiges, aber deswegen auch komplexes Programm: Sie können damit mehrere Audio-Spuren aufnehmen, bearbeiten, schneiden, übereinanderlegen, mit Effekten verändern etc. Ich stelle hier aber nur wenige, ganz elementare Funktionen vor, um Audio-Aufnahmen durchzuführen und Teile aus einer Audio-Datei herauszuschneiden. Es mag übertrieben erscheinen, für solche Aufgaben Audacity einzusetzen, aber das Programm erledigt nach einer kurzen Einarbeitung auch derart triviale Tätigkeiten effizienter und zuverlässiger als vorgeblich einfachere Audio-Tools. (Wenn es Ihnen nur darum geht, einen Audio-Kanal aufzunehmen und das Ergebnis gleich als MP3oder Ogg-Datei zu speichern, bietet sich unter Gnome der Einsatz des wesentlich einfacheren Programms gnome-sound-recorder (Paket gnome-media[-apps]) an.) Um eine Aufnahme zu starten, stellen Sie in dem neben dem Mikrofonsymbol dargestellten Listenfeld das gewünschte Input-Device ein und klicken einfach auf den roten Aufnahme-Button. Audacity erzeugt eine Stereo-Audio-Spur und beginnt unverzüglich mit der Aufnahme. Die aufgenommenen Daten werden unkomprimiert im Verzeichnis ~/.audacityn-name/projectn gespeichert. Stellen Sie sicher, dass in diesem Verzeichnis ausreichend Platz ist! Standardmäßig können Sie die laufende Aufnahme nicht mithören. Wenn Sie das möchten, müssen Sie vor Beginn der Aufnahme TRANSPORT jSOFTWARE PLAYTHROUGH bzw. TRANSPORT jSOFTWARE PLAY BACK aktivieren. Diese Funktion wird in den Audacity-FAQs aber zurecht als clunky beschrieben und
250
Audio- und MP3-Tools (EasyTAG, gtkPod, Sound Juicer)
Abschnitt 10.5
führte bei meinen Tests zu einer hohen CPU-Last und einem Abbruch der Aufnahme. Besser ist es, im Audio-Mixer (wenn Ihre Distribution nichts Besseres anbietet: alsamixer in einer Konsole) den Line- oder Mikrofon-Eingang zu aktivieren (durch einen Klick auf den MUTE- oder STUMM -Button). Sie können die Wiedergabelautstärke dieses Kanals verändern, ohne die Aufnahme zu beeinflussen. Nach Abschluss der Aufnahme können Sie diese anhören und bei Bedarf verändern (z. B. Teile herausschneiden oder bei leisen Aufnahmen die Lautstärke anheben (E FFEKTEjN ORMALISIEREN). Dazu müssen Sie den gewünschten Bereich zuerst markieren. Am einfachsten geht das mit der Maus, Audacity bietet aber unzählige weitere Möglichkeiten, um Beginn und Ende der Markierung exakt festzulegen. DATEIjEXPORTIEREN speichert den markierten Bereich in einer Audio-Datei beliebigen Formats, BEARBEITEN jTRIMMEN löscht alles außer der Markierung, (Entf) löscht den markierten Bereich.
Abbildung 10.10: Audio-Tracks mit Audacity schneiden
Wenn Sie ein Audacity-Projekt sichern, werden neben einer relativ kleinen Projektdatei alle Kanäle in einem eigenen, verlustfreien Format gespeichert, das in einem eigenen Verzeichnis name_data sehr viel Platz beansprucht. Um die Audio-Dateien problemlos mit einem anderen Programm anzuhören, exportieren Sie das Projekt im WAV-, Ogg- oder MP3-Format (Letzteres erfordert die Installation von lame). Wenn Sie bereits vorhandene MP3-Dateien oder andere Audio-Dateien bearbeiten möchten, laden Sie diese einfach in ein leeres Audacity-Projekt. Sobald der Import erledigt ist, haben Sie dieselben Bearbeitungsmöglichkeiten wie bei einer Aufnahme.
Tipp
Audacity bietet für sich keine Möglichkeit, die aktuelle Tonausgabe aufzunehmen (also das, was Sie über den Lautsprecher des Computers gerade hören). Das wäre aber mitunter praktisch, beispielsweise, um den Ton eines Flash-Videos oder eines Internet-Radio-Senders mitzuschneiden. Falls Sie PulseAudio als Audio-System einsetzen, können Sie diese Einschränkung umgehen: Dazu starten Sie zuerst sowohl das Programm, das als Audio-Quelle dienen soll (z. B. den Webbrowser mit dem Flash-Plugin), als auch Audacity. In Audacity müssen Sie die Aufnahme starten! Nun starten Sie das Programm pavucontrol. Dieses Programm dient zur Steuerung von PulseAudio und muss oft extra installiert werden. In pavucontrol wechseln Sie in das Dialogblatt A UFNAHME und stellen dort beim Punkt ALSA PLUG-IN (AUDACITY ) als Aufnahmequelle MONITOR OF INTERNES A UDIO A NALOG STEREO ein (siehe Abbildung 10.11).
251
Kapitel 10
Audio und Video
Abbildung 10.11: PulseAudioEinstellungen, um die aktuelle Tonausgabe mitzuschneiden
EasyTAG
Wer selbst eine größere MP3-Sammlung pflegt, der weiß, dass die richtige Einstellung der MP3Tags viel Zeit und Mühe macht: Die ID3-Daten von gekauften oder selbst gerippten MP3-Dateien entsprechen selten den eigenen Vorstellungen, Cover-Informationen fehlen etc. Es gibt unzählige Programme, die dabei helfen, ID3-Parameter effizient einzustellen bzw. zu verändern (suchen Sie in Ihrem Paketmanager nach id3). Persönlich ist mir das Programm EasyTAG am liebsten. Es erlaubt es, schnell alle MP3-Dateien eines Verzeichnisses gemeinsam zu bearbeiten. Die Bedienung des Programms ist allerdings gewöhnungsbedürftig. Nach dem Start wählen Sie das Verzeichnis aus, in dem sich die MP3-Dateien befinden. EasyTAG liest nun alle MP3-Dateien in diesem Verzeichnis und in allen Unterverzeichnissen ein. Sie können dann eine einzelne MP3Datei auswählen und deren ID3-Tags verändern. Zur Einstellung gemeinsamer Eigenschaften ist es allerdings effizienter, mehrere bzw. alle MP3-Dateien des aktuellen Verzeichnisses zu markieren ((Strg)+(A)) und dann das Album, den Komponisten etc. neu einzustellen. Aus Sicherheitsgründen müssen Sie nun jede Änderung durch einen Klick auf den winzigen Button rechts vom Einstellungsfeld bestätigen – andernfalls gelten die Änderungen nur für die gerade aktive Datei, nicht für alle markierten Dateien. Anfangs werden Sie diesen zusätzlichen Mausklick sicher hin und wieder vergessen.
Abbildung 10.12: ID3-Tags neu einstellen
252
Audio- und MP3-Tools (EasyTAG, gtkPod, Sound Juicer)
Abschnitt 10.5
Um in MP3-Dateien das Bild des CD-Covers zu speichern, markieren Sie alle betreffenden Dateien, wechseln in EasyTAG in das Dialogblatt B ILDER, laden mit dem Plus-Button eine neue Bilddatei (JPEG oder PNG) und wählen das geladene Bild aus. EasyTAG sucht die Bilddatei standardmäßig im selben Verzeichnis, in dem sich auch die gerade bearbeiteten MP3-Dateien befinden. Vergessen Sie nun nicht, auf den winzigen Bestätigungs-Button zu klicken, damit das Bild in allen ausgewählten MP3-Dateien gespeichert wird! Anders als die meisten Audio-Player bietet EasyTAG leider keine Funktion, um nach Covern im Internet (z. B. bei amazon.de) zu suchen – das müssen Sie selbst erledigen. Besonders komfortabel gelingt das mit dem Programm Coverfinder. Im Einstellungsdialog von EasyTAG können Sie angeben, in welcher ID3-Version die Tags geschrieben werden sollen (standardmäßig 2.3, unterstützt werden auch 1.x und 2.4), welcher Zeichensatz zur Anwendung kommen soll (standardmäßig Unicode) etc. Die meisten Audio-Player können MP3-Dateien mit externen MP3-Playern synchronisieren. Bei neueren iPod-Modellen reicht es aber nicht aus, einfach die MP3-Dateien zu kopieren: Es müssen gleichzeitig diverse Datenbankdateien synchronisiert werden, in denen unter anderem die CoverAbbildungen gespeichert werden. Die meisten Audio-Player sind dazu nicht in der Lage. Die Folge: Nach der Synchronisation enthält der iPod zwar die neuen MP3-Dateien, aber dafür fehlen die Cover, und zwar bei allen MP3-Dateien, auch bei solchen, die nicht verändert wurden.
gtkPod
Das Programm gtkPod schafft Abhilfe. Es überträgt MP3-Dateien vom und zum iPod und aktualisiert dabei auch alle dazugehörigen Datenbanken. Außerdem hilft das Programm bei der Verwaltung der ID3-Tags, bei der Übertragung von Wiedergabelisten, Adressen, Kontakten etc. gtkPod ist kompatibel zu den meisten erhältlichen iPods. Die einzige Ausnahme sind das iPhone und der iPod Touch: Diese Modelle werden nur unterstützt, wenn sie entsperrt sind (d. h., es muss ein sogenannter Jailbreak durchgeführt werden). Mein schon etwas älterer iPod Classic wurde von gtkPod zum Glück anstandslos erkannt.
Abbildung 10.13: gtkPod
253
Kapitel 10
Audio und Video
gtkPod ist leider nicht besonders intuitiv zu bedienen: Als Erstes testen Sie einmal, ob das Programm Ihren iPod erkennt. Dazu verbinden Sie das Gerät mit Ihrem Computer und stellen sicher, dass der iPod als Datenträger in den Verzeichnisbaum eingehängt ist (z. B. unter /media/ipod_name, die meisten Desktop-Systeme kümmern sich automatisch darum). Der iPod sollte automatisch in der Seitenleiste W IEDERGABELISTEN auftauchen. Ist das nicht der Fall, klicken Sie auf den Button I P ODS EINLESEN bzw. versuchen, den iPod nochmals aus dem Dateisystem zu lösen und neu einzubinden. Sie können in gtkPod nun den Inhalt Ihres iPods inklusive der CD-Cover ansehen, ID3-Tags korrigieren, einzelne Dateien oder Verzeichnisse hinzufügen, Dateien löschen etc. Leider reagiert das Programm bei großen Musiksammlungen recht träge. Mit Ä NDERUNGEN SICHERN übertragen Sie schließlich alle Änderungen auf den iPod. Das Programm bietet auch die Möglichkeit, Notizen, Kontakte und Termine abzugleichen. Vergeblich habe ich nach einem Weg gesucht, ein lokales Verzeichnis mit MP3-Dateien mit der Musiksammlung auf dem iPod zu synchronisieren, beispielsweise um neu hinzugekommene Titel automatisch zum iPod zu übertragen. Stattdessen müssen Sie die betreffenden Verzeichnisse manuell hinzufügen. Anders als mit iTunes macht die Arbeit mit gtkPod wenig Freude: Das Programm ist langsam, unübersichtlich, und der iPod ist bei der Interpretation der ID3-Tags sehr wählerisch: Allzu oft werden Titel auf dem iPod falsch sortiert, Zeichenketten mit deutschen Sonderzeichen falsch dargestellt etc. Die manuelle Korrektur der betreffenden ID3-Tags ist mühsam. Wer die Ideale freier Software vertritt, müsste eigentlich einen großen Bogen um Apple-Hardware machen: Es gibt wenig andere Hersteller, die ihre Produkte derart abschotten (Hardware wie Software). Da hilft es auch nichts, wenn Apple gelegentlich ein paar Bibliotheken als Open-Source-Code freigibt. Sound Juicer
Das Gnome-Programm Sound Juicer spielt Audio-CDs ab bzw. liest die Tracks der CDs aus und speichert sie als Dateien im MP3-, Ogg-Vorbis- oder in einem anderen Format. Sound Juicer greift beim Erstellen der Audio-Dateien über das GStreamer-System auf externe Programme zurück, beispielsweise auf oggenc für Ogg-Dateien, lame für MP3-Dateien, faac für AAC-Dateien (*.m4a) etc. Standardmäßig erzeugt Sound Juicer Ogg-Dateien, deren Namen sich so zusammensetzen: ~/Musik/Gruppe/CD-Name/nn - Track-Titel.ogg Die Verzeichnishierarchie und das Audio-Format stellen Sie mit B EARBEITENjEINSTELLEN ein. Wenn Ihr gewünschtes Audio-Format nicht zur Auswahl steht, müssen Sie dafür ein neues Profil erstellen. Entscheidend ist die Zeile im Eingabefeld GS TREAMER-WEITERLEITUNG. Das folgende Kommando erzeugt mit lame MP3-Dateien und kann als Muster dienen: audio/x-raw-int,rate=44100,channels=2 ! lame name=enc mode=0 vbr-quality=6 ! id3v2mux
KDE-CD-Ripper
254
Unter KDE gibt es keinen eigenen CD-Ripper mehr. Das ehemals für diesen Zweck konzipierte Programm KAudioCreator wird nicht mehr gewartet. Das heißt aber nicht, dass Sie keine Audio-CDs rippen können, ganz im Gegenteil! Sie können Audio-CDs direkt mit Amarok Ihrer Musiksammlung hinzufügen bzw. Dolphin oder Konqueror verwenden, um WAV-, Ogg- oder MP3-Dateien zu erzeugen (siehe Seite 120).
Video-Schnitt (PiTiVi, OpenShot)
Abschnitt 10.6
Abbildung 10.14: CD-Tracks mit Sound Juicer auslesen
10.6 Video-Schnitt (PiTiVi, OpenShot) PiTiVi PiTiVi ist ein relativ neues Video-Schnittprogramm, das es Einsteigern ermöglicht, aus mehreren Video-Dateien bzw. Filmsequenzen einen zusammenhängenden Film zu bilden. Obwohl PiTiVi explizit im Hinblick auf eine möglichst einfache Bedienung und Nutzung entwickelt wurde, ist eine gewisse Einarbeitungszeit erforderlich, um sich mit den Konzepten und Ideen vertraut zu machen. Dieser Abschnitt kann Ihnen nur bei den ersten Schritten helfen. Weiterführende Informationen finden Sie im Benutzerhandbuch auf der PiTiVi-Website: http://www.pitivi.org/ Das PiTiVi-Programmfenster besteht aus drei Teilen (siehe Abbildung ??):
Grundlagen
» Clip-Bibliothek (links oben): »Clips« sind Querverweise auf vorhandene Video-Dateien, die als Datenquelle für den zu schneidenden Film verwendet werden. Diese Video-Dateien werden durch PiTiVi nicht verändert. Jeder Clip kann bei Bedarf auch mehrfach bzw. in Teilen im endgültigen Film verwendet werden. Der Inhalt der Clip-Bibliothek kann wahlweise in Form von Icons oder als Liste angezeigt werden (A NSICHT -Menü). Als Clips sind auch Audio-Dateien erlaubt, die Sie in der Audio-Spur der Zeitlinie einsetzen können, wenn Sie statt des Originaltons eine Hintergrundmusik abspielen möchten. » Filmvorschau (rechts oben): Die Filmvorschau zeigt ein Standbild des Films an der gerade aktuellen Position der Zeitlinie. Außerdem können Sie hier den gerade bearbeiteten Ausschnitt Ihres Films ansehen. Der WIEDERGABE startet den Film an der Position der Zeitmarke in der Zeitline. » Zeitlinie (unten): Die Zeitlinie enthält – optional in mehreren Ebenen – die Film- und Tonsequenzen in der Reihenfolge, in der sie im fertigen Film abgespielt werden sollen. In der Zeitlinie können Sie einzelne Filmsequenzen mit der Maus vor- und zurückschieben, teilen (auseinanderschneiden), am Beginn und Ende abschneiden, Überblendeffekte zwischen Filmsequenzen realisieren etc.
255
Kapitel 10
Audio und Video
Mit dem Zoom-Regler links neben der Zeitlinie oder durch das Drehen des Mausrads, wenn sich die Maus in der Zeitlinie befindet, stellen Sie den Zeitmaßstab ein. In der größten Zeitauflösung sehen Sie jeden einzelnen Frame, in der kleinsten Auflösung circa eine Stunde Bildmaterial pro 1000 Pixel Bildschirmbreite.
Abbildung 10.15: Video-Schnitt mit PiTiVi
Wenn Sie ein Schnittprojekt speichern, speichert PiTiVi in der *.xptv-Datei nur die Liste der Dateinamen der Clips so wie die Art und Weise, wie Sie die Clips im Film verwenden. Deswegen sind die PiTiVi-Dateien normalerweise sehr klein (im Vergleich zur Größe der Ausgangsdateien). Beachten Sie, dass die Dateinamen der Clips immer in absoluter Form in der XML-Datei gespeichert werden. Wenn Sie die Clips in ein anderes Verzeichnis verschieben, kann PiTiVi die Dateien nicht mehr finden. Abhilfe: Ändern Sie die *.xptv mit einem Texteditor, und passen Sie dort die Dateinamen an. Außer PiTiVi kann kein Programm etwas mit einer *.xptv-Datei anfangen. Damit Sie den Film tatsächlich präsentieren können, müssen Sie eine Filmdatei erstellen. Dazu führen Sie P ROJEKT j PROJEKT ERZEUGEN aus. Das Codieren des Films ist ein rechenaufwendiger Prozess, und das umso mehr, je höher die Qualität sein soll. Die Parameter stellen Sie mit PROJEKTjPROJEKTEINSTELLUNGEN ein. Sie haben dabei die Wahl zwischen verschiedenen Filmformaten (Auflösung und Bildfrequenz), Container-Formaten (Ogg, AVI, Matroska etc.) sowie Audio- und Video-Codecs. Die optimale Einstellung hängt stark von der Qualität des Ausgangsmaterials ab sowie davon, auf welchem Gerät Sie den fertigen Film ansehen möchten. Einen einzelnen Clip bearbeiten
256
Bevor Sie mehrere Clips kombinieren, sollten Sie lernen, welche Bearbeitungsmöglichkeiten Sie mit einem einzelnen Clip haben. Dazu verschieben Sie per Drag&Drop einen kurzen Film aus der Bibliothek in die Zeitlinie. Sobald Sie die Maus über den Clip bewegen, werden am Anfang und Ende des Clips graue Begrenzungsbalken eingeblendet. Wenn Sie diese nach innen schieben, schneiden Sie den Film damit an den jeweiligen Enden ab – d. h., im Endergebnis sehen Sie den Anfang bzw. das Ende des Films nicht. (Die zugrunde liegende Quelldatei wird nicht verändert!)
Video-Schnitt (PiTiVi, OpenShot)
Abschnitt 10.6
Mit dem Scherensymbol, mit (S) oder mit Z EITLINIEjTEILEN zerlegen Sie den Film an der aktuellen Position des Zeitmarkers in zwei Teile. Sie können nun jeden dieser Teile als eigenen Clip bearbeiten, also an den Enden beschneiden, verschieben etc. Beachten Sie, dass Sie einen einmal geteilten Film im Editor nicht wieder vereinen können. Immerhin besteht die Möglichkeit, zwei zuvor mit (ª) markierte Filmteile mit Z EITLINIEjVERKNÜPFEN gewissermaßen aneinanderzukleben. Derart verknüpfte Filmteile können Sie anschließend gemeinsam mit der Maus verschieben, ohne dass die Verknüpfung gelöst wird. Sobald es mehrere Clips gibt, rasten Clips beim Verschieben an der Start- bzw. Endposition des jeweils nächsten bzw. vorigen Clips ein. Eine Überlappung der Clips in derselben Ebene ist nicht möglich. Wenn Sie zwei Clips überlagern möchten, müssen Sie einen der Clips in eine Ebene weiter unten bewegen (siehe den nächsten Abschnitt).
Clips verschieben und beschneiden
Wenn Sie beim Verschieben eines Clips zusätzlich (ª) drücken, werden die nachfolgenden (aber nicht die vorausgehenden!) Clips mit verschoben. Clips in anderen Ebenen werden nur dann mitverschoben, wenn sie hinter dem Ende des markierten Clips beginnen. Sich überlagernde Clips werden nicht mitverschoben. Abhilfe: Markieren Sie diese Clips vor dem Verschieben zusätzlich mit (ª), oder verknüpfen Sie die Clips. Wenn Sie das Ende eines Clips beschneiden, das direkt an einen weiteren Clip anschließt, entsteht normalerweise eine Lücke. Die können Sie vermeiden, wenn Sie zusätzlich (ª) drücken. Die nachfolgenden bzw. vorausgehenden Clips werden dann so mitverschoben, dass die Clips weiterhin verbunden bleiben. Eine interessante Variante ist das Abschneiden mit (Strg). In diesem Fall werden die angrenzenden Clips nicht verschoben, sondern verlängert. Anders formuliert: Was Sie bei Clip A abschneiden, wird durch Material von Clip B ersetzt. (Das funktioniert nur, wenn bei Clip B zuvor abgeschnittenes Filmmaterial zur Verfügung steht.) Bis jetzt bin ich davon ausgegangen, dass Sie die Clips einfach hintereinander in der Zeitlinie angeordnet haben. Wenn Sie den resultierenden Film ansehen, gibt es harte Übergänge ( »Schnitte«) zwischen den Filmsequenzen. Das können Sie vermeiden, indem Sie zwei Clips in der Zeitlinie untereinander und horizontal überlappend anordnen. Dabei sind beliebig viele Ebenen erlaubt. Im Endergebnis ist standardmäßig immer nur der Film sichtbar, dessen Clip sich in der höchsten genutzten Ebene befindet.
Clips ein-, ausund überblenden
Überblendeffekte erzielen Sie, indem Sie die Transparenz einzelner Clips (oder von Teilen davon) ändern: Bei jedem Clip wird am oberen Rand eine rote Linie angezeigt. Diese Linie gibt die Transparenz des Clips an (standardmäßig ist ein Clip nicht transparent). In dem Ausmaß, in dem Sie die Linie nach unten verschieben, wird der Film transparent. Der bzw. die Clips in den darunter befindlichen Ebenen der Zeitlinie können nun durchscheinen. Wenn Sie die Transparenz nicht für den gesamten Clip, sondern nur für einen Teil davon verändern möchten (z. B. für die zwei Sekunden, während der sich zwei Clips überlappen), fügen Sie per Doppelklick einen Trennpunkt in die Transparenzlinie ein. Damit können Sie die Linie segmentweise verändern. In Abbildung 10.15 sehen Sie eine Überblendung vom oberen zum unteren Clip. Wenn alle Bildquellen transparent sind, wird das resultierende Bild schwarz. Auf diese Weise können Sie den Film am Beginn bzw. am Ende ein- bzw. ausblenden.
257
Kapitel 10
Audio und Video
Die Tonspur
Die Tonspur läuft grundsätzlich parallel zur Filmspur. Auch hier gibt es eine rote Linie, die allerdings nicht die Transparenz steuert, sondern die Lautstärke. Standardmäßig befindet sich die Linie in der Mitte. Das bedeutet, dass alle sich überlappenden Tonspuren in gleicher Lautstärke zu hören sind. Wenn Sie eine einzelne Tonspur ausblenden möchten, bewegen Sie die Linie nach unten. Umgekehrt ist es auch möglich, eine einzelne Tonspur stärker zu betonen (bis hin zur doppelten Lautstärke), indem Sie die Lautstärkenlinie nach oben bewegen.
Einschränkungen
PiTiVi ist naturgemäß nicht das richtige Werkzeug, wenn Sie den Oscar für den besten Filmschnitt gewinnen möchten. Aber selbst Einsteiger werden rasch an die Grenzen von PiTiVi stoßen: » Mit PiTiVi können Sie den Film nicht mit Texten betiteln (z. B. um am Beginn des Videos einen Titel anzuzeigen oder am Ende einen Nachspann oder in schwer verständlichen Passagen Untertitel). » PiTiVi kennt, einmal abgesehen vom Transparenzregler, keinerlei Überblendeffekte, um den Übergang zwischen zwei Filmsequenzen abwechslungsreicher zu gestalten. » Es gibt keine Funktionen, um einen langen Film zuerst in handhabbare Sequenzen zu zerlegen und diese Sequenzen in der Clip-Bibliothek abzulegen. Wenn Ihr Ausgangsmaterial also nicht eine Sammlung kurzer Videos ist, sondern das mehrstündige Hochzeitsvideo, das Sie kürzen und neu schneiden möchten, ist die Arbeit in PiTiVi sehr unübersichtlich. Die Zeitlinie ist Ihre einzige Navigationsmöglichkeit. Sie können weder Zeitmarken setzen noch einzelne Sequenzen benennen. » PiTiVi hat keine Animationsfunktionen. Die wären oft praktisch, wenn für Teile des zu erstellenden Films (z. B. aus Anlass des sechzigsten Geburtstags von Onkel Hubert) nur alte Fotos, aber keine Videos zur Verfügung stehen. Natürlich kann man argumentieren, dass derartige Funktionen in einem Filmeditor nichts verloren haben – aber gerade im Privatbereich wären sie sehr praktisch. » PiTiVi ist während meiner Tests unter Ubuntu 10.10 Beta sehr häufig abgestürzt. Es ist zu hoffen, dass das Programm stabiler läuft, wenn es im Herbst 2010 mit Ubuntu 10.10 und Fedora 14 ausgeliefert wird. Wenn Sie auf der Suche nach einem leistungsfähigere Video-Editor unter Linux sind, sollten Sie sich das im Folgenden vorgestellte Programm OpenShot näher ansehen.
OpenShot OpenShot ist wie PiTiVi ein Filmschnittprogramm, das sich an Einsteiger und weniger an professionelle Cutter richtet. Im Vergleich zu PiTiVi bietet OpenShot dennoch eine Fülle zusätzlicher Funktionen und Effekte, sodass Sie mit OpenShot wesentlich elegantere Ergebnisse erzielen können als mit PiTiVi. Der offensichtliche Nachteil besteht darin, dass die Bedienung nicht ganz so übersichtlich ist wie bei PiTiVi und dass die Konfiguration diverser Effekte mit erheblichem Einstellaufwand verbunden ist. Leider hat sich auch OpenShot bei meinen Tests als nur mäßig stabil herausgestellt. Gerade beim Umgang mit Effekten ist es regelmäßig zu Abstürzen gekommen. Speichern Sie Ihr Projekt regelmäßig!
258
Video-Schnitt (PiTiVi, OpenShot)
Der prinzipielle Programmaufbau von OpenShot (siehe Abbildung 10.16) hat starke Ähnlichkeiten mit dem von PiTiVi:
Abschnitt 10.6
Grundlagen
» Dateien, Übergänge und Effekte: In den Fensterbereich links oben importieren Sie alle VideoClips, Bilder und Audio-Dateien, aus denen sich Ihr Film zusammensetzen soll. Alle nach hier importierten Dateien werden von OpenShot nur gelesen, aber nicht verändert! Sie müssen also keine Angst haben, dass Sie während des Schneidens Originalmaterial verändern oder zerstören. Bei größeren Filmprojekten ist es möglich, im Importbereich Verzeichnisse zu definieren und das Rohmaterial Ihres Films so übersichtlich organisieren. Die Dialogblätter ÜBERGÄNGE und EFFEKTE stellen diverse vordefinierte Effekte zur Auswahl, die zum Überblenden zweier Video-Clips oder zur optischen Veränderung des Videomaterials dienen. » Vorschau: Rechts oben befindet sich ein Video-Player, in dem Sie Ausschnitte des Films ansehen können. » Spuren (Tracks): Im unteren Fensterbereich befinden sich standardmäßig zwei Spuren für Videound Audio-Material. Projektdateien, Übergänge und Effekte werdenen per Drag&Drop eingefügt. Sie können beliebig viele weitere Spuren definieren. Die oberen Spuren (die mit den höheren Nummern) haben Vorrang: Bildmaterial aus Clips in den unteren Spuren ist also nur sichtbar, wenn Bildmaterial aus den oberen Spuren (teilweise) transparent ist oder durch Effekte ausgeblendet wird. Anders als PiTiVi unterscheidet OpenShot nicht zwischen Audio- und Video-Spuren. Stattdessen kann bei jedem Clip sowie für ganze Spuren durch einen Mausklick Bild oder Ton ausgeschaltet werden. Damit kann jede Spur universell als Audio- oder Video-Spur oder für beide Komponenten genutzt werden. Den Maßstab der Spuren stellen Sie mit einem Schieberegler ein. Nachdem Sie eine Projektdatei in eine Spur eingefügt haben, können Sie auf vielfältige Art und Weise die Eigenschaften dieses Filmausschnitts (Clips) steuern.
ClipEigenschaften
» Mit den drei Buttons ZEIGER-, TRENN- und TRIM -WERKZEUG können Sie den Clip verschieben, in mehrere Teile zerlegen oder am Anfang bzw. Ende beschneiden. » Per Drag&Drop aus dem Dialogblatt E FFEKTE können Sie den Film mit diversen Filtern und anderen Effekten optisch verändern (unscharf machen, in Schwarz-Weiß darstellen etc.). » Per Kontextmenü können Sie einfache Animationseffekte einstellen, beispielsweise um den Clip hinein- oder herauszuzoomen, nach links, rechts, oben oder unten zu verschieben etc. Außerdem können Sie einfache Übergangseffekte einstellen (Ein- oder Ausblenden) und das Layout (die Platzierung) des Clips verändern (z. B. um den Clip verkleinert in der linken unteren Ecke darzustellen). » Sämtliche Eigenschaften können schließlich über das Kontextmenükommando EIGENSCHAFTEN in einem mehrblättrigen Dialog eingestellt werden. Dieser Dialog ist nicht immer ganz intuitiv zu nutzen, bietet dafür aber die Möglichkeit, alle Einstellungen zentral an einem Ort durchzuführen. In eine Spur kann auch eine Bilddatei (Bitmap oder SVG) eingefügt werden. SVG-Dateien eignen sich insbesondere zur Betitelung von Filmen. Bildteile, die nicht durch Schrift oder Grafikelemente überdeckt sind, gelten automatisch als transparent. Standardmäßig sind Bilder sieben Sekunden
259
Kapitel 10
Audio und Video
Abbildung 10.16: Video-Schnitt mit OpenShot
lang sichtbar. Die Einblendzeit können Sie sowohl im Eigenschaftsdialog als auch mit dem Button TRIM-WERKZEUG verändern. Übergänge
OpenShot stellt im Dialogblatt Ü BERGÄNGE unzählige Effekte zusammen, um einen Clip in einen anderen zu überblenden. Sie verschieben Übergänge per Drag&Drop zwischen zwei Spuren und stellen dann mit dem Trim-Werkzeug die Länge des Übergangs ein. Die Richtung des Übergangs wird durch einen Pfeil angezeigt. Um einen Clip von der oberen Spur in einen Clip der unteren Spur zu überblenden, müssen Sie die Übergangsrichtung per Kontextmenü umdrehen.
Titel
TITELjN EUER TITEL startet einen einfachen Assistenten, in dem Sie einen Filmtitel definieren können. Sie haben dabei die Auswahl zwischen verschiedenen Hintergründen, können ein oder mehrere Textelemente mit eigenem Text füllen und schließlich die gewünschte Farbe und Schriftart angeben. OpenShot speichert den Titel als SVG-Datei im Verzeichnis thumbnail, das im selben Verzeichnis erzeugt wird, in dem sich die OpenShot-Projektdatei befindet. Wenn Sie noch mehr Gestaltungsmöglichkeiten wünschen, können Sie die SVG-Datei aus OpenShot heraus mit dem Vektorgrafikprogramm Inkscape bearbeiten. (Inkscape muss bei vielen Distributionen extra installiert werden.) Die Titeldatei kann anschließend wie jede andere Bilddatei in eine Spur eingefügt werden. Oft empfiehlt es sich, für die Betitelung eine eigene Spur anzulegen, die über den restlichen Spuren liegt.
260
DVDs rippen und kopieren
Wenn Sie Ihren Film fertig geschnitten haben, müssen Sie ihn mit DATEIjVIDEO EXPORTIEREN in eine Video-Datei umwandeln. OpenShot unterstützt dabei diverse Audio- und Video-Codecs und bietet zahllose Einstellmöglichkeiten. Der Export ist ein sehr aufwendiger Vorgang, der geraume Zeit dauern kann und eine Menge CPU-Kapazität erfordert.
Abschnitt 10.7
Video exportieren
10.7 DVDs rippen und kopieren Dieser Abschnitt stellt einige Programme vor, um DVDs zu rippen und zu kopieren. Dazu vorweg eine Leseempfehlung: Brother Johns Encodingwissen fasst fachlich fundiert und sprachlich unterhaltsam zusammen, was man wissen sollte, wenn man DVDs auslesen und daraus MPEG-4Video-Dateien erzeugen möchte (also umgangsprachlich DVD-Ripping betreibt): http://www.encodingwissen.brother-john.net/
Wenn Sie eine DVD unterwegs ansehen möchten, Ihr Notebook aber kein DVD-Laufwerk besitzt, übertragen Sie den Film am besten auf die Festplatte. Um Platz zu sparen, erzeugen Sie dabei eine neue Filmdatei, die die Video- und Audio-Daten enthält. Dieser Vorgang wird als DVD-Ripping bezeichnet. Es gibt schier unendlich viele Varianten, wie das Ripping durchgeführt wird. Wichtige Parameter sind:
Hinweis
Die hier vorgestellten Programme lesen DVDs aus. Das ist natürlich nur für DVDs zulässig, die keinen fremden Copyrights unterliegen – also z. B. für Ihre nicht verschlüsselte DVD mit einem Hochzeits- oder Kinder-Video ( »Leos erste Schritte«). Keinesfalls dürfen Sie diese Werkzeuge verwenden, um irgendwelche Blockbuster zu kopieren oder der Video-Sammlung Ihres privaten Media-Centers hinzuzufügen. Welcher meiner Leser würde auf derart verwerfliche Ideen kommen? Lesen Sie lieber ein Buch!
Grundlagen
» der Audio-Codec (z. B. MP3, Ogg Vorbis, AAC, AC-3) » der MPEG-4-Codec (z. B. DivX, H264, Ogg Theora, WebM, Xvid) » das Container-Format (z. B. AVI, MKV, MOV, MP4, OGM) » das Untertitel-Format (z. B. SRT, VobSub) » Qualitätsfaktoren und Komprimierung Anders als bei einer DVD, wo die Audio-Kanäle und Untertitel oft in mehreren Sprachen parallel zur Verfügung stehen, müssen Sie sich bei der Erstellung einer Filmdatei zumeist für eine Sprache entscheiden. Um Platz zu sparen, ist es zumeist auch zweckmäßig, auf Zusatzmaterial (Bonus-Kapitel, Trailer etc.) zu verzichten. Bleibt noch die Qualitätsfrage: Wie groß darf die resultierende Datei maximal werden? Manche Programme sind dahingehend voreingestellt, 700 MByte nicht zu überschreiten, damit der Film auf einer CD Platz findet. Das war vielleicht vor fünf Jahren sinnvoll, ist aber im Zeitalter von TerabyteFestplatten übertrieben. Sie verlieren so spürbar an Bildqualität! Wenn Sie die Originalqualität einer neuen DVD erhalten wollen, müssen Sie bis zu 1 GByte pro Stunde Filmlänge veranschlagen. Wenn es sich dagegen um eine TV-Sendung handelt, die Sie vor 15 Jahren auf ein VHS-Band aufgenommen und vor 5 Jahren auf eine DVD überspielt haben, reichen auch rund 300 MByte/h vollkommen aus,
261
Kapitel 10
Audio und Video
um die ohnedies schon geringe Ausgangsqualität zu erhalten. Vorsicht: Wenn der resultierende Film eine hohe Qualität haben soll, müssen Sie für das Ripping oft wesentlich mehr Zeit veranschlagen, als der Film lang ist. Ein Rechner mit einer schnellen CPU ist hier definitiv zweckmäßig! OGMrip
DVD-Ripping per Kommandozeile ist nur etwas für hartgesottene Linux-Anwender. Die Mühe lohnt nicht, zumal gleich eine ganze Palette von Benutzeroberflächen zur Auswahl steht, um bei der Einstellung der Parameter zu helfen. Mein persönlicher Favorit ist OGMrip mit einer minimalistischen Benutzeroberfläche: Sie wählen aus, welchen Titel der DVD Sie rippen möchten (in der Regel einfach den längsten), welche Sprachen für die Tonspur und die Untertitel verwendet werden sollen und welche Kapitel des Films berücksichtigt werden sollen (zumeist alle). Mit A USLÖSEN starten Sie die Filmproduktion, wobei Sie die Wahl zwischen zahlreichen Qualitätsstufen haben. In der Einstellung PC, HOHE QUALITÄT erzeugt OGMrip eine MKV-Datei und verwendet die Codecs X264 (Video) und AAC (Audio). Mit BEARBEITEN jPROFILES können Sie die vorhandenen Qualitätsstufen verändern oder neue definieren (siehe Abbildung 10.17).
Abbildung 10.17: Einstellung der Ripping-Qualität in OGMrip
Wenn Sie mit OGMrip eine ISO-Datei verarbeiten möchten, müssen Sie diese zuerst in das Dateisystem einbinden (mount -o loop datei.iso verzeichnis) und das Verzeichnis dann mit DATEIjÖ FFNEN laden. AcidRip
Populäre Alternativen zu OGMrip sind AcidRip und dvd::rip. Wer schon etwas Erfahrung mit DVD-Ripping hat, der wird mit AcidRip rasch ans Ziel kommen. Die technisch orientierte Benutzeroberfläche bietet viele Einstellmöglichkeiten, wirkt allerdings anfänglich unübersichtlich. Praktisch ist die Vorschaumöglichkeit, sodass Sie überprüfen können, welcher Titel der DVD was enthält.
dvd::rip
Sehr gewöhnungsbedürftig ist dvd::rip: Dieses Programm ist eindeutig für fortgeschrittene RippingAnwender konzipiert und entsprechend unübersichtlich zu bedienen. Dafür setzt sich das Programm in zwei Punkten von der Konkurrenz ab: Sie haben detaillierten Einfluss auf die Cropping-Funktionen (also auf das Ausschneiden des sichtbaren Teils des Films) und können die zeitraubende Erzeugung der Video-Dateien auf mehrere Rechner verteilen.
HandBrake
Das Programm HandBrake ist momentan unter Mac-OS-X-Anwendern bekannter als unter Linux – aber das wird sich möglicherweise in Zukunft ändern: Die Linux-Version dieses Programms kann durchaus überzeugen. Sie stellt unter anderem einige vordefinierte Konvertierungsprofile zur Aus-
262
Fernsehen (DVB-T, Miro)
Abschnitt 10.8
wahl, die zum Abspielen der Filme auf verschiedenen Apple-Geräten optimiert sind. Für meinen Test habe ich das Programm aus einem PPA (Personal Package Archive) für Ubuntu installiert: root# root#
add-apt-repository ppa:handbrake-ubuntu/ppa apt-get update && apt-get install handbrake-gtk
Die Bedienung ist einfach: Sie geben eine Filmquelle (DVD, Film- oder ISO-Datei) an, legen fest, unter welchem Dateinamen der recodierte Film gespeichert werden soll, und wählen ein vordefiniertes Einstellungsprofil aus. Mit dem START -Button beginnen Sie dann die Recodierung. DVDs können Sie nicht auf Dateisystemebene kopieren, weil sich ein Teil der DVD-Daten außerhalb des Dateisystems befindet. Ein gangbarer Weg besteht hingegen darin, durch direktes Auslesen ein exaktes Abbild der DVD zu erzeugen (eine ISO-Datei) und diese dann auf eine leere DVD zu brennen. Allerdings sind viele DVDs aus Platzgründen zweilagig (DVD9 oder DVD-DL). Entsprechende Rohlinge sind leider noch immer relativ teuer.
DVD95 und K9Copy
Wenn das Video auf einer DVD5 Platz finden soll, werfen Sie einen Blick auf DVD95 (Gnome) oder K9Copy (KDE): Diese Programme erstellen eine DVD-Kopie, wobei sie den Datenumfang bei Bedarf so weit reduzieren, dass der Film auf einer DVD5 Platz findet. Dazu können einzelne DVD-Tracks und Audio-Spuren weggelassen werden. Wenn das nicht reicht, werden die Video-Tracks mit einer stärkeren Komprimierung recodiert, was aber je nach der Gesamtlänge des Videos und der Art des Films sichtbare Qualitätsverluste mit sich bringen kann. Besonders gut funktioniert die Komprimierung übrigens bei Zeichentrickfilmen, deren Bildqualität nahezu unverändert bleibt. Obwohl beide Programme prinzipiell dieselben Funktionen bieten, ziehe ich (auch unter Gnome) K9Copy wegen der wesentlich einfacheren Bedienung vor.
10.8 Fernsehen (DVB-T, Miro) DVB-T DVB steht für Digital Video Broadcasting und ist ein Verfahren, um Fernsehprogramme digital auszustrahlen. Es existieren drei Varianten: DVB-T für den gewöhnlichen (terrestrischen) Sendebetrieb, DVB-S für die Ausstrahlung via Satellit und schließlich DVB-C für die Kabelübertragung. Dieser Abschnitt konzentriert sich auf DVB-T. Aus technischer Sicht sind alle drei DVB-Varianten ganz ähnlich, und für die Linux-Unterstützung spielt es keine Rolle, wie das Signal übertragen wird. DVB-T ersetzt in Europa zunehmend den analogen TV-Sendebetrieb. Damit Sie auf Ihrem Computer via DVB-T fernsehen können, brauchen Sie eine DVB-T-Karte bzw. ein kleines USB-Gerät. Die Hardware ist billig, und die Linux-Unterstützung überraschend gut. Allerdings funktioniert nicht jede DVB-Karte bzw. jedes DVD-Gerät unter Linux. Informieren Sie sich vor dem Kauf! Eine ausgezeichnete Informationsquelle sind die beiden folgenden Seiten: http://www.linuxtv.org/wiki/index.php/Main_Page http://www.linuxtv.org/wiki/index.php/DVB_via_USB
263
Kapitel 10
Firmware
Audio und Video
Die DVB-Hardware enthält einen Mikroprozessor, dessen Code (die sogenannte Firmware) bei den meisten Geräten während der Initialisierung übertragen werden muss. Die erforderliche FirmwareDatei wird als Teil der Windows-Installationsdateien mitgeliefert, ist aber auch auf der folgenden Seite im Internet zu finden: http://www.linuxtv.org/downloads/firmware/ Sie müssen die für Ihr Gerät erforderliche Datei in das Verzeichnis /lib/firmware/kernelversion/ kopieren. Wenn Ihr DVB-Gerät vom Linux-Hotplug-System erkannt wird, lädt dieses das richtige Kernelmodul. Das Modul liest dann die Firmware-Datei und überträgt sie auf das DVB-Gerät. Ob das funktioniert, stellen Sie am einfachsten mit dmesg fest. Vereinzelt gibt es auch DVB-Geräte, die auf Anhieb funktionieren – dann entfällt dieser Schritt. Ich habe meine Experimente mit dem schon etwas älteren USB-Gerät TerraTec Cinergy T2 durchgeführt, das von Linux gut unterstützt wird und keine Firmware erfordert. Für den Betrieb sind die Kernelmodule dvb_core und cinergyT2 erforderlich. dmesg liefert nach der Initialisierung die folgenden Ausgaben: user$ dmesg ... dvb-usb: found a 'TerraTec/qanu USB2.0 Highspeed DVB-T Receiver' in warm state. dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. DVB: registering new adapter (TerraTec/qanu USB2.0 Highspeed DVB-T Receiver) DVB: registering adapter 0 frontend 0 (TerraTec/qanu USB2.0 Highspeed DVB-T Receiver)... ... usbcore: registered new interface driver cinergyT2
Manueller Frequenz-Scan
Bevor Sie das erste Mal fernsehen können, müssen Sie noch einen Frequenz-Scan durchführen, um eine Liste aller empfangbaren Kanäle zu erstellen. Einige Medien-Player sind dazu selbst in der Lage. Wenn Sie xine, MPlayer oder VLC einsetzen, müssen Sie den Frequenz-Scan aber vorweg selbst erledigen. Dazu brauchen Sie zwei Dinge: das Programm scan oder dvbscan, das je nach Distribution Teil des Pakets dvb oder dvb-apps ist, sowie eine Datei, die den nächstgelegenen DVBSender beschreibt. Für viele Sender finden Sie eine entsprechende Datei im folgenden Verzeichnis: /usr/share/dvb/dvb-t/ Beispielsweise beschreibt de-berlin den bzw. die Sender in Berlin. Wenn es für Ihren Standort keine entsprechende Datei gibt, müssen Sie die Datei selbst erstellen. Dazu müssen Sie durch eine Internet-Suche herausfinden, welche Grundfrequenz der nächste Sender verwendet. Eine gute, aber nicht immer aktuelle Informationsquelle ist die folgende Seite: http://www.the-media-channel.com/dvb-t/ Nun erstellen Sie eine Datei nach dem folgenden Muster: user$ cat at-Schoeckl # Sender Schöckl/Graz (Österreich) # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy T 514000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
264
Fernsehen (DVB-T, Miro)
Abschnitt 10.8
Jetzt führen Sie das Kommando scan sender-datei aus und leiten das Ergebnis in die lokale Datei channels.conf. Die Ausführung dieses Kommandos dauert in der Regel einige Minuten. Es kann sein, dass in der Sender-Datei mehrere Sender definiert sind, von denen nur ein Teil bei Ihnen empfangen werden kann. scan quittiert das mit tuning failed. Das macht nichts, solange die anderen Sender Ergebnisse liefern. Der folgende Frequenz-Scan lieferte zwei erreichbare Sender mit insgesamt acht Kanälen. user$ scan /usr/share/dvb/dvb-t/at-Official > channels.conf using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0' initial transponder 474000000 0 3 9 1 1 3 0 initial transponder 490000000 0 3 9 1 1 3 0 ... >>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4: FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE WARNING: >>> tuning failed!!! >>> tune to: 490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4: FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE 0x0000 0x2789: pmt_pid 0x0000 sevenonemedia -- PULS 4 (running) 0x0000 0x2c26: pmt_pid 0x0000 ORF -- 3SAT (running) 0x0000 0x2c27: pmt_pid 0x0000 ORF -- ORF Sport Plus (running) 0x0000 0x2c28: pmt_pid 0x0000 ServusTV -- ServusTV (running) Network Name 'ORS DVB-T X2' ... >>> tune to: 514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4: FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE 0x0000 0x2775: pmt_pid 0x01f5 ORF -- ORF1 (running) 0x0000 0x2780: pmt_pid 0x01f6 ORF -- ORF2 St (running) 0x0000 0x2788: pmt_pid 0x01f8 ATV+ -- ATV (running) 0x0000 0x2794: pmt_pid 0x01f7 ORF -- ORF2 B (running) Network Name 'ORS DVB-T StB' user$ sort channels.conf 3SAT:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:... ATV:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:... ORF1:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:... ORF2 B:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:... ORF2 St:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:... ORF Sport Plus:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC:... PULS 4:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC:... ServusTV:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:... Zum Fernsehen haben Sie nun die Wahl zwischen verschiedenen Programmen. Besonders gut funktioniert das Fernsehen mit Kaffeine sowie mit xine (siehe unten).
Kaffeine
Kaffeine findet die DVB-T-Kanäle selbst. Dazu wählen Sie zuerst im Dialog FERNSEHEN jFERNSEHEN EINRICHTEN jG ERÄT den Standardort aus und führen dann mit FERNSEHEN jK ANÄLE jS UCHLAUF die Kanalsuche durch. Die gefundenen Kanäle (rechte Seitenleiste) markieren Sie und fügen sie dann mit A USGEWÄHLTE HINZUFÜGEN der Kanalliste hinzu (linke Seitenleiste). Im Fernsehmodus können Sie dann bequem zwischen den Kanälen wechseln.
265
Kapitel 10
Audio und Video
Zu den attraktivsten Funktionen in Kaffeine gehört die Möglichkeit, Fernsehsendungen ohne langes Hin und Her aufzunehmen. Dazu führen Sie einfach FERNSEHENjSOFORTAUFNAHME aus. Die Aufnahme endet, wenn Sie dieses Kommando ein zweites Mal ausführen. Sie finden die aufgenommene Video-Datei anschließend in Ihrem Heimatverzeichnis. mplayer
Bevor Sie MPlayer starten, kopieren Sie channels.conf in das Konfigurationsverzeichnis: user$
cp channels.conf .mplayer/
(für MPlayer)
Anschließend geben Sie beim Start das gewünschte Programm in der Form dvb://name an. Achten Sie dabei auf die korrekte Groß- und Kleinschreibung! user$
[gnome-]mplayer dvb://ORF1
Totem
Wenig Glück hatte ich mit Totem. Nach der Installation des Pakets totem-plugins-dvb-daemon führt FILMjFERNSEHEN in einen Assistenten, der bei der Kanalsuche hilft. In meinem Fall fand Totem aber nur vier der acht verfügbaren Kanäle. Der Versuch, einen dieser Kanäle dann tatsächlich anzusehen, endete mit einer Fehlermeldung.
VLC
Bei VLC laden Sie die Kanalliste channels.conf mit MEDIENjDATEI ÖFFNEN . Anschließend führt A NSICHTjWIEDERGABELISTE bzw. (L) in die Kanalliste, in der Sie den gewünschten Kanal auswählen können. Bei meinen Tests gab VLC einige Kanäle problemlos wieder, versagte aber unerklärlicherweise bei anderen.
xine
Am wenigsten Probleme bereitete das DVB-T-Fernsehen mit xine (siehe Abbildung 10.18). Bevor Sie mit xine fernsehen können, kopieren Sie channel.conf in das xine-Konfigurationsverzeichnis. user$
cp channels.conf .xine/
(für xine)
Anschließend starten Sie das gewünschte Programm, das Sie in der Form dvb://name angeben: user$
xine dvb://ORF1
Mit (Alt)+(P) wechseln Sie zwischen den Kanälen.
Abbildung 10.18: Fernsehen mit xine und DVB-T
266
Fernsehen (DVB-T, Miro)
Abschnitt 10.8
Miro Miro ist ein Programm, um Video-Dateien von einer großen Liste vordefinierter Kanäle via Internet herunterzuladen und dann anzusehen. Miro eignet sich aber selbstverständlich auch dazu, um eigene Video-Dateien anzusehen. Beim Video-Download setzt Miro auf das Verfahren Peer to Peer TV (kurz P2PTV): Alle Teilnehmer stellen die heruntergeladenen Videos anderen Teilnehmern zur Verfügung. Auf diese Weise soll vermieden werden, dass einzelne Video-Anbieter unter der hohen Nachfrage zusammenbrechen. Das Programm Miro, das genau genommen Miro Media Player heißt, wurde ursprünglich unter dem Namen Democracy Player entwickelt. Das soll zum Ausdruck bringen, dass über P2PTV auch Filme angeboten werden, die in den kommerziellen TV-Programmen keinen Platz finden.
Abbildung 10.19: Miro
Beim ersten Start fragt der Miro-Assistent Sie, ob das Programm in Zukunft sofort nach dem Login gestartet werden soll. Das ist deswegen zweckmäßig, weil dann aktuelle Sendungen von abonnierten Kanälen im Hintergrund heruntergeladen werden. Da der Download der Video-Dateien in der Regel geraume Zeit dauert, stehen Sendungen aus abonnierten Kanälen rascher zur Verfügung. Die Bedienung von Miro ist einfach: Im Miro-Programmführer können Sie anhand verschiedener Kriterien (z. B. Sprache, Genres) nach für Sie interessanten Angeboten suchen. Unter den deutschsprachigen Angeboten finden Sie z. B. tägliche Nachrichtensendungen des ZDF, diverse Computer-Kurse und -Sendungen, Filmtrailer etc. Ein Teil der Filme steht sogar in HD-Qualität zur Verfügung.
267
Kapitel 10
Audio und Video
Wesentlich größer ist das englischsprachige Angebot mit diversen Wildlive-Dokumentationen, politischen Kommentaren etc. Spannend ist Miro naturgemäß auch für alle, die gerade eine Fremdsprache lernen. Wenn Sie einen Film entdeckt haben, der Sie interessiert, klicken Sie auf den Button HERUNTERLADEN. Miro lädt die Filmdatei herunter, während Sie weiter im Angebot stöbern können. Bei Sendungen, die täglich oder wöchentlich »ausgestrahlt« werden (genau genommen via Internet bereitgestellt werden), empfiehlt es sich, den jeweiligen Kanal einfach zu abonnieren. In der MiroNomenklatur heißt das, dass Sie den Kanal-Feed der Seitenleiste hinzufügen. Das bewirkt, dass neue Sendungen nach Verfügbarkeit automatisch heruntergeladen werden. Wenn Sie das nächste Mal Zeit haben, können Sie in der Bibliothek nachsehen, welche neuen Filme dort bereitstehen. Die »Bibliothek« ist also Ihre Sammlung bereits heruntergeladener Filme. Damit der Platzbedarf der Bibliothek nicht grenzenlos wächst, werden angesehene Filme standardmäßig nach einigen Tagen gelöscht. Das können Sie natürlich vermeiden, indem Sie bei dem Film den Button B EHALTEN anklicken. Oder Sie können einen schlechten Film sofort löschen (Button E NTFERNEN ). Alles in allem macht die Bedienung von Miro Spaß. Mit einer guten Internetverbindung ist Miro eine interessante Ergänzung zum herkömmlichen Fernsehangebot.
268
11. VirtualBox Virtualisierung bietet die Möglichkeit, auf einem Rechner mehrere Betriebssysteme parallel auszuführen. Daraus ergeben sich unzählige Anwendungen: Sie können Linux unter Windows ausprobieren, Windows unter Linux ausführen, eine neue AlphaVersion der Distribution xyz gefahrlos testen, ohne die laufende (stabile) Linux-Installation zu gefährden, Server-Funktionen sicher voneinander trennen (Server-Virtualisierung) etc. Dieses Kapitel gibt einen Überblick über Virtualisierungsgrundlagen und -programme und konzentriert sich dann ganz auf VirtualBox. Zur Server-Virtualisierung ist KVM besser geeignet (siehe Kapitel 34.1).
11.1 Virtualisierungsgrundlagen In diesem Abschnitt erfahren Sie, warum es so viele unterschiedliche Virtualisierungsprogramme gibt, auf welchen Techniken sie basieren und welches Programm für welchen Zweck geeignet ist. Wenn es Ihnen primär darum geht, rasch eine virtuelle Windows-Maschine unter Linux einzurichten oder Linux innerhalb von Windows auszuführen, können Sie diesen Grundlagenabschnitt getrost überspringen und auf Seite 275 weiterlesen.
Virtualisierungstechniken Bei der Beschreibung von Virtualisierungssystemen hat es sich eingebürgert, das Grundsystem als Wirt (Host) und die darauf laufenden virtuellen Maschinen als Gäste (Guests) zu bezeichnen.
Gast und Wirt
Zur Virtualisierung von Betriebssystemen existieren verschiedene Verfahren. Die folgende Liste fasst die gängigsten Virtualisierungstechniken zusammen und nennt einige populäre Programme bzw. Firmen, die diese Techniken nutzen.
Virtualisierungstechniken
» Vollvirtualisierung (virtuelle Maschinen, Emulation): Hier simuliert ein Programm virtuelle Hardware, also einen Rechner, der aus CPU, RAM, Festplatte, Netzwerkkarte etc. besteht. Für die Gastsysteme sieht es so aus, als würde die virtuelle Hardware real existieren. Damit das funktioniert, muss das Virtualisierungsprogramm des Wirts den Code des Gasts überwachen und bestimmte Anweisungen durch anderen Code ersetzen. Diese Aufgabe übernimmt der sogenannte Hypervisor (auch Virtual Machines Monitor oder kurz VMM). Der Hypervisor ist aber auch für die Speicher- und Prozessverwaltung und andere hardware-nahe Funktionen verantwortlich.
Kapitel 11
VirtualBox
Vorteile: Nahezu jedes Betriebssystem kann innerhalb der virtuellen Maschine ausgeführt werden. Das Betriebssystem muss dazu nicht verändert werden. Nachteile: Relativ langsam. Programme/Firmen: VMware, QEMU, Parallels, VirtualBox, Microsoft Virtual PC » Paravirtualisierung: Auch hier stellt der Wirt virtuelle Maschinen zur Verfügung, in denen die Gäste laufen. Der Unterschied besteht darin, dass das Gastbetriebssystem für die Virtualisierung modifiziert sein muss und direkt mit dem VMM kommuniziert. Vorteile: Effizient. Nachteile: Erfordert speziell für das Virtualisierungssystem modifizierte Betriebssysteme. Das ist für Open-Source-Systeme wie Linux kein großes Problem, schließt aber kommerzielle Betriebssysteme wie Windows weitgehend aus. (Xen und Microsoft bzw. Novell und Microsoft kooperieren auf diesem Gebiet allerdings, weswegen es in Zukunft voraussichtlich speziell für Xen optimierte Windows-Server-Versionen geben wird.) Programme/Firmen: Xen, UML (User-mode Linux) » (Para-)Virtualisierung mit Hardware-Unterstützung: Moderne CPUs von Intel und AMD enthalten hardware-seitig Funktionen zur Vereinfachung von Virtualisierungstechniken. Intel nennt diese Technik Intel-VT (ehemals Vanderpool), AMD taufte seine Funktionen AMD-V (ehemals Pacifica). Vorteile: Effizient, je nach Implementierung keine Modifikation im Gastbetriebssystem erforderlich. Nachteile: Erfordert spezielle Prozessoren. Programme/Firmen: KVM, Xen » Virtualisierung auf Betriebssystemebene (Containers): Dieses Verfahren verzichtet auf richtige virtuelle Maschinen. Die Gastsysteme nutzen vielmehr den gemeinsamen Kernel und Teile des Dateisystems des Wirts. Zu den wichtigsten Aufgaben des Virtualisierungssystems zählt es, den Wirt von seinen Gästen zu isolieren, um jede Art von Sicherheitsrisiken zu vermeiden. Vorteile: Sehr effizient, spart Ressourcen (RAM, Festplatte etc.). Nachteile: Nur geeignet, wenn der Wirt und seine Gäste jeweils exakt dasselbe Betriebssystem bzw. exakt dieselbe Kernelversion nutzen. Das Betriebssystem muss entsprechend modifiziert werden. Programme/Firmen: OpenVZ, Virtuozzo, Linux-VServer Alle Verfahren außer dem ersten erfordern Linux-seitig eine Veränderung des Kernels. Momentan sind allerdings nur die KVM- und UML-Virtualisierungsfunktionen Bestandteil des offiziellen Kernels. Bei allen anderen Verfahren muss der Kernel mit einem nicht-offiziellen Patch modifiziert werden. Wenn Sie beispielsweise eine Xen-taugliche Distribution einsetzen, hat der Distributor die Xen-Funktionen bereits in den Kernel eingebaut. Weitere Informationen zu verschiedenen Virtualisierungstechniken finden Sie in der Wikipedia sowie auf den folgenden Seiten: http://virt.kernelnewbies.org/TechOverview http://wiki.openvz.org/Introduction_to_virtualization
270
Virtualisierungsgrundlagen
Um festzustellen, ob Ihre CPU bei der Hardware-Virtualisierung hilft (Intel-VT oder AMD-V), führen Sie das folgende egrep-Kommando aus. Das hier gezeigte Ergebnis stammt von einer Intel-Core-2CPU mit zwei Cores. Wenn das Ergebnis leer ist, unterstützt Ihre CPU keine Virtualisierung, oder die Funktion wurde im BIOS deaktiviert.
Abschnitt 11.1
CPU-Unterstützung
user$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
Virtuelle Hardware Die Emulierung virtueller Hardware ist naturgemäß ein komplexer Prozess. Je nach Virtualisierungsverfahren bzw. je nach Implementierung werden Sie in der Praxis früher oder später an Grenzen stoßen. Der Speicher in Ihrem Rechner muss größer sein als die Summe der Anforderungen für das Wirtssystem und alle laufenden Gäste. Je mehr Systeme zugleich laufen sollen, desto mehr RAM brauchen Sie. Mein Testrechner ist mit 6 GByte RAM ausgestattet. Das reicht aus, um ein halbes Dutzend Linux-Distributionen parallel auszuführen.
RAM
Die meisten Virtualisierungssysteme speichern das Dateisystem des Gasts in einer großen Datei des Wirtssystems. Die Gäste greifen somit nicht direkt auf die Festplatte zu, sondern indirekt über das Virtualisierungssystem auf eine Datei. Datenzugriffe im Gast sind deswegen wesentlich langsamer als auf dem Wirtssystem, etwa um einen Faktor zwischen zwei und drei.
Festplatte
CD- und DVD-Laufwerke werden vom Wirt an den Gast durchgereicht. Der Zugriff ist allerdings readonly. Ich kenne kein Virtualisierungssystem, das das Brennen von CDs/DVDs im Gastsystem zulässt.
CD/DVDLaufwerke
Die meisten Virtualisierungsprogramme bieten dafür die Möglichkeit an, dem virtuellen CD/DVDLaufwerk eine ISO-Datei zuzuordnen. Anstatt das reale Laufwerk zu nutzen, greift der Gast nun auf die ISO-Datei zu. Gerade für wiederholte Installationen ist das außerordentlich praktisch, effizient und leise. Bei Bedarf können Sie eine ISO-Datei ganz einfach selbst aus einer CD/DVD extrahieren (siehe auch Seite 329): root# dd if=/dev/scd0 of=datei.iso bs=2048 Um die Grafikfunktionen einigermaßen effizient zu nutzen, muss auf jedem Gastsystem ein spezieller Treiber installiert werden, der auf die Virtualisierungssoftware des Wirts abgestimmt ist. Einschränkungen gibt es je nach Virtualisierungssystem bei der Nutzung von 3D-Funktionen.
Grafikkarte
Die meisten Virtualisierungsprogramme stellen dem Gast eine virtuelle Audio-Karte zur Verfügung und leiten Audio-Ausgaben an das Audio-System des Wirts weiter. Solange Sie keine besonderen Ansprüche an das Audio-System stellen (Surround-Effekte etc.), funktioniert das zufriedenstellend.
AudioFunktionen
271
Kapitel 11
VirtualBox
USB-Geräte, externe Hardware
Tastatur- und Mauseingaben werden vom Wirt an den Gast übertragen. Welchen Zugriff Gäste auf sonstige externe Geräte haben, variiert sehr stark je nach Virtualisierungssystem. USB-Geräte werden leider von vielen Virtualisierungssystemen nicht oder nur mit großen Einschränkungen unterstützt (z. B. ist kein Zugriff auf USB-Datenträger möglich).
Netzwerkanbindung der virtuellen Maschinen Das Virtualisierungssystem stellt seinen Gästen die Netzwerkinfrastruktur des Wirts zur Verfügung, normalerweise in Form einer virtuellen Netzwerkkarte. Es existieren unterschiedliche Verfahren, wie der Netzwerkverkehr von der virtuellen Netzwerkkarte in das reale Netzwerk geleitet wird. Sie können auch mehrere virtuelle Netzwerkadapter definieren, die über unterschiedliche Verfahren kommunizieren (so, wie auch ein echter Rechner mehrere Netzwerkadapter haben kann, z. B. für LAN und WLAN). Im Folgenden verwende ich die Nomenklatur von VirtualBox. Beachten Sie, dass nicht jedes Virtualisierungsprogramm alle Varianten kennt bzw. diese bisweilen anders bezeichnet. » Netzwerkbrücke: Beim Bridged Networking erscheint der Gast als zusätzlicher Client im lokalen Netz. Diese Variante ist optimal, wenn es im lokalen Netzwerk (aber nicht auf dem Wirtsrechner!) einen DHCP-Server gibt bzw. wenn der Wirtsrechner mit einem ADSL- oder WLAN-Router verbunden ist. Die virtuellen Gäste beziehen ihre Netzwerkkonfiguration dann über diesen Server/Router und können sowohl auf das lokale Netzwerk als auch auf das Internet zugreifen. Wenn Ihr Wirtsrechner mehrere Netzwerkschnittstellen besitzt, müssen Sie angeben, welche davon für das Bridged Networking genutzt werden soll (die, über die Sie Ihren Internetzugang beziehen). » NAT: Bei der NAT-Variante fungiert das Virtualisierungssystem für seine Gäste selbst als DHCPServer und führt Masquerading-Funktionen aus (siehe auch Seite 848). Auf diese Weise können die Gäste den Internetzugang des Wirtssystems nutzen. Ein Zugang zum lokalen Netzwerk ist wegen der unterschiedlichen Adressbereiche für das lokale Netz und das virtuelle NAT-Netz des Virtualisierungssystems unmöglich. » Host-only Networking: Beim Host-only Networking kann der Gast über die Netzwerkfunktionen nur mit dem Wirt kommunizieren, nicht aber mit anderen Rechnern im lokalen Netzwerk oder mit dem Internet. Diese Variante ist dann zweckmäßig, wenn Sie ein von außen nicht zugängliches Testsystem aus mehreren virtuellen Maschinen aufbauen möchten. » Internes Netzwerk: Das Virtualisierungsprogramm bildet ein virtuelles Netzwerk, in dem ausschließlich virtuelle Maschinen kommunizieren können. Sie haben bei dieser Variante weder Zugriff auf das lokale Netzwerk noch auf das Internet.
Datenaustausch zwischen Wirt und Gast Grundsätzlich gilt: Ein Gast darf nicht direkt auf eine Festplatte zugreifen, die auch vom Wirt genutzt wird. Es kann nicht sein, dass zwei Betriebssysteme gleichzeitig einen Festplatten-Controller steuern – Datenverluste wären unausweichlich. Deswegen simuliert die Virtualisierungssoftware auf dem Wirt für den Gast eine Festplatte und kümmert sich selbst darum, diese virtuelle Festplatte in Dateien des Wirtssystems abzubilden. Das bedeutet aber: Der Wirt kann nicht direkt auf das Dateisystem des Gasts zugreifen und umgekehrt.
272
Virtualisierungsgrundlagen
Abschnitt 11.1
Der schnellste Weg zum Datenaustausch führt deswegen über Netzwerkverzeichnisse. Am einfachsten ist es, wenn auf dem Wirt oder auf einem externen Rechner, der sowohl vom Wirt als auch von den Gästen via Netzwerk erreichbar ist, ein NFS- oder Samba-Server läuft. Manche Virtualisierungsprogramme inkludieren derartige Funktionen selbst (Shared Folders etc.), was meinen Erfahrungen nach aber wenig Vorteile bietet und die Konfiguration oft unnötig kompliziert macht.
Netzwerkverzeichnisse
Viele Virtualisierungsprogramme erlauben den Austausch markierten Texts über die Zwischenablage. Leider funktioniert das oft eher schlecht als recht. Schuld ist teilweise das Grafiksystem X, das zwischen der Ad-hoc-Zwischenablage für den gerade markierten Text und der Zwischenablage für den zuletzt mit (Strg)+(C) kopierten Text unterscheidet. Bisweilen ist unklar, welche dieser Zwischenablagen für das Virtualisierungssystem Gültigkeit hat. Außerdem beschränkt sich die Funktion der Zwischenablage auf reinen Text. Wer rasch ein Excel-Diagramm aus einem Windows-Gast in ein OpenOffice-Writer-Dokument auf dem Wirtsrechner kopieren will, der wird enttäuscht sein.
Zwischenablage
Virtualisierungsprogramme Das Angebot an Virtualisierungsprodukten, sowohl im kommerziellen als auch im Open-SourceSegment, ist unübersichtlich groß. Die folgende Aufzählung nennt ganz kurz die wichtigsten Mitstreiter im Virtualisierungsmarkt. In Klammern ist jeweils angegeben, ob es sich um OpenSource-Software oder um kommzerzielle Produkte handelt und welche Firma die Entwicklung vorantreibt bzw. die resultierenden Produkte vertreibt. » VMware (kommerziell, EMC): Die Firma VMware ist unumstrittener Marktführer im Virtualisierungsmarkt. Die Palette der Virtualisierungsprodukte beginnt im Desktop-Bereich (VMware Workstation und Player) und endet im Server-Bereich (VMware Server, ESXi, vSphere). Einzelne Programme sind zwar kostenlos verfügbar, aber nicht als Open-Source-Code. Als Wirtssystem werden Linux, Windows und vereinzelt Mac OS X unterstützt. Einige VMware-Produkte laufen ganz ohne Betriebssystem (Bare Metal). Persönlich habe ich die meisten Erfahrungen mit VMware Workstation, das ich viele Jahre lang sowohl unter Windows als auch unter Linux genutzt habe. Allerdings hatte ich seit 2008 derart viele Netzwerk- und Tastaturprobleme, dass ich schließlich meine VMware-Installationen auf VirtualBox umgestellt habe. (Es ist möglich, die VMware-Disk-Images unter VirtualBox weiterzunutzen. Die virtuelle Maschine muss aber neu eingerichtet werden.) » VirtualBox (teilweise Open Source, Sun/Oracle): Das Programm VirtualBox bietet ähnliche Funktionen wie VMware Workstation, eignet sich also zur Desktop-Virtualisierung. Als Wirtssystem werden Linux, Windows und Mac OS X unterstützt. VirtualBox ist für Privatanwender kostenlos; außerdem gibt es eine Open-Source-Version, die im Rahmen der GPL auch kommerziell genutzt werden kann. VirtualBox wurde in den vergangenen Jahren enorm schnell weiterentwickelt. Mehrere Programmversionen pro Jahr stellen sicher, dass VirtualBox gut mit den jeweils neuesten Kernel- und X-Versionen harmoniert. » KVM/QEMU (Open Source, Red Hat): KVM ist eigentlich nur ein Kernelmodul, das die bis dahin sehr langsame Emulationssoftware QEMU auf modernen CPUs enorm beschleunigt. Seit KVM offiziell in den Kernel integriert ist und Red Hat die KVM-Firma Qumranet gekauft hat, gewinnt KVM enorm an Bedeutung und gilt als Standard-Virtualisierungslösung für Fedora, Ubuntu und
273
Kapitel 11
VirtualBox
natürlich für Version 6 von Red Hat Enterprise Linux. KVM ist gleichermaßen für die Desktop- und die Server-Anwendung geeignet. Was die Benutzerfreundlichkeit, Kompatibilität und Geschwindigkeit betrifft, kann KVM allerdings noch nicht ganz mit den kommerziellen Mitstreitern VMware, VirtualBox und Xen mithalten. Als Wirtssystem wird nur Linux unterstützt. Mehr Informationen zu KVM finden Sie in einem eigenen Kapitel in diesem Buch ab Seite 1034. » Xen (teilweise Open Source, Citrix): Xen ist ein Hypervisor, der ohne Betriebssystem ausgeführt wird. Die virtualisierten Gäste laufen in sogenannten Domänen (domU), wobei die erste Domäne (dom0) besondere Privilegien hat und in gewisser Weise mit dem Wirtssystem bei anderen Virtualisierungsprodukten vergleichbar ist. Xen ist in vielen Anwendungsfällen deutlich effizienter als andere Virtualisierungslösungen. Gleichzeitig ist aber auch das Einrichten und Konfigurieren von Gastsystemen (Domänen) wesentlich aufwendiger. Das liegt nicht zuletzt daran, dass die für Xen erforderlichen Kernelerweiterungen sehr umfangreich sind und trotz mehrjähriger Bemühungen nicht in den offiziellen Kernel integriert wurden. Kurz und gut: Wenn Sie viel Zeit und Know-how investieren, können Sie mit Xen herausragende Ergebnisse erzielen. Für die Gelegenheitsanwendung ist Xen aber ungeeignet. » OpenVZ und Virtuozzo (teilweise Open Source, Parallels) sowie Linux-VServer (Open Source): OpenVZ, das darauf basierende kommerzielle Produkt Virtuozzo und die technisch ähnliche Virtualisierungslösung VServer ermöglichen es, mehrere isolierte Umgebungen auf der Basis einer Linux-Distribution auszuführen. OpenVZ bzw. Virtuozzo gehen davon aus, dass es sich beim Wirt und seinen Gästen um dieselbe Linux-Version handelt. Dieses Konzept eignet sich dazu, mehrere (viele!) gleichartige Server zu virtualisieren. Es wird teilweise von Internet-Hosting-Providern genutzt, um kostengünstig virtuelle Root-Server anzubieten. » Hyper-V (kommerziell, Microsoft): Microsoft hat den Virtualisierungsmarkt verschlafen und versucht nun mit aller Kraft, seine eigene Virtualisierungslösung Hyper-V konkurrenzfähig zu machen. Hyper-V setzt ein Windows-Server-System als Wirtssystem voraus, unterstützt Linux aber immerhin als Gastsystem und hat dafür sogar eigene Linux-Kerneltreiber als Open-SourceCode entwickelt (ein Schritt, der Microsoft sicher schwergefallen ist, hat man doch die GPL lange Zeit verteufelt). Eigene Erfahrungen
Vielleicht fragen Sie sich, wie stark ich selbst bei der Arbeit an diesem Buch auf Virtualisierungsprogramme zurückgegriffen haben. Die kurze Antwort: Mehr als je zuvor! Mein persönlicher Favorit ist mittlerweile VirtualBox. Von nahezu allen Distributionen, die in diesem Buch vorkommen, habe ich mehrere VirtualBox-Installationen durchgeführt (32/64-Bit, mit KDE/Gnome als Desktop etc.). Während ich früher bis zu vier Rechner gleichzeitig verwendete, um verschiedene Distributionen parallel ohne ständiges Neustarten zu testen, hatte ich in den letzten Monaten oft zahlreiche VirtualBoxFenster gleichzeitig offen. Der Komfortgewinn ist enorm! Wenn es um reale Hardware-Tests geht, stößt freilich auch VirtualBox rasch an seine Grenzen. Aussagekräftige Geschwindigkeitstests, das Ausprobieren moderner Hardware-Komponenten oder Parallelinstallationen mehrerer Windows- und Linux-Versionen lassen sich nach wie vor nur mit »echter« Hardware seriös testen. Deswegen habe ich alle in diesem Buch vorgestellten Distributionen nicht nur virtuell getestet, sondern auch auf meinem aus zwei Notebooks und zwei PCs bestehenden privaten Test-Parcours ausprobiert.
274
VirtualBox installieren (Host)
Grundsätzlich müssen Sie leider davon ausgehen, dass Virtualisierungssysteme zueinander inkompatibel sind. Ein Gastsystem, das Sie unter VMware installiert haben, können Sie daher nicht mit Xen nutzen (und umgekehrt). Zu dieser Inkompatibilität führen zwei Faktoren: Die Formate der virtuellen Festplatten sind unterschiedlich (wobei das VMware-Format als kleinster gemeinsamer Nenner auch von vielen anderen Programmen akzeptiert wird), und je nach Virtualisierungssystem sind im Gastsystem unterschiedliche Zusatztreiber, Kernelerweiterungen etc. erforderlich.
Abschnitt 11.2
Kompatibilität zwischen den Systemen
Kommerzielle Virtualisierungsprogramme sind zwar teilweise in der Lage, Gastsysteme von Konkurrenzprodukten zu importieren, aber auch dabei treten oft Probleme auf. Es gibt Bestrebungen, einheitliche Formate für Gastsysteme zu definieren und zu standardisieren – ob und wann dieses Unterfangen von Erfolg gekrönt sein wird, steht aber in den Sternen. Es gibt noch eine Einschränkung: Die meisten Virtualisierungssysteme erfordern auf dem Wirtssystem besondere Kernelmodule bzw. -treiber. Aus diesem Grund ist es in der Regel nicht möglich, mehrere Virtualisierungssysteme parallel auszuführen (also z. B. gleichzeitig VirtualBox- und VMware-Maschinen auszuführen).
11.2 VirtualBox installieren (Host) VirtualBox ist ein Desktop-Virtualisierungssystem, das unter Linux, Windows, Solaris und Mac OS X läuft. Als Gastsystem werden nahezu alle gängigen Betriebssysteme für x86-Hardware unterstützt (unter anderem auch Windows 7, Solaris und OpenBSD). VirtualBox ist 64-Bit-kompatibel, kann den Gästen mehrere Cores/CPUs weiterreichen, unterstützt 3D-Funktionen im Gast (ausreichend für die 3D-Desktop-Funktionen unter Linux, aber unzureichend, um die Aero-Glass-Oberfläche von Windows Vista oder Windows 7 zu nutzen), unterstützt Snapshots etc. Die größten Stärken von VirtualBox gegenüber anderen Open-Source-Virtualisierungsprogrammen (KVM, Xen etc.) sind die ansprechende Benutzeroberfläche und die gut organisierte Dokumentation. Das macht gerade Einsteigern das Leben leicht. Kurz und gut: VirtualBox bietet ähnliche Funktionen wie VMware Workstation, ist aber für Privatanwender kostenlos bzw. in einer etwas abgespeckten Variante sogar als Open-Source-Code verfügbar. Außerdem wird VirtualBox zurzeit wesentlich besser gewartet als VMware Workstation. Mehrere neue Versionen pro Jahr sowie monatliche Updates stellen sicher, dass VirtualBox auch mit den neuesten gerade verfügbaren Kernel- und X-Versionen harmoniert. Hinter VirtualBox stand ursprünglich die Firma InnoTek, die zusammen mit einer zweiten Firma (Connectix) das Produkt Virtual PC entwickelt hat. Dieses Virtualisierungsprogramm wurde 2003 von Microsoft aufgekauft. Seit 2004 wurden Virtual PC und VirtualBox getrennt weiterentwickelt. Im Februar 2008 übernahm Sun InnoTek, und im Februar 2010 Oracle Sun. Damit ist nun Oracle der Eigentümer von VirtualBox. Was das für die Zukunft des Produkts heißt, ist noch unklar. Da der Großteil des Codes der Lizenz GPL unterliegt, scheint aber zumindest die Zukunft der OpenSource-Variante von VirtualBox gesichert. Dieser Abschnitt basiert auf VirtualBox 3.2. Aktuelle Informationen sowie umfassende Dokumentation zu VirtualBox finden Sie unter: http://www.virtualbox.org/
275
Kapitel 11
Versionen
VirtualBox
Auf der Website von VirtualBox finden Sie zwei verschiedene Versionen der VirtualBox zum Download: » Quellcodeversion (Open Source Edition OSE): Diese Version enthält den Quellcode der VirtualBox, wobei als Lizenz die GPL zum Einsatz kommt. Die Nutzung dieser Version ist im Rahmen der GPL kostenlos. Auf der VirtualBox-Website steht die OSE-Version nur als Quellcode zur Verfügung. Die meisten Linux-Distributionen stellen aber fertige Pakete der OSE-Version zur Verfügung, sodass die Installation unkompliziert ist. » Binärversion: Die Binärversion ist für die private und universitäre Anwendung sowie für Testzwecke kostenlos. Die kommerzielle Nutzung dieser Version erfordert allerdings eine Lizenz von Oracle! Im Vergleich zur OSE-Version bietet die Binärversion die folgenden Zusatzfunktionen: Sie können in den virtuellen Maschinen auf USB-Geräte und iSCSI-Server zugreifen und die virtuellen Maschinen via RDP (Remote Display Protocol) auf einem anderen Rechner im Netzwerk steuern.
OSE-Pakete unter Linux installieren
Die meisten Distributionen bieten Pakete der OSE-Version von VirtualBox an. Bei Fedora müssen Sie auf die rpmfusion-Paketquelle zurückgreifen. Die Installation an sich ist vollkommen unkompliziert. VirtualBox greift auf dem Wirtssystem auf die drei Kernelmodule vboxdrv, vboxnetadp und vboxnetflt zurück. Manche Distributionen stellen auch diese Module in Form eines Pakets zur Verfügung, das bei jedem Kernel-Update aktualisiert wird. Ist das nicht der Fall, müssen die Kernelmodule nach der Installation sowie nach jedem Kernel-Update durch das folgende Kommando neu kompiliert werden. (VirtualBox weist auf dieses Kommando hin, wenn es beim Start einer virtuellen Maschine feststellt, dass die Kernelmodule nicht zur Verfügung stehen.) root#
/etc/init.d/vboxdrv setup
Der Quellcode für die Kernelmodule wird zusammen mit VirtualBox installiert. Zum Kompilieren sind aber auch der C-Compiler gcc sowie die Kernel-Header-Dateien erforderlich. Bei Ubuntu sind diese Voraussetzungen standardmäßig erfüllt, bei anderen Distributionen müssen Sie die entsprechenden Pakete installieren (siehe Seite 771). Binärversion unter Linux installieren
Privatanwender können statt der mit ihrer Distribution mitgelieferten VirtualBox-Pakete auch die Binärversion von virtualbox.org installieren. Das hat zwei Vorteile: Erstens ist die dort angebotene Version fast immer aktueller als die mit den Distributionen mitgelieferten Pakete, und zweitens enthält sie einige Zusatzfunktionen wie USB-Unterstützung. http://www.virtualbox.org/wiki/Linux_Downloads VirtualBox wird in verschiedenen Formaten zum Download angeboten: als RPM- und Debian-Paket für diverse Distributionen sowie als Universal-Installer, den Sie wie folgt starten: root# root#
chmod u+x VirtualBox_n.run install ./VirtualBox_n.run install
Wenn Sie die Binärversion verwenden, müssen Sie sich um das Kompilieren der Kernelmodule durch /etc/init.d/vboxdrv setup auf jeden Fall selbst kümmern (siehe oben). Ubuntu- und FedoraAnwender sollten vor VirtualBox das dkms-Paket installieren. In diesem Fall verwaltet DKMS die
276
VirtualBox installieren (Host)
Abschnitt 11.2
VirtualBox-Module und kümmert sich bei Kernel-Updates automatisch um eine Neukompilierung (siehe Seite 772). Bei meinen VirtualBox-Installationen hat das allerdings nicht immer zuverlässig funktioniert. Für Ubuntu- und Debian-Anwender gibt es eine eigene APT-Paketquelle, die automatische Updates innerhalb der gewählten Major-Version sicherstellt. Dazu fügen Sie zu /etc/apt/sources.list eine der folgenden Zeilen hinzu:
APT-Paketquelle
deb http://download.virtualbox.org/virtualbox/debian lucid non-free (für Ubuntu 10.04) deb http://download.virtualbox.org/virtualbox/debian squeeze non-free (für Debian 6) deb http://download.virtualbox.org/virtualbox/debian lenny non-free (für Debian 5) etc. Außerdem führen Sie diese beiden Kommandos aus, um den Schlüssel der Paketquelle zu installieren: root# root#
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc apt-key add sun_vbox.asc
Anschließend installieren Sie VirtualBox mit apt-get oder aptitude: root# root#
apt-get update apt-get install virtualbox-3.2
Anwender von Yum-kompatiblen Distributionen (Fedora, openSUSE etc.) können eine YumPaketquelle einrichten: root# root#
Yum-Paketquelle
wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc rpm --import sun_vbox.asc
Anschließend laden Sie die entsprechende *.repo-Datei von der VirtualBox-Download-Seite herunter und kopieren sie in das Verzeichnis /etc/yum.repos.d: [virtualbox] name=VirtualBox baseurl=http://download.virtualbox.org/virtualbox/rpm/fedora/$releasever enabled=1 gpgcheck=1 Die VirtualBox-Installation führen Sie nun mit yum install oder zypper install durch. Bei der Installation von VirtualBox wird die Gruppe vboxusers eingerichtet. Nur Benutzer, die dieser Gruppe angehören und damit auch Schreibrechte auf die Device-Datei /dev/vboxdrv haben, können virtuelle Maschinen starten! Deswegen müssen Sie vor dem ersten Start von VirtualBox Ihren Account der Gruppe vboxusers hinzufügen und sich anschließend aus- und neu einloggen. Dabei ersetzen Sie kofler durch Ihren Login-Namen. root# root#
usermod -a -G vboxusers kofler groupmod -A kofler vboxusers
Vorbereitungsarbeiten
(Fedora, Debian, Ubuntu etc.) (openSUSE, SUSE, Novell)
277
Kapitel 11
VirtualBox
Jedes Mal, wenn Sie in Zukunft das Wirtssystem starten, wird das Init-V-Script /etc/init.d/vboxdrv ausgeführt. Es lädt das gleichnamige Kernelmodul und stellt sicher, dass die Grundvoraussetzungen für den Betrieb von Virtual Box erfüllt sind. Anschließend starten Sie die Benutzeroberfläche von VirtualBox über das KDE- oder Gnome-Menü bzw. mit dem Kommando VirtualBox. VirtualBox speichert die Einstellungen zu den virtuellen Maschinen sowie die virtuellen Festplatten im Verzeichnis ~/.VirtualBox. Wenn Sie das nicht möchten, können Sie mit DATEIjG LOBALE EINSTELLUNGEN andere Pfade angeben. Installation unter Windows und Mac OS X
Für Privatanwender ist die VirtualBox-Installation auch unter den aktuellen Versionen von Windows und Mac OS X ein Kinderspiel: Sie laden die gerade aktuelle Binärversion von virtualbox.org herunter, führen das Installationsprogramm aus und starten Windows neu – fertig! Leider gibt es keine vorkompilierte OSE-Version für Windows. Kommerzielle Anwender, die keine Lizenzgebühren zahlen möchten, müssen die OSE-Version selbst kompilieren. Das setzt aber geeignete Entwicklungswerkzeuge (Microsoft Visual Studio bzw. Microsoft Visual C++) und eine Menge Know-how voraus.
11.3 VirtualBox-Maschinen einrichten (Gast) Eine virtuelle Maschine mit Linux einrichten Dieser Abschnitt beschreibt, wie Sie innerhalb von VirtualBox eine virtuelle Maschine mit Linux einrichten. Dabei spielt es keine Rolle, ob VirtualBox unter Linux, Windows oder Mac OS X läuft. Beim Einrichten einer neuen virtuellen Maschine unterstützt Sie ein Assistent. Nach der Auswahl des Betriebssystemtyps (z. B. Linux mit Kernel 2.6.n), der gewünschten RAM-Größe und dem Einrichten einer virtuellen Festplatte zeigt VirtualBox eine Zusammenfassung aller Hardware-Komponenten an. Dort können Sie bei Bedarf weitere Einstellungen durchführen, z. B. den Netzwerkzugang verändern oder eine ISO-Datei als Datenquelle für das CD/DVD-Laufwerk angeben (siehe Abbildung 11.1). Die Auswahl von ISO-Dateien ist ein wenig umständlich: Der Auswahl-Button führt in einen Dialog, in dem Sie die gewünschte ISO-Datei zuerst zu einer Liste der für VirtualBox bekannten ISO-Dateien hinzufügen müssen. Erst dann können Sie die ISO-Datei aus einem Listenfeld wählen. Wenn Sie mit der Konfiguration fertig sind, starten Sie die virtuelle Maschine. VirtualBox zeigt die virtuelle Maschine in einem eigenen Fenster an. Dort installieren Sie Linux wie auf einem realen Rechner. Die Netzwerkverbindung zwischen Wirt und Gast erfolgt standardmäßig per NAT. Das Gastsystem hat dann zwar Internetzugang, kann aber keine Daten mit dem lokalen Netzwerk austauschen. Auf Seite 272 sind die anderen von VirtualBox unterstützten Netzwerkvarianten beschrieben. Bei meinem privaten Setup ist der Wirtsrechner mit einem ADSL-Router verbunden. Zur Netzwerkkonfiguration meiner virtuellen Maschinen verwende ich zumeist N ETZWERKBRÜCKE. Damit sind alle virtuellen Maschinen Mitglieder des lokalen Netzwerks, was den Datenaustausch zwischen dem Wirtssystem und seinen Gästen sehr erleichtert (SSH, NFS, Samba etc.).
278
VirtualBox-Maschinen einrichten (Gast)
Abschnitt 11.3
Abbildung 11.1: Konfiguration einer virtuellen Maschine in VirtualBox
Die virtuelle Maschine erhält automatisch den Tastatur- und Mausfokus, sobald Sie eine Taste drücken. Standardmäßig lösen Sie den Fokus mit der rechten (Strg)-Taste. Im VirtualBox-Hauptfenster können Sie mit DATEIjG LOBALE EINSTELLUNGEN jEINGABE eine andere »Host-Taste« einstellen. Tastenkombinationen sind dabei leider nicht erlaubt. Persönlich verwende ich als Host-Taste die linke Windows-Taste, für die ich unter Linux ansonsten ohnedies keine Verwendung habe. Diverse Tastenkürzel in Kombination mit der Host-Taste sind in Tabelle 11.1 zusammengefasst. Einige weitere Tastenkürzel finden Sie im M ASCHINE-Menü des VirtualBox-Fensters. TASTENKÜRZEL
BEDEUTUNG
(Host-Taste)+(F)
Vollbildmodus (de)aktivieren
(Host-Taste)+(Entf)
(Strg)+(Alt)+(Entf) an das Gastsystem senden
(Host-Taste)+(Backspace)
(Strg)+(Alt)+(Backspace) an das Gastsystem senden
(Host-Taste)+(Fn)
(Strg)+(Alt)+(Fn) an das Gastsystem senden
(Host-Taste)+(S)
aktuellen Zustand der virtuellen Maschine speichern (Snapshot)
(Host-Taste)+(H)
virtuelle Maschine per ACPI ausschalten
(Host-Taste)+(R)
virtuelle Maschine sofort ausschalten (Reset, Vorsicht!)
Nachdem die eigentliche Installation abgeschlossen ist, sollten Sie in der virtuellen Maschine noch die sogenannten Guest Additions installieren. Sie stellen dem Gastsystem zusätzliche Treiber zur Verfügung und verbessern das Zusammenspiel mit dem Wirt: Die Maus kann nun aus der virtuellen
Tabelle 11.1: VirtualBoxTastenkürzel Gasterweiterungen installieren
279
Kapitel 11
VirtualBox
Maschine herausbewegt werden, die virtuelle Bildschirmauflösung des Gasts passt sich automatisch an die Fenstergröße an (!), der Datenaustausch mit dem Wirtssystem kann über Shared Folders erfolgen, Text kann über die Zwischenablage kopiert werden etc. Manche Distributionen liefern fertige Pakete mit den VirtualBox-Gasterweiterungen mit: openSUSE: virtualbox-ose-guest-tools, xorg-x11-driver-virtualbox-ose Ubuntu: virtualbox-ose-guest-utils, virtualbox-ose-guest-x11, virtualbox-ose-guest-dkms Bei anderen Distributionen bzw. dann, wenn Sie die neueste Version der Gasterweiterungen benötigen, müssen Sie eine manuelle Installation durchführen. Dazu werfen Sie eine eventuell eingebundene CD/DVD aus und führen dann G ERÄTEjGASTERWEITERUNGEN INSTALLIEREN aus. Nachdem Sie die CD mit den Gasterweiterungen innerhalb der virtuellen Maschine in das Dateisystem eingebunden haben (in der Regel durch einen Mausklick auf das CD-Icon, bei Bedarf auch durch ein manuelles mount-Kommando, z. B. mount /dev/sr0 /media/cdrom), führen Sie eines der folgenden Kommandos aus:
Tipp
root# root#
sh /media/cdrom/VBoxLinuxAdditions-x86.run sh /media/cdrom/VBoxLinuxAdditions-amd64.run
(32-Bit-Gast) (64-Bit-Gast)
Bei meinen Tests hat die virtuelle Maschine die CD mit den Gasterweiterungen manchmal nicht erkannt. Abhilfe: Fahren Sie die virtuelle Maschine vor der Installation der Gasterweiterungen herunter, und wählen Sie im Konfigurationsdialog CD/DVD-ROM das ISO-Image der Gasterweiterungen aus. Nach dem Neustart der virtuellen Maschine können Sie problemlos auf die CD mit den Gasterweiterungen zugreifen. Das Installationsprogramm richtet nun die drei neuen Kernelmodule vboxadd, vboxvideo und vboxvfs sowie einen neuen X-Treiber ein und verändert die X-Konfiguration dahingehend, dass dieser Treiber beim nächsten Start der virtuellen Maschine auch verwendet wird. Unter Ubuntu funktioniert die Installation der Gasterweiterungen auf Anhieb. Bei den meisten anderen Linux-Distributionen müssen Sie vorher diverse Pakete installieren, die den C-Compiler und die Kernel-Header-Dateien enthalten. Führen Sie vorher ein Update aus, um sicherzustellen, dass die installierte Kernelversion und die Version der Kernel-Header-Dateien zusammenpassen! (Die aktuell laufende Version stellen Sie mit dem Kommando uname -a fest.) root# root# root#
aptitude install gcc make linux-headers-n.n-plattform yum install gcc make kernel-headers kernel-devel zypper install gcc make kernel-source kernel-syms
(Debian) (Fedora) (openSUSE)
Bei manchen Fedora-Versionen müssen Sie aufpassen: Es gibt zwei verschiedene Kernel-Varianten, eine mit und eine ohne PAE-Unterstützung. Welche Version bei Ihnen zum Einsatz kommt, stellen Sie mit uname -r fest. Wenn die resultierende Zeichenkette pae enthält, läuft ein Kernel mit PAE-Unterstützung. In diesem Fall müssen Sie statt kernel-devel das Paket kernel-PAE-devel installieren! Nur damit können Sie ein zum laufenden Kernel kompatibles Modul kompilieren.
280
VirtualBox-Maschinen einrichten (Gast)
Abschnitt 11.3
Abbildung 11.2: Eine BetaVersion von Ubuntu 10.10 in einer VirtualBoxMaschine unter Mac OS X
Eine virtuelle Maschine mit Windows einrichten Sofern Sie über eine Installations-CD/DVD bzw. die entsprechende ISO-Datei sowie eine gültige Lizenz und den dazugehörenden Schlüssel verfügen, können Sie in VirtualBox auch Windows installieren. Die Installation von Windows und der VirtualBox-Gasterweiterungen verlief bei meinen Tests mit Windows XP und Windows 7 problemlos (siehe Abbildung 11.3). VirtualBox kommt momentan mit allen gängigen Windows-Versionen zurecht (inklusive Windows 7, wahlweise in der 32- oder 64-Bit-Version). Allerdings stehen unter Windows Vista und Windows 7 die 3D-Desktop-Effekte ( »Aero Glass«) nicht zur Verfügung. Generell empfehle ich Ihnen aus Performance-Gründen den Einsatz von Windows XP, sofern Sie nicht spezifische Vista- oder Windows7-Funktionen benötigen. Warten Sie mit der Online-Registrierung so lange ab, bis Sie mit der Leistung zufrieden sind. Wenn Sie später in den Einstellungen der virtuellen Maschine das RAM vergrößern oder andere virtuelle Hardware-Parameter ändern, müssen Sie die Registrierung wiederholen!
VirtualBox-Zusatzfunktionen Um den Datenaustausch zwischen Wirt und Gast zu erleichtern, können Sie auf dem Wirt ein Verzeichnis als sogenannten Shared Folder einrichten. Das Verzeichnis gilt spezifisch für eine bestimmte virtuelle Maschine. Die virtuelle Maschine darf während des Einrichtens nicht laufen. Zur Konfiguration öffnen Sie mit ÄNDERN den Einstellungsdialog, wechseln in das Dialogblatt G EMEINSA ME O RDNER, wählen dann ein lokales Verzeichnis auf dem Wirtssystem aus und geben dem Ordner einen Namen (z. B. myshare).
Shared Folder einrichten
281
Kapitel 11
VirtualBox
Abbildung 11.3: Die 64-BitVersion von Windows 7 in einer virtuellen Maschine von VirtualBox unter Linux
Auf dem Gastsystem ist ein manuelles mount-Kommando erforderlich, um auf das gemeinsame Verzeichnis zugreifen zu können. Dabei müssen Sie myshare durch den Namen ersetzen, den Sie bei der Konfiguration verwendet haben. root@gast# root@gast#
mkdir /media/vbox-share mount -t vboxsf myshare /media/vbox-share
Shared Folders sind auch für Windows als Gastsystem vorgesehen, sofern darin die Gasterweiterungen installiert sind. Starten Sie unter Windows den Explorer, und führen Sie darin EXTRASj N ETZWERKLAUFWERK VERBINDEN aus. Der Zugriff auf den gemeinsamen Ordner erfolgt über das Netzwerkverzeichnis \\vboxsrv\myshare. USB-Geräte in virtuellen Maschinen nutzen
Sofern Sie die Binärversion von VirtualBox nutzen (nicht die OSE-Version), können Sie USB-Geräte auch in virtuellen Maschinen nutzen. Das funktioniert nur, wenn das USB-Gerät im Wirtssystem nicht verwendet wird. USB-Datenträger werden im Wirtssystem normalerweise automatisch in das Dateisystem eingebunden; Sie müssen sie daraus wieder lösen. Eine weitere Voraussetzung besteht darin, dass der Benutzer, der VirtualBox ausführt, Mitglied der Gruppe vboxusers ist (siehe Seite 277). Schließlich müssen Sie darauf achten, dass der USB2.0-C ONTROLLER bei den Einstellungen der virtuellen Maschine im Dialogblatt USB aktiviert ist. In diesem Dialogblatt können Sie auch einen Filter definieren, um ein USB-Gerät direkt einer virtuellen Maschine zuzuordnen. Das ist aber keine zwingende Voraussetzung. Sie können das USB-Gerät nach dem Einschalten auch dynamisch in der VirtualBox-Statusleiste beim USB-Icon der virtuellen Maschine zuordnen.
282
VirtualBox-Maschinen einrichten (Gast)
Abschnitt 11.3
Generell funktionierten die von mir getesteten USB-Geräte (ein Scanner und eine Digitalkamera) in den virtuellen Maschinen anstandslos, wenn auch etwas langsamer als im Wirtssystem. (Ich habe allerdings keine Geschwindigkeitsmessungen durchgeführt.) Einer der größten Vorteile von VMware Workstation gegenüber VirtualBox besteht darin, dass ein Verzeichnis mit den VMware-Dateien einer virtuellen Maschinen vollkommen unkompliziert von einem Rechner zum anderen kopiert werden kann. Bei VirtualBox war das bis vor Kurzem schwieriger: Sie mussten zuerst die Festplattendatei kopieren und dann eine neue virtuelle Maschine einrichten, die auf diese Festplattendatei zugreift.
Virtuelle Maschinen exportieren und importieren
Seit VirtualBox 2.2 geht es einfacher, wenn auch noch immer nicht so elegant wie unter VMware: Mit DATEIjA PPLIANCE EXPORTIEREN erzeugen Sie eine sogenannte Virtual Appliance, also eine zur Weitergabe bestimmte virtuelle Maschine, die üblicherweise aus zwei Dateien besteht: *.ovf enthält eine Beschreibung der virtuellen Maschine, *.vmdk das Festplatten-Image in komprimierter Form. Diese virtuelle Maschine können Sie nun bei einer anderen VirtualBox-Installation mit DATEIjA PPLIANCE IMPORTIEREN wieder einrichten. Obwohl das Format für Virtual Appliance standardisiert ist, ist ein Wechsel von VMware zu VirtualBox oder umgekehrt leider nicht möglich. Ein Grund besteht darin, dass jedes Virtualisierungssystem andere virtuelle Hardware verwendet.
283
Teil 3 Unix-/Linux-Werkzeuge
12. Arbeiten in der Konsole Bis jetzt habe ich Ihnen Linux in erster Linie als Desktop-System präsentiert. Sie haben diverse Internet- und Büroprogramme kennengelernt, die vielleicht ein wenig anders aussehen als unter Windows oder Mac OS X, aber letztlich denselben Zweck erfüllen und ganz ähnlich zu bedienen sind. Der Umgang mit Linux endet allerdings nicht an dieser Stelle. Es gibt quasi noch eine andere Seite von Linux, die auf den ersten Blick abschreckend wirken mag. Erfahrene Linux-Anwender führen in Textkonsolen bzw. in Konsolenfenstern Kommandos aus und erhalten die Resultate wiederum in Textform. Die Maus spielt nur noch eine Nebenrolle, grafische Benutzeroberflächen sind passé. Wenn Sie einmal gelernt haben, in der Konsole zu arbeiten, können Sie dort viele Aufgaben effizient ausführen. Sie können Linux-Kommandos miteinander verknüpfen, im Hintergrund ausführen, automatisch ausführen, in kleinen Programmen (Scripts) automatisieren etc. All diese Möglichkeiten stehen Ihnen auch dann zur Verfügung, wenn Sie nicht lokal am Rechner sitzen, sondern nur über eine Netzwerkverbindung verfügen. Reine Büroanwender werden für die Konsole natürlich seltener Anwendung finden als Programmierer oder Netzwerkadministratoren. Auf jeden Fall aber gehört die Arbeit in Konsolen zum elementaren Handwerkszeug jedes Anwenders, der Linux richtig kennenlernen will. Das merken Sie spätestens dann zum ersten Mal, wenn das Grafiksystem wegen einer Fehlkonfiguration nicht funktioniert oder wenn Sie Ihren externen Root-Server administrieren möchten. Dieses Kapitel gibt lediglich einen ersten Überblick über Arbeitstechniken in Konsolen. Die folgenden Kapitel stellen dann diverse Linux-Kommandos näher vor. Die Kommandos dienen beispielsweise zur Verwaltung des Dateisystems (ls, cp, mv, ln, rm etc.), zur Suche nach Dateien (find, grep, locate), zur Steuerung von Netzwerkfunktionen (ping, ifconfig, ssh) etc. Nebenbei werden Sie eine Menge Linux-Grundlagen lernen. Kapitel 19 ab Seite 433 stellt die Shell bash vor. Das ist ein Programm, das üblicherweise in jeder Konsole läuft und Ihre Kommandos entgegennimmt. Die bash kann auch zur Programmierung eingesetzt werden. Abschnitt 20.2 ab Seite 476 beschreibt die Konfiguration der Textkonsole. Wenn es also Probleme mit dem richtigen Tastaturlayout, mit der Darstellung von Sonderzeichen etc. gibt, finden Sie hier Lösungsvorschläge. Schließlich enthält das letzte Kapitel dieses Buchs eine alphabetische Referenz der wichtigsten Linux-Kommandos (siehe Seite 1133).
Querverweise
Kapitel 12
Arbeiten in der Konsole
12.1 Textkonsolen und Konsolenfenster Textkonsolen
Microsoft Windows können Sie ausschließlich im Grafikmodus verwenden. Linux können Sie dagegen auch in sogenannten Textkonsolen nutzen. Bei den meisten Distributionen stehen sechs Textkonsolen zur Verfügung. Der Wechsel zwischen diesen Textkonsolen erfolgt mit (Alt)+(F1) für die erste Konsole, (Alt)+(F2) für die zweite etc. Wenn der Rechner bereits im Grafikmodus läuft, führt (Strg)+(Alt)+(F1) in die erste Textkonsole und (Alt)+(F7) zurück in den Grafikmodus. Bei einigen Distributionen (unter anderem Fedora) ist die erste Konsole für den Grafikmodus reserviert. Bevor Sie in einer Textkonsole arbeiten können, müssen Sie sich einloggen. Wenn Sie mit der Arbeit fertig sind oder wenn Sie sich unter einem anderen Namen anmelden möchten, müssen Sie sich wieder ausloggen. Dazu drücken Sie einfach (Strg)+(D) (anstatt ein neues Kommando einzugeben). Sie können in der einen Konsole ein Kommando starten. Wähend dieses Kommando läuft, können Sie in der zweiten Konsole etwas anderes erledigen. Sie können sich auch in einer Konsole als root anmelden, um administrative Aufgaben zu erledigen, während Sie in der anderen Konsole unter Ihrem normalen Login-Namen eine Datei editieren. Jede Konsole läuft also vollkommen unabhängig von den anderen.
Tabelle 12.1: Tastenkürzel zum Aktivieren von Textkonsolen
TASTENKÜRZEL
FUNKTION
(Strg)+(Alt)+(Fn)
vom Grafikmodus in die Textkonsole n wechseln
(Alt)+(Fn)
von einer Textkonsole in eine andere Textkonsole n wechseln
(Alt)+(F7)
zurück in den Grafikmodus wechseln ((Alt)+(F1) bei Fedora, (Alt)+(F5) bei Knoppix)
(Alt)+(Æ)/ +(æ)
in die vorige/nächste Textkonsole wechseln
(ª)+(Bild_½/¼)
vorwärts/rückwärts blättern
(Strg)+(Alt)+(Entf)
Linux beenden (nur in Textkonsolen, führt shutdown aus, Vorsicht!)
Mit (ª)+(Bild_½) und (ª)+(Bild_¼) scrollen Sie den Bildschirminhalt einer Textkonsole auf und ab. Auf diese Weise können Sie die Ergebnisse der zuletzt ausgeführten Programme nochmals ansehen, auch wenn sie bereits nach oben aus dem sichtbaren Bildschirmbereich hinausgeschoben wurden. Konsolenfenster (Shell-Fenster)
Natürlich müssen Sie aus dem Grafikmodus nicht in eine Textkonsole wechseln, nur um Kommandos auszuführen. Für diesen Zweck reicht ein Konsolenfenster vollkommen aus (siehe Abbildung 12.1). Derartige Fenster werden auch Shell-Fenster oder Terminalfenster genannt. Je nach Distribution und Desktop-System stehen unterschiedliche Konsolenfenster zur Auswahl, beispielsweise gnome-terminal (Gnome), konsole (KDE) oder xterm (X). Auch das Menükommando zum Starten eines Konsolenfensters variiert je nach Distribution – hier ein paar Beispiele: Fedora 13 (Gnome): openSUSE 11.3 (KDE): Ubuntu 10.10:
288
A NWENDUNGENjSYSTEMWERKZEUGEjTERMINAL PROGRAMMEjSYSTEMjTERMINALSjTERMINAL-PROGRAMM A NWENDUNGEN jZ UBEHÖRjTERMINAL
Textkonsolen und Konsolenfenster
Abschnitt 12.1
Abbildung 12.1: Ein Konsolenfenster
Bei manchen Gnome-Versionen kann ein Konsolenfenster noch bequemer einfach per Kontextmenü auf dem Desktop geöffnet werden. Dazu muss das Zusatzpaket nautilus-open-terminal installiert sein. In Konsolenfenstern können Sie wie in einer Textkonsole arbeiten. Der einzige Unterschied besteht darin, dass Sie dank einer Bildlaufleiste bequemer durch die bisherigen Ausgaben scrollen können. Innerhalb von Textkonsolen bzw. Konsolenfenstern helfen diverse Tastenkürzel bei der effizienten Eingabe von Kommandos. Tabelle 12.2 fasst die wichtigsten Kürzel zusammen. Sie gelten nur, wenn Sie die bash in der Standardkonfiguration als Shell verwenden, was bei den meisten Distributionen der Fall ist. Wenn Sie unter Gnome in einem Konsolenfenster arbeiten, sollten Sie B EARBEITEN j TASTENKOMBINATIONEN ausführen und die Option A LLE MENÜKÜRZELBUCHSTABEN AKTIVIEREN deaktivieren. TASTENKÜRZEL
FUNKTION
(Strg)+(A)
Cursor an den Zeilenanfang (wie (Pos1))
(Strg)+(C)
Programm abbrechen
(Strg)+(E)
Cursor an das Ende der Zeile (wie (Ende))
(Strg)+(K)
Zeile ab Cursor löschen
(Strg)+(Y)
zuletzt gelöschten Text wieder einfügen
(Strg)+(Z)
Programm unterbrechen (Fortsetzung mit fg oder bg)
(ÿ)
Datei- und Kommandonamen vervollständigen
(½)/ (¼)
durch die bisher ausgeführten Kommandos blättern
Wichtige Tastenkürzel
Tabelle 12.2: Tastenkürzel zur Kommandoeingabe in der bash
Insbesondere die Kommandoerweiterung mit (ÿ) spart eine Menge Tipparbeit. Sie brauchen nur die ersten Buchstaben eines Kommandos oder einer Datei angeben. Anschließend drücken Sie (ÿ). Wenn der Dateiname bereits eindeutig erkennbar ist, wird er vollständig ergänzt, sonst nur so weit, bis sich mehrere Möglichkeiten ergeben. Ein zweimaliges Drücken von (ÿ) bewirkt, dass eine Liste aller Dateinamen angezeigt wird, die mit den bereits eingegebenen Anfangsbuchstaben beginnen. (Im Detail ist dieser Mechanismus auf Seite 437 beschrieben.)
289
Kapitel 12
Maus
Arbeiten in der Konsole
Die Maus spielt in Textkonsolen bzw. in Konsolenfenstern nur eine untergeordnete Rolle. Sie können sie nicht dazu verwenden, um die aktuelle Cursorposition zu verändern! Ihre einzige Funktion beschränkt sich darauf, mit der linken Maustaste Text zu kopieren und diesen dann mit der mittleren Maustaste an der aktuellen Cursorposition wieder einzufügen. Damit die Maus in Textkonsolen funktioniert, muss das Programm gpm laufen. Tipps zur Konfiguration dieses Kommandos finden Sie auf Seite 478.
Kommandos ausführen
Zum Ausführen von Kommandos geben Sie in der Textkonsole oder im Shell-Fenster einfach den Kommandonamen, eventuell einige Parameter und schließlich (¢) ein. Das Kommando ls liefert eine Liste der Dateien und Unterverzeichnisse im aktuellen Verzeichnis. user$ ls -l -rw------- 1 -rw------- 1 drwxrwxr-x 3 drwxrwxr-x 2 -rw-r--r-- 1 drwxr-xr-x 2 ...
user user user user user user
users 17708403 19. Mai 10:35 20060519_DN.pdf users 506614 29. Jun 12:11 angebot-katzbauer.pdf users 4096 13. Apr 11:31 bak users 4096 18. Jul 15:03 bin users 243571 3. Jul 09:14 DB20078.jpg users 4096 7. Apr 10:59 Desktop
Aus dem obigen Beispiel geht auch hervor, wie in diesem Buch die Kommandoeingabe und das Ergebnis dargestellt wird: user$ am Beginn der ersten Zeile bedeutet, dass das Kommando von einem gewöhnlichen Benutzer ausgeführt wurde. Wenn in der ersten Textspalte stattdessen root# angegeben ist, wurde das Kommando hingegen von root ausgeführt (also vom Systemadministrator). user$ bzw. root# gilt als Eingabeprompt. Diese Zeichen werden am Beginn jeder Eingabezeile automatisch angezeigt. Sie dürfen diese Zeichen nicht mit eingeben! (Generell gilt, dass nur die fett hervorgehobenen Zeichen einzugeben sind!) Auf Ihrem Rechner wird statt user$ bzw. root# möglicherweise ein anderer Text angezeigt, der oft das aktuelle Verzeichnis und/oder den Rechnernamen enthält. Auf diese Angaben verzichte ich in diesem Buch aus Gründen der Übersichtlichkeit. Manchmal reicht der Platz in diesem Buch nicht aus, um ein Kommando in einer einzigen Zeile abzudrucken. In solchen Fällen wird das Kommando über mehrere Zeilen verteilt, die durch das Zeichen \ getrennt sind. Das sieht dann beispielsweise so aus: user$
gconftool-2 --set "/apps/panel/toplevels/top_panel_screen0/monitor" \ --type integer "0"
Sie können dieses Kommando nun ebenfalls zweizeilig eingeben – dann müssen Sie die erste Zeile wie im Buch mit \ abschließen. Sie können die zwei Zeilen aber auch einfach zusammenziehen: Dann entfällt das Zeichen \! Kommandos im Hintergrund ausführen
290
Sie können Kommandos auch im Hintergrund ausführen. Das bedeutet, dass Sie nicht auf das Programmende zu warten brauchen, sondern sofort weiterarbeiten können. Dazu geben Sie am Ende der Kommandozeile das Zeichen & an. Diese Vorgehensweise empfiehlt sich vor allem, wenn Sie aus einer Konsole heraus ein Programm mit grafischer Benutzeroberfläche starten (z. B. firefox &).
Textdateien anzeigen und editieren
Es ist unter Linux unüblich, als root (also mit Systemadministratorrechten) zu arbeiten. Auch wenn Sie als gewöhnlicher Benutzer eingeloggt sind, gibt es verschiedene Wege, Kommandos als root auszuführen. Bei vielen Distributionen führen Sie im Konsolenfenster einfach su -l aus. Damit loggen Sie sich als root ein. (Dazu müssen Sie natürlich das root-Passwort kennen.) Nun können Sie als root textorientierte Kommandos ausführen. exit oder (Strg)+(D) führt wieder zum ursprünglichen User zurück. (Bei Ubuntu kommt statt su das Kommando sudo zum Einsatz.)
Abschnitt 12.2
Arbeiten als root
Tipps dazu, wie Sie die Kommandoausführung vom Vordergrund in den Hintergrund verschieben, wie Sie eine Liste aller aktiven Kommandos (Prozesse) ermitteln etc., folgen in Kapitel 14 ab Seite 349 zum Thema Prozessverwaltung. Auf Seite 356 beginnt ein eigener Abschnitt, der verschiedene Möglichkeiten beschreibt, Programme als root auszuführen, ohne regulär als root eingeloggt zu sein. In diesem Zusammenhang ebenfalls lesenswert ist Kapitel 19 ab Seite 433: Es führt in die Shell bash ein und zeigt unter anderem, wie Sie mehrere Kommandos miteinander verknüpfen, die Ergebnisse des einen Kommandos an ein anderes weiterleiten etc.
12.2 Textdateien anzeigen und editieren Unter KDE oder Gnome können Sie Textdateien direkt im Dateimanager (Konqueror oder Nautilus) lesen. Mit der rechten Maustaste können Sie die Datei auch in einem komfortablen Editor öffnen. Wenn Sie hingegen in einer Textkonsole oder in einem Konsolenfenster arbeiten, verwenden Sie zum Betrachten von Dateien am besten das Kommando less. Das Kommando kann auch anderen Kommandos nachgestellt werden, um deren oft sehr lange Ausgaben in Ruhe seitenweise zu lesen: user$ user$
less datei ls -l | less
less
(seitenweise Anzeige der Datei) (seitenweise Anzeige des Dateiverzeichnisses)
TASTENKÜRZEL
FUNKTION
(Cursortasten)
Text nach oben oder unten verschieben
(Pos1), (Ende)
an den Beginn/das Ende des Textes springen
(G), (ª)+(G)
an den Beginn/das Ende des Textes springen
(/) muster (¢)
vorwärts suchen
(?) muster (¢)
rückwärts suchen
(N)
Suche vorwärts wiederholen (next)
(ª)+(N)
Suche rückwärts wiederholen
(Q)
beenden (quit)
(H)
Hilfetext mit weiteren Tastenkürzeln anzeigen
Tipp
Wenn Sie in einer Textkonsole mit less eine Datei anzeigen, die statt Text binäre Daten enthält, kann es passieren, dass die Daten als Sonderzeichen interpretiert werden und die Konsole dabei durcheinanderkommt. In diesem Fall werden nur noch seltsame Zeichen am Bildschirm angezeigt, d. h., die Zuordnung des Zeichensatzes stimmt nicht mehr. Um Abhilfe zu schaffen, führen Sie das Kommando reset aus.
Tabelle 12.3: lessTastenkürzel
291
Kapitel 12
Arbeiten in der Konsole
Präprozessor
Bei den meisten Distributionen kann less nicht nur einfache Textdateien anzeigen, sondern auch komprimierte Dateien, den Inhalt von tar-Archiven etc. Damit das funktioniert, analysiert ein Präprozessor die zu verarbeitenden Dateien und leitet das Ergebnis an less weiter. Im Detail ist die Vorgehensweise distributionsabhängig: Bei Fedora und Red Hat ist die Umgebungsvariable LESSOPEN so voreingestellt, dass less zuerst das Script /usr/bin/lesspipe.sh ausführt und dessen Ergebnis anzeigt. Bei SUSE verweist LESSOPEN auf das Script /usr/bin/lessopen.sh. Bei Debian und Ubuntu sind auch vergleichbare Scripts bzw. Kommandos installiert (lessfile und lesspipe.sh). Der Unterschied zwischen den beiden Varianten besteht darin, dass lesspipe seine Ergebnisse sofort an less weiterleitet, während lessfile eine temporäre Datei erzeugt. Das ist langsamer, hat aber den Vorteil, dass less sofort die Anzahl der Zeilen und die prozentuale Position im Text kennt. Bei Ubuntu ist lesspipe standardmäßig aktiv, bei Debian ist eine entsprechende Zeile in ~/.bashrc zwar ebenfalls vorgesehen, aber auskommentiert.
Texteditoren Unter KDE oder Gnome stehen mit kate oder gedit komfortable Texteditoren mit intuitiver Bedienung zur Verfügung. In einer Textkonsole sind diese Programme aber nicht verwendbar – Sie brauchen einen Editor, der komplett im Textmodus läuft. Dieser Abschnitt stellt die populärsten Vertreter dieser Zunft vor. Welcher der Editoren bei Ihnen standardmäßig installiert ist, hängt von Ihrer Distribution ab. Emacs, Jove, Jed, Jmacs
Tabelle 12.4: EmacsTastenkürzel
292
Eine Sonderrolle unter den Editoren nehmen der GNU Emacs und der dazu kompatible XEmacs ein (Start mit emacs bzw. xemacs). Diese Editoren enthalten unglaublich viele Funktionen und ersetzen für viele Programmierer eine ganze Entwicklungsumgebung. Da verwundert es nicht, dass ein eigenes Kapitel ausschließlich diesen beiden Editoren gewidmet ist (siehe Seite 411). Tabelle 12.4 fasst nur die elementaren Kommandos zusammen. Die Kommandos gelten auch für die Editoren jove, jed und jmacs. Dabei handelt es sich um Minimalversionen des Emacs, die in den elementaren Funktionen kompatibel sind. TASTENKÜRZEL
FUNKTION
(Strg)+(X), (Strg)+(F)
lädt eine neue Datei.
(Strg)+(X), (Strg)+(S)
speichert die aktuelle Datei.
(Strg)+(X), (Strg)+(W)
speichert die Datei unter einem neuen Namen.
(Strg)+(G)
bricht die Eingabe eines Kommandos ab.
(Strg)+(K)
löscht eine Zeile.
(Strg)+(X), (U)
macht das Löschen rückgängig (Undo).
(Strg)+(X), (Strg)+(C)
beendet den Emacs (mit Rückfrage zum Speichern).
Textdateien anzeigen und editieren
Ebenfalls ein Urgestein der Unix-Geschichte ist der Editor Vi, der unter Linux zumeist durch das dazu kompatible Programm Vim vertreten ist, seltener durch den ebenfalls kompatiblen Editor Elvis. Der Original-Vi ist aus urheberrechtlichen Gründen nicht Teil von Linux. Das Kommando vi kann aber dennoch ausgeführt werden und führt dann zum Start von Vim oder Elvis.
Abschnitt 12.2
Vi, Vim und Elvis
Der Vi bietet fast genauso viele Funktionen wie der Emacs, die Bedienung ist aber noch schwieriger zu erlernen. Dafür ist der Vi vergleichsweise kompakt und steht zumeist auch auf Notfallsystemen zur Verfügung. Außerdem werden Sie den Vi auf praktisch allen anderen Unix-Systemen vorfinden. Das Programm stellt insofern einen inoffiziellen Unix/Linux-Standard dar und wird von diversen Programmen automatisch als Editor aufgerufen. Der wichtigste fundamentale Unterschied zu anderen Editoren besteht darin, dass der Vi zwischen verschiedenen Modi unterscheidet. Die Texteingabe ist nur im Insert-Modus möglich. Die Eingabe der meisten Kommandos erfolgt im Complex-Command-Modus, der mit (:) aktiviert wird. Vorher muss gegebenenfalls der Insert-Modus durch (Esc) verlassen werden. Die Cursorbewegung ist natürlich auch mit den Cursortasten möglich. Dem Vi ist ein eigenes Kapitel dieses Buchs gewidmet, das auf Seite 397 beginnt. TASTENKÜRZEL
FUNKTION
(I)
wechselt in den Insert-Modus.
(Esc)
beendet den Insert-Modus.
(H) / (L)
bewegt den Cursor nach links/rechts.
(J) / (K)
bewegt den Cursor ab/auf.
(X)
löscht ein Zeichen.
(D) (D)
löscht die aktuelle Zeile.
(P)
fügt die gelöschte Zeile an der Cursorposition wieder ein.
(U)
macht die letzte Änderung rückgängig (Undo).
(:)
wechselt in den Complex-Command-Modus.
TASTENKÜRZEL
FUNKTION
:w name
speichert den Text unter einem neuen Namen.
:wq
speichert und beendet den Vi.
:q!
beendet den Vi, ohne zu speichern.
:help
startet die Online-Hilfe.
joe ist ein sehr einfacher Editor. Die Tastenkürzel sind dem Textverarbeitungsprogramm Wordstar nachempfunden (siehe Tabelle 12.7). Eine umfassende Beschreibung aller Kommandos erhalten Sie, wenn Sie in einer Konsole man joe ausführen. Das Programm kann auch unter den Namen jmacs oder jpico gestartet werden. Es gelten dann andere Tastenkürzel, die zum Emacs bzw. zu Pico kompatibel sind.
Tabelle 12.5: Vi-Tastenkürzel
Tabelle 12.6: vi-Kommandos im ComplexCommandModus Joe
293
Kapitel 12
Tabelle 12.7: joe-Tastenkürzel
nano, pico
Arbeiten in der Konsole
TASTENKÜRZEL
FUNKTION
(Strg)+(K), (H)
blendet das Hilfefenster ein/aus.
(Strg)+(K), (E)
lädt eine neue Datei.
(Strg)+(K), (D)
speichert die Datei (wahlweise unter neuem Namen).
(Strg)+(Y)
löscht eine Zeile.
(Strg)+(ª)+(-)
macht das Löschen rückgängig (Undo).
(Strg)+(C)
beendet joe (mit Rückfrage zum Speichern).
Ebenfalls bescheiden im Befehlsumfang, aber dafür einfach zu bedienen, ist nano bzw. pico. Bei diesem Editor geben die beiden unteren Bildschirmzeilen eine Übersicht der zur Verfügung stehenden Kommandos (siehe Abbildung 12.2). Bei den meisten aktuellen Distributionen ist lediglich nano installiert. pico war früher stärker verbreitet, seine nicht vollständig Open-Source-kompatible Lizenz hat aber dazu geführt, dass der Editor nun unter Linux kaum mehr zum Einsatz kommt. nano ist zu pico kompatibel, leidet aber nicht unter Lizenzproblemen.
Abbildung 12.2: Der Editor nano in einem Konsolenfenster Standardeditor einstellen
Einige Programme starten zum Ansehen oder Editieren von Dateien selbstständig einen Editor, standardmäßig zumeist den Editor Vi. Wenn Sie einen anderen Editor wünschen, müssen Sie in /etc/profile oder ~/.profile die Umgebungsvariablen EDITOR und VISUAL einstellen: # Ergänzung in /etc/profile oder ~/.profile export EDITOR=/usr/bin/jmacs export VISUAL=$EDITOR
294
Online-Hilfe
Abschnitt 12.3
12.3 Online-Hilfe Kommandos wie ls, cp oder top, die Sie üblicherweise in einem Konsolenfenster ausführen, reagieren weder auf (F1) noch verfügen sie über ein HILFE-Menü. Es gibt aber natürlich auch für diese Kommandos Hilfetexte, die durch verschiedene Kommandos gelesen werden können: » kommando -help liefert bei sehr vielen Kommandos eine Liste aller Optionen samt einer kurzen Erklärung zu ihrer Bedeutung. » man kommando zeigt bei vielen Kommandos den man-Hilfetext an. Durch den meist mehrseitigen Text können Sie mit den Cursortasten blättern. (Q) beendet die Hilfe. » help kommando funktioniert nur bei sogenannten Shell-Kommandos, z. B. cd oder alias. » info kommando ist eine Alternative zu man. Das info-System eignet sich vor allem für sehr umfangreiche Hilfetexte. Ob der Hilfetext im man- oder info-System vorliegt, hängt ganz einfach davon ab, für welches Hilfesystem sich die Programmentwickler entschieden haben. man ist aber deutlich populärer. man ist ein Kommando zur Anzeige der Dokumentation vieler elementarer Kommandos wie ls oder cp. man wird in der Form man kommando aufgerufen, um den Hilfetext zu kommando zu lesen.
man
Die optionale Angabe eines Bereichs (man bereich kommando) schränkt die Suche nach man-Texten auf einen Themenbereich ein. Beispielsweise liefert man 3 printf die Syntax der C-Funktion printf. Diese Einschränkung ist dann notwendig, wenn mehrere gleichnamige man-Texte in unterschiedlichen Themenbereichen existieren. man zeigt in diesem Fall nur den ersten gefundenen man-Text an. Wenn Sie alle gleichnamigen man-Texte (aus allen Bereichen) lesen möchten, müssen Sie man mit der Option -a verwenden. Sobald Sie den Text gelesen haben und man mit (Q) beenden, erscheint der man-Text zum nächsten Abschnitt. In vielen Unix- und Linux-Büchern werden zusammen mit den Kommandos gleich die man-Nummern angegeben – etwa find(1). Damit wissen Sie sofort, wie Sie man aufrufen müssen. man kennt üblicherweise die Themenbereiche 1 bis 9 und n (siehe Tabelle 12.8). Manchmal werden die Kommandos von Programmiersprachen in zusätzlichen Bereichen mit anderen Buchstaben eingeordnet. THEMA
THEMA
1
Benutzerkommandos
6
Spiele
2
Systemaufrufe
7
Diverses
3
Funktionen der Programmiersprache C
8
Kommandos zur Systemadministration
4
Dateiformate, Device-Dateien
9
Kernelfunktionen
5
Konfigurationsdateien
n
neue Kommandos
Tabelle 12.8: man-Themengruppen
Die Darstellung der Hilfetexte erfolgt intern durch das Programm less. Deswegen gelten für die Navigation im Hilfetext die auf Seite 291 zusammengefassten Tastenkürzel. Aus welchen Verzeichnissen man die Hilfetexte liest, kann wahlweise durch die Steuerungsdatei /etc/manpath.config oder durch die Umgebungsvariable MANPATH eingestellt werden.
295
Kapitel 12
Arbeiten in der Konsole
Unter KDE und Gnome können Sie man-Texte auch mit den jeweiligen Help- oder Webbrowsern lesen. Die folgenden Beispiele zeigen, wie Sie die man-Seite zu ls und ein Inhaltsverzeichnis aller man-Seiten anzeigen können: user$ gnome-help man:ls user$ khelpcenter man:ls user$ khelpcenter ’man:(index)’ help
Zu manchen Kommandos erhalten Sie Hilfe nicht mit man, sondern mit help. Das betrifft alle Kommandos, die direkt von der Shell ausgeführt werden. (Die Shell ist der Kommandointerpreter, der Ihre Eingaben entgegennimmt. Ausführliche Informationen zur Linux-Standard-Shell bash finden Sie in Kapitel 19 ab Seite 433.)
info
man-Hilfetexte haben den Nachteil, dass sie nur schwer strukturierbar sind. Das alternative infoFormat bietet hier deutlich bessere Möglichkeiten, weswegen vor allem umfangreiche Hilfetexte häufig nur in diesem Format vorliegen. info wird üblicherweise in der Form info kommando aufgerufen. Wird das Kommando ohne Parameter gestartet, zeigt das Programm eine Übersicht der verfügbaren Hilfethemen an. Leider erweist sich der Vorteil der klareren Strukturierung rasch als Nachteil: Die Navigation in info-Texten ist unübersichtlich, außerdem fehlt ein Suchmechanismus, der über die gerade aktuelle Seite hinausreicht.
Tabelle 12.9: infoTastenkürzel
TASTENKÜRZEL
FUNKTION
(Leertaste)
Text nach unten scrollen
(Backspace)
Text nach oben scrollen
(B), (E)
zum Anfang/Ende der Info-Einheit springen (beginning/end)
(ÿ)
Cursor zum nächsten Querverweis (*) bewegen
(¢)
Querverweis zu anderer Info-Einheit verfolgen
(N)
nächste Info-Einheit derselben Hierarchiestufe (next)
(P)
vorige Info-Einheit derselben Hierarchiestufe (previous)
(U)
eine Hierarchieebene nach oben (up)
(L)
zurück zum zuletzt angezeigten Text (last)
(H)
ausführliche Bedienungsanleitung (help)
(?)
Kommandoübersicht
(Q)
beendet info (quit).
Statt info können Sie auch den Editor Emacs starten und mit (Alt)+(X) info (¢)oder mit (Strg)+(H), (I) in den info-Modus wechseln (siehe auch Seite 414). Dort werden alle Querverweise farbig hervorgehoben und können durch einen Klick mit der mittleren Maustaste bequem verfolgt werden. Eine andere komfortable Alternative zu info ist das Programm pinfo. Unter KDE bzw. Gnome lesen Sie info-Texte am besten mit dem jeweiligen Hilfesystem.
296
13. Dateiverwaltung Dieses Kapitel beschreibt, wie Sie mit Dateien umgehen. Im Detail werden die folgenden Themen behandelt: » Dateien, Verzeichnisse und Links » Dateien und Verzeichnisse kopieren, verschieben, löschen » Dateien komprimieren und archivieren » Dateien suchen » CDs und DVDs brennen » Backups » Zugriffsrechte von Dateien (inklusive ACLs) » Linux-Verzeichnisstruktur » Device-Dateien Kapitel 24 ab Seite 605 beschäftigt sich mit der Administration des Dateisystems. Es stellt gewissermaßen die Fortsetzung zu diesem Kapitel dar, behandelt aber Fragen, die weniger für Anwender und mehr für Systemadministratoren interessant sind: Welche Dateisysteme gibt es? Wie werden sie in das Dateisystem integriert (/etc/fstab, mount-Optionen)? Wie kann ein Software-RAID-System eingesetzt werden? Was ist LVM? Wie kann ein ganzes Dateisystem verschlüsselt werden?
13.1 Umgang mit Dateien und Verzeichnissen Ganz kurz die wichtigsten Fakten zu Dateinamen: » Unter Linux sind Dateinamen mit einer Länge bis zu 255 Zeichen zulässig. » Es wird zwischen Groß- und Kleinschreibung unterschieden! » Internationale Zeichen im Dateinamen sind zulässig, können aber zu Problemen führen, wenn unterschiedliche Zeichensätze zum Einsatz kommen (z. B. in einem Netzwerk). Seit mehr als fünf Jahren gilt bei nahezu allen Linux-Distributionen Unicode UTF-8 als Standardzeichensatz. Welche anderen Zeichensätze es gibt und was bei einem Zeichensatzwechsel zu beachten ist, wird in einem eigenen Abschnitt zum Thema Internationalisierung ab Seite 492 beschrieben. Aus der Sicht des Linux-Kernels ist der Dateiname einfach eine Bytefolge, in der lediglich das Zeichen / und der Code 0 nicht vorkommen dürfen. Wie diese Bytefolge interpretiert wird, hängt vom gerade gültigen Zeichensatz ab.
Kapitel 13
Dateiverwaltung
» Dateinamen dürfen beliebig viele Punkte enthalten. README.bootutils.gz ist ein ganz normaler Dateiname, der andeutet, dass es sich um eine komprimierte README-Datei zum Thema BootUtilities handelt. » Dateien, die mit einem Punkt beginnen, gelten als versteckte Dateien (siehe Seite 305). Versteckte Dateien werden durch ls bzw. durch diverse Dateimanager normalerweise nicht angezeigt. » Dateinamen, die bei der Eingabe von Kommandos nicht eindeutig als solche erkennbar sind (etwa Dateinamen mit Leerzeichen), müssen in Hochkommata gestellt werden (etwa "a b"). Die Größe von Dateien ist bei aktuellen Linux-Distributionen nahezu unbeschränkt und liegt je nach Dateisystem zumeist im TByte-Bereich (siehe auch Tabelle 24.7 auf Seite 634).
Verzeichnisse Verzeichnisbaum
Der Verzeichnisbaum von Linux beginnt im Wurzelverzeichnis /. Laufwerksangaben wie C: sind unter Linux weder möglich noch sinnvoll (siehe auch Seite 626). Innerhalb dieses Buchs gelten alle weiteren Verzeichnisse als untergeordnet: Das Wurzelverzeichnis steht also – bildlich gesehen – ganz oben. In manchen Büchern ist die Nomenklatur gerade umgekehrt, was zwar dem Baumbild (Wurzel unten, Verästelung oben) besser entspricht, aber nicht mit dem üblichen Sprachgebrauch übereinstimmt. Eines der größten Probleme beim Neueinstieg in Unix/Linux besteht darin, eine bestimmte Datei im weit verästelten Verzeichnissystem zu finden. Abschnitt 13.11 ab Seite 343 gibt einen ersten Überblick.
Heimatverzeichnis
Wie ich in Kapitel 3 bereits erwähnt habe, befinden Sie sich nach dem Einloggen automatisch im sogenannten Heimat- oder Home-Verzeichnis. Alle darin enthaltenen Dateien und Unterverzeichnisse gehören Ihnen. Andere Benutzer (mit Ausnahme von root) dürfen diese Dateien weder verändern noch löschen (und je nach Einstellung nicht einmal lesen). Das Heimatverzeichnis befindet sich im Linux-Verzeichnisbaum üblicherweise an der Stelle /home/ loginname/. (Nur bei root heißt das Heimatverzeichnis /root.) Da es zu umständlich wäre, /home/ loginname immer auszuschreiben, wird das eigene Heimatverzeichnis mit der Tilde ~ abgekürzt. Für den Zugriff auf die Heimatverzeichnisse anderer Benutzer ist außerdem die Schreibweise ~loginname möglich.
Die Verzeichnisse . und ..
In jedem Verzeichnis existieren zwei besondere Unterverzeichnisse, die zur formalen Verwaltung der Verzeichnishierarchie dienen: Das Verzeichnis mit dem Namen . ist ein Verweis auf das aktuelle Verzeichnis, das Verzeichnis .. ein Verweis auf das übergeordnete Verzeichnis. Die beiden folgenden Kopierkommandos zeigen, wie Sie diese Verzeichnisse nutzen. (Weitere cpBeispiele folgen im nächsten Abschnitt.) Das erste Kommando kopiert die Datei /etc/fstab in das gerade aktuelle Verzeichnis. Wenn das aktuelle Verzeichnis /home/name lautet, dann hat die neue Datei den Namen /home/name/fstab. user$
298
cp /etc/fstab .
Umgang mit Dateien und Verzeichnissen
Abschnitt 13.1
Das zweite Beispiel aktiviert zuerst mit cd das Verzeichnis ~/linuxbuch. Das Kopierkommando cp erstellt dann eine Sicherheitskopie der Datei fileuse.tex (die den Text dieses Kapitels enthält). Die Sicherheitskopie hat den Namen ~/fileuse.tex.bak. user$ user$
cd ~/linuxbuch cp fileuse.tex ../fileuse.tex.bak
Wenn das Heimatverzeichnis /home/name lautet, dann haben Sie also gerade eine Kopie von /home/ name/linuxbuch/fileuse.tex erstellt. Die Sicherheitskopie hat den vollständigen Namen /home/ name/fileuse.tex.bak. ZEICHEN
BEDEUTUNG
~
Heimatverzeichnis
.
aktuelles Verzeichnis
..
übergeordnetes Verzeichnis zum aktuellen Verzeichnis
Tabelle 13.1: Sonderzeichen für Verzeichnisse
Elementare Kommandos zur Bearbeitung von Dateien und Verzeichnissen Obwohl unter KDE und Gnome moderne Dateimanager zur Verfügung stehen, verwenden erfahrene Linux-Anwender gerne textorientierte Kommandos. Tabelle 13.2 fasst nur die allerwichtigsten Kommandos zusammen. Details zu den verfügbaren Optionen finden Sie in der Kommandoreferenz am Ende des Buchs. KOMMANDO
FUNKTION
cd
wechselt das aktuelle Verzeichnis.
cp
kopiert Dateien.
less
zeigt Textdateien seitenweise an.
ls
zeigt alle Dateien eines Verzeichnisses an.
mkdir
erzeugt ein neues Verzeichnis.
mv
verschiebt Dateien bzw. ändert ihren Namen.
rm
löscht Dateien.
rmdir
löscht Verzeichnisse.
ls liefert eine Liste aller Dateien im aktuellen Verzeichnis. Wenn Sie auch verborgene Dateien sehen möchten, geben Sie zusätzlich die Option -a an. Wenn Sie sich nicht nur für den Dateinamen, sondern auch für die Dateigröße, den Besitzer und andere Details interessieren, hilft Ihnen die Option -l weiter. Standardmäßig ist die Ausgabe von ls alphabetisch geordnet. Um die Dateiliste nach dem Zeitpunkt der letzten Änderung, der Dateigröße bzw. der Dateikennung zu sortieren, verwenden Sie die Optionen -t, -S bzw. -X. -r dreht die Sortierordnung um. Das folgende Kommando zeigt alle *.tex-Dateien im Verzeichnis linuxbuch, geordnet nach ihrer Größe (die größte Datei zuerst).
Tabelle 13.2: Devicenamen von Festplattenpartitionen Dateien auflisten
299
Kapitel 13
Dateiverwaltung
user$ ls -l ... -rw-r--r-- 1 -rw-r--r-- 1 -rw-r--r-- 1 ...
-S linuxbuch/*.tex kofler kofler kofler kofler kofler kofler
30113 2009-05-11 09:09 linuxbuch/intro.tex 63173 2009-01-29 08:05 linuxbuch/kde.tex 76498 2009-06-08 15:43 linuxbuch/kernel.tex
Kurz einige Anmerkungen zur Interpretation des ls-Ergebnisses: Die zehn Zeichen am Beginn der Zeile geben den Dateityp und die Zugriffsbits an. Als Dateityp kommen in Frage: der Bindestrich für eine normale Datei, d für ein Verzeichnis (Directory), b oder c für eine Device-Datei (Block oder Char) oder l für einen symbolischen Link. Die nächsten drei Zeichen (rwx) geben an, ob der Besitzer die Datei lesen, schreiben und ausführen darf. Analoge Informationen folgen für die Mitglieder der Gruppe sowie für alle anderen Systembenutzer. Die Zahl im Anschluss an die zehn Typ- und Zugriffszeichen gibt an, wie viele Hard-Links auf die Datei verweisen. (Was Links sind, wird auf Seite 306 beschrieben. Details zur Zugriffsverwaltung von Linux-Dateien folgen auf Seite 333.) Die weiteren Spalten geben den Besitzer und die Gruppe der Datei an (hier jeweils kofler), die Größe der Datei, Datum und Uhrzeit der letzten Änderung und zuletzt den Dateinamen. Bei den meisten Distributionen ist ls so konfiguriert, dass es Dateien und Verzeichnisse je nach Typ in unterschiedlichen Farben darstellt. Sollte das bei Ihrer Distribution nicht der Fall sein, erzielen Sie diesen Effekt mit der zusätzlichen Option --color. ls berücksichtigt normalerweise nur die Dateien des gerade aktuellen Verzeichnisses. Wenn Sie auch die Dateien aus Unterverzeichnissen einschließen möchten, verwenden Sie die Option -R. Diese Option steht übrigens auch bei vielen anderen Kommandos zur Verfügung. Das folgende Kommando listet sämtliche Dateien in allen Unterverzeichnissen auf. Diese Liste wird normalerweise recht lang. Daher leitet | less das Resultat von ls an less weiter, sodass Sie durch das Ergebnis blättern können. user$ Dateien kopieren
cp name1 name2 kopiert die Datei name1. Die Kopie hat den Namen name2. Um mehrere Dateien zu kopieren, rufen Sie das Kommando in der Form cp name1 name2 ... zielverzeichnis auf. Die folgenden Kommandos machen zuerst linuxbuch zum aktiven Verzeichnis, erzeugen darin bak als Unterverzeichnis und kopieren alle *.tex-Dateien dorthin. user$ user$ user$
Verzeichnisse kopieren
300
ls -lR | less
cd linuxbuch mkdir bak cp *.tex bak/
Um ganze Verzeichnisse samt ihrem Inhalt zu kopieren, verwenden Sie cp -r. Die Option -r bewirkt, dass der gesamte Inhalt des Quellverzeichnisses rekursiv verarbeitet wird (auch versteckte Dateien). Wenn Sie möchten, dass beim Kopieren die Zugriffsrechte und -zeiten erhalten bleiben, verwenden Sie statt -r die Option -a.
Umgang mit Dateien und Verzeichnissen
Abschnitt 13.1
Etwas diffizil ist die Frage, ob das Quellverzeichnis selbst oder nur sein Inhalt kopiert wird. Wenn es das Zielverzeichnis bereits gibt, wird darin das neue Unterverzeichnis quellverzeichnis erzeugt und dorthin der gesamte Inhalt des Quellverzeichnisses kopiert. Wenn es das Zielverzeichnis hingegen noch nicht gibt, wird es erzeugt; in diesem Fall wird nur der Inhalt des Quellverzeichnisses in das neu erzeugte Zielverzeichnis kopiert, nicht aber das Quellverzeichnis selbst. Die folgenden Beispiele verdeutlichen den Unterschied: user$ user$ user$ user$ user$ user$ user$ test user$ user$ a b
mkdir test touch test/a mkdir test/b touch test/b/c mkdir ziel1 cp -r test ziel1 ls ziel1 cp -r test ziel2 ls ziel2
(Das Verzeichnis ziel1/ existiert schon.)
(Das Verzeichnis ziel2/ existiert noch nicht.)
rm datei löscht die angegebene Datei unwiderruflich. rm kann normalerweise nur für Dateien, nicht aber für Verzeichnisse verwendet werden. Für Verzeichnisse ist das Kommando rmdir verzeichnis vorgesehen, das allerdings nur funktioniert, wenn das Verzeichnis leer ist. In der Praxis werden Sie daher zum Löschen von Verzeichnissen zumeist rm mit der Option -rf verwenden. Das bedeutet, dass rekursiv auch alle Unterverzeichnisse und Dateien ohne Rückfrage gelöscht werden. Es sollte Ihnen klar sein, dass rm -rf ein sehr gefährliches Kommando ist! Das folgende Kommando löscht die oben erstellte Sicherheitskopie des linuxbuch-Verzeichnisses: user$
Dateien und Verzeichnisse löschen
rm -rf linuxbuch-bak/
Platzbedarf von Dateien und Verzeichnissen ermitteln ls -l verrät Ihnen zwar, wie groß eine Datei ist. Oft wollen Sie aber wissen, wie viel Platz die Dateien im gesamten Verzeichnis beanspruchen, wie viel Platz auf der Festplatte noch frei ist etc. Dabei helfen die beiden Kommandos df und du. df zeigt für alle in das Dateisystem eingebundenen Partitionen bzw. Datenträger an, wie viel Speicher insgesamt zur Verfügung steht und wie viel davon noch frei ist. Im folgenden Beispiel liefert df Ergebnisse für vier Partitionen bzw. Datenträger. Die Option -h bewirkt, dass sämtliche Kapazitätsangaben in lesbaren Zahlen in kByte, MByte bzw. GByte angegeben werden (und nicht standardmäßig in 1-kByte-Blöcken). df zeigt auch diverse Dateisysteme an, die nur zur internen Verwaltung dienen und nicht zum Speichern regulärer Dateien gedacht sind. user$ df -h Dateisystem /dev/sda3 /dev/sda2 /dev/sda6 ...
Größe Benut 14G 4,7G 942M 47M 28G 7,7G
Freie Festplattenkapazität ermitteln
Verf Ben% Eingehängt auf 8,5G 36% / 849M 6% /boot 19G 30% /home
301
Kapitel 13
Dateiverwaltung
Mit df können Sie auch feststellen, in welcher Partition sich ein Verzeichnis physikalisch befindet. Im folgenden Beispiel befindet sich das Verzeichnis /home/kofler in der Partition /dev/sda6, die an der Stelle /home in den Verzeichnisbaum eingebunden ist. user$ df -h /home/kofler/ /dev/sda6 28G 7,7G Verzeichnisgröße ermitteln
19G
30% /home
du ermittelt den Platzbedarf für das aktuelle Verzeichnis sowie für alle darin enthaltenen Unterverzeichnisse. Die Option -h bewirkt wiederum, dass das Ergebnis in lesbarer Form (nicht in kByte-Blöcken) angezeigt wird. Es gibt keine Optionen, um die du-Ergebnisse zu sortieren. (Unter Gnome können Sie die Größe von Verzeichnissen übrigens mit dem Programm baobag grafisch veranschaulichen; bei KDE ist eine vergleichbare Ansicht in den Dateimanager Konqueror integriert.) user$ 74M 162M 66M ... 2,0G
du -h fotos/2010 fotos/2010/2010-03-ostern fotos/2010/2010-08-korsika fotos/2010/2010-11-diverse fotos/2010
Jokerzeichen Im täglichen Umgang mit Dateien werden Sie häufig ganze Gruppen von Dateien bearbeiten – etwa alle Dateien mit der Endung .tex. Um das zu ermöglichen, sind bei der Eingabe von LinuxKommandos sogenannte Jokerzeichen vorgesehen.
Tabelle 13.3: Jokerzeichen für Dateinamen * und ?
ZEICHEN
BEDEUTUNG
?
genau ein beliebiges Zeichen
*
beliebig viele (auch null) beliebige Zeichen
[abc]
genau eines der angegebenen Zeichen
[a-f]
ein Zeichen aus dem angegebenen Bereich
[!abc] oder [^abc]
keines der angegebenen Zeichen
? dient zur Spezifikation eines beliebigen Zeichens, und * dient zur Spezifikation beliebig vieler (auch null) Zeichen. Wer sich noch mit DOS auskennt, wird auf den ersten Blick keinen Unterschied erkennen. Dieser Eindruck täuscht aber: » * erfasst fast alle Zeichen, also auch Punkte (sofern sie nicht am Beginn des Dateinamens stehen). Wenn Sie alle Dateien bearbeiten möchten, heißt es unter Linux * und nicht *.*! (Anmerkungen zu versteckten Dateien folgen weiter unten.) » Auch mehrere Jokerzeichen bringen Linux nicht aus dem Gleichgewicht. Sie können beispielsweise mit *graf* alle Dateien suchen, die graf in ihrem Namen enthalten – also etwa grafik.doc, apfelgraf und README.graf.
[ ] und [!]
302
Wenn Ihnen die Jokerzeichen ? und * zu allgemein sind, können Sie eine stärkere Einschränkung
Umgang mit Dateien und Verzeichnissen
Abschnitt 13.1
durch die Angabe eckiger Klammern erreichen. [abc] steht als Platzhalter für einen der drei Buchstaben a, b oder c. Wenn innerhalb der eckigen Klammern ein Bindestrich zwischen zwei Buchstaben oder Ziffern angegeben wird, dann ist ein Zeichen dazwischen gemeint: [a-f]* erfasst demnach alle Dateien, die mit einem Buchstaben zwischen a und f beginnen. *[_.-]* meint alle Dateien, die irgendwo in ihrem Dateinamen zumindest einen Punkt, Unterstrich oder Bindestrich enthalten. Durch ein Ausrufezeichen kann der Ausdruck negiert werden: [!a-z]* meint alle Dateien, die mit einem Großbuchstaben oder mit einem Sonderzeichen beginnen. *.[hc] erfasst alle Dateien, die mit .c oder .h enden. Die Jokerzeichen können auch für Verzeichnisse verwendet werden. */*.tex erfasst alle *.texDateien, die sich in Unterverzeichnissen des aktuellen Verzeichnisses befinden (nur eine Ebene darunter, also nicht auch Dateien in Unter-Unterverzeichnissen). /usr/*bin/* erfasst alle Dateien in den Verzeichnissen /usr/bin und /usr/sbin. Für die Auswertung der Jokerzeichen ist nicht das jeweils aufgerufene Kommando zuständig, sondern die Shell, aus der das Kommando aufgerufen wird. bash, die unter Linux gebräuchlichste Shell, kennt neben den gerade beschriebenen Jokerzeichen eine Menge weiterer Sonderzeichen, die bei der Ausführung eines Kommandos eine besondere Wirkung haben (siehe Seite 444). Das folgende Kommando kopiert alle *.c-Dateien aus dem Verzeichnis project in das aktuelle Verzeichnis: user$
Beispiel
cp projekt/*.c .
Komplikationen bei der Verwendung von Jokerzeichen Der Umgang mit Jokerzeichen sieht auf den ersten Blick einfacher aus, als er in Wirklichkeit ist. Wenn Sie Schwierigkeiten mit Jokerzeichen haben, sollten Sie einfach einige Experimente mit echo jokerzeichen durchführen. Dieses Kommando zeigt einfach alle durch eine JokerzeichenKombination erfassten Dateinamen auf dem Bildschirm an, ohne die Dateinamen zu verändern. Ein Problem besteht darin, dass * nicht nur Dateien, sondern auch Verzeichnisse erfasst. ls * zeigt aus diesem Grund nicht nur alle Dateien im aktuellen Verzeichnis an, sondern auch den Inhalt aller Unterverzeichnisse, die über * erfasst werden. Beim Kommando ls kann dieses Problem durch die Option -d umgangen werden; bei anderen Kommandos steht diese Option allerdings nicht zur Verfügung. Wenn Sie alle Verzeichnisse (nicht aber normale Dateien) bearbeiten möchten, hilft die Jokerzeichenkombination */. weiter: Mit ihr werden alle »Dateien« erfasst, die als Unterverzeichnis einen Verweis auf sich selbst enthalten – und das ist eben nur bei Verzeichnissen der Fall. (Verzeichnisse gelten intern als eine Sonderform einer Datei – daher die Anführungszeichen.) user$
Verzeichnisse mit */. bearbeiten
echo */.
Die Tatsache, dass nicht das jeweilige Programm, sondern schon die Shell für die Verarbeitung der Jokerzeichen zuständig ist, hat nicht nur Vorteile. So ist es etwa unmöglich, mit ls -R *.tex nach *.tex-Dateien auch in Unterverzeichnissen zu suchen. (Die Option -R für das Kommando ls bewirkt eigentlich ein rekursives Durchsuchen von Unterverzeichnissen.)
Probleme mit *.endung
303
Kapitel 13
Dateiverwaltung
Der Grund dafür ist einfach: Die Shell erweitert das Muster *.tex für das aktuelle Verzeichnis und übergibt die Liste der gefundenen Dateien an ls. Das Kommando zeigt Informationen zu diesen Dateien an. Wenn Sie keine Verzeichnisse mit der Endung .tex haben, ist ls damit am Ende – auch die Option -R kann daran nichts mehr ändern. Rekursiv durchsucht werden nämlich nur die Verzeichnisse, die als Parameter übergeben werden. Zum Suchen nach Dateien stellt Linux deshalb das sehr viel flexiblere Kommando find zur Verfügung. Im Beispiel unten wird eine Liste aller *.tex-Dateien im aktuellen und in allen untergeordneten Verzeichnissen angezeigt. Grundlagen und weitere Beispiele zu find folgen auf Seite 311. user$ Dateien umbenennen
find . -name '*.tex'
Leider ist es in Linux nicht möglich, mit dem Kommando mv *.x *.y alle *.x-Dateien in *.y-Dateien umzubenennen. Der Grund für diese Einschränkung ist wieder derselbe wie oben beschrieben: Die Shell ersetzt *.x durch die Liste aller Dateien, die diesem Muster entsprechen. Für *.y gibt es keine gültigen Dateinamen. An das Kommando mv werden daher eine Liste mehrerer Dateien und der Ausdruck *.y übergeben – und mv weiß dann nicht, was es mit diesen Argumenten tun soll. Dazu ein konkretes Beispiel: Angenommen, im aktuellen Verzeichnis befinden sich nur die Dateien markus.x, peter.x und ulrike.x. Wenn Sie mv *.x *.y ausführen, ersetzt die Shell das Muster *.x durch die drei genannten Dateien. Die Shell findet keine passenden Dateien für *.y und übergibt das Muster so, wie es ist. Erst jetzt wird das Kommando mv gestartet. Es bekommt folgende Parameter, mit denen es erwartungsgemäß nichts anfangen kann: user$
mv markus.x peter.x ulrike.x *.y
Selbst wenn an mv als Parameterliste markus.x peter.x ulrike.x markus.y peter.y ulrike.y übergeben würde, wäre die Wirkung nicht die erwünschte. mv ist prinzipiell nicht in der Lage, mehrere Dateien umzubenennen. Entweder werden mehrere Dateien in ein anderes Verzeichnis verschoben, oder es wird nur eine Datei umbenannt. Umbenennen mit sed
Unix-Experten haben natürlich auch für dieses Problem eine Lösung gefunden: Sie verwenden den Streameditor sed. Wegen der eher komplizierten Bedienung von sed eignen sich Beispiele wie das folgende eigentlich nur zur Shell-Programmierung. Kurz zur Funktionsweise: ls liefert die Liste der Dateien, die umbenannt werden sollen, und gibt sie an sed weiter. sed bildet daraus mit dem Kommando s (reguläres Suchen und Ersetzen) eine Liste von cp-Kommandos und gibt diese wiederum an eine neue Shell sh weiter, die die Kommandos schließlich ausführt. Durch die Zeile unten werden alle *.xxx-Dateien in *.yyy-Dateien kopiert. user$
ls *.xxx | sed 's/\(.*\)\.xxx$/cp & \1.yyy/' | sh
Eine andere Alternative wäre die Formulierung einer kleinen Schleife. Durch das Kommando unten werden von allen *.tex-Dateien Kopien mit der Endung tex~ gebildet. (Die Endung ~ wird häufig zur Kennzeichnung von Backup-Dateien verwendet.) user$
304
for i in *.tex; do cp $i $i~; done
Umgang mit Dateien und Verzeichnissen
Abschnitt 13.2
Versteckte Dateien Unter Linux gelten Dateien, deren Name mit einem Punkt beginnt, als versteckte Dateien. * berücksichtigt deswegen nicht wirklich alle Dateien in einem Verzeichnis: Dateien, die mit einem Punkt beginnen (häufig Konfigurationsdateien, die unsichtbar sein sollen), werden ignoriert. Wenn Sie nun glauben, Sie könnten unsichtbare Dateien mit .* erfassen, wird alles noch schlimmer: Damit sind nämlich nicht nur unsichtbare Dateien gemeint, die mit . beginnen, sondern auch die Verzeichnisse . und .. (also das aktuelle und das übergeordnete Verzeichnis). Wenn das jeweilige Kommando in der Lage ist, ganze Verzeichnisse zu bearbeiten, können die Folgen fatal sein. Das Problem kann mit dem Suchmuster .[!.]* umgangen werden. Damit werden alle Dateinamen erfasst, deren erstes Zeichen ein Punkt ist, die mindestens ein weiteres Zeichen aufweisen, das kein Punkt ist, und die beliebig viele (auch null) weitere Zeichen haben. user$
echo .[!.]*
Beim Kommando ls kann die Option -a verwendet werden. Sie führt dazu, dass alle Dateien (auch unsichtbare) angezeigt werden. Allerdings dürfen bei dieser Verwendung von ls keine Masken (etwa *rc* ) angegeben werden. -a funktioniert nur dann, wenn ls sich die Dateien selbst suchen darf und nicht die Shell diese Aufgabe übernimmt. Wirklich universell funktioniert auch in diesem Fall nur find. Das folgende Kommando findet alle versteckten Dateien im aktuellen Verzeichnis: user$
find -maxdepth -type f -name '.*'
Sonderformen von Dateien (Links, Devices etc.) Neben gewöhnlichen Dateien kennt Linux eine Reihe von Sonderformen, z. B. Verzeichnisse, Links (siehe den folgenden Abschnitt), Device-Dateien zum Zugriff auf Hardware-Komponenten (siehe Seite 346) etc. ls -F kennzeichnet derartige Sonderformen durch ein zusätzliches Zeichen. user$ ls -lF ... 13. Apr 11:31 bak/ ... 11. Apr 12:21 grepalltex* ... ZEICHEN
BEDEUTUNG
/
Verzeichnis
*
ausführbare Datei
@
symbolischer Link
-
zeichenorientiertes Gerät (Character Device)
+
blockorientiertes Gerät (Block Device)
=
Pipe, FIFO
Tabelle 13.4: Identifizierung von Spezialdateien
305
Kapitel 13
Dateiverwaltung
13.2 Links Links sind Verweise auf Dateien. Durch Links kann von verschiedenen Orten in der Verzeichnisstruktur auf ein- und dieselbe Datei zugegriffen werden, ohne dass diese Datei physikalisch mehrfach gespeichert werden muss. Links sind damit ein wichtiges Hilfsmittel zur Vermeidung von Redundanzen. Im Linux-Dateisystem kommen Links besonders häufig in /bin- und /lib-Verzeichnissen vor. (Sehen Sie sich beispielsweise /usr/bin oder /usr/lib mit ls -l genauer an!) Am einfachsten sind Links anhand eines Beispiels zu verstehen: Angenommen, im Verzeichnis test befindet sich die Datei abc; durch das Kommando ln abc xyz wird scheinbar eine neue Datei xyz erstellt. In Wahrheit sind aber abc und xyz nur zwei Verweise auf ein und dieselbe Datei. Die einzige Möglichkeit, das zu überprüfen, bietet das Kommando ls mit der Option -l. Es gibt in der zweiten Spalte an, wie viele Links auf eine bestimmte Datei zeigen (im vorliegenden Beispiel 2). Wenn zusätzlich die Option -i verwendet wird, gibt ls auch den Inode der Datei an, der bei Links (und nur dann) identisch ist. user$ 59293 user$ user$ 59293 59293
ls -li -rw-r--r-ln abc xyz ls -li -rw-r--r--rw-r--r--
1 root
root
1004 Oct
4 16:40 abc
2 root 2 root
root root
1004 Oct 1004 Oct
4 16:40 abc 4 16:40 xyz
Hinweis
Wenn Sie nun eine der beiden Dateien verändern (egal welche), ändert sich automatisch auch die andere Datei (weil es ja in Wirklichkeit nur eine einzige Datei gibt). Wenn Sie eine der beiden Dateien löschen, reduzieren Sie dadurch nur die Anzahl der Links.
Symbolische Links
Wenn Sie fest verlinkte Dateien mit einem Texteditor bearbeiten, treten bisweilen seltsame Ergebnisse auf: Der Link zeigt nach dem ersten Speichern auf die Backup-Datei und beim zweiten Speichern ins Leere. Der Grund: Manche Editoren erzeugen beim Speichern eine Backup-Datei, indem sie die vorhandene Datei umbenennen, also beispielsweise abc in abc~. Die geänderte Datei wird vollkommen neu angelegt, erhält einen neuen Inode und ist damit frei von Links. Abhilfe: Verwenden Sie symbolische Links. Linux kennt zwei Formen von Links. Das obige Beispiel hat feste Links (Hardlinks) vorgestellt, wie sie standardmäßig durch das Kommando ln erzeugt werden (siehe auch Seite 1175). Wird ln dagegen mit der Option -s verwendet, erzeugt das Kommando symbolische Links. Symbolische Links (manchmal auch weiche Links oder Softlinks genannt) haben den Vorteil, dass sie innerhalb des Dateisystems von einer physikalischen Festplatte auf eine andere verweisen können und dass sie nicht nur auf Dateien, sondern auch auf Verzeichnisse angewandt werden können. (Beides ist mit festen Links normalerweise nicht möglich. Einen Sonderfall stellen feste Links auf Verzeichnisse dar, die zwar möglich sind, aber nur vom Superuser erstellt werden können.) Durch ls wird bei symbolischen Links angezeigt, wo sich die Ursprungsdatei befindet. Es wird allerdings kein Zähler verwaltet, der angibt, von wie vielen Stellen auf die Ursprungsdatei verwiesen wird.
306
Dateitypen (MIME)
Abschnitt 13.3
Intern besteht der Unterschied zwischen festen und symbolischen Links darin, dass im einen Fall der Inode, im anderen Fall der Dateiname oder (bei Links über ein Verzeichnis hinaus) die Pfadangabe gespeichert wird. user$ user$ 59293 59310 59293
ln -s abc efg ls -li -rw-r--r-2 root lrwxrwxrwx 1 root -rw-r--r-2 root
root root root
1004 Oct 3 Oct 1004 Oct
4 16:40 abc 4 16:52 efg -> abc 4 16:40 xyz Tipp
Bevor Sie einen symbolischen Link einrichten, sollten Sie immer in das Verzeichnis wechseln, das den Link enthalten wird. Andernfalls kann es passieren, dass der Link nicht dorthin zeigt, wohin Sie es erwarten. Symbolische Links verhalten sich ein wenig anders als feste Links. Das Löschen der Ursprungsdatei (also abc) verändert den Link auf diese Datei nicht, efg verweist jetzt aber auf eine leere (gar nicht vorhandene) Datei. Wird dagegen der symbolische Link gelöscht, hat das keinen Einfluss auf die Ursprungsdatei. Symbolische Links können nicht nur für Dateien, sondern auch für Verzeichnisse erstellt werden. Das kann einige Verwirrung stiften, weil durch einen symbolischen Link ganze Verzeichnisbäume scheinbar verdoppelt werden. In Wirklichkeit stellt der Verzeichnis-Link aber nur einen zusätzlichen Pfad zu denselben Dateien und Unterverzeichnissen dar. Generell sollten Sie versuchen, möglichst keine absoluten, sondern nur relative Pfadangaben in Links zu verwenden. Damit vermeiden Sie Probleme, die sich beim Mounten von Verzeichnissen per NFS oder beim Verschieben von Verzeichnissen ergeben können. Sowohl symbolische als auch feste Links haben Vorteile. Symbolische Links sind einfacher in der Handhabung. Dafür verbrauchen feste Links weniger Speicher und sind schneller.
13.3 Dateitypen (MIME) Sie klicken in einem Webbrowser oder Dateimanager auf einen Link, der auf eine MP3-Datei verweist – und die MP3-Datei wird automatisch in einem Audio-Player abgespielt. Wenn das funktioniert, ist MIME korrekt konfiguriert. MIME steht für Multipurpose Internet Mail Extensions. Ursprünglich bezog sich MIME auf E-MailAttachments. Wenn mit einer E-Mail beispielsweise eine PostScript- oder JPEG-Datei mitgesandt wird, dann sollte der E-Mail-Client wissen, mit welchem Programm diese Datei betrachtet bzw. bearbeitet werden kann. Damit das funktioniert, ist die MIME-Konfiguration erforderlich.
MIME
Mittlerweile reicht die Anwendung von MIME aber viel weiter: Wenn Sie im Dateimanager oder Webbrowser einen Link auf eine Datendatei verfolgen, sollte auch dieses Programm wissen, wie es mit diesen Daten umgehen soll. Die Bedeutung einer korrekten MIME-Konfiguration erstreckt sich also auf alle Programme, die mit unterschiedlichen Datentypen zurechtkommen müssen.
307
Kapitel 13
Dateiverwaltung
MIMEKonfiguration
Linux wäre nicht Linux (oder Unix), wenn es einen zentralen Ort für die MIME-Konfiguration gäbe. Stattdessen gibt es eine ganze Menge. Die MIME-Daten für KDE-Programme, Gnome-Programme, diverse Webbrowser, für das Drucksystem CUPS etc. werden jeweils separat verwaltet. Außerdem gibt es noch eine zentrale MIME-Konfiguration für alle Programme, die keine eigenen MIMEKonfigurationsdateien verwalten. Die Aufteilung der MIME-Konfiguration auf mehrere Orte hat aber durchaus ihre Gründe: Sowohl KDE als auch Gnome verwenden ein Konzept, das Komponenten zur Bearbeitung verschiedener Datentypen vorsieht. Wenn im KDE-Dateimanager eine PNG-Bilddatei angezeigt werden soll, wird einfach die entsprechende Komponente geladen und ausgeführt. Da die KDE- und GnomeBibliotheken in der Regel zueinander inkompatibel sind, wäre es fatal, wenn der KDE-Dateimanager versuchen würde, eine Gnome-Komponente auszuführen (oder umgekehrt). Um das zu vermeiden, verwenden KDE und Gnome jeweils ihre eigene MIME-Datenbank. Ähnlich ist die Argumentation auch bei allen anderen Programmen mit eigener MIME-Konfiguration. Bei vielen MIME-Konfigurationsdateien muss darüber hinaus zwischen der globalen und der individuellen Konfiguration unterschieden werden, also zwischen der Grundeinstellung für alle Anwender und den benutzerspezifischen Einstellungen. Im Folgenden wird nur die MIME-Grundkonfiguration von Linux präsentiert. Anwendungsspezifische MIME-Details sind in anderen Kapiteln beschrieben: die KDE-MIME-Konfiguration also im KDE-Kapitel etc.
Allgemeine MIMEKonfiguration
Tabelle 13.5: MIME-Konfigurationsdateien
Die allgemeinen MIME-Konfigurationsdateien werden nur von den Programmen berücksichtigt, die keine eigenen MIME-Dateien verwalten. Die Einstellungen sind auf zwei Dateien verteilt, von denen es jeweils eine globale und eine benutzerspezifische Version gibt (siehe Tabelle 13.5). DATEI
BEDEUTUNG
/etc/mime.types
globale Konfiguration für Dateitypen
/etc/mailcap
globale Konfiguration für Programme
~/.mime.types
lokale Konfiguration für Dateitypen
~/.mailcap
lokale Konfiguration für Programme
mime.types enthält eine Liste, die die Zuordnung zwischen Dateitypen (erste Spalte) und Dateikennungen (alle weiteren Spalten) herstellt. Die erste Beispielzeile ordnet dem Typ application/pdf die Kennung *.pdf zu. In mime.types wird zum Teil zwischen Text- und X-Applikationen unterschieden, weswegen Sie Dateitypen wie application/x-name finden werden. # in /etc/mime.types ... application/pdf pdf mailcap gibt an, welches Programm zur Anzeige bzw. Bearbeitung eines bestimmten Dateityps verwendet werden soll. Die folgende Zeile besagt, dass zur Anzeige von PDF-Dateien das Programm evince verwendet werden soll. Im Gegensatz zu mime.types müssen die Spalten in mailcap durch Semikola getrennt werden. %s ist ein Platzhalter für den Dateinamen.
308
Dateien suchen (find, grep, locate, Tracker und Strigi)
Abschnitt 13.4
# in /etc/mailcap application/pdf; evince %s MIME ist für die Zuordnung zwischen dem Dateityp und den dazu passenden Programmen zuständig. Aber wie wird der Dateityp überhaupt festgestellt? Der Normalfall besteht darin, dass die Dateikennung den Dateityp angibt. Die Dateikennung *.ps deutet also beispielsweise auf eine PostScript-Datei hin.
Magic-Dateien zur Erkennung des Dateityps
Bei Dateien ohne Kennung versuchen das Programm file bzw. entsprechende KDE- oder GnomeÄquivalente den Dateityp aus dem Inhalt der ersten Bytes bzw. anhand in der Datei enthaltener charakteristischer Zeichenketten zu erkennen. Das Erkennungsverfahren basiert auf in das Kommando file einkompilierten Informationen darüber, welche Byte- und Zeichenmuster eine Datei enthalten kann. Bei einigen Distributionen kann die Standardkonfiguration durch die Dateien /etc/magic bzw. in ~/.magic verändert werden.
13.4 Dateien suchen (find, grep, locate, Tracker und Strigi) Linux bietet eine Menge Möglichkeiten, um nach Dateien zu suchen (siehe Tabelle 13.6). Welches Kommando am besten geeignet ist, hängt davon ab, um welche Art von Datei es sich handelt (Textdatei, Programm etc.) und welche Informationen bekannt sind (Teile des Dateinamens, Teile des Inhalts etc.). KOMMANDO
FUNKTION
grep
sucht Text in einer Textdatei.
find
sucht Dateien nach Name, Datum, Größe etc.
locate
sucht Dateien nach ihrem Namen.
whereis
sucht Dateien in vordefinierten Verzeichnissen.
which
sucht Programme in PATH-Verzeichnissen.
Tabelle 13.6: Kommandos zur Dateisuche
which und whereis which sucht nach dem angegebenen Kommando. Es liefert den vollständigen Namen des Kommandos, das ausgeführt werden würde, wenn der Kommandoname ohne Pfadinformationen aufgerufen würde. which durchsucht lediglich die in PATH angegebenen Verzeichnisse und arbeitet daher außerordentlich schnell. PATH enthält eine Liste von Verzeichnissen, in denen sich Programme befinden. Beachten Sie aber, dass PATH für root mehr Verzeichnisse enthält als für gewöhnliche Benutzer. Wenn Sie also Systemkommandos suchen, müssen Sie sich als root einloggen. user$ which emacs /usr/bin/emacs
309
Kapitel 13
Dateiverwaltung
whereis durchsucht alle üblichen Pfade für Binärdateien, Konfigurationsdateien, man-Seiten und Quellcode nach dem angegebenen Dateinamen. whereis erfasst damit mehr Verzeichnisse als which und beschränkt sich nicht nur auf Programme. Es versagt allerdings für Dateien, die sich nicht in den für whereis vordefinierten Verzeichnissen befinden (siehe man whereis). user$ whereis fstab fstab: /etc/fstab /usr/include/fstab.h /usr/share/man/man5/fstab.5.gz
locate locate muster findet Dateien, bei denen das angegebene Suchmuster im vollständigen Dateinamen (Pfad plus Dateiname) vorkommt. Die Suche ist sehr schnell: locate durchsucht nämlich nicht das Dateisystem, sondern greift auf eine Datenbank zurück, die eine Liste aller Dateinamen des Dateisystems enthält. Je nach Distribution zeigt locate nur solche Dateien an, auf die der Benutzer tatsächlich Zugriff hat. Führen Sie locate gegebenenfalls als root aus, wenn Sie nach Systemdateien suchen. locate kann nur benutzt werden, wenn das entsprechende Paket installiert ist, was nicht bei allen Distributionen standardmäßig der Fall ist (siehe unten). Beispiele
Das folgende Kommando sucht die X-Konfigurationsdatei xorg.conf: user$ locate xorg.conf /etc/X11/xorg.conf /etc/X11/xorg.conf.backup /etc/X11/xorg.conf~ /usr/share/man/man5/xorg.conf.5x.gz Die Suche nach dvips liefert (sofern dieses Paket sowie LATEX installiert ist) sehr viele Treffer, weil der Suchbegriff in mehreren Verzeichnisnamen vorkommt. Anstatt alle Suchergebnisse anzuzeigen, werden diese mit wc gezählt. user$ locate dvips | wc -l 421 Die Anzahl der Ergebnisse wird wesentlich kleiner, wenn Sie nur nach Dateien suchen, die mit dvips enden: user$ locate '*dvips' /usr/bin/dvips /usr/bin/odvips /usr/bin/opdvips /usr/bin/pdvips /usr/local/texmf/dvips /usr/local/texmf/fonts/map/dvips ...
updatedb
310
Die Qualität der Suchergebnisse steht und fällt mit der Aktualität der Datenbank für locate. Bei den meisten Distributionen wird die locate-Datenbank einmal täglich durch das Kommando updatedb aktualisiert. updatedb kann natürlich jederzeit auch manuell ausgeführt werden. Das erfordert aber root-Rechte.
Dateien suchen (find, grep, locate, Tracker und Strigi)
Je nach Distribution sind locate und updatedb unterschiedlich implementiert. Bei Debian, Fedora und Ubuntu stellt das standardmäßig installierte Paket mlocate die Kommandos locate und updatedb zur Verfügung. Die Dateidatenbank befindet sich in der Datei /var/lib/mlocate/mlocate.db und wird einmal täglich durch den Cron-Job /etc/cron.daily/mlocate aktualisiert. Die Konfigurationsdatei /etc/updatedb.conf bestimmt, welche Verzeichnisse und Dateisysteme nicht berücksichtigt werden (z. B. CDs, DVDs, diverse Spool-Verzeichnisse).
Abschnitt 13.4
Distributionsspezifische Details
Bei openSUSE steht locate standardmäßig nicht zur Verfügung. Bevor Sie das Suchkommando nutzen können, müssen Sie das Paket findutils-locate installieren und als root einmalig updatedb ausführen. In Zukunft wird das Kommando einmal täglich durch den Cron-Job /etc/cron.daily/ suse.de-updatedb aktualisiert. Die Konfiguration erfolgt durch /etc/sysconfig/locate.
find und grep find ist ein ebenso leistungsfähiges wie komplexes Kommando zur Suche nach Dateien. Es berücksichtigt verschiedene Suchkriterien (Muster für den Dateinamen, Dateigröße, Datum der Erstellung oder des letzten Zugriffs etc.). Eine vollständige Referenz aller Optionen gibt man find; eine kompakte Zusammenfassung finden Sie auf Seite 1155. Die folgenden Beispiele führen aber wohl am besten in den Umgang mit find ein. Beachten Sie, dass find ein vergleichsweise langsames Kommando ist, weil es das Dateisystem Verzeichnis für Verzeichnis durchsucht. Ohne weitere Parameter liefert find eine Liste aller Dateien im aktuellen Verzeichnis und in allen Unterverzeichnissen: user$ ...
find
find
Das folgende Kommando sucht alle Dateien im aktuellen Verzeichnis und in allen Unterverzeichnissen, die mit .e beginnen: user$ find -name '.e*' ./.evolution ./.emacs ./.emacs~ ./.esd_auth ... find sucht ausgehend vom Verzeichnis /usr/share/texmf alle *.tex-Dateien in einem Verzeichnis, das mit latex endet: user$ find /usr/share/texmf -path '*latex/*.tex' /usr/share/texmf/ptex/platex/base/plnews03.tex /usr/share/texmf/ptex/platex/base/kinsoku.tex ... Im nächsten Beispiel sucht find alle Verzeichnisse innerhalb von /etc/. Gewöhnliche Dateien in /etc werden dagegen nicht angezeigt. Die Ergebnisliste wird durch sort alphabetisch geordnet (was standardmäßig nicht der Fall ist).
311
Kapitel 13
Dateiverwaltung
root# find /etc -type d | sort /etc /etc/acpi /etc/acpi/actions ... Im Folgenden sucht find alle Dateien in den (Unter-)Verzeichnissen von /home, die Benutzern der Gruppe users gehören und in den letzten fünf Tagen in irgendeiner Form (Inhalt, Zugriffsrechte etc.) verändert wurden. -ctime +5 findet Dateien, die vor mehr als fünf Tagen verändert wurden, -ctime 5 solche, die vor genau fünf Tagen verändert wurden. root# ...
find /home -group users -ctime -5
Das folgende Kommando löscht alle Backup-Dateien im aktuellen Verzeichnis und in allen Unterverzeichnissen. Dabei wird die Liste aller infrage kommender Dateien mit find gebildet und durch Kommandosubstitution ($(kommando)) an rm weitergeleitet. user$
rm $(find . -name '*~')
Falls es sich um sehr viele Dateien handelt, tritt bei der Ausführung des obigen Kommandos ein Fehler auf: Die Kommandozeile mit allen *~-Dateien wird so lang, dass sie die maximale Kommandozeilenlänge überschreitet. In solchen Fällen müssen Sie entweder die -exec-Option des find-Kommandos oder das Kommando xargs zu Hilfe nehmen (siehe Seite 1155 bzw. 1236). grep
Das Kommando grep durchsucht eine Textdatei nach einem Suchmuster. Je nach Einstellung der Optionen zeigt das Kommando anschließend die gefundenen Textpassagen an oder gibt einfach nur an, in wie vielen Zeilen das Suchmuster gefunden wurde. Das Suchmuster ist ein sogenannter regulärer Ausdruck. Details zum Aufbau des Suchmusters finden Sie in der Syntaxreferenz auf Seite 1163. Das folgende Kommando durchsucht alle *.tex-Dateien des aktuellen Verzeichnisses nach der Zeichenkette »emacs«. Eine Liste aller gefundenen Zeilen (denen jeweils der Dateiname vorangestellt ist) wird auf dem Bildschirm angezeigt. user$ ...
grep emacs *.tex
grep ermittelt hier, wie oft die Funktion arctan in den angegebenen *.c-Dateien verwendet wird: user$
grep -c arctan\(.*\) *.c
grep -v liefert als Ergebnis alle Zeilen, die das Suchmuster nicht enthalten. Im folgenden Beispiel entfernt grep aus configfile alle Zeilen, die mit dem Zeichen # beginnen (also alle Kommentare). Das nachgestellte cat-Kommando eliminiert außerdem alle leeren Zeilen. Das Endergebnis wird in der Datei nocomments gespeichert. Die Anweisung ist praktisch, wenn wenige Konfigurationszeilen in Hunderten oder Tausenden von Kommentarzeilen untergehen. user$
312
grep -v '^#' configfile | cat -s > nocomments
Dateien suchen (find, grep, locate, Tracker und Strigi)
Sie können find und grep auch kombinieren, um besonders wirkungsvolle Suchen durchzuführen. Im folgenden Beispiel durchsucht find alle *.tex-Dateien daraufhin, ob in ihnen die Zeichenkette »emacs« vorkommt. Wenn das der Fall ist, wird der Dateiname auf dem Bildschirm ausgegeben. Beachten Sie, dass die Option -print nicht vor -exec angegeben werden darf (siehe auch grep auf Seite 1162). (Im Gegensatz zum obigen Beispiel grep emacs *.tex berücksichtigt dieses Beispiel auch *.tex-Dateien in beliebig tief verschachtelten Unterverzeichnissen.) user$ ...
Abschnitt 13.4
find und grep kombinieren
find -name '*.tex' -type f -exec grep -q emacs {} \; -print
Das folgende Kommando durchsucht alle Dateien im aktuellen Verzeichnis, die kleiner als 10 kByte sind, nach dem regulären Ausdruck case.*in. Die Liste der gefundenen Dateien wird in der Datei ergebnis gespeichert. Durch die Einschränkung der Dateigröße auf 10 kByte wird versucht, die (zumeist erheblich größeren) binären Dateien aus der Suche auszuschließen. user$ find -name '*' -maxdepth 1 -size -10k -exec grep -q \ > case.*in {} \; -print > ergebnis
Desktop-Suche (Tracker, Strigi) In den vergangenen Jahren sind auch unter Linux sogenannte Desktop-Suchsysteme populär geworden. Die größte Verbreitung haben die Programme Strigi (auf KDE-Systemen) und Tracker (unter Gnome) gefunden. Auch Google hat eine Linux-Variante seines Google Desktops entwickelt, die aber bisher keine nennenswerte Verbreitung gefunden hat. Auch das auf der Mono-Plattform aufsetzende Programm Beagle hat sich wegen seiner schlechten Effizienz nicht durchsetzen können. http://strigi.sourceforge.net/ http://projects.gnome.org/tracker/ http://desktop.google.com/linux/ http://www.beagle-project.org/ Gegenüber den oben vorgestellten textbasierten Suchkommandos bieten Desktop-Suchsysteme eine Menge Vorteile: » Die Suche ist schnell, weil ähnlich wie bei locate im Voraus erzeugte Indexdateien ausgewertet werden. » Der Suchindex für eigene Dateien wird bei jeder Dateiänderung aktualisiert und ist daher immer aktuell. » Die Suchalgorithmen verstehen auch die wichtigsten binären Dateiformate. Deswegen finden die Suchprogramme auch Texte in OpenOffice-Dokumenten, PDF-Dateien, E-Mails etc. » Die Bedienung gelingt dank der guten Integration in KDE bzw. Gnome auch Linux-Einsteigern. Natürlich gibt es auch Schattenseiten: Die ständige Aktualisierung der Suchindizes ist mitunter lästing und kann dateiintensive Programme spürbar bremsen. Außerdem beanspruchen die lokalen Indexdateien verhältnismäßig viel Platz. Persönlich habe ich mich bisher mit keinem Desktop-Suchsystem nachhaltig anfreunden können: Normalerweise habe ich keine Probleme, meine Dateien zu finden – und wenn doch, helfen die Desktop-Suchfunktionen zumeist auch nicht
313
Kapitel 13
Dateiverwaltung
weiter. Zudem kommen die Suchfunktionen mit vielen Dateitypen (PDF-Dokumente) bzw. Daten (z. B. Anhänge in E-Mails) nur schlecht oder gar nicht zurecht. Strigi/Nepomuk
Strigi und Nepomuk bilden zusammen das Desktop-Suchsystem für KDE. Strigi muss bei vielen Distributionen zuerst installiert werden (Pakete strigi*) und dann im Modul DESKTOP-SUCHE der Systemeinstellungen aktiviert werden. Um eine Suche auf der Basis von Strigi durchzuführen, geben Sie entweder den Suchbegriff mit (Alt)+(F2) an, oder Sie drücken in Dolphin (Strg)+(L) und geben dann die nicht eben intuitive Zeichenkette nepomuksearch:schlüsselwort ein (siehe Abbildung 13.1). Verwenden Sie nicht das Dolphin-Menükommando E XTRASjDATEI SUCHEN ! Es dient zur Formulierung von Suchanfragen ohne Strigi!
Abbildung 13.1: Strigi-Suchergebnisse im KDE-Dateimanager Dolphin
Weitere Informationen zu Nepomuk und seinen zahlreichen Funktionen finden Sie in diesem Artikel: http://aseigo.blogspot.com/2010/05/i-dont-need-no-stinking-nepomuk-right.html Tracker
Das Suchsystem Tracker kommt überwiegend zusammen mit Gnome zum Einsatz, obwohl das Programm eigentlich unabhängig von Gnome ist und ebenso gut mit anderen Desktop-Systemen verwendet werden kann. Nur wenige Distributionen installieren die Tracker-Pakete standardmäßig. Abhilfe schafft die Installation der Pakete tracker und tracker-search-tool. Anschließend müssen Sie sich aus- und neu einloggen, damit Tracker während des Logins gestartet wird. Je nach Distribution muss Tracker im Konfigurationsdialog SYSTEMjEINSTELLUNGEN jSUCHE UND INDIZIERUNG explizit aktiviert werden. Im Einstellungsdialog können Sie durch eine Menge Optionen steuern, unter welchen Bedingungen Tracker aktiv sein soll (z. B. nicht im Batteriebetrieb), welche Verzeichnisse oder Dateien berücksichtigt werden sollen (in der Regel alle Dateien im Heimatverzeichnis) etc. Die eigentliche Suche starten Sie durch einen Mausklick auf das Tracker-Icon oder im Systemmenü mit A NWENDUNGEN|jZ UBEHÖRjTRACKER SUCHE. Wenn es mehrere Suchergebnisse gibt, können Sie diese anhand des Dateityps eingrenzen.
314
Backup-Kommandos
Abschnitt 13.5
Tracker speichert seine Indexdateien im Verzeichnis ~/.cache/tracker. Standardmäßig werden nur Dateien aus dem Heimatverzeichnis durchsucht. Wenn Sie spezielle Verzeichnisse mit ein- oder ausschließen möchten, ändern Sie die Konfiguration mit tracker-preferences.
13.5 Backup-Kommandos Festplatten leben nicht ewig, Notebooks gehen verloren oder werden gestohlen, und auch ein irrtümliches rm -rf richtet viel Schaden an. An regelmäßigen Backups aller persönlichen Daten führt also kein Weg vorbei. Dieser Abschnitt stellt eine ganze Palette von Kommandos vor, die in unterschiedlicher Form bei der Archivierung und Sicherung von Dateien helfen: tar, zip, rsync, rdiff-backup etc. Ein Überblick über komfortable Backup-Benutzeroberflächen folgt im nächsten Abschnitt ab Seite 320: Vorgestellt werden Grsync, PyBackPack, Déjà Dup und Back in Time. Danach finden Sie ab Seite 324 einige Tipps, zur Durchführung von Backups auf NAS-Festplatten.
Dateien komprimieren und archivieren (gzip, tar, zip) Unter Windows verwenden Sie zum Komprimieren einzelner oder mehrerer Dateien in der Regel WinZIP oder ein dazu kompatibles Programm. Auch unter Linux gibt es vergleichbare Benutzeroberflächen, beispielsweise file-roller (Gnome) oder ark (KDE). Dieser Abschnitt stellt einige kommandoorientierte Alternativen vor, die in Tabelle 13.7 zusammengefasst sind. KOMMANDO
BEDEUTUNG
gzip
komprimiert eine Datei.
gunzip
dekomprimiert die Datei wieder.
bzip2
komprimiert eine Datei (höhere Kompression, aber langsamer).
bunzip2
dekomprimiert die Datei wieder.
tar
erstellt bzw. extrahiert ein Dateiarchiv.
zip
erzeugt ein Windows-kompatibles ZIP-Archiv.
unzip
extrahiert ein ZIP-Archiv.
zipinfo
zeigt Informationen über ein ZIP-Archiv an.
gzip komprimiert die als Parameter angegebenen Dateien und benennt sie in name.gz um. gunzip funktioniert in die umgekehrte Richtung. Die beiden Kommandos verwenden den sogenannten LZ77-Lempel-Ziv-Algorithmus, der sich besonders für Textdateien eignet (nicht aber für Audio- oder Video-Dateien). Die Komprimierung ist selbstverständlich verlustlos, d. h., nach dem Dekomprimieren steht die ursprüngliche Datei wieder unverändert zur Verfügung. Die folgenden Kommandos demonstieren die Anwendung:
Tabelle 13.7: Werkzeuge zum Komprimieren und Archivieren von Dateien gzip und gunzip
315
Kapitel 13
Dateiverwaltung
user$ ls -l filesystem.tex ... 178794 1. Aug 17:43 filesystem.tex user$ gzip filesystem.tex user$ ls -l filesystem.tex.gz ... 57937 1. Aug 17:43 filesystem.tex.gz user$ gunzip filesystem.tex.gz bzip2 und bunzip2
bzip2 und bunzip2 sind Alternativen zu gzip/gunzip. Der Vorteil dieser Kommandos besteht in der etwas besseren Komprimierung, der Nachteil in der etwas langsameren Ausführung. Die Dateiendung derart komprimierter Dateien ist .bz2. user$ bzip2 filesystem.tex user$ ls -l filesystem.tex.bz2 ... 47105 1. Aug 17:43 filesystem.tex.bz2 user$ bunzip2 filesystem.tex.bz2
tar
tar ist das bevorzugte Kommando, um unter Linux mehrere Dateien in einem Archiv zusammenzufassen, wobei das Archiv üblicherweise mit gzip oder bzip2 komprimiert wird. tar war ursprünglich dazu konzipiert, Dateien auf einen Streamer zu schreiben bzw. von dort zu lesen. Da derartige Streamer nur noch relativ selten eingesetzt werden, beschreibe ich an dieser Stelle nur die Anwendung für Dateiarchive. Eine komplette Syntaxreferenz zu tar finden Sie auf Seite 1221. Das folgende Kommando fügt sämtliche Dateien aus dem Verzeichnis buch in die komprimierte Archivdatei buch.tgz ein. Kurz eine Erklärung zu den Optionsbuchstaben: c steht für create, d. h., tar soll ein Archiv erzeugen. z steht zip, d. h., das Archiv soll mit gzip komprimiert werden. f steht für file, d. h., tar soll eine Archivdatei erzeugen (anstatt das Archiv auf eine Streamer-Kassette zu schreiben). Den gewünschten Dateinamen geben Sie im Anschluss an die Option an. Die übliche Dateikennung für derartige Archive lautet .tar.gz oder kurz .tgz. user$
tar -czf meinarchiv.tgz buch/
tar -tzf liefert ein Inhaltsverzeichnis des Archivs. Die Dateien innerhalb des Archivs sind willkürlich geordnet. Bei den meisten Distributionen ist less so konfiguriert, dass Sie den Archivinhalt einfach mit less name.tgz ansehen können. user$ tar -tzf meinarchiv.tgz linuxbuch/ linuxbuch/lanserver.tex linuxbuch/security.tex~ linuxbuch/buch.tex linuxbuch/u4.txt~ ... tar -xzf packt das Archiv aus und extrahiert alle enthaltenen Dateien. user$ user$
cd anderes-verzeichnis/ tar -xzf meinarchiv.tgz
Beim folgenden Beispiel extrahiert tar nur *.tex-Dateien aus dem Archiv. Achten Sie auf die Apostrophe für das Dateimuster, um eine sofortige Auswertung durch die Shell zu vermeiden!
316
Backup-Kommandos
user$
Abschnitt 13.5
tar -xzf meinarchiv.tgz '*.tex'
Wenn Sie Archive mit bzip2 statt mit gzip komprimieren möchten, ersetzen Sie die Option z durch j. In der Unix/Linux-Welt sind tar-Dateien das bevorzugte Format zur Weitergabe von Dateiarchiven. Wenn Sie mit Windows-Anwendern kommunizieren, sind ZIP-Archive aber die bessere Wahl. Das folgende Kommando fügt alle als Parameter übergebenen HTML-Dateien in meinarchiv.zip ein: user$
zip
zip meinarchiv.zip *.html
Wenn Sie den Inhalt ganzer Verzeichnisse archivieren möchten, geben Sie die Option -r an: user$
zip -r meinarchiv.zip mywebsite/
Den Inhalt einer ZIP-Datei sehen Sie sich mit zipinfo an: user$ zipinfo meinarchiv.zip Archive: test.zip 143677915 bytes 1899 files -rw-r--r-- 2.3 unx 78039 tx defN 10-Jul-06 11:27 linuxbuch/lanserver.tex -rw-r--r-- 2.3 unx 115618 tx defN 7-Apr-05 15:58 linuxbuch/security.tex~ -rw-r--r-- 2.3 unx 3899 tx defN 28-Jul-06 16:38 linuxbuch/buch.tex -rw-r--r-- 2.3 unx 752 tx defN 11-Feb-04 12:06 linuxbuch/u4.txt~ ... Zum Extrahieren des Archivs verwenden Sie unzip: user$ user$
cd anderes-verzeichnis/ unzip meinarchiv.zip
Verzeichnisse synchronisieren (rsync) rsync wurde ursprünglich zur Synchronisierung von Netzwerkverzeichnissen konzipiert. Spezielle Anwendungsoptionen für den Netzwerkbetrieb folgen auf Seite 394. An dieser Stelle geht es nur darum, zwei lokal zugängliche Festplattenverzeichnisse zu synchronisieren. Das folgende Kommando kopiert alle *.jpg-Dateien von einem Verzeichnis in ein zweites. Anders als bei cp werden bereits vorhandene Dateien, die seit dem letzten Kopieren unverändert geblieben sind, nicht neuerlich kopiert. Bei einem kleinen Backup mag das egal sein, aber wenn Sie GByte-große Verzeichnisbäume synchronisieren, ist das der entscheidende Unterschied! user$
rsync verz1/*.jpg verz2/
Um ein ganzes Verzeichnis inklusive aller Unterverzeichnisse zu synchronisieren, verwenden Sie die Option -a, die als Kurzschreibweise für eine ganze Reihe anderer Optionen gilt (-rlptgoD). Die Option bewirkt eine rekursive Verarbeitung aller Unterverzeichnisse und stellt sicher, dass möglichst alle Dateiinformationen (Besitzer, Gruppenzugehörigkeit, Zeitpunkt der letzten Änderung etc.) erhalten bleiben. Falls verz2 noch nicht existiert, wird das Verzeichnis erzeugt. user$
rsync -a verz1/ verz2/
317
Kapitel 13
Dateiverwaltung
Standardmäßig kopiert bzw. aktualisiert rsync alle neuen bzw. geänderten Dateien, löscht aber nichts. Wenn Sie möchten, dass aus verz1 gelöschte Dateien oder Verzeichnisse auch in verz2 gelöscht werden, geben Sie zusätzlich die Option --delete an. Es sollte klar sein, dass diese Option gefährlich ist: Wenn Sie versehentlich ein Verzeichnis löschen, wird genau dieses Verzeichnis beim nächsten Backup-Vorgang auch auf der Backup-Festplatte gelöscht! Auf die Dauer führt bei Backups aber kein Weg an --delete vorbei. Ohne diese Option sammeln sich im Laufe der Zeit immer mehr nicht mehr relevante Daten an. Wenn Sie ein ausführliches Feedback erhalten möchten, welche Dateien verändert werden und wie viele Daten dazu in welcher Geschwindigkeit übertragen werden, geben Sie die zusätzliche Option -v an. rsync automatisieren
Anstatt das rsync-Kommando immer wieder einzutippen, verpacken Sie es am besten in ein kleines Shell-Script. Tippfehler sind dann ausgeschlossen. Die Grundlagen der Script-Programmierung sind ab Seite 453 zusammengefasst. #!/bin/sh mount /backup # NFS-Backup-Verzeichnis in das Dateisystem einbinden rsync -av --delete /verzeichnis1/* /backup/rechnerX/verzeichnis1/ rsync -av --delete /verzeichnis2/* /backup/rechnerX/verzeichnis2/ Noch komfortabler und sicherer wird das Backup, wenn Sie den Start durch einen Cron-Job automatisieren. Eine Einführung in cron finden Sie auf Seite 366.
Inkrementelle Backups (rdiff-backup) Eine interessante Alternative zu rsync ist das Kommando rdiff-backup. Der wichtigste Unterschied zu rsync besteht darin, dass rdiff-backup bei veränderten Dateien auch die alte Version im BackupVerzeichnis archiviert. Um Platz zu sparen, können statt einer Kopie der betreffenden Datei auch nur die Änderungen gespeichert werden (optional in komprimierter Form). rdiff-backup liefert also ohne viel Mühe ein inkrementelles Backup, aus dem Sie auch ältere Versionen einer Datei wiederherstellen können. Im Prinzip bietet rdiff-backup dieselben Funktionen wie die »Time Machine« von Apples Mac OS X – nur ohne spektakuläre Benutzeroberfläche. Backups durchführen
In der einfachsten Form wenden Sie rdiff-backup auf zwei lokale Verzeichnisse an. Wenn das Zielverzeichnis noch nicht existiert, wird es erzeugt. root#
rdiff-backup /home /home-backup
rdiff-backup erzeugt im Backup-Verzeichnis das Unterverzeichnis rdiff-backup-data. Darin speichert es diverse statistische Daten und Statusinformationen. Außerdem enthält das Verzeichnis increments alte Versionen von Dateien, die sich mittlerweile geändert haben oder die gelöscht wurden. Dabei werden nur die Änderungen gespeichert (.diff) und diese zusätzlich komprimiert. Außerdem wird in den Dateinamen das Datum der letzten Version integriert. Daraus ergeben sich dann unübersichtliche Dateinamen in der Form dateiname.2010-04-03T08:37:58+02:00.diff.gz.
318
Backup-Kommandos
Wenn Sie auf das Backup zurückgreifen möchten, enthält /home-backup den Zustand des /homeVerzeichnisses zum Zeitpunkt des letzten Backups (mit Ausnahme des zusätzlichen rdiff-backupdata-Verzeichnisses exakt so, als hätten Sie das Backup mit cp -a oder rsync -a --delete ausgeführt). Der Zugriff auf das letzte Backup ist also ganz einfach. Natürlich können Sie das Backup auch mit rdiff-backup wiederherstellen. Dazu verwenden Sie die Option -r und die Zeitangabe now. Das folgende Kommando stellt das Backup probeweise in einem temporären Verzeichnis wieder her. root#
Abschnitt 13.5
Zugriff auf Backups
rdiff-backup -r now /home-backhup /tmp/home-aktuell
Wenn Sie auf eine ältere Version einer Datei bzw. auf eine mittlerweile gelöschte Datei zugreifen möchten, wird es komplizierter: Sie müssen der Reihe nach alle .diff-Dateien anwenden (die neueste zuerst), bis Sie den gewünschten Zeitpunkt in der Vergangenheit wiederhergestellt haben. Natürlich müssen Sie das nicht manuell tun – rdiff-backup hilft Ihnen dabei. Das folgende Kommando stellt den Zustand des /home-Verzeichnisses so wieder her, wie er vor zehn Tagen war: root#
rdiff-backup -r 10D /home-backup/ /tmp/home-historisch
Den Backup-Zeitpunkt können Sie wahlweise absolut (z. B. 2010-12-31) oder relativ in Stunden (h), Tagen (D), Wochen (W) etc. angeben (siehe auch man rdiff-backup im Abschnitt TIME FORMATS). Beachten Sie, dass die Wiederherstellung alter Dateien mit zunehmender Versionsanzahl einen erheblichen CPU-Aufwand verursacht und entsprechend langsam ist! Oft wollen Sie nur eine einzelne Datei oder ein Unterverzeichnis in einer alten Version wiederherstellen. Dabei können Sie auch eine gar nicht mehr existierende Datei bzw. ein mittlerweile gelöschtes Verzeichnis angeben: root# root#
rdiff-backup -r 10D /home-backup/datei rdiff-backup -r 10D /home-backup/verz/
datei-historisch verz-historisch
Wenn Sie rdiff-backup regelmäßig ausführen, wächst das Backup-Verzeichnis im Laufe der Zeit immer stärker an. Um alle Backup-Dateien zu löschen, die älter als vier Monate sind, gehen Sie so vor: root#
Alte Backups löschen
rdiff-backup --remove-older-than 4M --force /home-backup/
Statt eines konkreten Zeitpunkts können Sie auch angeben, wie viele Backup-Versionen maximal archiviert bleiben sollen. Das folgende Kommando reduziert die Backup-Versionen auf drei (unabhängig von ihrem Alter): root#
rdiff-backup --remove-older-than 3B --force /home-backup/
In allen bisherigen Beispielen bin ich davon ausgegangen, dass sich das Quell- und das Zielverzeichnis im lokalen Dateisystem befinden. rdiff-backup kann aber über das Netzwerk auch auf externe Verzeichnisse zugreifen. Anders als bei rsync muss dazu rdiff-backup auch auf dem externen Rechner installiert sein! Die Kommunikation erfolgt über SSH. Eine spezielle Konfiguration von rdiff-backup ist nicht erforderlich.
NetzwerkBackup
Bei der Angabe externer Verzeichnisse gilt nahezu dieselbe Syntax wie bei rsync. Der einzige Unterschied besteht darin, dass nach dem Hostnamen zwei Doppelpunkte angegeben werden müssen:
319
Kapitel 13
Dateiverwaltung
root#
rdiff-backup
[email protected]::/home /home-backup
Noch mehr Details und Beispiele zum Umgang mit rdiff-backup bietet die folgende Webseite: http://www.nongnu.org/rdiff-backup/ Duplicity
Wenn Ihnen die Idee von rdiff-backup zusagt, Sie sich aber außerdem noch die Verschlüsselung des Backups sowie ein Upload via SSH oder FTP auf einen externen Server wünschen, lohnt sich vielleicht ein Blick auf das Python-Programm Duplicity. Es ist ähnlich wie rdiff-backup zu bedienen, erzeugt allerdings tar-Archive. Das Programm liegt zurzeit als Betaversion vor und wird aktiv entwickelt: http://duplicity.nongnu.org/
13.6 Backup-Benutzeroberflächen Apple hat mit seiner Time Machine bewiesen, dass selbst ein Backup-Programm Begeisterung hervorrufen kann. Linux kann in dieser Hinsicht leider nicht mithalten: Das Angebot an BackupKommandos und -Tools ist zwar unüberschaubar, aber auf das geniale, einfach zu nutzende Backup-Werkzeug warten Desktop-Anwender noch immer. Gnome und KDE enthalten standardmäßig überhaupt kein Backup-Programm. Das ist insofern überraschend, als es durchaus interessante und einfach zu bedienende Programme gibt. In diesem Abschnitt stelle ich Ihnen die folgenden vier Programme kurz vor: Grsync PyBackPack Déjà Dup Back in Time
http://www.opbyte.it/grsync/ http://andrewprice.me.uk/projects/pybackpack/ https://launchpad.net/deja-dup http://backintime.le-web.org/
Alle vier Programme werden zurzeit aktiv weiterentwickelt. Das kann sich aber rasch ändern: Gerade unter den Benutzeroberflächen zur Durchführung von Backups gibt es viele verwaiste Projekte, die seit Jahren nicht mehr aktualisiert wurden. Vermeiden Sie Insellösungen, und wechseln Sie bei Bedarf rechtzeitig Ihr Backup-Werkzeug! Grsync
Eigentlich ist es übertrieben, Grsync als Backup-Werkzeug zu bezeichnen. In Wirklichkeit handelt es sich um eine simple Benutzeroberfläche zum Kommando rsync. Nach der Installation verbinden Sie eine externe Festplatte oder einen USB-Stick mit Ihrem Computer, starten Grsync und kopieren den Inhalt Ihres Heimatverzeichnisses in ein Verzeichnis der externen Festplatte. Beim ersten Mal müssen dabei alle Dateien kopiert werden, in der Folge nur noch geänderte oder neue Dateien. Die zahlreichen Optionen können Sie im Wesentlichen so lassen, wie sie voreingestellt sind. Zwei Optionen bedürfen aber einer genaueren Erläuterung: » IM Z IELVERZEICHNIS LÖSCHEN gibt an, ob Grsync auch Löschvorgänge synchronisieren soll. Wenn Sie nach dem ersten Backup im Ihrem Heimatverzeichnis eine Datei löschen, wird diese Datei beim nächsten Mal auch im Backup-Verzeichnis gelöscht. Wenn Ihr Backup vor versehentlichen Löschvorgängen geschützt sein soll, dürfen Sie diese Option nicht aktivieren. (Das ist auch die
320
Backup-Benutzeroberflächen
Abschnitt 13.6
Grundeinstellung.) Wenn es Ihnen hingegen wichtig ist, dass das Backup exakt den gleichen Inhalt hat wie das zu sichernde Verzeichnis, sollten Sie die Option aktivieren. » DATEISYSTEM NICHT VERLASSEN bedeutet, dass Grsync nur solche Dateien synchronisiert, die sich im Dateisystem des Quellverzeichnisses befinden. Zumeist ist es zweckmäßig, diese Option zu aktivieren. Die größten Vorteile von Grsync sind die einfache Bedienung und der Umstand, dass Ihre Dateien 1:1 in ein zweites Verzeichnis kopiert werden. Sollten Sie je auf Ihr Backup zurückgreifen müssen, brauchen Sie dazu keine speziellen Werkzeuge. PyBackPack ist dazu gedacht, das Heimatverzeichnis manuell auf eine CD oder DVD, in ein beliebiges Verzeichnis (z. B. auf einer externen Festplatte) oder auf einen via SSH erreichbaren Server zu sichern. Die Benutzeroberfläche besteht aus drei Dialogblättern. Wenn Sie einfach alle Dateien aus Ihrem Heimatverzeichnis auf eine CD oder DVD sichern möchten klicken Sie im Dialogblatt P ERSÖN LICHER O RDNER auf LOS .
PyBackPack
Wenn Sie nur bestimmte Verzeichnisse sichern möchten oder einen anderen Backup-Ort wünschen, wechseln Sie in das Dialogblatt SICHERUNG. Mit dem Listeneintrag N EW BACKUP SET erstellen Sie ein neues Backup-Set. Dabei geben Sie an, welche Verzeichnisse Sie wohin sichern möchten, und welche Verzeichnisse Sie vom Backup ausnehmen möchten. S ICHERUNG startet das Backup. Falls PyBackPack einzelne Dateien aufgrund fehlender Zugriffsrechte nicht lesen kann, zeigt es eine entsprechende Warnung an, setzt das Backup aber für alle anderen Dateien fort. Wenn Sie Verzeichnisse speichern möchten, auf die Sie als gewöhnlicher Benutzer keinen Zugriff haben, müssen Sie das Programm mit (Alt)+(F2) gksu[do] pybackpack starten.
Abbildung 13.2: Backups mit PyBackPack
Hinter den Kulissen greift PyBackPack auf das vorhin schon beschriebene Kommando rdiff-backup zurück. PyBackPack bietet allerdings keine Möglichkeit, ältere Backups zu löschen. Deswegen steigt der Platzbedarf im Backup-Verzeichnis mit jedem Backup weiter an. Die einfachste Lösung besteht darin, hin und wieder ein neues Backup-Verzeichnis einzurichten und das alte Verzeichnis nach einer Weile zu löschen. Déjà Dup ist wie PyBackPack dazu konzipiert, das Heimatverzeichnis möglichst unkompliziert in einem lokalen oder via SSH erreichbaren Backup-Verzeichnis zu sichern. Als Backup-Ort ist auch
Déjà Dup
321
Kapitel 13
Dateiverwaltung
der Amazon-S3-Service geeignet. Déjà Dup ist das Standard-Backup-Programm von Fedora und kann mit A NWENDUNGEN jSYSTEMWERKZEUGEjDÉJÀ DUP gestartet werden. Mit BEARBEITEN jEINSTELLUNGEN geben Sie an, wo das Backup gespeichert werden soll (O RT DER DATENSICHERUNG), welche Verzeichnisse in das Backup einbezogen bzw. vom Backup ausgeschlossen werden sollen und über welchen Zeitraum die Backups archiviert werden sollen (z. B. FÜR IMMER oder MINDESTENS ZWEI MONATE. Anschließend starten Sie das Backup mit dem Button DATENSICHERUNG .
Abbildung 13.3: Backups mit Déjà Dup
Wenn Sie die Option REGELMÄSSIGE DATENSICHERUNG ERSTELLEN aktivieren, erzeugt Déjà Dup wahlweise täglich, wöchentlich, zweiwöchentlich oder monatlich ein Backup. Das Backup wird allerdings nur erstellt, wenn Sie angemeldet sind. Der Start erfolgt durch ein Hintergrundprogramm, das beim Login gestartet wird. Im Vergleich zu anderen Backup-Programmen dauert das erste mit Déjà Dup durchgeführte Backup unverhältnismäßig lange. Das liegt daran, dass das Backup komprimiert und standardmäßig auch verschlüsselt wird. Wenn Sie keine Verschlüsselung brauchen, sollten Sie die entsprechende Option unbedingt deaktivieren! Bei weiteren Backups werden nur noch die Änderungen gespeichert, was viel Zeit spart. Mit dem Button WIEDERHERSTELLUNG stellen Sie ein vollständiges Backup wieder her. Dabei können Sie die gewünschte Backup-Version auswählen und angeben, wohin die Backup-Dateien kopiert werden sollen. Wenn Sie nur eine einzelne Datei oder ein Verzeichnis wiederherstellen möchten, klicken Sie die Datei bzw. das Verzeichnis in Nautilus an und führen das Kontextmenükommando A LTE VERSION WIEDERHERSTELLEN aus.
322
Backup-Benutzeroberflächen
Abschnitt 13.6
Déjà Dup basiert auf dem in Python entwickelten Backup-Script Duplicity. Das hat den Nachteil, dass die Backup-Dateien in einem sehr speziellen Format vorliegen, sodass die Daten nur mit Déjà Dup selbst oder mit Duplicity wiederhergestellt werden können.
Back In Time ist ein Backup-Programm für persönliche Daten, wobei es sowohl für KDE als auch für Gnome eine eigene Benutzeroberfläche gibt. Die meisten aktuellen Distributionen stellen fertige Back-in-Time-Pakete zur Verfügung. Nach deren Installation führen Sie zur erstmaligen Konfiguration (Alt)+(F2) backintime-kde bzw. backintime-gnome aus.
Back In Time
Abbildung 13.4: Konfiguration von Back In Time
Die Konfiguration erfolgt in sechs Dialogblättern: » KONFIGURATION : Hier geben Sie an, in welchem Verzeichnis die Backups gespeichert werden sollen (idealerweise wählen Sie ein Verzeichnis außerhalb Ihres Heimatverzeichnisses). Es kann sich dabei auch um einen externen Datenträger handeln, wenn dieser ständig mit Ihrem Rechner verbunden ist. Sie müssen für das Backup-Verzeichnis Schreibrechte haben. Außerdem stellen Sie in diesem Dialogblatt ein, wie oft die Backups durchgeführt werden sollen. (Sinnvolle Einstellungen sind in der Regel stündlich oder täglich. Sie können auch den Listeneintrag DEAKTIVIERT angeben – dann müssen Sie jedes Backup manuell starten. Das ist z. B. dann sinnvoll, wenn Sie eine externe Festplatte für Ihre Backups verwenden, die Festplatte aber nicht immer an den Rechner angeschlossen ist.) » EINBEZIEHEN : Hier wählen Sie aus, welche Verzeichnisse gesichert werden sollen. Üblicherweise werden Sie hier einfach Ihr Heimatverzeichnis angeben. Sie können aber auch eine differenzierte Auswahl treffen und beispielsweise nur Ihre Verzeichnisse Dokumente und Bilder sichern. » A USSCHLIESSEN : Hier geben Sie an, welche (Unter-)Verzeichnisse und Dateimuster vom Backup ausgenommen sind (z. B. Downloads). Standardmäßig sieht Back In Time vor, dass versteckte Dateien und Verzeichnisse nicht gesichert werden. Das ist eine gefährliche Voreinstellung, weil sich gerade in versteckten Verzeichnissen oft wichtige Anwendungsdaten befinden (in ~/.thunderbird z. B. Ihre E-Mails, wenn Sie Thunderbird als E-Mail-Client verwenden). » A UTOMATISCH ENTFERNEN : Damit das Backup-Volumen nicht grenzenlos wächst, können Sie hier angeben, welche Backup-Daten automatisch gelöscht werden sollen. Zumeist ist SMART REMOVE eine sinnvolle Option: Damit werden Backups von gestern und heute nie angerührt. Ältere Backups werden größtenteil gelöscht, wobei aber sichergestellt wird, dass es je ein Backup
323
Kapitel 13
Dateiverwaltung
für die letzten zwei Wochen, für jeden Monat des laufenden Jahres sowie für jedes vergangene Jahr gibt. » EXTRAS und EXPERTENOPTIONEN : Hier finden Sie einige Optionen für fortgeschrittene Benutzer, die in der Regel nicht verändert werden müssen. Nach Abschluss der Konfiguration erscheint die Benutzeroberfläche von Back In Time. Hier können Sie jederzeit manuell ein Backup starten (also außerhalb der eingestellten Backup-Periode) sowie vorhandenen Backups Namen geben. Die wichtigste Funktion der Benutzeroberfläche besteht aber darin, dass Sie in einem einfachen Verzeichnis-Browser Zugriff auf alle gesicherten Dateien zu jedem gewünschten Zeitpunkt haben. Mit dem Button WIEDERHERSTELLEN können Sie eine irrtümlich gelöschte oder veränderte Datei wiederherstellen. KOPIEREN kopiert die ausgewählten Dateien. Sie können die Dateien nun in einem Datei-Manager an einer beliebigen Stelle einfügen.
Abbildung 13.5: Zugriff auf gesicherte Dateien mit Back In Time
Standardmäßig kann Back In Time nur persönliche Dateien sichern. Wenn Sie Back In Time zur Sicherung von Systemdateien einsetzen möchten, müssen Sie es im root-Modus starten. Sowohl KDE als auch Gnome sehen entsprechende Starteinträge vor. Hinter den Kulissen kümmert sich der Systemdienst Cron um die automatische Durchführung der Backups durch das Kommando backintime. Dabei wird die Konfigurationsdatei ~/.config/backintime/config ausgewertet. Die Benutzeroberfläche von Back In Time muss für die automatischen Backups nicht laufen! Die Cron-Steuerung erfolgt durch die Datei /var/spool/cron/ tabs/loginname. Im Backup-Verzeichnis werden alle Dateien unkomprimiert gespeichert. (Es gibt leider keine Komprimieroption.) Dateien, die sich von einem Backup zum nächsten nicht ändern, werden nur durch sogenannte Hardlinks miteinander verbunden, was eine Menge Platz auf der Festplatte spart. Das funktioniert allerdings nur auf Datenträgern, die derartige Links unterstützen (also nicht auf FATformatierten Festplatten oder Memory-Sticks!).
13.7 Backups auf NAS-Geräten Wenn Sie nur einen einzelnen Computer besitzen, ist das ideale Backup-Medium in der Regel eine externe Festplatte oder ein USB-Stick. Für kleine Datenmengen können Sie selbst ein Backup auf
324
Backups auf NAS-Geräten
Abschnitt 13.7
einem Online-Speicher wie SpiderOak oder Ubuntu One in Erwägung ziehen (siehe Seite 1099 bzw. 1125). Sobald in einem Haushalt oder in einer Firma mehrere Rechner im Einsatz sind, entsteht der Wunsch nach einem zentralen Platz für Backups und nach dem Austausch gemeinsamer Daten. Ideal geeignet für diesen Zweck sind NAS-Geräte. Die Abkürzung NAS steht für Network Attached Storage und bezeichnet Datenspeicher, die über das Netzwerk zugänglich sind. Während zu Hause eine ebenso preisgünstige wie stromsparende NAS-Festplatte ausreicht (also eine Festplatte mit einem kleinen Datei-Server und einem Netzwerkanschluss), kommen in Unternehmen größere und vor allem schnellere NAS-Systeme mit mehreren Festplatten in RAID-Konfiguration zum Einsatz. Hinter den Kulissen sind sich kleine und große NAS-Systeme aber erstaunlich ähnlich: Auf fast allen Geräten laufen ein abgespecktes Linux-System, der Datei-Server Samba und ein einfacher Webserver, der eine mehr oder weniger komfortable Webschnittstelle zur Konfiguration des Geräts ermöglicht. Je nach Modell laufen außerdem ein NFS-Server, ein FTP-Server, ein AFP-Server (für Apple), ein SSH-Server (zur Konfiguration via SSH bzw. zur Datenübertragung mit rsync), Multimedia-Streaming-Clients, Download-Werkzeuge etc. Große Unterschiede gibt es allerdings bei der Leistungsfähigkeit: Bei NAS-Festplatten ist der limitierende Geschwindigkeitsfaktor oft die CPU! Statt der in PCs üblichen Intel- und AMD-Prozessoren laufen oft wesentlich langsamere (und energiesparendere) CPUs anderer Hersteller. Auch wenn NAS-Systeme intern in aller Regel Linux-Rechner sind – nach außen verhalten sie sich dank Samba wie ein Windows-Rechner, der Netzwerkverzeichnisse freigibt. Und genau hier liegt das Problem: Linux-Backup-Werkzeuge setzen in der Regel voraus, dass das Ziel des Backups ein Linux- bzw. Unix-kompatibles Dateisystem ist. In einem Windows-Netzwerkverzeichnis ist es aber unmöglich, die Unix-typischen Zugriffsrechte zu speichern. Außerdem können Linux-BackupWerkzeuge in der Regel nicht direkt auf ein Windows-Netzwerkverzeichnis zugreifen. (Auf andere NAS-Konfigurationsvarianten, z. B. mit NFS oder SSH plus rsync, gehe ich hier nicht ein.)
Backup in WindowsNetzwerkverzeichnissen
Es gibt verschiedene Wege, diese Probleme zu umgehen: » Damit Backup-Werkzeuge in ein Windows-Netzwerkverzeichnis schreiben können, muss dieses vorher in das Dateisystem des Ubuntu-Rechners eingebunden werden. Das kann wahlweise über einen Gnome-Dialog oder durch die Veränderung der Systemdatei /etc/fstab erfolgen. (KDE kann ebenfalls auf Windows-Netzwerkverzeichnisse zugreifen, integriert diese aber nicht in den Verzeichnisbaum und ist insofern keine Hilfe für ein Backup-Programm.) » Um zu vermeiden, dass Linux-Zugriffsrechte beim Backup verloren gehen, können die zu sichernden Dateien verpackt werden, z. B. in ein komprimiertes tar-Archiv. Die auf den vorangegangenen Seiten vorgestellten Programme PyBackPack und Déjà Dup gehen auf diese Weise vor. » Sie können auch versuchen, die zu sichernden Dateien direkt im Windows-Netzwerkverzeichnis zu speichern, z. B. mit dem Kommando rsync oder dessen Benutzeroberfläche Grsync. Mit etwas Glück bleiben dabei sogar die Zugriffsbits der Dateien erhalten (also z. B. das Execute-Bit für ausführbare Programme oder Scripts). Das ist dann der Fall, wenn das Netzwerkverzeichnis nicht von einem Windows-Rechner, sondern von einem einigermaßen aktuellen Samba-Server zur Verfügung gestellt wird, der die POSIX-Erweiterungen unterstützt und via CIFS (Common
325
Kapitel 13
Dateiverwaltung
Internet File System) weitergibt. Nach meinen Erfahrungen funktioniert das aber leider häufig nicht, weil auf vielen NAS-Geräten uralte Samba-Versionen laufen. mount bzw. /etc/fstab
Der meiner Ansicht nach zuverlässigste Weg zu einem Backup auf einem NAS-Gerät führt über ein mount-Kommando bzw. einen Eintrag in /etc/fstab. Das Ziel besteht darin, ein Verzeichnis des NAS-Geräts in den Verzeichnisbaum des lokalen Rechners einzubinden. Die Grundlagen für ein derartiges mount-Kommando bzw. einen entsprechenden Eintrag in die Datei /etc/fstab werden ausführlich in Kapitel 24 behandelt. Die folgenden Kommandos sind lediglich eine Zusammenfassung der Abschnitte 24.5 und 24.13. Bei Debian und Ubuntu müssen Sie das Paket smbfs installieren, bevor Sie Windows-Netzwerkverzeichnisse direkt in das Dateisystem einbinden können: root#
apt-get install smbfs
(nur bei Debian und Ubuntu)
Weiters müssen Sie ein Verzeichnis erstellen, über das Sie in Zukunft auf die Windows-Freigabe zugreifen. Ich verwende hier /media/nas. root
mkdir /media/nas
Anschließend fügen Sie am Ende von /etc/fstab den folgenden Text hinzu. Alle Informationen müssen in einer Zeile angegeben werden, die Trennung über zwei Zeilen erfolgt hier nur aus Platzgründen! Die Zeile muss mit (¢) abgeschlossen werden. Achten Sie darauf, dass Sie die Optionen in der vierten Spalte (ab username=...) nur durch Kommata, nicht durch Leerzeichen trennen. # am Ende von /etc/fstab einfügen ... //hostname/freigabe /media/nas cifs username=name,password=geheim,uid=1000,gid=1000,iocharset=utf8 0 0 Dabei müssen Sie hostname durch den Netzwerknamen oder die IP-Adresse Ihres NAS-Geräts ersetzen, freigabe durch den Namen des Windows-Netzwerkverzeichnisses, name durch den LoginNamen und geheim durch das dazugehörende Passwort. Bei Netzwerkverzeichnissen, die nicht durch ein Passwort abgesichert sind, können Sie auf die Parameter username und password verzichten. Mit den Parametern uid und gid geben Sie Ihre persönlichen Benutzer- und Gruppen-Identifikationsnummern an, die Sie mit dem Kommando id schnell ermitteln können. Die direkte Angabe eines Passworts in /etc/fstab ist sicherheitstechnisch nicht optimal. Auf Seite 664 erfahren Sie, wie Sie das durch eine externe Datei vermeiden können. In seltenen Fällen müssen Sie nach iocharset=utf8 noch die Option nodfs angeben. Das ist dann erforderlich, wenn auf dem NAS-Gerät eine alte Samba-Version läuft, die einen bekannten Fehler in der DFS-Implementierung enthält. Das ist z. B. bei einigen populären Geräten von Western Digital der Fall (My Book World). Nachdem Sie /etc/fstab modifiziert haben, können Sie das Netzwerkverzeichnis in das Dateisystem einbinden. (Ab dem nächsten Rechnerstart geschieht das automatisch, sobald eine Netzwerkverbindung besteht.) root#
326
/media/nas
CDs und DVDs brennen
Abschnitt 13.8
Wenn dabei keine Fehler auftreten, erscheint auf dem Desktop ein Icon für das Netzwerkverzeichnis. Sie können von nun an von allen Linux-Programmen auf das Netzwerkverzeichnis des NAS-Geräts über den Pfad /media/nas zugreifen und dort Dateien speichern bzw. Backups durchführen. Anstatt manuell mount auszuführen oder /etc/fstab zu ändern, können Sie das Netzwerkverzeichnis auch unter Gnome in das lokale Dateisystem einbinden. Dazu führen Sie O RTEjVERBINDUNG ZUM SERVER aus, wählen den Diensttyp WINDOWS-FREIGABE und geben dann den Hostnamen des Servers, den Namen der Freigabe, optional ein darin befindliches Verzeichnis, den Login- und den Domainnamen an.
Windows-Netzwerkverzeichnis mit Gnome in das Dateisystem einbinden
Außerdem sollten Sie die Option LESEZEICHEN HINZUFÜGEN aktivieren, damit Sie diese Angaben in Zukunft nicht jedes Mal wiederholen müssen, wenn Sie ein Backup durchführen möchten. Das Lesezeichen wird in Zukunft im O RTE-Menü sowie in Gnome-Dateiauswahldialogen angezeigt. Sobald Sie VERBINDEN anklicken, werden Sie nach dem Passwort für das Windows-Netzwerkverzeichnis gefragt. Gnome kann dieses Passwort bleibend speichern, was die Bequemlichkeit wiederholter Backups steigert. Hinter den Kulissen verwendet Gnome das GVFS (Gnome Virtual File System) für den Zugriff auf Netzwerkverzeichnisse. In Nautilus sind die eingebundenen Verzeichnisse leicht zu finden und zu nutzen, das gilt aber leider nicht für alle Backup-Programme: Während PyBackPack und Déjà Dup die Netzwerkverzeichnisse direkt im Dateiauswahldialog anzeigen, müssen Sie das Netzwerkverzeichnis bei Grsync explizit als Unterverzeichnis von .gvfs öffnen. .gvfs ist ein unsichtbares Verzeichnis, das Gnome verwendet, um Netzwerkverzeichnisse in das Dateisystem zu integrieren. Bei der Auswahl des Zielverzeichnisses müssen Sie im Dateiauswahldialog mit der rechten Maustaste V ERBORGENE DATEIEN ANZEIGEN ausführen, bevor Sie dieses Verzeichnis auswählen können. Anschließend finden Sie darin Unterverzeichnisse für alle momentan eingebundenen Netzwerkverzeichnisse.
13.8 CDs und DVDs brennen Die wichtigsten Benutzeroberflächen zum Brennen von CDs und DVDs habe ich Ihnen in den Kapiteln 4 und 5 zu Gnome und KDE bereits vorgestellt: Brasero und K3B. Solange Sie nur gelegentlich eine CD oder DVD brennen, bieten diese Programme ausreichend Funktionen und sind zudem einfach zu bedienen. Wer noch mehr Komfort wünscht, kann einen Blick auf das kommerzielle Programm Nero werfen, das mittlerweile auch für Linux zur Verfügung steht. Wer auf der anderen Seite eine Benutzeroberfläche für die Textkonsole sucht, wird beim Kommando burncdda fündig. Dieser Abschnitt stellt hingegen Kommandos vor, die hinter den Kulissen dieser Benutzeroberflächen zum Einsatz kommen. Das ist beispielsweise dann interessant, wenn Sie durch ein Script das Erzeugen von Backup-CDs automatisieren möchten. Wie so oft verhilft die Kenntnis der zugrunde liegenden Kommandos auch zu einem besseren Verständnis, wie Linux funktioniert. Bevor Sie die im Folgenden beschriebenen Kommandos einsetzen können, müssen Sie wissen, unter welchem Device-Namen Sie Ihr Laufwerk ansprechen. In der Regel lautet der richtige Device-Name /dev/scd0, /dev/scd1 etc. oder /dev/sr0, /dev/sr1 etc. Wenn weder der Rechner noch die installier-
Device-Namen
327
Kapitel 13
Dateiverwaltung
te Linux-Distribution topaktuell sind, lautet der richtige Device-Name dagegen /dev/hda, /dev/hdb etc. Einen Überblick über die Device-Nomenklatur finden Sie auf Seite 656.
Hinweis
Manche Kommandos erwarten die Device-Angabe in der Form eines Zahlentripels (z. B. dev=3,0,0), das aus der SCSI-Bus-Nummer (meistens 0), der SCSI-ID des Gerätes und schließlich der Logical Unit Number besteht (kurz LUN, ebenfalls meist 0). Die richtige Zahlenkombination für Ihr Laufwerk ermitteln Sie am einfachsten mit readcd -scanbus. Egal, ob Sie CDs oder DVDs brennen: Stellen Sie sicher, dass Ihre Linux-Distribution den Datenträger nicht in den Verzeichnisbaum einbindet oder sonstwie darauf zugreift, und lösen Sie die CD/DVD gegebenfalls aus dem Verzeichnisbaum! Die Verwendung externer Laufwerke (USB, Firewire) führt nach meinen Erfahrungen wesentlich häufiger zu Problemen als der Einsatz interner Laufwerke. Abhilfe: Reduzieren Sie die Brenngeschwindigkeit!
ISO-Images erzeugen und testen (genisoimage) Bevor Sie eine Daten-CD oder eine DVD brennen können, brauchen Sie ein sogenanntes ISO-Image. Diese Datei enthält die zu brennenden Daten im internen Format des optischen Datenträgers. In der Regel werden Sie zum Erzeugen von ISO-Dateien genisoimage (ehemals mkisofs) einsetzen. Nur wenn es darum geht, vorhandene Datenträger zu kopieren, sind die am Ende dieses Abschnitts kurz vorgestellten Kommandos dd oder readcd eine interessante Alternative. genisoimage
Mit dem Kommando genisoimage schreiben Sie alle Dateien eines oder mehrerer Verzeichnisse in eine ISO-Datei. Eine genaue Syntaxbeschreibung des Kommandos finden Sie auf Seite 1158. Das für CDs vorgesehene Format ISO-9660 verwendet einen eigenen, sehr limitierten Zeichensatz, der nur wenige Nicht-ASCII-Zeichen zulässt. Um diesen Mangel zu umgehen, gibt es mehrere Erweiterungen zum ISO-Standard, von denen die folgenden beiden weit verbreitet sind und von genisoimage unterstützt werden: » Die für Unix/Linux-Systeme übliche Rockridge-Extension erlaubt die Speicherung langer Dateinamen in Form beliebiger, nullterminierter Zeichenketten. Außerdem erlaubt diese Erweiterung die Speicherung von Zugriffsrechten (UID, GID, Zugriffsbits). Allerdings enthalten Rockridge-CDs keine Information darüber, in welchem Zeichensatz das ISOImage erstellt wurde. Das kann zu Problemen führen, wenn der Datenträger später auf einem Rechner mit einem anderen Zeichensatz verwendet wird. Am einfachsten ist das anhand eines Beispiels zu verstehen: Vor ein paar Jahren war unter Linux noch der Latin-1-Zeichensatz üblich. Eine zu diesem Zeitpunkt mit der Rockridge-Extension erzeugte Daten-CD verwendet daher ebenfalls diesen Zeichensatz. Wenn Sie die CD auf einer heute aktuellen Distribution mit aktivem Unicode-Zeichensatz (UTF-8) nutzen, werden Nicht-ASCII-Zeichen in den Dateinamen falsch interpretiert. Wenn bereits beim Vorbereiten eines ISO-Images klar ist, dass die CD später auf einem Rechner mit einem anderen Zeichensatz genutzt werden soll, kann der gewünschte Zielzeichensatz durch die Option -output-charset eingestellt werden. » Die für Windows-Systeme übliche Joliet-Extension erlaubt ebenfalls die Speicherung langer Dateinamen, wobei als Zeichensatz Unicode (UTF-16) zum Einsatz kommt.
328
CDs und DVDs brennen
Das folgende Kommando schreibt alle Dateien innerhalb des /master-Verzeichnisses in die Datei /tmp/master.iso. Das Verzeichnis master ist selbst kein Verzeichnis im ISO-Image. Das ISO-Image nutzt sowohl die Rockridge-Extension (Option -r) als auch die Joliet-Extension (Option -J) und bekommt den Namen Linux (Option -V). Wenn Sie aus dem ISO-Image eine CD brennen, gilt diese Zeichenkette als CD-Name. user$
Abschnitt 13.8
Beispiele
genisoimage -o /tmp/master.iso -r -J -V Linux /master
Das zweite Beispiel ist dem ersten ähnlich, allerdings wird diesmal eine bootfähige CD erstellt: user$
genisoimage -o /tmp/master.iso -r -J /master -b images/boot.img -c boot.catalog
Im dritten Beispiel ist das Verzeichnis master nun selbst ein Verzeichnis im ISO-Image (Option -graft-points): user$
genisoimage -o /tmp/master.iso -r -graft-points /master=/master
user$ chown -R root.root /master user$ chmod -R a+r /master Wenn Sie eine Daten-CD oder -DVD (keine Audio-CD!) unverändert kopieren möchten, reicht ein einziges dd-Kommando aus, um die erforderliche ISO-Datei zu erzeugen. Statt /dev/cdrom müssen Sie den Device-Namen Ihres CD- oder DVD-Laufwerks angeben, der je nach Distribution variiert. user$
dd
dd if=/dev/cdrom of=/usr/local/iso.img bs=2048
Eine Variante zu dd ist das Kommando readcd bzw. dessen Variante readom. Es verwendet SCSIKommandos zum Auslesen der CD und sollte zum gleichen Ergebnis kommen wie dd. Bei meinen Tests auf zwei unterschiedlichen Rechnern lieferte readcd allerdings zahllose Fehlermeldungen. Anders als bei dd müssen Sie Ihr CD- oder DVD-Laufwerk durch ein Zahlentripel angeben. Die richtige Zahlenkombination für Ihr Laufwerk ermitteln Sie mit readcd -scanbus. user$
Tipp
Falls Sie die Option -r nicht verwenden, sollten Sie darauf achten, dass alle Dateien im masterVerzeichnis root gehören und von allen lesbar sind!
readcd
readcd dev=0,0,0 f=iso.img
Der Vorteil von readcd besteht darin, dass es auch eine TOC-Datei erstellen kann (bei Audio-CDs mit der Option -clone) und dass das Programm je nach Optionen auf unterschiedliche Weise mit Lesefehlern umgehen kann (Optionen -noerror und -noclone, siehe man cdread). Mit -w kann readcd auch zum Schreiben von CDs verwendet werden. Mit dem sogenannten Loopback-Device des Linux-Kernels können Sie eine Datei als Dateisystem betrachten und mit mount in den Verzeichnisbaum einbinden. Die Loopback-Funktion ist im Kernelmodul loop versteckt, das bei allen gängigen Distributionen zur Verfügung steht. Falls das Modul nicht automatisch geladen wird, müssen Sie eventuell mit modprobe nachhelfen (siehe Seite 767). Das folgende Kommando bindet das in der Datei master.iso enthaltene ISO-Dateisystem im ReadOnly-Modus in den Verzeichnisbaum ein: root# root#
ISO-Image testen
mkdir /iso-test mount -t iso9660 -o loop,ro /tmp/master.iso /iso-test/
Über das Verzeichnis iso-test können Sie jetzt den Inhalt der zukünftigen CD-ROM überprüfen.
329
Kapitel 13
Dateiverwaltung
CDs brennen (wodim, cdrdao) cdrecord und wodim
Mehr als ein Jahrzehnt lang war cdrecord das Standardprogramm zum Schreiben von CDs. Seit Sommer 2006 verwendet der cdrecord-Entwickler Jörg Schilling allerdings für einige Teile des cdrecord-Pakets die von Sun entworfene Lizenz CDDL. Andere Entwickler betrachten diese Lizenz als inkompatibel zur GPL. Aus diesem Grund kam es zu einem sogenannten »Fork«, also zu einer Spaltung des Projekts: Die letzte GPL-konforme cdrecord-Version diente als Basis für das neue Kommando wodim (Write Data to Optical Disk Media), das Teil des neuen cdrkit-Projekts ist. Parallel zu cdrecord gibt es auch Forks für zwei weitere Kommandos: aus mkisofs wurde genisoimage, und aus cdda2wav wurde icedax. Alle aktuellen Distributionen verwenden nun wodim, genisoimage und icedax. Aus Kompatibilitätsgründen kann cdrecord aber vielfach weiterhin über den bisher üblichen Namen cdrecord aufgerufen werden. /usr/bin/cdrecord ist aber nur ein Link auf wodim. Einen Überblick über die wichtigsten Optionen von wodim finden Sie auf Seite 1235. Bevor Sie eine Daten-CD brennen können, brauchen Sie ein ISO-Image, das Sie normalerweise mit genisoimage erzeugen (siehe den vorigen Abschnitt). Mit den beiden folgenden Kommandos wird zuerst das Brennen einer Daten-CD simuliert (-dummy) und dann tatsächlich durchgeführt: root# root#
wodim -dummy -v speed=16 dev=/dev/scd0 iso.img wodim -v speed=16 dev=/dev/scd0 iso.img
Auf schnellen Rechnern können Sie genisoimage und wodim mit einer Pipe verbinden. Dadurch sparen Sie den Platz für das ISO-Image: root#
genisoimage -r /master | wodim -v speed=16 dev=/dev/scd0 -
Das folgende Kommando erzeugt eine Audio-CD. Die Ausgangsdaten liegen als *.wav-Dateien vor. Die Dateien werden in alphabetischer Reihenfolge verarbeitet. Wenn Sie eine andere Reihenfolge wünschen, müssen Sie die Dateien der Reihe nach angeben. root# cdrdao
wodim -v speed=16 dev=0,5,0 -pad -dao -audio *.wav
Das Kommando cdrdao ist eine Alternative zu wodim. cdrdao ist zwar nicht so vielseitig, bietet dafür aber wesentlich mehr Optionen zum Lesen und Schreiben von Audio-CDs. Seinen Namen verdankt cdrdao dem Schreibmodus Disk at Once (kurz DAO). In der Praxis besteht die gebräuchlichste Anwendung von cdrdao darin, Audio-CDs zu kopieren. Das erste cdrdao-Kommando erzeugt die Dateien data.bin (Inhalt der CD) und data.toc (Inhaltsverzeichnis). Das zweite Kommando schreibt diese Daten auf eine CD: user$ user$
Daten-CD verifizieren
330
cdrdao read-cd --device /dev/sg0 data.toc cdrdao write --device /dev/sg0 --buffers 64 data.toc
Das folgende Kommando vergleicht den Inhalt der CD-ROM mit dem des master-Verzeichnisses Datei für Datei und Byte für Byte. Sämtliche Unterschiede werden in die Datei diff.log im Heimatverzeichnis geschrieben. Statt /media/cdrom müssen Sie das Verzeichnis angeben, an dem die CD in Ihren Verzeichnisbaum eingebunden ist.
CDs und DVDs brennen
root#
diff -qrd /master /media/cdrom/
Abschnitt 13.8
>& ~/diff.log
In einem zweiten Fenster bzw. in einer zweiten Konsole können Sie mit tail das Entstehen von diff.log verfolgen. Dabei sind Fehlermeldungen aufgrund von symbolischen Links zu erwarten, die auf der CD nicht mehr an den richtigen Ort verweisen. Ein echtes Warnsignal ist es hingegen, wenn einzelne Dateien gar nicht gelesen werden können (I/O-Error) oder wenn der Inhalt von Dateien abweicht (und Sie sicher sind, dass sich die Datei seither nicht verändert hat). root#
tail -f ~/diff.log
Wenn Sie einfach nur testen möchten, ob alle Datenblöcke der CD gelesen werden können (ganz egal, welchen Inhalt sie haben), führen Sie das folgende Kommando aus. Dieser Test ist beispielsweise dann sinnvoll, wenn Sie eine CD bekommen haben, von der Sie vermuten, dass sie defekt ist (etwa eine Linux-Installations-CD). root#
dd if=/dev/cdrom of=/dev/null
DVDs brennen (dvd+rw-tools) Auch beim Brennen von DVDs haben Sie die Wahl zwischen mehreren Kommandos bzw. Paketen: » Am populärsten sind die Kommandos der dvd+rw-tools, die ich Ihnen in diesem Abschnitt kurz vorstelle. » Sollten Sie damit Probleme haben, können Sie Ihr Glück auch mit wodim versuchen. Das Kommando eignet sich zum Schreiben einfacher DVD-Rs und DVD+Rs, wobei sich die Syntax nicht vom Schreiben von CDs unterscheidet. wodim bietet allerdings weniger Optionen beim Beschreiben von DVD+RW- bzw. DVD-RW-Medien. Alle im weiteren Verlauf dieses Abschnitts vorgestellten Kommandos sind Teil des dvd+rw-toolsPakets. Ursprünglich unterstützte dieses Paket nur die Formate DVD+R und DVD+RW (daher auch der Name). Mittlerweile können Sie damit aber auch DVD-Rs und DVD-RWs sowie Blu-Ray-Discs brennen (was ich aber nicht getestet habe). Das dvd+rw-tool wird mit nahezu allen gängigen Distributionen standardmäßig installiert. Weitere Informationen finden Sie unter:
dvd+rw-tools
http://fy.chalmers.se/~appro/linux/DVD+RW/ Das zentrale Kommando des dvd+rw-tools-Pakets ist growisofs. Es schreibt DVD+Rs, DVD+RWs, DVD-Rs, DVD-RWs und Blu-Ray-Discs. Vorweg einige allgemeine Informationen zu den unterschiedlichen Medientypen:
growisofs
» DVD+R, DVD-R: Dem Datenträger können Daten wie bei Multi-Session-CDs hinzugefügt werden. Bei der ersten Session verwenden Sie growisofs -Z, bei allen weiteren Sessions growisofs -M. Einmal gespeicherte Daten können aber nicht gelöscht werden. Eine Formatierung ist nicht möglich. » DVD+RW, DVD-RW: Der Datenträger muss vor der ersten Verwendung mit dvd+rw-format formatiert werden (siehe unten). Anschließend können Sie wie bei einer DVD+R/DVD-R in mehreren Schritten Daten hinzufügen. Wenn Sie vorhandene Daten überschreiben möchten, starten Sie den
331
Kapitel 13
Dateiverwaltung
Session-Zyklus einfach mit growisofs -Z neu. Anders als bei CD-RWs ist es in diesem Fall nicht notwendig, die DVD neu zu formatieren! Bei DVD-RWs werden je nach Formatierung die Modi Incremental Sequential und Restricted Overwrite unterstützt. Die Syntax von growisofs ist auf Seite 1164 zusammengefasst. Da growisofs auf genisoimage zurückgreift, sind die meisten Optionen mit diesem Kommando identisch. Das folgende Kommando speichert den Inhalt des Verzeichnisses daten auf einer DVD. Die genisoimage-Optionen -r und -J bewirken, dass die DVD lange Dateinamen entsprechend den Rockridge- und Joliet-Erweiterungen aufweist. Statt des Device-Namens /dev/srn müssen Sie je nach Distribution /dev/scdn angeben. user$
growisofs -r -J -Z /dev/sr0 daten/
Eine zweite Session fügen Sie so hinzu (Option -M statt -Z): user$
growisofs -r -J -M /dev/sr0 nochmehrdaten/
Beachten Sie, dass Sie die DVD auswerfen und neu in das Laufwerk einführen müssen, bevor Sie eine weitere Session hinzufügen können!
Hinweis
Multi-Session-DVDs können beim Lesen in manchen Laufwerken Probleme bereiten. Bei DVD-RWs sollten Sie den Modus Restricted Overwrite nutzen (siehe dvd+rw-format). Manche DVD-ROM-Laufwerke kommen generell nicht mit DVD+RWs zurecht, egal, ob Single- oder Multi-Session. Mit den folgenden Kommandos gelingt es manchmal, die Probleme zu umgehen. dvd+rw-format schreibt einen Lead-out-Bereich auf die DVD+RW. (Die DVD wird nicht formatiert, alle Daten bleiben erhalten!) dvd+rw-booktype verändert die Book-type-Information der DVD. user$ dvd+rw-format -lead-out /dev/sr0 user$ dvd+rw-booktype -dvd-rom -media /dev/sr0 Normalerweise übergibt growisofs alle Optionen außer -Z bzw. -M an genisoimage und schreibt das Ergebnis von genisoimage dann direkt auf die DVD. Wenn Sie ein bereits existierendes ISO-Image schreiben möchten, lautet die Syntax -Z device=isodatei: user$ dvd+rw-format
growisofs -Z /dev/sr0=daten.iso
DVD+RWs und DVD-RWs (wenn der Modus Restricted Overwrite genutzt werden soll, siehe unten) müssen vor der ersten Verwendung formatiert werden. Diese Aufgabe übernimmt dvd+rw-format: user$
dvd+rw-format /dev/sr0
Was beim Formatieren im Detail passiert, hängt vom Medientyp ab: » DVD+RWs: Hier wird nur der Anfangsbereich des Rohlings formatiert. Wie weit dieser reicht, hängt vom Brenner ab. Wenn der Formatiervorgang also bei 11,5 Prozent (oder irgendeiner anderen Prozentzahl kleiner 100) endet, ist dies kein Fehler! Die Formatierung über den Anfangsbereich hinaus erfolgt automatisch durch das Laufwerk, sobald die DVD über den vorformatierten Bereich hinaus beschrieben wird.
332
Zugriffsrechte, Benutzer und Gruppenzugehörigkeit
Abschnitt 13.9
» DVD-RWs: DVD-RWs werden von dvd+rw-format standardmäßig für den Modus Restricted Overwrite formatiert. Dieser Modus ermöglicht es, bereits beschriebene Bereiche der DVD neu zu beschreiben. Es ist daher nicht erforderlich, DVD-RWs vor jedem Schreiben neu zu formatieren! DVD-RWs können Sie mit der Option -blank auch für den Modus Incremental Sequential formatieren. Fabrikneue DVD-RWs sind in der Regel bereits in diesem Modus formatiert. Dieser Modus eignet sich besonders für Video-DVDs und erhöht die Kompatibilität mit manchen Abspielgeräten. Allerdings ist growisofs in diesem Modus nicht in der Lage, Daten zu überschreiben. Dazu muss die DVD jedes Mal neu formatiert werden, was sehr lange dauert. Fazit: Für die optimale Zusammenarbeit mit growisofs sollten Sie DVD-RWs unbedingt vorher mit dvd+rw-format und ohne die Option -blank formatieren! Die Formatierung löscht die Daten nicht physikalisch. Falls Sie dies aus Datenschutzgründen wünschen, führen Sie besser growisofs -Z device=/dev/zero aus. Damit wird das gesamte Medium mit Nullen vollgeschrieben. Wenn Sie eine DVD erhalten und nicht wissen, um welchen DVD-Typ es sich handelt, ob die DVD schon beschrieben ist und wenn ja, in welchem Modus und mit wie vielen Sessions, ermitteln Sie diese Informationen mit dvd+rw-mediainfo:
dvd+rwmediainfo
user$ dvd+rw-mediainfo /dev/sr0 INQUIRY: [_NEC ][DVD_RW ND-1300A ][1.07] GET [CURRENT] CONFIGURATION: Mounted Media: 1Ah, DVD+RW GET PERFORMANCE: Speed Descriptor#0: 00/221280
[email protected] [email protected] READ DVD STRUCTURE[#0h]: Media Book Type: 92h, DVD+RW book [revision 2] Media ID: RICOHJPN/W01 Legacy lead-out at: 221280*2KB=453181440 ...
13.9 Zugriffsrechte, Benutzer und Gruppenzugehörigkeit Linux ist als Multiuser-System konzipiert und benötigt daher Mechanismen, die steuern, wer auf welche Dateien zugreifen darf, wer sie ändern darf etc. Die Basis des Zugriffssystems stellt die Verwaltung von Benutzern und Gruppen dar, die auf Seite 480 beschrieben wird. Seit Kernel 2.6 unterstützt Linux auch eine erweiterte Rechteverwaltung durch Access Control Lists (ACLs), zu der Sie auf Seite 338 mehr erfahren. In diesem Abschnitt geht es nur um die traditionelle Verwaltung von Zugriffsrechten, die es auf Unix-Systemen schon seit Jahrzehnten gibt. Mit jeder Datei bzw. mit jedem Verzeichnis werden folgende Informationen gespeichert:
Zugriffsdaten pro Datei
» der Besitzer (Owner) der Datei » die Gruppe, der die Datei zuzuordnen ist
333
Kapitel 13
Dateiverwaltung
» neun Zugriffsbits (rwxrwxrwx für Read/Write/Execute für den Besitzer, für alle Gruppenmitglieder und für den Rest der Welt) » einige weitere Zusatzbits für Spezialfunktionen Der Besitzer (Owner) einer Datei ist in der Regel die Person, die die Datei erzeugt hat. Als Gruppe wird normalerweise die primäre Gruppe des Besitzers verwendet. Die Zugriffsinformationen r, w und x steuern, wer die Datei lesen, schreiben (verändern) und ausführen darf. Diese Informationen werden getrennt für den Besitzer, für die Gruppe und für alle anderen Benutzer gespeichert. Das ermöglicht es, dem Besitzer mehr Rechte zu geben als anderen Benutzern. Die Informationen werden meist Zugriffsbits genannt, weil sie intern als Zahl mit bitweiser Codierung gespeichert werden. Die Zugriffsbits, der Besitzer sowie die Gruppenzugehörigkeit einer Datei können mit ls -l betrachtet werden. Für eine typische Textdatei liefert ls das folgende Ergebnis: michael$ ls -l datei.txt -rw-r--r-1 michael users
3529 Oct 4 15:43 datei.txt
Kurz die Interpretation: Das erste Zeichen gibt den Dateityp an (hier - für eine normale Datei, sonst d für ein Verzeichnis (directory), l für einen symbolischen Link etc.). Die Datei darf vom Besitzer michael gelesen und verändert werden. Da es sich um eine Textdatei handelt, ist das erste x-Bit deaktiviert, die Datei kann also nicht ausgeführt werden. Alle anderen Benutzer, egal, ob sie Mitglied der users-Gruppe sind oder nicht, dürfen diese Datei lesen (aber nicht verändern). Wenn michael möchte, dass diese Datei nur von den Mitgliedern der users-Gruppe, nicht aber von Anwendern außerhalb der Gruppe gelesen werden kann, dann muss er das letzte r-Bit deaktivieren. Dazu verwendet er das Kommando chmod (siehe Seite 1142). michael$ chmod o-r datei.txt michael$ ls datei.txt -l -rw-r----1 michael users
3529 Oct 4 15:43 datei.txt
Möglicherweise soll der Zugriff auf die Datei datei.txt auf zwei Anwender beschränkt werden, michael und kathrin. Dazu kann eine neue Gruppe gebildet werden, der nur die beiden angehören. (Wenn michael und kathrin das Dokumentationsteam einer Firma bilden, wäre als Gruppenname etwa dokuteam sinnvoll.) Anschließend wird die Gruppenzugehörigkeit mit chgrp geändert: michael$ chgrp dokuteam datei.txt michael$ ls datei.txt -l -rw-r----1 michael dokuteam Oktale Schreibweise
3529 Oct 4 15:43 datei.txt
Statt in der Schreibweise rwxrwxrwx werden die neun Zugriffsbits sowie drei weitere Spezialbits oft auch oktal dargestellt: Den Zugriffsbits für den Benutzer, die Gruppe und alle anderen ist jeweils eine Ziffer zugeordnet. Jede Ziffer ist aus den Werten 4, 2 und 1 für r, w und x zusammengesetzt. 660 bedeutet daher rw-rw----, 777 steht für rwxrwxrwx. Die drei Spezialbits setuid, setgid und sticky (siehe den nächsten Abschnitt) haben die Oktalwerte 4000, 2000 und 1000. Mit dem Kommando chmod können Sie die Zugriffsbits auch oktal einstellen, was viele erfahrene Benutzer wegen des geringeren Tippaufwands vorziehen:
334
Zugriffsrechte, Benutzer und Gruppenzugehörigkeit
user$
Abschnitt 13.9
chmod 640 datei.txt
Erstaunlicherweise ist ls aber nicht in der Lage, die Zugriffsbits oktal darzustellen. Abhilfe schafft das folgende, leider vollkommen unleserliche awk-Kommando: user$
ls -l | awk '{k=0; for(i=0;i dash
19.2 Basiskonfiguration Die Tastaturkonfiguration der bash wird global in der Datei /etc/inputrc bzw. individuell durch ~/.inputrc eingestellt. Falls Sie keine deutschen Sonderzeichen eingeben können oder die Tasten (Entf), (Pos1) und (Ende) nicht wie erwartet funktionieren, müssen Sie inputrc wie folgt einstellen. Alle gängigen Distributionen sind standardmäßig so konfiguriert, wobei es oft noch diverse weitere Einstellungen gibt.
Funktionstasten in der bash
# Datei /etc/inputrc bzw. ~/.inputrc set meta-flag on set convert-meta off set output-meta on "\e[1~": beginning-of-line "\e[3~": delete-char "\e[4~": end-of-line Diese Datei steuert die Funktion readline, die bash-intern zur Verarbeitung von Tastatureingaben verwendet wird. Durch die drei ersten Anweisungen wird erreicht, dass erstens 8-Bit-Zeichen bei der Eingabe erkannt werden, dass sie zweitens nicht in andere Zeichen konvertiert werden und dass sie drittens auch tatsächlich ausgegeben werden. Die nächsten drei Zeilen steuern die Reaktion auf das Drücken der Tasten (Pos1), (Entf) und (Ende). Die Veränderungen werden erst nach einem Neustart der Shell wirksam. In einer Textkonsole loggen Sie sich aus und dann wieder ein. Unter X starten Sie ein neues Konsolenfenster. In der Shell wird am Beginn jeder Eingabezeile je nach Distribution der Name des Rechners, des Benutzers und/oder des aktuellen Verzeichnisses angezeigt. Die Zeichenkette endet üblicherweise mit $, ~ oder > (bei gewöhnlichen Benutzern) bzw. mit # (für root).
Eingabe-Prompt
Die Grundkonfiguration der Umgebungsvariablen PS1, die das Aussehen des Prompts steuert, erfolgt zumeist in /etc/bash.bashrc, bei Red Hat/Fedora in /etc/bashrc. Ohne Konfiguration gilt PS1="\s\v\$". In diesem Fall zeigt die bash den Namen der Shell und die Versionsnummer an. Um die
435
Kapitel 19
bash (Shell)
Variable PS1 individuell einzustellen, ändern Sie die Datei ~/.profile. (Hintergründe zur Einstellung von Umgebungsvariablen werden ab Seite 451 behandelt.) Die folgende Zeile bewirkt, dass als Prompt einfach das aktuelle Verzeichnis angezeigt wird: # Veränderung in ~/.profile PS1="\w \$ " Dabei ist \u ein Platzhalter für den Benutzernamen, \h für den Hostnamen, \w für das gesamte aktuelle Verzeichnis, \W für den letzten Teil des aktuellen Verzeichnisses und \$ für den Promptabschluss ($ oder #). Außerdem können Sie mit \[\e[0;nnm\] die Farbe einstellen. Eine umfassende Anleitung zur Prompt-Konfiguration inklusive einer Auflistung aller ANSI-Farbcodes finden Sie im folgenden HOWTO-Dokument: http://tldp.org/HOWTO/Bash-Prompt-HOWTO/ Auf meinen Rechnern verwende ich in die folgende Einstellung: PS1='\[\e[0;34m\]\u@\h:\W\$\[\e[0;39m\] ' Damit wird ein blauer Prompt in der Form benutzername@rechnername:verzeichnis angezeigt. Außerdem enthält der Prompt nicht den gesamten Pfad, sondern nur den letzten Teil (also z. B. nautilus, wenn das aktuelle Verzeichnis /usr/lib/nautilus lautet). Das spart Platz, wenn Sie sich in einem mehrteiligen Verzeichnis befinden. In Ergänzung oder als Alternative zu PS1 kann auch die Variable PROMPT_COMMAND eingestellt werden. Diese Variable enthält ein Kommando, das jedes Mal ausgeführt wird, bevor PS1 angezeigt wird.
19.3 Kommandoeingabe Normalerweise nutzen Sie die bash einfach durch die Eingabe ganz gewöhnlicher Kommandos. Die bash unterstützt Sie dabei durch eine Menge praktischer Tastenkürzel und Sondertasten. Insbesondere können Sie mit den Cursortasten (½) und (¼) die zuletzt eingegebenen Kommandos wieder bearbeiten, was eine Menge Tipparbeit spart. Beim Ausloggen aus einer Shell werden die zuletzt eingegebenen Kommandos in einer Datei ~/.bash_history gespeichert und stehen so auch nach dem nächsten Einloggen wieder zur Verfügung. Kommandozeilen können wie in einem Texteditor verändert werden, das heißt, Sie können an beliebigen Stellen Zeichen einfügen und löschen. Die Tastaturbelegung der bash ist praktisch vollständig konfigurierbar. Insbesondere können Sie Sonderzeichen (Funktions- und Cursortasten) mit den von Ihnen gewünschten Kommandos belegen. Außerdem können Sie zwischen dem emacs- und dem viModus umschalten. Damit gelten für alle grundlegenden Edit-Kommandos dieselben Tastenkürzel wie im jeweils ausgewählten Editor. Die Standardeinstellung ist in der Regel der emacs-Modus. In diesem Kapitel werden alle Tastenkürzel ebenfalls für diesen Modus angegeben.
436
Kommandoeingabe
Abschnitt 19.3
Expansion von Kommando- und Dateinamen Mit der automatischen Expansion von Kommando- und Dateinamen hilft die bash Ihnen, den Tippaufwand zu minimieren. Dazu geben Sie zuerst die Anfangsbuchstaben des Kommandos oder des Dateinamens ein und drücken dann (ÿ). Wenn der Name bereits eindeutig identifizierbar ist, wird er vollständig ergänzt. Wenn es mehrere Namen gibt, die mit den gleichen Buchstaben beginnen, wird der Name nur so weit erweitert, wie die Namen übereinstimmen. Außerdem erklingt in diesem Fall ein Signalton, der darauf hinweist, dass der Dateiname möglicherweise noch nicht vollständig ist. Am leichtesten ist die Expansion von Dateinamen anhand eines Beispiels zu verstehen. Die Eingabe user$ em (ÿ) com (ÿ) wird auf meinem Rechner automatisch zu user$ emacs command.tex erweitert. Dabei ist emacs der Name meines Lieblingseditors und command.tex der Dateiname der LATEX-Datei eines Kapitels aus diesem Buch. Zur Vervollständigung von em durchsucht bash alle in der PATH-Variablen angegebenen Verzeichnisse nach ausführbaren Programmen. Zur Vervollständigung des Dateinamens wird dagegen nur das aktuelle Verzeichnis berücksichtigt. Die Expansion funktioniert auch bei Dateinamen, denen mehrere Verzeichnisse vorangestellt sind. Wenn Sie user$ ls /usr/sh (ÿ) eingeben, erweitert bash diese Eingabe zu: user$ ls /usr/share/ Wenn eine eindeutige Erweiterung nicht möglich ist (Signalton), können Sie einfach nochmals (ÿ) drücken. bash zeigt dann in den Zeilen unterhalb der aktuellen Eingabezeile alle möglichen Ergänzungen an. Die Eingabe user$ e (ÿ) (ÿ) führt zur Ausgabe einer fast endlosen Liste aller Kommandos und Programme, die mit dem Buchstaben e beginnen. Anschließend kann die Eingabe fortgesetzt werden.
Bei den meisten Linux-Distributionen fehlt aus Sicherheitsgründen das aktuelle Verzeichnis in PATH. Damit Programme aus dem aktuellen Verzeichnis ausgeführt werden können, muss ./name eingegeben werden. Die automatische Kommandoexpansion verschleiert, wo sich ein Programm nun wirklich befindet. Um das herauszufinden, gibt es mehrere Möglichkeiten:
Tipp
Programme und Kommandos im gerade aktuellen Verzeichnis werden bei der Kommandoexpansion nur dann berücksichtigt, wenn das aktuelle Verzeichnis in der PATH-Variablen enthalten ist. (echo $PATH zeigt PATH an. Das aktuelle Verzeichnis wird durch ».« abgekürzt.)
Pfad zum Programm ermitteln
437
Kapitel 19
bash (Shell)
» whereis name durchsucht alle Standardverzeichnisse. » which name durchsucht alle in PATH enthaltenen Verzeichnisse und ermittelt das Programm, das bei der Eingabe des Kommandos ohne Pfad ausgeführt würde. which ist dann interessant, wenn es mehrere Versionen eines Programms gibt, die sich in unterschiedlichen Verzeichnissen befinden. » type name funktioniert ähnlich wie which, berücksichtigt aber auch Kommandos, die in der bash integriert sind oder als Alias definiert sind (siehe Seite 440). Die bash bietet analoge Expansionsmechanismen auch für die Namen von Heimatverzeichnissen (~ko (ÿ) liefert auf meinem Rechner ~kofler/) und für Variablennamen an ($PAT (ÿ)liefert $PATH). Programmspezifische Expansion
Bei der Ausführung des Kommandos latex name.tex kommen als mögliche Dateien nur solche in Frage, die mit *.tex enden. Wenn Sie man name ausführen, kommen nur Einträge in Frage, zu denen man-Texte existieren. Analog gibt es zahlreiche weitere Kommandos und Programme, bei denen die Auswahl der möglichen Dateien oder Parameter von vornherein eingeschränkt ist. Da ist es natürlich praktisch, wenn bei der Expansion nur solche Dateien bzw. Parameter berücksichtigt werden, die zum Kommando passen. Genau darum kümmert sich das bash-Kommando complete. Viele Distributionen sind mit einer umfangreichen complete-Konfiguration ausgestattet, die aber teilweise extra installiert werden muss (beispielsweise unter Fedora mit dem Paket bash-completion). Die Konfiguration erfolgt in der Regel durch eine der folgenden Dateien:
Hinweis
/etc/bash_completion /etc/bash_completion.d/* /etc/profile.d/complete.bash /etc/profile.d/bash_completion.sh Zur Definition eigener Expansionsregeln müssen Sie sich in die recht unübersichtliche Syntax von complete einarbeiten. Eine knappe Beschreibung geben help complete und man bash (suchen Sie nach Programmable Completion). Weitere Tipps zur Konfiguration des Expansionsmechanismus finden Sie unter: http://www.caliban.org/bash/index.shtml http://www.pl-berichte.de/t_system/bash-completion.html
Wichtige Tastenkürzel Tabelle 19.1 geht davon aus, dass bash für den emacs-Modus konfiguriert ist. Das ist bei nahezu allen Distributionen der Fall. Wenn manche Tasten auf Ihrem Rechner eine andere Reaktion hervorrufen, lesen Sie bitte die Konfigurationshinweise auf Seite 435. Falls Sie unter X arbeiten, kann es sein, dass Ihnen auch bei einer korrekten Konfiguration von bash die Tastaturverwaltung von X in die Quere kommt (siehe ab Seite 582). Wenn Sie unter Gnome arbeiten, sollten Sie im Terminalfenster BEARBEITENjTASTENKOMBINATIONEN ausführen und die Option A LLE MENÜKÜRZELBUCHSTABEN AKTIVIEREN deaktivieren.
438
Kommandoeingabe
KÜRZEL
BEDEUTUNG
(½), (¼)
durch die zuletzt eingegebenen Kommandos scrollen
(æ), (Æ)
Cursor zurück- bzw. vorbewegen
(Pos1), (Ende)
Cursor an den Beginn bzw. an das Ende der Zeile bewegen
(Strg)+(A), (Strg)+(E)
wie oben, falls (Pos1) oder (Ende) nicht funktioniert
(Alt)+(B), (Alt)+(F)
Cursor um ein Wort rückwärts bzw. vorwärts bewegen
(Backspace), (Entf)
Zeichen rückwärts bzw. vorwärts löschen
(Alt)+(D)
Wort löschen
(Strg)+(K)
bis zum Ende der Zeile löschen
(Strg)+(Y)
zuletzt gelöschten Text wieder einfügen
(Strg)+(T)
die beiden vorangehenden Zeichen vertauschen
(Alt)+(T)
die beiden vorangehenden Wörter vertauschen
(ÿ)
Expansion des Kommando- oder Dateinamens
(Strg)+(L)
den Bildschirm löschen
(Strg)+(R)
Suche nach früher eingegebenen Kommandos
(Alt)+(.)
den zuletzt verwendeten Parameter einfügen
(Strg)+(_ _)
letzte Änderung rückgängig machen (Undo)
Abschnitt 19.3
Tabelle 19.1: bashTastenkürzel
Die Funktion des Tastenkürzels (Alt)+(.) ist nur anhand eines Beispiels zu verstehen. Nehmen wir an, Sie haben gerade eine Datei kopiert (cp name1 name2). Nun wollen Sie im nächsten Kommando die Kopie wieder löschen. Statt rm name2 geben Sie rm und dann (Alt)+(.) ein. bash fügt automatisch den zuletzt verwendeten Befehlsparameter ein. Durch das mehrfache Drücken von (Alt)+(.) können Sie auch auf alle weiteren Parameter zurückgreifen (also auf name1 durch zweimaliges Drücken).
Letzten Parameter einfügen
Auch das Tastenkürzel (Strg)+(R) bedarf einer ausführlicheren Erklärung: Damit ist es möglich, bereits eingegebene Kommandos zu suchen: Drücken Sie am Beginn der Zeile (Strg)+(R), und geben Sie dann die ersten Zeichen der gesuchten Kommandozeile ein. bash zeigt daraufhin automatisch das zuletzt verwendete Kommando mit diesen Anfangsbuchstaben an. Mehrmaliges Drücken von (Strg)+(R) wechselt zwischen verschiedenen passenden Möglichkeiten. (Strg)+(S) funktioniert wie (Strg)+(R), durchläuft die Liste passender Kommandos aber in umgekehrter Richtung. (¢), (ÿ) und die Cursortasten brechen die Suche ab und führen das gefundene Kommando aus bzw. ermöglichen das Editieren der gefundenen Zeile.
Kommandosuche
Manche Konsolen betrachten (Strg)+(S) als Anweisung, die Ausgabe vorübergehend zu stoppen. Erst (Strg)+(Q) setzt die Ausgabe wieder fort. Wenn Ihre Konsole so auf (Strg)+(S) reagiert, können Sie die Kommandosuche nur mit (Strg)+(R) durchführen. Die bash-Tastenkürzel stammen eigentlich von der readline-Bibliothek, die von bash zur Verarbeitung von Eingaben genutzt wird. Noch mehr Kürzel finden Sie mit man readline.
439
Kapitel 19
bash (Shell)
Alias-Abkürzungen Mit dem Kommando alias können Sie sich bei der Eingabe von Kommandos in der Shell einige Tipparbeit ersparen. Mit diesem Kommando werden Abkürzungen definiert. Bei der Verarbeitung der Kommandozeile wird überprüft, ob das erste Wort eine Abkürzung enthält. Wenn das der Fall ist, wird die Abkürzung durch den vollständigen Text ersetzt. Abkürzungen für eine bestimmte Kombination von Optionen oder für Dateinamen sind nicht möglich, weil die bash die weiteren Parameter eines Kommandos nicht nach Abkürzungen durchsucht. Die bash erkennt aber Sonderfälle, bei denen in einer Kommandozeile mehrere Programme genannt werden (Pipes, Kommandosubstitution, sequenzielle Ausführung von Kommandos mit »;«), und durchsucht alle vorkommenden Kommandonamen auf Abkürzungen. user$
alias cdb='cd ~kofler/linuxbuch'
Durch das obige Kommando wird die Abkürzung cdb definiert, mit der ich rasch in das von mir oft benötigte Verzeichnis ~kofler/linuxbuch wechseln kann. alias-Aufrufe können auch verschachtelt eingesetzt werden. Beachten Sie, dass alias-Abkürzungen Vorrang gegenüber gleichnamigen Kommandos haben. Das kann dazu genutzt werden, um den unerwünschten Aufruf eines Kommandos zu vermeiden: user$
alias more=less
Von nun an führt jeder Versuch, das Kommando more aufzurufen, zum Start des leistungsfähigeren Programms less. Sollten Sie aus irgendeinem Grund dennoch more benötigen, müssen Sie den gesamten Pfadnamen angeben (/bin/more) oder einen Backslash voranstellen (\more). Der Backslash verhindert in diesem Fall die Alias-Auswertung. alias-Abkürzungen können mit unalias wieder gelöscht werden. Ansonsten gelten sie bis zum Verlassen der Shell (also spätestens bis zum Logout). Wenn Sie bestimmte Abkürzungen immer wieder benötigen, sollten Sie die alias-Anweisungen in die Dateien /etc/bashrc oder ~/.bashrc in Ihrem Heimatverzeichnis aufnehmen. Bei vielen Distributionen sind diverse alias-Abkürzungen vordefiniert. Wenn also beispielsweise rm ständig fragt, ob die Datei wirklich gelöscht werden soll, ist meist der vordefinierte Alias rm=rm -i schuld. Eine Liste mit allen gerade gültigen Abkürzungen liefert das Kommando alias. Die folgenden Zeilen geben an, an welchen Orten Debian, Fedora, SUSE und Ubuntu alias-Definitionen berücksichtigen. Debian Fedora, Ubuntu: SUSE:
/etc/bashrc /etc/bash.bashrc
/etc/profile.d/*.sh /etc/profile.d/*.sh
~/.bashrc ~/.bashrc
~/.alias
Eine ähnliche Wirkung wie Abkürzungen können auch Shell-Programme haben. Shell-Scripts haben zudem den Vorteil, dass sie mit Parametern ($1, $2 etc.) zurechtkommen und flexibler eingesetzt werden können (siehe ab Seite 453).
440
Ein- und Ausgabeumleitung
Abschnitt 19.4
19.4 Ein- und Ausgabeumleitung Bei der Ausführung von Kommandos in der bash existieren drei sogenannte Standarddateien. Der Begriff »Datei« stiftet dabei ein wenig Verwirrung: Es handelt sich eigentlich nicht um richtige Dateien, sondern um Dateideskriptoren, die auf Betriebssystemebene wie Dateien behandelt werden. » Standardeingabe: Das gerade ausgeführte Programm (z. B. die bash oder ein beliebiges von dort gestartetes Kommando) liest alle Eingaben von der Standardeingabe. Als Standardeingabequelle gilt normalerweise die Tastatur. » Standardausgabe: Dorthin werden alle Ausgaben des Programms geleitet (etwa die Auflistung aller Dateien durch ls). Als Standardausgabe gilt normalerweise das Terminalfenster. » Standardfehler: Auch Fehlermeldungen werden üblicherweise im aktuellen Terminal angezeigt. An sich ist das alles selbstverständlich – woher sonst als von der Tastatur sollten die Eingaben kommen, wo sonst als auf dem Bildschirm sollten Ergebnisse oder Fehler angezeigt werden? Bemerkenswert ist aber die Möglichkeit, die Standardeingabe oder -ausgabe umzuleiten. Beispielsweise kann der Fall auftreten, dass das Inhaltsverzeichnis des aktuellen Verzeichnisses nicht auf dem Bildschirm angezeigt, sondern in einer Datei gespeichert werden soll. Die Standardausgabe soll also in eine echte Datei umgeleitet werden. Das erfolgt in der bash durch das Zeichen >: user$
ls *.tex > inhalt
In der Textdatei inhalt befindet sich jetzt eine Liste aller *.tex-Dateien im aktuellen Verzeichnis. Diese Form der Ausgabeumleitung ist sicherlich die häufigste Anwendung. Daneben existieren aber viele weitere Varianten: 2> datei leitet alle Fehlermeldungen in die angegebene Datei. >& datei bzw. &> datei leiten sowohl die Standardausgabe als auch alle Fehlermeldungen in die angegebene Datei. Wenn statt > die Verdoppelung >> verwendet wird, dann werden die jeweiligen Ausgaben an das Ende einer bereits bestehenden Datei angehängt (siehe auch die Syntaxübersicht in Tabelle 19.2). Eine Eingabeumleitung erfolgt mit < datei: Kommandos, die Eingaben von der Tastatur erwarten, lesen diese damit aus der angegebenen Datei.
sort dat > dat oder auch sort < dat > dat führt dazu, dass dat gelöscht wird! Pipes werden mit dem Zeichen | gebildet. Dabei wird die Ausgabe des ersten Kommandos als Eingabe für das zweite Kommando verwendet. In der Praxis werden Sie Pipes oft zusammen mit dem Kommando less bilden, wenn Sie längere Ausgaben seitenweise betrachten möchten. user$
Achtung
Es ist nicht möglich, eine Datei zu bearbeiten und gleichzeitig das Ergebnis wieder in diese Datei zu schreiben!
Pipes
ls -l | less
Durch das obige Kommando wird das Inhaltsverzeichnis des aktuellen Verzeichnisses ermittelt und in eine Pipe geschrieben. Von dort liest das parallel ausgeführte Kommando less seine Eingaben und zeigt sie auf dem Bildschirm an.
441
Kapitel 19
Tabelle 19.2: Ein- und Ausgabeumleitung
bash (Shell)
KOMMANDO
FUNKTION
kommando > datei
leitet Standardausgaben zur angegebenen Datei.
kommando < datei
liest Eingaben aus der angegebenen Datei.
kommando 2> datei
leitet Fehlermeldungen zur angegebenen Datei.
kommando >& datei
leitet Ausgaben und Fehler um.
kommando &> datei
leitet ebenfalls Ausgaben und Fehler um.
kommando >> datei
hängt Standardausgaben an die vorhandene Datei an.
kommando &>> datei
hängt Ausgaben und Fehler an die Datei an (ab bash 4.0).
kommando1 | kommando2
leitet Ausgaben von Kommando 1 an Kommando 2 weiter.
komm | tee datei
zeigt die Ausgaben an und speichert zugleich eine Kopie.
Pipes eignen sich auch hervorragend dazu, unterschiedliche Kommandos zu kombinieren. So liefert das folgende Kommando eine sortierte Liste aller installierten RPM-Pakete: user$
rpm -qa | sort
Statt Pipes können zur Ein- und Ausgabeumleitung auch sogenannte FIFO-Dateien verwendet werden. FIFO steht für First In First Out und realisiert die Idee einer Pipe in Form einer Datei. FIFOs sind bei der Eingabe viel umständlicher als Pipes, sie machen aber deutlich, was das Zeichen | eigentlich bewirkt. In der Praxis werden sie verwendet, damit zwei voneinander unabhängige Programme miteinander kommunizieren können. user$ user$ user$
mkfifo fifo ls -l > fifo & less < fifo
Durch die drei obigen Kommandos wird zuerst eine FIFO-Datei eingerichtet. Anschließend wird ls als Hintergrundprozess gestartet. Er schreibt seine Ausgaben in die Datei. Von dort liest less die Daten wieder aus und zeigt sie auf dem Bildschirm an. Es eignen sich nur solche Kommandos zur Formulierung einer Pipe, die die zu verarbeitenden Kommandos aus dem Standardeingabekanal lesen. Wenn das nicht der Fall ist, können Sie ähnliche Effekte durch eine Kommandosubstitution oder durch das Kommando xargs erzielen (siehe Seite 447).
Ausgabevervielfachung mit tee Gelegentlich kommt es vor, dass die Ausgaben eines Programms zwar in einer Datei gespeichert werden sollen, dass Sie aber dennoch (parallel) am Bildschirm den Programmverlauf verfolgen wollen. In diesem Fall ist eine Verdoppelung der Ausgabe erforderlich, wobei eine Kopie auf dem Bildschirm angezeigt und die zweite Kopie in einer Datei gespeichert wird. Diese Aufgabe übernimmt das Kommando tee:
442
Kommandos ausführen
user$
Abschnitt 19.5
ls | tee inhalt
Das Inhaltsverzeichnis des aktuellen Verzeichnisses wird auf dem Bildschirm angezeigt und gleichzeitig in der Datei inhalt gespeichert. Dabei erfolgt zuerst eine Weiterleitung der Standardausgabe an das Kommando tee. Dieses Kommando zeigt standardmäßig die Standardausgabe auf dem Terminal an und speichert die Kopie davon in der angegebenen Datei. Dass es sich wirklich um eine Vervielfachung der Ausgabe handelt, bemerken Sie, wenn Sie auch die Standardausgabe von tee in eine Datei weiterleiten: user$
ls | tee inhalt1 > inhalt2
Das Ergebnis sind zwei identische Dateien inhalt1 und inhalt2. Das obige Kommando hat reinen Beispielcharakter. Etwas schwieriger zu verstehen, dafür aber sinnvoller, ist das folgende Beispiel: user$
ls -l | tee inhalt1 | sort +4 > inhalt2
In inhalt1 befindet sich wiederum das »normale« Inhaltsverzeichnis, das von ls automatisch nach Dateinamen sortiert wurde. Die Kopie dieser Ausgabe wurde an sort weitergegeben, dort nach der Dateigröße (fünfte Spalte, also Option +4) sortiert und in inhalt2 gespeichert.
19.5 Kommandos ausführen Üblicherweise starten Sie Kommandos einfach durch die Eingabe des Kommandonamens. Innerhalb der Kommandozeile können Sie zahllose Sonderzeichen angeben, die von der bash vor dem eigentlichen Start des Kommandos ausgewertet werden. Auf diese Weise können Sie Kommandos im Hintergrund starten, durch Jokerzeichen mehrere ähnliche Dateinamen erfassen (z. B. *.tex), die Ergebnisse des einen Kommandos in die Parameterliste eines anderen Kommandos substituieren etc. Das wichtigste und am häufigsten benötigte Sonderzeichen ist &. Wenn es am Ende der Kommandozeile eingegeben wird, startet bash dieses Programm im Hintergrund. Das ist vor allem bei zeitaufwendigen Programmen sinnvoll, weil sofort weitergearbeitet werden kann.
Hintergrundprozesse
user$ find / -name '*sh' > ergebnis & [1] 3345 Das obige Kommando durchsucht das gesamte Dateisystem nach Dateien, die mit den Buchstaben »sh« enden. Die Liste der Dateien wird in die Datei ergebnis geschrieben. Da das Kommando im Hintergrund ausgeführt wird, kann sofort weitergearbeitet werden. Die Ausgabe [1] 3345 bedeutet, dass der Hintergrundprozess die PID-Nummer 3345 hat. PID steht dabei für Prozessidentifikation. Die PID-Nummer ist dann von Interesse, wenn der Prozess vorzeitig durch kill beendet werden soll. Die Nummer in eckigen Klammern gibt die Nummer des Hintergrundprozesses an, der in bash gestartet wurde, und ist im Regelfall nicht von Interesse. Wenn Sie beim Start eines Kommandos das &-Zeichen vergessen, brauchen Sie weder zu warten noch müssen Sie das Programm mit (Strg)+(C) gewaltsam stoppen. Vielmehr sollten Sie das Programm mit (Strg)+(Z) unterbrechen und mit bg als Hintergrundprozess fortsetzen.
443
Kapitel 19
bash (Shell)
Ausführung mehrerer Kommandos
Nach dem &-Zeichen kann auch ein weiteres Kommando angegeben werden. In diesem Fall wird das erste Kommando im Hintergrund, das zweite dagegen im Vordergrund ausgeführt. Im folgenden Beispiel wird nochmals das obige find-Kommando im Hintergrund gestartet. Gleichzeitig wird aber mit ls das aktuelle Inhaltsverzeichnis ausgegeben: user$
find / -name '*sh' > ergebnis & ls
Wenn statt des &-Zeichens ein Semikolon angegeben wird, führt bash die Kommandos nacheinander und im Vordergrund aus: user$
ls; date
Das obige Kommando zeigt zuerst das aktuelle Inhaltsverzeichnis an und gibt anschließend das aktuelle Datum aus. Wenn die Gesamtheit dieser Informationen mit > in eine Datei umgeleitet werden soll, müssen beide Kommandos in runde Klammern gestellt werden. Dadurch werden beide Kommandos von ein und derselben Shell ausgeführt. user$
(ls; date) > inhalt
In der Datei inhalt befinden sich nun die von ls erstellte Dateiliste sowie das mit date ermittelte aktuelle Datum. Die runden Klammern bewirken, dass die beiden Kommandos innerhalb derselben Shell ausgeführt werden und daher auch ein gemeinsames Ergebnis liefern. (Normalerweise wird bei der Ausführung jedes Kommandos eine neue Shell gestartet.) Mit den Zeichenkombinationen && und || können Sie Kommandos bedingt ausführen, d. h. in Abhängigkeit vom Ergebnis eines anderen Kommandos: user$
kommando1 && kommando2
führt Kommando 1 aus. Nur wenn dieses Kommando erfolgreich war (kein Fehler, Rückgabewert 0), wird anschließend auch Kommando 2 ausgeführt. user$
kommando1 || kommando2
führt Kommando 1 aus. Nur wenn bei der Ausführung dieses Kommandos ein Fehler auftritt (Rückgabewert ungleich 0), wird anschließend auch Kommando 2 ausgeführt. Weitere Möglichkeiten zur Bildung von Bedingungen und Verzweigungen bietet das Shell-Kommando if, das allerdings nur für die Shell-Programmierung von Interesse ist (siehe Seite 464).
19.6 Substitutionsmechanismen Der Begriff Substitutionsmechanismus klingt sehr abstrakt und kompliziert. Die Grundidee besteht darin, dass mit Sonderzeichen gebildete Kommandos durch ihre Ergebnisse ersetzt werden. Im einfachsten Fall bedeutet das, dass bei der Auswertung des Kommandos ls *.tex die Zeichenkombination *.tex durch die Liste der passenden Dateien – etwa buch.tex command.tex – ersetzt wird. Das Kommando ls bekommt also nicht *.tex zu sehen, sondern eine Liste mit realen Dateinamen.
444
Substitutionsmechanismen
KOMMANDO
FUNKTION
kommando1; kommando2
führt die Kommandos nacheinander aus.
kommando1 && kommando2
führt Kommando 2 aus, wenn Kommando 1 erfolgreich war.
kommando1 || kommando2
führt Kommando 2 aus, wenn Kommando 1 einen Fehler liefert.
kommando &
startet das Kommando im Hintergrund.
kommando1 & kommando2
startet Kommando 1 im Hinter-, Kommando 2 im Vordergrund .
(kommando1 ; kommando2)
führt beide Kommandos in der gleichen Shell aus.
Abschnitt 19.6
Tabelle 19.3: Kommandoausführung
Das Ziel dieses Abschnitts ist es, die wichtigsten Mechanismen bei der Interpretation der Kommandozeile kurz zusammenzufassen: Jokerzeichen zur Bildung von Dateinamen, geschweifte Klammern zum Zusammensetzen von Zeichenketten, eckige Klammern zur Berechnung arithmetischer Klammern, umgekehrte Apostrophe zur Kommandosubstitution etc. Ein Substitutionsmechanismus wird an dieser Stelle unterschlagen, nämlich die sogenannte Parametersubstitution. Damit können Sie in Variablen gespeicherte Zeichenketten analysieren und verändern. Die generelle Syntax lautet ${var__text}, wobei var der Name einer Variablen ist, __ für ein oder zwei Sonderzeichen steht und text das Suchmuster oder eine Defaulteinstellung enthält. Details zu diesem Substitutionsmechanismus finden Sie ab Seite 461. Wenn Sie rm *.bak eingeben und das Kommando rm tatsächlich alle Dateien löscht, die mit .bak enden, dann ist dafür die bash verantwortlich. Die Shell durchsucht das aktuelle Verzeichnis nach passenden Dateien und ersetzt *.bak durch die entsprechenden Dateinamen.
Dateinamenbildung mit * und ?
Als Jokerzeichen sind ? (genau ein beliebiges Zeichen) und * (beliebig viele (auch null) beliebige Zeichen) erlaubt. Die Zeichenkette [a,b,e-h]* steht für Dateinamen, die mit einem der Zeichen a, b, e, f, g oder h beginnen. Wenn als erstes Zeichen innerhalb der eckigen Klammern ^ oder ! angegeben wird, dann sind alle Zeichen außer den angegebenen Zeichen zulässig. ~ kann als Abkürzung für das Heimatverzeichnis verwendet werden (siehe auch Seite 302). Die Funktion von Sonderzeichen können Sie einfach mit dem folgenden echo-Kommando testen. Das erste Kommando liefert alle Dateien und Verzeichnisse im Wurzelverzeichnis. Das zweite Kommando schränkt die Ausgabe auf Dateien und Verzeichnisse ein, die mit den Buchstaben a-f beginnen: user$ echo /* /bin /boot /dev /etc /home /lib /lost+found /media /misc /mnt /net /opt /proc /root /sbin /selinux /srv /sys /tmp /usr /var user$ echo /[a-f]* /bin /boot /dev /etc Da die Bildung der Dateinamen nicht durch das jeweilige Programm, sondern durch die bash erfolgt, sehen die Resultate manchmal anders aus, als Sie es wahrscheinlich erwarten würden. So kann ls * zu einer schier endlosen Liste von Dateien führen, auch wenn sich im aktuellen Verzeichnis nur wenige Dateien befinden. Dem Kommando ls wird nach der Expansion von * eine Liste aller Dateien und Verzeichnisse übergeben. ls wiederum zeigt bei Verzeichnissen nicht einfach deren Namen,
445
Kapitel 19
bash (Shell)
sondern den ganzen Inhalt dieser Verzeichnisse an! Wenn Sie nur eine einfache Liste aller Dateien und Verzeichnisse haben möchten, müssen Sie die Option -d verwenden. Sie verhindert, dass der Inhalt der in der Parameterzeile angegebenen Verzeichnisse angezeigt wird. Wenn Sie ein Feedback haben möchten, wie die bash intern funktioniert, können Sie set -x ausführen. Die bash zeigt dann vor der Ausführung jedes weiteren Kommandos an, wie die Kommandozeile ausgewertet wird (mit allen eventuell voreingestellten Optionen und mit den expandierten Dateinamen). Standardmäßig berücksichtigt * keine Dateien oder Verzeichnisse, die mit einem Punkt beginnen (also »verborgen« sind). Wenn Sie das möchten, müssen Sie mit shopt die bash-Option dotglob setzen: user$ user$ ... user$ Dateinamenbildung mit **
shopt -u dotglob
(dotglob wieder deaktivieren)
Ab Version 4.0 erfasst die Zeichenkombination ** rekursiv alle Dateien und Verzeichnisse. Aus Kompatiblitätsgründen ist diese neue Funktion standardmäßig nicht aktiv. Wenn Sie sie nutzen möchten (z. B. in einem Script), müssen Sie mit shopt -s die bash-Option globstar setzen. user$ user$ ...
Zeichenkettenbildung mit {}
shopt -s dotglob echo *
shopt -s globstar echo **
bash setzt aus Zeichenketten, die in geschweiften Klammern angegeben werden, alle denkbaren Zeichenkettenkombinationen zusammen. Die offizielle Bezeichnung für diesen Substitutionsmechanismus lautet Klammererweiterung (Brace Expansion). Aus teil{1,2a,2b} wird teil1 teil2a teil2b. Klammererweiterungen können den Tippaufwand beim Zugriff auf mehrere ähnliche Dateinamen oder Verzeichnisse reduzieren. Gegenüber Jokerzeichen wie * und ? haben sie den Vorteil, dass auch noch nicht existierende Dateinamen gebildet werden können (etwa für mkdir). user$ echo {a,b}{1,2,3} a1 a2 a3 b1 b2 b3 user$ echo {ab,cd}{123,456,789}-{I,II} ab123-I ab123-II ab456-I ab456-II ab789-I ab789-II cd123-I cd123-II cd456-I cd456-II cd789-I cd789-II Aufzählungen können Sie elegant in der Schreibweise {a..b} formulieren, wobei a und b wahlweise Zahlen oder Buchstaben sein dürfen. Die folgenden Beispiele erklären die Funktionsweise besser als jede Beschreibung: user$ echo {1..5} 1 2 3 4 5 user$ echo {z..t} z y x w v u t
446
Substitutionsmechanismen
bash ist normalerweise nicht in der Lage, Berechnungen auszuführen. Wenn Sie 2+3 eingeben, weiß die Shell nicht, was sie mit diesem Ausdruck anfangen soll. Wenn Sie innerhalb der Shell eine Berechnung ausführen möchten, müssen Sie den Ausdruck in eckige Klammern setzen und ein $Zeichen voranstellen: user$ 5
Abschnitt 19.6
Berechnung arithmetischer Ausdrücke mit []
echo $[2+3]
Innerhalb der eckigen Klammern sind die meisten aus der Programmiersprache C bekannten Operatoren erlaubt: + - * / für die vier Grundrechenarten, % für Modulo-Berechnungen, == != < und >= für Vergleiche, > für Bitverschiebungen, ! && und || für logisches NICHT, UND und ODER etc. Alle Berechnungen werden für 32-Bit-Integerzahlen ausgeführt (Zahlenbereich zwischen +/-2147483648). Wenn einzelne Werte aus Variablen entnommen werden sollen, muss ein $-Zeichen vorangestellt werden (siehe Seite 449 zur Variablenverwaltung). Eine alternative Möglichkeit, Berechnungen durchzuführen, bietet das Kommando expr. Dabei handelt es sich um ein eigenständiges Linux-Kommando, das unabhängig von bash funktioniert (siehe Seite 1153). Die Kommandosubstitution ermöglicht es, ein Kommando innerhalb der Kommandozeile durch dessen Ergebnis zu ersetzen. Dazu muss dieses Kommando zwischen zwei `-Zeichen eingeschlossen werden. Eine alternative Schreibweise lautet $(kommando). Diese Schreibweise ist vorzuziehen, weil sie erstens die Verwirrung durch die Verwendung von drei verschiedenen Anführungszeichen mindert (" ' und `) und zweitens verschachtelt werden kann.
Kommandosubstitution
Das so gekennzeichnete Kommando wird also durch sein Ergebnis ersetzt. Diese Substitution ermöglicht den verschachtelten Aufruf mehrerer Kommandos, wobei ein Kommando sein Ergebnis an das andere Kommando übergibt. Die beiden folgenden, gleichwertigen Kommandos verdeutlichen diesen sehr leistungsfähigen Mechanismus: user$ user$
ls -lgo `find /usr/share -name '*README*'` ls -lgo $(find /usr/share -name '*README*')
Durch das obige Kommando wird zuerst find /usr/share -name ’*README*’ ausgeführt. Das Ergebnis dieses Kommandos ist eine Liste aller Dateien im Verzeichnis /usr/share, in denen die Zeichenkette README vorkommt. Diese Liste wird nun anstelle des find-Kommandos in die Kommandozeile eingesetzt. Die Kommandozeile lautet dann beispielsweise: user$ ls -lgo /usr/share/a2ps/ppd/README \ > /usr/share/a2ps/README ... Dieses Kommando führt zum folgenden Ergebnis: -rw-r--r-- 1 -rw-r--r-- 1 ...
301 15. Feb 12:30 /usr/share/a2ps/ppd/README 1029 15. Feb 12:30 /usr/share/a2ps/README
Dieses Ergebnis wäre durch eine einfache Pipe mit dem |-Zeichen nicht möglich. ls erwartet keine Eingaben über die Standardeingabe und ignoriert daher auch die Informationen, die find über die
447
Kapitel 19
bash (Shell)
Pipe liefert. Das folgende Kommando zeigt daher nur einfach den Inhalt des aktuellen Verzeichnisses an. Die Ergebnisse von find werden nicht angezeigt! user$
find /usr/share -name '*README*' | ls -l
(funktioniert nicht!)
Es gibt aber eine andere Lösung, die ohne Kommandosubstitution auskommt: Durch die Zuhilfenahme des Kommandos xargs werden Daten aus der Standardeingabe an das nach xargs angegebene Kommando weitergeleitet: user$
find /usr/share -name '*README*' | xargs ls -l
Ein wesentlicher Vorteil von xargs besteht darin, dass es kein Größenlimit für die zu verarbeitenden Daten gibt. Gegebenenfalls ruft xargs das Kommando mehrfach auf und übergibt die aus der Standardeingabe kommenden Daten in mehreren Schritten. (Die Kommandosubstitution ist hingegen durch die maximale Größe einer Kommandozeile – üblicherweise mehrere 1000 Zeichen – begrenzt.) Die Weitergabe von Dateinamen führt zu Problemen, wenn die Dateinamen Leerzeichen enthalten. Diese Probleme können Sie umgehen, indem Sie an find die Option -print0 übergeben und an xargs die Option -null. Das folgende Kommando setzt bei allen Verzeichnissen das execute-Bit: user$ Sonderzeichen in Zeichenketten
find -type d -print0 | xargs --null chmod a+x
Da in der bash praktisch jedes Zeichen mit Ausnahme der Buchstaben und Ziffern irgendeine besondere Bedeutung hat, scheint es so gut wie unmöglich zu sein, diese Zeichen in Zeichenketten oder Dateinamen zu verwenden. Das Problem kann auf zwei Arten gelöst werden. Entweder wird dem Sonderzeichen ein Backslash \ vorangestellt, oder die gesamte Zeichenkette wird in Apostrophe oder Anführungszeichen gestellt. Durch die Angabe von Apostrophen können Sie also beispielsweise eine Datei mit dem Dateinamen ab* $cd löschen: user$
rm 'ab* $cd'
Beachten Sie bitte den Unterschied zwischen ' (zur Kennzeichnung von Zeichenketten) und ` (zur Kommandosubstitution, siehe oben)! Anführungszeichen haben eine ähnliche Wirkung wie Apostrophe. Sie sind allerdings weniger restriktiv und ermöglichen die Interpretation einiger weniger Sonderzeichen ($ \ und `). In Zeichenketten, die in Anführungszeichen gestellt sind, werden daher Shell-Variablen mit vorangestelltem $-Zeichen ausgewertet: user$
echo "Das ist der Zugriffspfad: $PATH"
Das Kommando liefert als Ergebnis die Zeichenkette »Das ist der Zugriffspfad:«, gefolgt vom Inhalt der Shell-Variablen PATH. Wenn statt der Anführungszeichen einfache Apostrophe verwendet werden, wird die gesamte Zeichenkette unverändert durch echo ausgegeben. Mehr Informationen zum Thema Shell-Variablen enthält der folgende Abschnitt. Eine Referenz aller Sonderzeichen der bash finden Sie auf Seite 469.
448
Shell-Variablen
KOMMANDO
FUNKTION
?
genau ein beliebiges Zeichen
*
beliebig viele (auch null) beliebige Zeichen (aber keine .*-Dateien!)
**
alle Dateien und Verzeichnisse, auch aus allen Unterverzeichnissen (ab bash 4.0 mit shopt -s globstar)
[abc]
eines der angegebenen Zeichen
[a-f]
ein Zeichen aus dem angegebenen Bereich
[!abc]
keines der angegebenen Zeichen
[^abc]
wie oben
~
Abkürzung für das Heimatverzeichnis
.
aktuelles Verzeichnis
..
übergeordnetes Verzeichnis
ab{1,2,3}
liefert ab1 ab2 ab3.
a{1..4}
liefert a1 a2 a3 a4.
$[3*4]
arithmetische Berechnungen
`kommando`
ersetzt das Kommando durch sein Ergebnis.
$(kommando)
wie oben, alternative Schreibweise
kommando "zeichen"
verhindert die Auswertung aller Sonderzeichen außer $.
kommando 'zeichen'
wie oben, aber noch restriktiver (keine Variablensubstitution)
Abschnitt 19.7
Tabelle 19.4: Substitutionsmechanismen
19.7 Shell-Variablen Die Funktionalität der bash und die vieler anderer Linux-Programme wird durch den Zustand sogenannter Shell-Variablen gesteuert. Shell-Variablen sind mit Variablen einer Programmiersprache vergleichbar, können allerdings nur Zeichenketten speichern. Die Zuweisung von Shell-Variablen erfolgt durch den Zuweisungsoperator =. Der Inhalt einer Shell-Variablen kann am einfachsten durch echo angezeigt werden, wobei dem Variablennamen ein $-Zeichen vorangestellt werden muss: user$ user$ abc
var=abc echo $var
Bei Variablenzuweisungen dürfen Sie zwischen dem Variablennamen und dem Zuweisungsoperator = kein Leerzeichen angeben. var = abc ist syntaktisch falsch und funktioniert nicht! Wenn der Inhalt von Shell-Variablen Leerzeichen oder andere Sonderzeichen enthalten soll, muss bei der Zuweisung die gesamte Zeichenkette in einfache oder doppelte Hochkommata gestellt werden: user$
var='abc efg'
449
Kapitel 19
bash (Shell)
Bei der Zuweisung können mehrere Zeichenketten unmittelbar aneinandergereiht werden. Im folgenden Beispiel wird der Variablen a eine neue Zeichenkette zugewiesen, die aus ihrem alten Inhalt, der Zeichenkette »xxx« und nochmals dem ursprünglichen Inhalt besteht: user$ user$ user$ 3xxx3
a=3 a=$a'xxx'$a echo $a
Im folgenden Beispiel wird die vorhandene Variable PATH (mit einer Liste aller Verzeichnisse, die nach ausführbaren Programmen durchsucht werden) um das bin-Verzeichnis im Heimatverzeichnis ergänzt. Damit können nun auch alle Kommandos ausgeführt werden, die sich in diesem Verzeichnis befinden (ohne dass der Pfad vollständig angegeben wird). user$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin user$ PATH=$PATH':/home/kofler/bin' user$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/kofler/bin Berechnungen mit Variablen können in der bereits vorgestellten Schreibweise in eckigen Klammern durchgeführt werden: user$ user$ user$ 12
a=3 a=$[$a*4] echo $a
Wenn das Ergebnis eines Kommandos in einer Variablen gespeichert werden soll, muss die ebenfalls bereits beschriebene Kommandosubstitution mit $(kommando) durchgeführt werden. Im folgenden Beispiel wird das aktuelle Verzeichnis in a gespeichert: user$ a=$(pwd) user$ echo $a /home/kofler Die Inhalte von Variablen werden nur innerhalb der Shell gespeichert. Sie gehen beim Verlassen der Shell wieder verloren. Wenn bestimmte Variablen immer wieder benötigt werden, sollten die Zuweisungen in der Datei /etc/profile bzw. in .profile im Heimatverzeichnis durchgeführt werden. Diese beiden Dateien werden (sofern vorhanden) beim Start der bash automatisch ausgeführt. Wenn Sie den Inhalt einer Variablen in einer Datei speichern möchten, führen Sie am einfachsten echo mit einer Ausgabeumleitung durch: user$
450
echo $var > datei
Shell-Variablen
Abschnitt 19.7
Lokale und globale Variablen (Umgebungsvariablen) Die Begriffe »lokal« und »global« zur Beschreibung von Variablen sind aus der Welt der Programmiersprachen entlehnt. Bei Shell-Variablen gilt eine Variable dann als global, wenn sie beim Start eines Kommandos oder eines Shell-Programms weitergegeben wird. Globale Variablen werden oft auch als Umgebungsvariablen (Environment Variables) bezeichnet. Beachten Sie bitte, dass alle durch eine einfache Zuweisung entstandenen Variablen nur als lokal gelten! Um eine globale Variable zu definieren, müssen Sie export oder declare -x aufrufen. Zur Variablenverwaltung innerhalb der Shell existieren zahlreiche Kommandos, wobei es funktionelle Überlappungen gibt. Zur Definition einer globalen Variablen können Sie beispielsweise sowohl export als auch declare -x verwenden. Die folgenden Beispiele versuchen, die Verwirrung durch ähnliche Kommandos ein wenig zu mindern: a=3 declare a=3 declare -x a=3 export export a export a=3 let a=3 local a=3 printenv set unset a
Kurzschreibweise für let, a ist lokal weist der lokalen Variablen a einen Wert zu (wie let). weist der globalen Variablen a einen Wert zu (wie export). zeigt alle globalen Variablen an. macht a zu einer globalen Variablen. weist der globalen Variablen a einen Wert zu. weist der lokalen Variablen a einen Wert zu. definiert a als lokal (nur in Shell-Funktionen). zeigt wie export alle globalen Variablen an. zeigt alle Variablen an (lokale und globale). löscht die Variable a
Wenn Sie Variablen einrichten, die das Verhalten von anderen Linux-Kommandos steuern sollen, müssen diese Variablen immer global sein! Damit Sie einerseits die Substitutionsmechanismen der Shell ausnutzen und andererseits globale Variablen definieren können, sollten Sie Variablen zuerst mit x=... zuweisen und anschließend mit export x als global definieren. Variablenzuweisungen gelten immer nur für eine Shell. Wenn Sie in mehreren Terminals bzw. Terminalfenstern arbeiten, laufen darin jeweils eigenständige und voneinander unabhängige Shells. Die Veränderung einer Variablen in einer Shell hat keinerlei Einfluss auf die anderen Shells. Sie können aber oft benötigte Variablenzuweisungen in der Datei ~/.profile festlegen, die automatisch beim Start jeder Shell ausgeführt wird.
Wichtige Shell-Variablen Prinzipiell können Sie beliebig viele neue Variablen einführen und nach Gutdünken benennen und verwenden. Dabei sollten Sie aber versuchen, bereits vorhandene Variablen zu vermeiden, da diese zumeist von der bash und häufig auch von anderen Linux-Kommandos ausgewertet werden. Eine unkontrollierte Veränderung dieser Variablen kann zur Folge haben, dass die Verarbeitung von Kommandos nicht mehr richtig funktioniert, dass Linux plötzlich Dateien nicht mehr findet etc. Dieser Abschnitt beschreibt die wichtigsten Shell-Variablen in alphabetischer Reihenfolge:
451
Kapitel 19
bash (Shell)
BASH enthält den Dateinamen der bash. HOME enthält den Pfad des Heimatverzeichnisses, beispielsweise /home/mk. LOGNAME enthält den Login-Namen (User-Namen). HOSTNAME enthält den Hostnamen (Rechnernamen). MAIL enthält den Pfad des Verzeichnisses, in dem ankommende Mail gespeichert wird (nur, wenn ein lokaler Mail-Server installiert ist). OLDPWD enthält den Pfad des zuletzt aktiven Verzeichnisses. PATH enthält eine Liste von Verzeichnissen. Wenn die bash ein Kommando ausführen soll, durchsucht sie alle in PATH aufgezählten Verzeichnisse nach dem Kommando. Die Verzeichnisse sind durch Doppelpunkte voneinander getrennt. Die Einstellung von PATH erfolgt distributionsspezifisch an verschiedenen Stellen während des Startprozesses (Init-V, Upstart). Der beste Ort, um eigene Änderungen durchzuführen, ist /etc/profile bzw. (wenn Ihre Distribution dies vorsieht) eine Datei im Verzeichnis /etc/profile.d. Dort fügen Sie ein Kommando nach dem folgenden Muster ein: # Ergänzung in /etc/profile oder in /etc/profile.d/myown.sh PATH=$PATH:/myown/bin Aus Sicherheitsgründen (um das unbeabsichtigte Ausführen von Programmen im aktuellen Verzeichnis zu vermeiden) fehlt in PATH das lokale Verzeichnis. Wenn Sie Programme im gerade aktuellen Verzeichnis ohne vorangestelltes ./ ausführen möchten, müssen Sie PATH um . erweitern. PROMPT_COMMAND kann ein Kommando enthalten, das jedes Mal ausgeführt wird, bevor die bash den Kommandoprompt anzeigt. PS1 enthält eine Zeichenkette, deren Inhalt am Beginn jeder Eingabezeile angezeigt wird (Prompt). Innerhalb dieser Zeichenkette sind unter anderem folgende Zeichenkombinationen vorgesehen: \t für die aktuelle Zeit, \d für das Datum, \w für das aktuelle Verzeichnis, \W für den letzten Teil des aktuellen Verzeichnisses (also X11 für /usr/bin/X11), \u für den User-Namen, \h für den Hostnamen (Rechnernamen) sowie \$ für das Promptzeichen ($ für normale Anwender, # für root).
452
Programmierung – Einführung und Beispiele
Abschnitt 19.8
PS2 wie PS1, allerdings wird die Zeichenkette nur bei mehrzeiligen Eingaben angezeigt (also wenn die erste Zeile mit \ abgeschlossen wurde). Eine typische Einstellung lautet ">". PWD enthält den Pfad des aktuellen Verzeichnisses. Neben den hier beschriebenen Variablen sind normalerweise zahlreiche weitere Umgebungsvariablen definiert, die Funktionen der Shell sowie diverser anderer Programme steuern. Eine Liste aller definierten Variablen erhalten Sie mit printenv j sort.
19.8 Programmierung – Einführung und Beispiele Shell-Programme sind einfache Textdateien mit einigen Linux- und/oder bash-Kommandos. Nach dem Start eines Shell-Programms werden diese Kommandos der Reihe nach ausgeführt. Dem Shell-Programm können Parameter wie einem normalen Kommando übergeben werden. Diese Parameter können innerhalb des Programms ausgewertet werden. Da die einfache sequenzielle Ausführung einiger Kommandos keinen allzu großen Spielraum für komplexe Aufgabenstellungen lässt, unterstützt die bash die Shell-Programmierung durch Kommandos zur Bildung von Verzweigungen und Schleifen. Damit steht Ihnen eine echte Programmiersprache zur Verfügung, für die Sie weder einen Compiler noch C-Kenntnisse benötigen. (Zugegebenermaßen hinkt der Vergleich: C-Programme sind ungleich schneller in der Ausführung, unterstützen mehrere Variablentypen, kennen zahlreiche Spezialfunktionen etc. Dennoch reichen die Möglichkeiten der bash für überraschend viele Problemstellungen vollkommen aus.) Typische Anwendungen für Shell-Programme sind die Automatisierung von oft benötigten Kommandofolgen zur Installation von Programmen, zur Administration des Systems, zur Durchführung von Backups, zur Konfiguration und Ausführung einzelner Programme etc. Die folgenden Seiten geben nur eine erste Einführung in die Programmierung mit der bash. Unzählige weitere Informationen und Beispiele finden Sie auf der ausgezeichneten Website http://bash-hackers.org/. Aus Geschwindigkeitsgründen kommt bei Ubuntu für die Ausführung von Scripts standardmäßig dash statt bash zum Einsatz:
dash
> ls -l /bin/sh lrwxrwxrwx 1 root root ... /bin/sh -> dash dash ist zwar in vielen Fällen effizienter als bash, ist aber nicht zu 100 Prozent kompatibel. Wenn Sie möchten, dass Ihr Script mit bash ausgeführt wird, müssen Sie in der ersten Zeile des Scripts statt /bin/sh explizit /bin/bash angeben: #!/bin/bash
453
Kapitel 19
bash (Shell)
Einführungsbeispiele Unter Linux wimmelt es nur so von Beispielen für die bash-Programmierung, auch wenn Sie bisher möglicherweise nichts davon bemerkt haben. Viele Kommandos, die Sie während der Installation, Konfiguration und Administration von Linux ausführen, sind in Wirklichkeit bash-Programme. Das folgende find/grep-Kommando durchsucht das Verzeichnis /etc/ nach shell-Programmen. Dabei werden alle Dateien erkannt, die als ausführbar gekennzeichnet sind und die die Zeichenkette \#! ... sh enthalten. Die Liste aller Dateien wird in shellscripts gespeichert. Die Ausführung des Kommandos nimmt einige Zeit in Anspruch, weil das gesamte Dateisystem durchsucht wird. user$
find /etc -type f -perm +111 -exec grep -q '#!.*sh' {} \; -print > shellscripts
Beispiel 1: grepall Angenommen, Sie verwenden häufig die Kommandos grep und find, um im gerade aktuellen Verzeichnis und allen Unterverzeichnissen nach Dateien zu suchen, die eine bestimmte Zeichenkette enthalten. Das richtige Kommando sieht so aus: user$
find . -type f -exec grep -q suchtext {} \; -print
Wenn Sie wie ich jedes Mal neu rätseln, welche Kombination der Optionen dazu erforderlich ist, liegt es nahe, das neue Kommando grepall zu definieren, das eben diese Aufgabe übernimmt. Dazu starten Sie Ihren Lieblingseditor, um die Textdatei grepall zu schreiben. Die Datei besteht aus nur zwei Zeilen: #!/bin/sh find . -type f -exec grep -q $1 {} \; -print
Tipp
Eine besondere Bedeutung hat die erste Zeile, die mit #! beginnt: Sie gibt den Programmnamen des Interpreters an, mit dem die Script-Datei ausgeführt werden soll. Wenn Sie sich den Editoraufruf sparen möchten, können Sie die Datei auch mit cat erstellen: Geben Sie das Kommando cat > grepall ein. Das Kommando erwartet jetzt Daten aus der Standardeingabe (Tastatur) und schreibt diese in die Datei grepall. Geben Sie nun das Kommando mit all seinen Optionen ein. Anschließend beenden Sie cat mit (Strg)+(D) (das entspricht EOF, also end of file). Die resultierende Datei können Sie mit cat grepall ansehen. Der Versuch, die gerade erstellte Datei grepall auszuführen, endet mit der Fehlermeldung permission denied. Der Grund für diese Meldung besteht darin, dass bei neuen Dateien generell die Zugriffsbits (x) zum Ausführen der Datei deaktiviert sind. Das können Sie aber rasch mit chmod ändern. grepall abc liefert jetzt die gewünschte Liste aller Dateien, die die Zeichenkette »abc« enthalten: user$ ./grepall bash: ./grepall: user$ chmod a+x user$ ./grepall ./bashprg.tex
454
abc Permission denied grepall abc
Programmierung – Einführung und Beispiele
Abschnitt 19.8
Damit Sie das Kommando grepall unabhängig vom aktuellen Verzeichnis einfach durch grepall (ohne vorangestelltes Verzeichnis) ausführen können, müssen Sie es in ein Verzeichnis kopieren, das in $PATH enthalten ist. Wenn das Kommando allen Benutzern zugänglich sein soll, bietet sich /usr/local/bin an: root#
cp grepall /usr/local/bin
Beispiel 2: stripcomments Auch das zweite Beispiel ist ein Einzeiler. Sie übergeben an das Kommando stripcomments eine Textdatei. Die drei verschachtelten grep-Kommandos eliminieren nun alle Zeilen, die mit den Zeichen # oder ; beginnen bzw. ganz leer sind. Das Kommando eignet sich ausgezeichnet dazu, um bei Konfigurationsdateien alle Kommentarzeilen zu entfernen und nur die tatsächlich gültigen Einstellungen anzuzeigen. #!/bin/sh grep -v ^[[:space:]]*\# $1 | grep -v ^[[:space:]]*\; | grep -v ^$ Kurz zur Erklärung: ^[[:blank:]]*\# findet Zeilen, die mit # beginnen, wobei zwischen dem Zeilenanfang (^) und # beliebig viele Leer- und Tabulatorzeichen sein dürfen. Die Option -v invertiert die übliche Funktion von grep: Statt die gefundenen Zeilen zu extrahieren, liefert grep alle Zeilen, auf die das Muster nicht zutrifft. Analog entfernt das zweite grep-Kommando alle Zeilen, die mit ; beginnen. Das dritte Kommando entfernt schließlich leere Zeilen, die nur aus Zeilenanfang und Zeilenende ($) bestehen. Details zur Syntax von grep finden Sie auf Seite 1162.
Beispiel 3: applysedfile Die beiden obigen Beispiele zeigen zwar gut, wie Sie sich etwas Tipp- und Denkarbeit ersparen können, deuten die weitreichenden Möglichkeiten der Script-Programmierung aber noch nicht einmal an. Schon mehr bietet in dieser Hinsicht das nächste Beispiel: Nehmen Sie an, Sie stehen vor der Aufgabe, in einem ganzen Bündel von Dateien eine Reihe gleichartiger Suchen-und-Ersetzen-Läufe durchzuführen. (Das kommt immer wieder vor, wenn Sie in einem über mehrere Dateien verteilten Programmcode einen Variablen- oder Prozedurnamen verändern möchten. Ich stand bei der Überarbeitung dieses Buchs für die fünfte Auflage aufgrund der neuen Rechtschreibung vor einem ähnlichen Problem: In Dutzenden von *.tex-Dateien sollte »daß« durch »dass«, »muß« durch »muss« etc. ersetzt werden.) Das Script-Programm applysedfile hilft bei derartigen Aufgaben. Der Aufruf dieses Scripts sieht folgendermaßen aus: user$
applysedfile *.tex
Das Programm erstellt nun von allen *.tex-Dateien eine Sicherheitskopie *.bak. Anschließend wird das Unix-Kommando sed verwendet (siehe Seite 1211), um eine ganze Liste von Kommandos für jede *.tex-Datei auszuführen. Diese Kommandos müssen sich in der Datei ./sedfile befinden, die von applysedfile automatisch benutzt wird. Der Code von applysedfile sieht folgendermaßen aus:
455
Kapitel 19
bash (Shell)
#! /bin/bash # Beispiel applysedfile # Verwendung: applysedfile *.tex # wendet ./sedfile auf die Liste der übergebenen Dateien an for i in $* do echo "process $i" # make a backup of old file cp $i ${i%.*}.bak # build new file sed -f ./sedfile < ${i%.*}.bak > $i done Kurz einige Anmerkungen zur Funktion dieses kleinen Programms: Bei den drei ersten Zeilen handelt es sich um Kommentare, die mit dem Zeichen # eingeleitet werden. for leitet eine Schleife ein. Für jeden Schleifendurchgang wird ein Dateiname in die Variable i eingesetzt. Die Liste der Dateinamen stammt aus $*. Diese Zeichenkombination ist ein Platzhalter für alle an das Programm übergebenen Parameter und Dateinamen. Der Schleifenkörper gibt den Namen jeder Datei aus. Mit cp wird eine Sicherungskopie der Datei erstellt. (Dabei werden zuerst alle Zeichen ab dem ersten Punkt im Dateinamen gelöscht. Anschließend wird .bak angehängt.) Schließlich wird das Kommando sed für die Datei ausgeführt, wobei die Steuerungsdatei sedfile aus dem lokalen Verzeichnis verwendet wird. Für die Umstellung auf die neue Rechtschreibung sahen die ersten Zeilen dieser Datei wie folgt aus: s.daß.dass.g s.muß.muss.g s.paßt.passt.g s.läßt.lässt.g Dabei handelt es sich bei jeder Zeile um ein sed-Kommando, das die erste Zeichenkette durch die zweite ersetzt (Kommando s). Der nachgestellte Buchstabe g bedeutet, dass das Kommando auch mehrfach innerhalb einer Zeile ausgeführt werden soll (falls »daß« oder »muß« mehrere Male innerhalb einer Zeile auftreten sollte).
Beispiel 4: Backup-Script Das folgende Script wird jede Nacht automatisch auf meinem root-Server ausgeführt. Als Erstes wird die Variable m initialisiert, die den aktuellen Monat als Zahl enthält. (Das Kommando date liefert das aktuelle Datum samt Uhrzeit. Die Formatzeichenkette +%m extrahiert daraus den Monat.) Nun erstellt tar ein Backup des Verzeichnisses /var/www. Das Archiv wird nicht direkt in einer Datei gespeichert, sondern mittels | an das Kommando curl weitergeleitet. curl überträgt die Daten auf einen FTP-Server (Benutzername kofler, Passwort xxxx, IP-Adresse 1.2.3.4). Auf dem FTP-Server wird das Backup unter dem Namen www-monat.tgz gespeichert.
456
Programmierung – Einführung und Beispiele
Abschnitt 19.8
Auf diese Weise entstehen über den Verlauf eines Jahres monatliche Backup-Versionen, sodass ich zur Not auch einen alten Zustand meiner Website rekonstruieren kann, sollte das erforderlich sein. Gleichzeitig ist der Platzbedarf der Backup-Dateien gering. (Zu jedem Zeitpunkt gibt es maximal 12 Versionen, also www-01.tgz bis www-12.tgz.) Das Kommando mysqldump erstellt ein Backup der MySQL-Datenbank cms, in der das ContentManagement-System (CMS) meiner Website alle Seiten und unzählige andere Daten speichert. Abermals wird das Backup mittels | an curl weitergegeben und auf meinem FTP-Server gespeichert. #!/bin/sh m=$(date "+%m") cd /var tar czf - www | curl -T - -u kofler:xxxx ftp://1.2.3.4/www-$m.tgz mysqldump -u cms -pxxxx cms | curl -T - -u kofler:xxxx ftp://1.2.3.4/cms-$m.sql Das gesamte Script habe ich unter dem Dateinamen /etc/myscripts/backup gespeichert. Um den täglichen Aufruf kümmert sich cron (siehe Abschnitt 14.6). Die dazu passende Konfigurationsdatei /etc/cron.d/backup sieht so aus: # jeden Sonntag um 3:15 15 3 * * 0 root /etc/myscripts/backup
Beispiel 5: Thumbnails erzeugen Als »Thumbnails« werden verkleinerte Versionen von Bilddateien bezeichnet. Das folgende Script wird in der Form makethumbs *.jpg aufgerufen. Es erzeugt das Unterverzeichnis 400x400 und speichert dort verkleinerte Kopien der ursprünglichen Bilder. Die Maximalgröße der neuen Bilder beträgt 400*400 Pixel, wobei die Proportionen des Originalbilds erhalten bleiben. Bilder, die kleiner sind, bleiben unverändert und werden also nicht vergrößert. Das Script wendet das convert-Kommando aus dem Paket Image Magick an (siehe auch Seite 369). Für die Verkleinerung ist die Option -resize verantwortlich. -size bewirkt lediglich eine schnellere Verarbeitung. #!/bin/sh # Verwendung: makethumbs *.jpg if [ ! -d 400x400 ]; then # Unterverzeichnis erzeugen mkdir 400x400 fi for filename do # alle Dateien verarbeiten echo "processing $filename" convert -size 400x400 -resize 400x400 $filename 400x400/$filename done
457
Kapitel 19
bash (Shell)
19.9 Programmierung – Syntax Shell-Scripts sollten mit einer Zeile beginnen, die aus den Zeichen #! und dem gewünschten Shell-Namen zusammengesetzt ist. In diesem Fall wird zur Ausführung der Datei automatisch die gewünschte Shell gestartet. Für die meisten Shell-Scripts ist #!/bin/sh die richtige Wahl. Nur wenn Sie bash-spezifische Funktionen einsetzen, sollten Sie explizit #!/bin/bash angeben. Shell-Scripts können nur ausgeführt werden, wenn die Zugriffsbits für den Lesezugriff (r) und die Ausführung (x) gesetzt sind (chmod ug+rx datei). Falls sich Scripts auf externen Datenträgern bzw. Partitionen befinden, müssen Sie sicherstellen, dass das Dateisystem mit der exec-Option in den Verzeichnisbaum eingebunden ist.
Achtung
In der ersten Zeile eines Scripts dürfen keine deutschen Sonderzeichen verwendet werden, auch nicht in Kommentaren. Die bash weigert sich sonst, die Datei auszuführen, und liefert die Meldung cannot execute binary file. In Shell-Script-Dateien dürfen die Zeilen nicht durch die Windows-typische Kombination aus Carriage Return und Linefeed getrennt sein. Das kann z. B. passieren, wenn die Dateien unter Windows erstellt und dann nach Linux kopiert wurden. In diesem Fall liefert bash die wenig aussagekräftige Fehlermeldung bad interpreter. Bei Unicode-Dateien (UTF8) sorgt das folgende Kommando für die richtige Zeilentrennung: recode u8/cr-lf..u8 < windowsdatei > \ linuxdatei Wenn Sie eine Sammlung eigener Shell-Script-Programme für den täglichen Gebrauch schreiben, ist es sinnvoll, diese an einem zentralen Ort zu speichern. Als Verzeichnis bietet sich ~/bin an. Wenn Sie anschließend folgende Änderung in .profile vornehmen, können diese Script-Programme ohne eine komplette Pfadangabe ausgeführt werden. (Bei manchen Distributionen ist das gar nicht notwendig, dort ist ~/bin immer Bestandteil von PATH.) # Ergänzung in ~/.profile bzw. in ~/.bashrc PATH=$PATH':~/bin'
19.10 Programmierung – Variablenverwaltung Einleitende Informationen zum Umgang mit Variablen habe ich bereits in Abschnitt 19.7 gegeben. Dort ist unter anderem der Unterschied zwischen normalen Shell-Variablen und Umgebungsvariablen beschrieben. In diesem Abschnitt werden weitere Aspekte der Variablenverwaltung behandelt, die besonders für die Shell-Programmierung relevant sind. Im Detail geht es um den Gültigkeitsbereich von Variablen, um einige in der bash vordefinierte Variablen (z. B. $* oder $?), um den Mechanismus der Parametersubstitution zur Analyse und Verarbeitung von Zeichenketten in Variablen und schließlich um die Eingabe von Variablen in Shell-Programmen.
458
Programmierung – Variablenverwaltung
Abschnitt 19.10
Gültigkeitsbereich von Variablen Um die Feinheiten der Variablenverwaltung bei der Ausführung von Shell-Programmen zu verstehen, sind Grundkenntnisse über die Mechanismen beim Start von Kommandos und ShellProgrammen erforderlich. Zur Ausführung eines Kommandos oder eines Programms erzeugt die bash einen neuen Prozess mit einer eigenen PID-Nummer (Linux-interne Nummer zur Identifizierung und Verwaltung des Prozesses). Von den Shell-Variablen werden nur jene an den neuen Prozess weitergegeben, die als Umgebungsvariablen deklariert wurden (export oder declare -x, siehe Seite 449). Wenn ein Kommando im Vordergrund gestartet wird, tritt die bash während der Ausführung in den Hintergrund und wartet auf das Ende des Kommandos. Andernfalls laufen beide Programme (also die bash und das im Hintergrund gestartete Programm) parallel. Einen Sonderfall stellt der Start eines Shell-Programms dar. Die Abarbeitung des Shell-Programms erfolgt nämlich nicht in der laufenden Shell, sondern in einer eigens dazu gestarteten Subshell. Es laufen nun also zwei Instanzen der bash – die eine als ihr Kommandointerpreter und die zweite zur Ausführung des Shell-Programms. Wenn innerhalb dieses Programms ein weiteres ShellProgramm gestartet wird, wird dazu eine dritte bash-Instanz gestartet usw. Die Ausführung eigener Subshells für Shell-Programme ist erforderlich, damit mehrere Shell-Programme parallel und ohne gegenseitige Beeinflussung (gegebenenfalls auch im Hintergrund) ausgeführt werden können. Das Konzept der Subshells wirkt sich insofern auf die Variablenverwaltung aus, als jede (Sub-)Shell ihren eigenen Satz an Variablen besitzt. Der Subshell werden wie beim Start jedes beliebigen anderen Programms nur die Variablen der interaktiven Shell übergegeben, die als Umgebungsvariablen deklariert waren. Anschließend sind die Variablen in den beiden Shells vollkommen unabhängig voneinander, d. h., die Veränderung von Variablen in der einen Shell hat keinerlei Einfluss auf Variablen der anderen Shell. Manchmal möchte man mit einem Shell-Programm neue Variablen deklarieren bzw. vorhandene Variablen bleibend verändern. Um das zu ermöglichen, können Sie Shell-Programme auch innerhalb der aktuellen bash, also ohne den automatischen Start einer Subshell ausführen. Dazu müssen Sie vor den Dateinamen des Shell-Programms einen Punkt und ein Leerzeichen stellen. Das entspricht der Kurzschreibweise des Shell-Kommandos source. Dazu ein Beispiel: Sie möchten ein Shell-Programm schreiben, das die PATH-Variable um den Pfad des gerade aktuellen Verzeichnisses erweitert. Das erforderliche Programm addpwd ist ganz einfach: #! /bin/sh # Shell-Programm addpwd ergänzt den Pfad um das aktuelle Verzeichnis # PATH=$PATH":"$(pwd) In der Variablen PATH werden also der bisherige Inhalt dieser Variablen, ein Doppelpunkt und schließlich via Kommandosubstitution das Ergebnis des Kommandos pwd gespeichert. Der folgende Testlauf beweist, dass sich der Inhalt der PATH-Variablen in der aktuellen Shell erst dann ändert, wenn addpwd mit einem vorangestellten Punkt gestartet wird. (Innerhalb der Subshell, die beim ersten Aufruf von
459
Kapitel 19
bash (Shell)
addpwd gestartet wurde, wird PATH natürlich auch geändert – aber diese Änderung gilt nur, solange addpwd läuft.) user$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin user$ addpwd user$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin user$ . addpwd user$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/user
Durch die Shell vordefinierte Variablen Innerhalb von Shell-Programmen kann auf einige von der bash vordefinierte Variablen zugegriffen werden. Diese Variablen können nicht durch Zuweisungen verändert, sondern nur gelesen werden. Der Name der Variablen wird durch verschiedene Sonderzeichen gebildet. In Tabelle 19.5 werden die Variablen gleich mit dem vorangestellten $-Zeichen angegeben.
Tabelle 19.5: $-Variablen
VARIABLE
BEDEUTUNG
$?
Rückgabewert des letzten Kommandos
$!
PID des zuletzt gestarteten Hintergrundprozesses
$$
PID der aktuellen Shell
$0
Dateiname des gerade ausgeführten Shell-Scripts (oder des symbolischen Links, der auf die Datei zeigt)
$#
Anzahl der dem Shell-Programm übergebenen Parameter
$1 bis $9
Parameter 1 bis 9
$* oder $@
Gesamtheit aller übergebenen Parameter
Noch einige Anmerkungen zur Anwendung dieser Variablen: $0 bis $9, $# und $* dienen zur Auswertung der Parameter, die dem Batch-Programm übergeben wurden. Beinahe jedes Script-Beispiel in diesem Kapitel zeigt dafür Anwendungsmöglichkeiten. Im Zusammenhang mit der Auswertung von Parametern ist das bash-Kommando shift interessant. Dieses Kommando schiebt die übergebenen Parameter quasi durch die neun Variablen $0 bis $9. Wenn Sie shift 9 ausführen, gehen die ersten neun dem Programm übergebenen Parameter verloren, dafür können jetzt aber die nächsten neun bequem angesprochen werden. shift ohne weitere Angaben verschiebt die Parameterliste um einen Parameter. $? kann zur Bildung von Bedingungen verwendet werden, um den weiteren Programmverlauf vom Ergebnis des letzten Kommandos abhängig zu machen. Prinzipiell ist es auch möglich, ein Kommando direkt als Bedingung in if anzugeben. Die Variable $? hat den Vorteil, dass allzu lange und unübersichtliche Anweisungen vermieden werden können.
460
Programmierung – Variablenverwaltung
Abschnitt 19.10
Die Variable $$ enthält die PID (Process Identification Number). Dieser Zahlenwert wird Linux-intern zur Verwaltung der Prozesse verwendet. Die PID ist eindeutig, d. h., im ganzen System existiert mit Sicherheit kein zweiter Prozess mit derselben Nummer. Deswegen eignet sich dieser Wert hervorragend zur Bildung einer temporären Datei. Beispielsweise speichern Sie mit ls > tmp.$$ eine Liste aller Dateien in der Datei tmp.nnn. Selbst wenn dieselbe Stapeldatei gleichzeitig in einem anderen Terminal läuft, wird es wegen der unterschiedlichen PIDs der beiden Shells mit Sicherheit zu keinem Namenskonflikt kommen.
Felder Neben einfachen Variablen kennt die bash auch Felder. Bis einschließlich Version 3 muss der Index eine Zahl sein. Beachten Sie die von C abweichende Syntax ${feld[n]} für den Zugriff auf das n-te Element. x=() x[0]='a' x[1]='b' x[2]='c' x=('a' 'b' 'c') echo ${x[1]} echo ${x[@]}
# Definition eines leeren Arrays # Array-Elemente zuweisen
# Kurzschreibweise für die obigen vier Zeilen # ein Array-Element lesen # alle Array-Elemente lesen
Die für Programmierer wahrscheinlich wichtigste Neuerung in bash 4.0 ist die Unterstützung assoziativer Arrays. Vergessen Sie nicht, das Feld zuerst explizit mit declare -A als assoziativ zu deklarieren! Andernfalls wird es als normales Feld betrachtet. Die im Index verwendeten Zeichenketten werden zu 0 ausgewertet, und Sie bekommen ein gewöhnliches Array, das aus nur einem einzigen Element besteht (Index 0). declare -A y y[abc] = 123 y[efg] = xxx y=( [abc]=123 [efg]=xxx ) echo ${y[abc]}
# Definition eines leeren assoziativen Arrays # Element eines assoziativen Arrays zuweisen # Kurzschreibweise für die obigen zwei Zeilen # ein Array-Element lesen
Eine weitere Neuerung in Version 4 besteht darin, dass Sie mit mapfile eine Textdatei zeilenweise in die Elemente eines gewöhnlichen Arrays einlesen können: mapfile z < textdatei
Parametersubstitution Die bash stellt unter dem Begriff Parametersubstitution einige Kommandos zur Verfügung, mit denen in Variablen gespeicherte Zeichenketten bearbeitet werden können. Beachten Sie, dass der Variablenname ohne vorangestelltes $-Zeichen angegeben wird. Wenn hingegen das Vergleichsmuster aus einer Variablen gelesen werden soll, muss dort ein $-Zeichen verwendet werden. ${var:-default} Wenn die Variable leer ist, liefert die Konstruktion die Defaulteinstellung als Ergebnis, andernfalls den Inhalt der Variablen. Die Variable wird nicht geändert.
461
Kapitel 19
bash (Shell)
${var:=default} Wie oben, es wird aber gleichzeitig der Inhalt der Variablen geändert, wenn diese bisher leer war. ${var:+neu} Wenn die Variable leer ist, bleibt sie leer. Wenn die Variable dagegen bereits belegt ist, wird der bisherige Inhalt durch eine neue Einstellung ersetzt. Die Konstruktion liefert den neuen Inhalt der Variablen. ${var:?fehlermeldung} Wenn die Variable leer ist, werden der Variablenname und die Fehlermeldung ausgegeben, und das Shell-Programm wird anschließend beendet. Andernfalls liefert die Konstruktion den Inhalt der Variablen. ${#var} liefert die Anzahl der in der Variablen gespeicherten Zeichen als Ergebnis (0, falls die Variable leer ist). Die Variable wird nicht geändert. ${var#muster} vergleicht den Anfang der Variablen mit dem angegebenen Muster. Wenn das Muster erkannt wird, liefert die Konstruktion den Inhalt der Variablen abzüglich des kürzestmöglichen Textes, der dem Suchmuster entspricht. Wird das Muster dagegen nicht gefunden, wird der ganze Inhalt der Variablen zurückgegeben. Im Suchmuster können die zur Bildung von Dateinamen bekannten JokerZeichen verwendet werden (* ? [abc]). Die Variable wird in keinem Fall verändert: user$ dat=/home/mk/buch/buch.tar.gz user$ echo ${dat#*/} home/mk/buch/buch.tar.gz user$ echo ${dat#*.} tar.gz ${var##muster} Wie oben, allerdings wird jetzt die größtmögliche Zeichenkette, die dem Muster entspricht, eliminiert: user$ dat=/home/mk/buch/buch.tar.gz user$ echo ${dat##*/} buch.tar.gz user$ echo ${dat##*.} gz ${var%muster} Wie ${var#muster}, allerdings erfolgt der Mustervergleich jetzt am Ende des Variableninhalts. Es wird die kürzestmögliche Zeichenkette vom Ende der Variablen eliminiert. Die Variable selbst bleibt unverändert: user$ dat=/home/mk/buch/buch.tar.gz user$ echo ${dat%/*} /home/mk/buch user$ echo ${dat%.*} /home/mk/buch/buch.tar
462
Programmierung – Variablenverwaltung
Abschnitt 19.10
${var%%muster} Wie oben, allerdings wird die größtmögliche Zeichenkette eliminiert: user$ dat=/home/mk/buch/buch.tar.gz user$ echo ${dat%%/*} -- keine Ausgabe -user$ echo ${dat%%.*} /home/mk/buch/buch ${var/find/replace} ersetzt das erste Auftreten des Musters find durch replace: user$ x='abcdeab12ab' user$ echo echo ${x/ab/xy} xycdeab12ab ${var//find/replace} ersetzt jedes Auftreten des Musters find durch replace: user$ x='abcdeab12ab' user$ echo echo ${x//ab/xy} xycdexy12xy ${!var} liefert den Inhalt der Variablen, deren Name in var als Zeichenkette enthalten ist: user$ user$ user$ 123
abc="123" efg=abc echo ${!efg}
Variablen mit read einlesen Mit dem bash-Kommando read können Sie während des Ablaufs eines Shell-Programms Eingaben durchführen. In der Regel geben Sie dazu zuerst mit echo einen kurzen Text aus, in dem Sie den Anwender darüber informieren, welche Eingabe Sie erwarten (beispielsweise y/n, einen numerischen Wert etc.). Dabei ist die Option -n sinnvoll, damit die Eingabe unmittelbar hinter dem echo-Text und nicht in der nächsten Zeile erfolgt. Bei der Ausführung des anschließenden read-Kommandos wartet die bash so lange, bis der Anwender eine Zeile eingibt und diese mit (¢) abschließt. Im folgenden Beispielprogramm wird die while-Schleife so lange ausgeführt, bis die Zeichenkette in der Variablen a nicht mehr leer ist. Ein Testlauf demonstriert die Funktion des kleinen Programms: user$ readvar Geben Sie eine Zahl ein: a Ungültige Eingabe, bitte Eingabe wiederholen Geben Sie eine Zahl ein: 12 12
463
Kapitel 19
bash (Shell)
Nach der Eingabe durch read wird der gesamte Inhalt der Variablen via Parametersubstitution gelöscht, wenn darin irgendein Zeichen außer einer Ziffer, einem Minuszeichen oder einem Leerzeichen vorkommt. Diese Kontrolle ist zwar nicht vollkommen (die Zeichenketten "12-34-5" und "12 34" sind demnach beide gültig), aber schon recht wirkungsvoll. Informationen zu while finden Sie auf Seite 468. #! /bin/sh # Beispiel readvar: numerischen Wert einlesen a= # a löschen while [ -z "$a" ]; do echo -n "Geben Sie eine Zahl ein: " read a a=${a##*[^0-9,' ',-]*} # Zeichenketten eliminieren, die # irgendwelche Zeichen außer 0-9, dem # Minuszeichen und dem Leerzeichen # enthalten if [ -z "$a" ]; then echo "Ungültige Eingabe, bitte Eingabe wiederholen" fi done echo $a
19.11 Programmierung – Verzweigungen und Schleifen Verzweigungen in Shell-Programmen können mit den Kommandos if und case gebildet werden. Während sich if eher für einfache Fallunterscheidungen eignet, ist case für die Analyse von Zeichenketten prädestiniert (Mustervergleich).
if-Verzweigungen In der Shell-Datei iftst wird durch eine if-Abfrage getestet, ob zwei Parameter übergeben wurden. Wenn das nicht der Fall ist, wird eine Fehlermeldung ausgegeben. Das Programm wird durch exit mit einem Rückgabewert ungleich 0 (Indikator für Fehler) beendet. Andernfalls wird der Inhalt der beiden Parameter auf dem Bildschirm angezeigt. #! /bin/sh # Beispiel iftst if test $# -ne 2; then echo "Dem Kommando müssen genau zwei Parameter übergeben werden!" exit 1 else echo "Parameter 1: $1, Parameter 2: $2" fi Ein kurzer Testlauf demonstriert das Verhalten des Programms:
464
Programmierung – Verzweigungen und Schleifen
user$ iftst Dem Kommando user$ iftst Parameter 1:
Abschnitt 19.11
a müssen genau zwei Parameter übergeben werden! a b a, Parameter 2: b
Als Kriterium für die Verzweigung gilt der Rückgabewert des letzten Kommandos vor then. Die Bedingung ist erfüllt, wenn dieses Kommando den Rückgabewert 0 liefert. Wenn then noch in derselben Zeile angegeben wird (und nicht erst in der nächsten), dann muss das Kommando mit einem Semikolon abgeschlossen werden. Achtung
Beachten Sie bitte, dass in der bash die Wahrheitswerte für wahr (0) und falsch (ungleich 0) genau umgekehrt definiert sind als in den meisten anderen Programmiersprachen! Kommandos, die ordnungsgemäß beendet werden, liefern den Rückgabewert 0. Jeder Wert ungleich 0 deutet auf einen Fehler hin. Manche Kommandos liefern je nach Fehlertyp unterschiedliche Fehlerwerte. Im obigen Beispiel wurde die Bedingung unter Zuhilfenahme des bash-Kommandos test gebildet. Der Operator -ne steht dabei für ungleich (not equal). test kommt immer dann zum Einsatz, wenn zwei Zeichenketten oder Zahlen miteinander verglichen werden sollen, wenn getestet werden soll, ob eine Datei existiert etc. Das Kommando wird im nächsten Abschnitt beschrieben. Das obige Programm könnte auch anders formuliert werden: Statt des test-Kommandos kann eine Kurzschreibweise in eckigen Klammern verwendet werden. Dabei muss nach [ und vor ] jeweils ein Leerzeichen angegeben werden! Außerdem kann das zweite echo-Kommando aus der if-Struktur herausgelöst werden, weil wegen der exit-Anweisungen alle Zeilen nach fi nur dann ausgeführt werden, wenn die Bedingung erfüllt ist. #! /bin/sh # Beispiel iftst, 2. Variante if [ $# -ne 2 ]; then echo "Dem Kommando müssen genau zwei Parameter übergeben werden!" exit 1 fi echo "Parameter 1: $1, Parameter 2: $2"
Formulierung von Bedingungen mit test In der bash ist es nicht möglich, Bedingungen – etwa den Vergleich einer Variablen mit einem Wert – direkt anzugeben. Zum einen basiert die ganze Konzeption der bash darauf, dass alle Aktionen über ein einheitliches Kommandokonzept durchgeführt werden, zum anderen sind Sonderzeichen wie > und < bereits für andere Zwecke vergeben. Aus diesem Grund müssen Sie zur Formulierung von Bedingungen in Schleifen und Verzweigungen das bash-Kommando test verwenden. (test existiert übrigens auch als eigenständiges Kommando außerhalb der bash. Es wurde aber auch in die bash integriert, um eine höhere Verarbeitungsgeschwindigkeit zu erzielen.) test liefert als Rückgabewert 0 (wahr), wenn die Bedingung erfüllt ist, oder 1 (falsch), wenn die Bedingung nicht erfüllt ist. Um den Schreibaufwand zu verringern, ist eine Kurzschreibweise in eckigen Klammern vorgesehen. Das Kommando ist auf Seite 1223 ausführlich beschrieben.
465
Kapitel 19
bash (Shell)
test wird in drei Aufgabenbereichen eingesetzt: zum Vergleich zweier Zahlen, zum Vergleich von Zeichenketten und zum Test, ob eine Datei existiert und bestimmte Eigenschaften aufweist. Die folgenden Beispiele zeigen einige mögliche Anwendungsfälle: test "$x" überprüft, ob x belegt ist (d. h., das Ergebnis ist falsch, wenn die Zeichenkette 0 Zeichen aufweist, andernfalls wahr). test $x -gt 5 testet, ob die Variable x einen Zahlenwert größer 5 enthält. Wenn x keine Zahl enthält, kommt es zu einer Fehlermeldung. Statt -gt (greater than) können auch die folgenden Vergleichsoperatoren verwendet werden: -eq (equal), -ne (not equal), -lt (less than), -le (less equal) und -ge (greater equal). test -f $x testet, ob eine Datei mit dem in x angegebenen Namen existiert. Wenn test interaktiv in der Shell ausgeführt werden soll, muss nach dem test-Kommando die Variable $? (Rückgabewert des letzten Kommandos) mit echo gelesen werden: user$ user$ 0 user$ 1
a=20 test $a -eq 20; echo $? test $a -gt 20; echo $?
case-Verzweigungen case-Konstruktionen werden mit dem Schlüsselwort case eingeleitet, dem der zu analysierende Parameter (zumeist eine Variable) folgt. Nach dem Schlüsselwort in können dann mehrere mögliche Musterzeichenketten angegeben werden, mit denen der Parameter verglichen wird. Dabei sind die gleichen Jokerzeichen wie bei Dateinamen erlaubt. Das Muster wird mit einer runden Klammer ) abgeschlossen, also etwa mit --*) zur Erkennung von Zeichenketten, die mit zwei Minuszeichen beginnen. Mehrere Muster können durch | voneinander getrennt werden. In diesem Fall werden beide Muster getestet. Beispielsweise dient *.c|*.h) zur Erkennung von *.c- und *.h-Dateien im selben Zweig. Die der Klammer folgenden Kommandos müssen durch zwei Semikola abgeschlossen werden. Wenn ein else-Zweig benötigt wird, dann muss als letztes Muster * angegeben werden – alle Zeichenketten entsprechen diesem Muster. Bei der Abarbeitung einer case-Konstruktion wird nur der erste Zweig berücksichtigt, bei dem der Parameter dem angegebenen Muster entspricht. Das folgende Beispiel casetst zeigt die Anwendung von case zur Klassifizierung der übergebenen Parameter in Dateinamen und Optionen. Die Schleife für die Variable i wird für alle der Shell-Datei übergebenen Parameter ausgeführt. Innerhalb dieser Schleife wird jeder einzelne Parameter mit case analysiert. Wenn der Parameter mit einem Bindestrich (-) beginnt, wird der Parameter an das Ende der Variablen opt angefügt, andernfalls an das Ende von dat.
466
Programmierung – Verzweigungen und Schleifen
Abschnitt 19.11
#! /bin/sh # Beispiel casetst opt= # opt und dat löschen dat= for i do # Schleife für alle übergebenen Parameter case "$i" in -* ) opt="$opt $i";; * ) dat="$dat $i";; esac done # Ende der Schleife echo "Optionen: $opt" echo "Dateien: $dat" Ein Beispiellauf der Shell-Datei beweist die Wirkungsweise dieser einfachen Fallunterscheidung. Die in ihrer Reihenfolge wahllos übergebenen Parameter werden in Optionen und Dateinamen untergliedert: user$ casetst -x -y dat1 dat2 -z dat3 Optionen: -x -y -z Dateien: dat1 dat2 dat3 Nach demselben Schema können case-Verzweigungen auch zur Klassifizierung von bestimmten Dateikennungen verwendet werden (indem im Suchmuster *.abc angegeben wird). Wenn Sie sich eingehender mit case-Analysen beschäftigen möchten, sollten Sie sich die Shell-Datei /usr/bin/ gnroff ansehen. Die Datei bereitet die in der Syntax von nroff übergebenen Parameter so auf, dass das verwandte Kommando groff damit zurechtkommt.
for-Schleifen Die bash kennt drei Kommandos zur Bildung von Schleifen: for führt eine Schleife für alle Elemente einer angegebenen Liste aus. while führt eine Schleife so lange aus, bis die angegebene Bedingung nicht mehr erfüllt ist, until führt sie dagegen so lange aus, bis die Bedingung zum ersten Mal erfüllt ist. Alle drei Schleifen können mit break vorzeitig verlassen werden. continue überspringt den restlichen Schleifenkörper und setzt die Schleife mit dem nächsten Schleifendurchlauf fort. Im ersten Beispiel werden der Variablen i der Reihe nach die Zeichenketten a, b und c zugewiesen. Im Schleifenkörper wird zwischen do und done der Inhalt der Variablen ausgegeben. Beachten Sie, dass sowohl am Ende der Liste als auch am Ende des echo-Kommandos ein Strichpunkt erforderlich ist. Auf diese Strichpunkte kann nur verzichtet werden, wenn die Eingabe auf mehrere Zeilen verteilt wird (was in Script-Dateien häufig der Fall ist). user$ a b c
for i in a b c; do echo $i; done
Die äquivalente mehrzeilige Formulierung des obigen Kommandos in einer Script-Datei würde so aussehen:
467
Kapitel 19
bash (Shell)
#! /bin/sh for i in a b c; do echo $i done Die Liste für for kann auch mit Jokerzeichen für Dateinamen oder mit {..}-Konstruktionen zur Bildung von Zeichenketten (siehe Seite 446) gebildet werden. Im folgenden Beispiel werden alle *.tex-Dateien in *.tex~-Dateien kopiert. (Das Zeichen ~ am Ende eines Dateinamens bezeichnet unter Unix/Linux üblicherweise eine Backup-Datei. Beim cp-Kommando ist $file jeweils in Anführungszeichen gestellt, damit auch Dateinamen mit Leerzeichen korrekt behandelt werden.) user$
for file in *.tex; do cp "$file" "$file~"; done
Wenn for-Schleifen ohne in ... gebildet werden, dann werden der Schleifenvariablen der Reihe nach alle beim Aufruf übergebenen Parameter übergeben (das entspricht also in $*). Ein Beispiel für so eine Schleife finden Sie bei der Beschreibung von case. Wenn an das case-Beispiel Dateinamen mit Leerzeichen übergeben werden, kommt es allerdings zu Problemen: Die bash interpretiert das Leerzeichen als Trennzeichen und verarbeitet die Teile des Dateinamens getrennt. Abhilfe schafft die folgende Konstruktion: #!/bin/bash # Schleife über alle Parameter, kommt mit Leerzeichen in den Dateinamen zurecht for i in "$@"; do ls -l "$i" done
while-Schleifen Im folgenden Beispiel wird der Variablen i der Wert 1 zugewiesen. Anschließend wird die Variable im Schleifenkörper zwischen do und done so oft um 1 erhöht, bis der Wert 5 überschritten wird. Beachten Sie, dass Bedingungen wie bei if-Verzweigungen mit dem Kommando test bzw. mit dessen Kurzschreibweise in eckigen Klammern angegeben werden müssen. user$ 1 2 3 4 5
i=1; while [ $i -le 5 ]; do echo $i; i=$[$i+1]; done
Die folgende Schleife verarbeitet alle Dateinamen, die sich aus dem Kommando ls *.jpg ergeben: ls *.jpg | while read file do echo "$file" done
468
Referenz wichtiger bash-Sonderzeichen
Abschnitt 19.12
until-Schleifen Der einzige Unterschied zwischen until-Schleifen und while-Schleifen besteht darin, dass die Bedingung logisch negiert formuliert wird. Das folgende Kommando ist daher zur obigen whileSchleife äquivalent. Dabei wird -gt zur Formulierung der Bedingung i>5 (greater than) verwendet. user$ 1 2 3 4 5
i=1; until [ $i -gt 5 ]; do echo $i; i=$[$i+1]; done
19.12 Referenz wichtiger bash-Sonderzeichen Sowohl bei der Eingabe von Kommandos als auch bei der Shell-Programmierung können Sie eine unüberschaubare Fülle von Sonderzeichen für diverse Aktionen verwenden. Tabelle 19.6 fasst alle Sonderzeichen zusammen, die in diesem Kapitel behandelt wurden. ZEICHEN
BEDEUTUNG
;
trennt mehrere Kommandos.
:
Shell-Kommando, das nichts tut
.
Shell-Programm ohne eigene Subshell starten (. datei, entspricht source datei)
#
leitet einen Kommentar ein.
#!/bin/sh
identifiziert die gewünschte Shell für das Shell-Programm.
&
führt das Kommando im Hintergrund aus (kom &).
&&
bedingte Kommandoausführung (kom1 && kom2)
&>
Umleitung von Standardausgabe und -fehler (entspricht >&)
|
bildet Pipes (kom1 | kom2).
||
bedingte Kommandoausführung (kom1 jj kom2)
*
Jokerzeichen für Dateinamen (beliebig viele Zeichen)
?
Jokerzeichen für Dateinamen (ein beliebiges Zeichen)
[abc]
Jokerzeichen für Dateinamen (ein Zeichen aus abc)
[ ausdruck ]
Kurzschreibweise für test ausdruck
(...)
Kommandos in derselben Shell ausführen ((kom1; kom2))
Tabelle 19.6: bash-Sonderzeichen
469
Kapitel 19
Tabelle 19.6: bash-Sonderzeichen (Forts.)
470
bash (Shell)
ZEICHEN
BEDEUTUNG
{...}
Kommandos gruppieren
{ , , }
Zeichenketten zusammensetzen (a{1,2,3} ! a1 a2 a3)
{a..b}
Zeichenketten zusammensetzen (b{4..6} ! b4 b5 b6)
~
Abkürzung für das Heimatverzeichnis
>
Ausgabeumleitung in eine Datei (kom > dat)
>>
Ausgabeumleitung; an vorhandene Datei anhängen
>&
Umleitung von Standardausgabe und -fehler (entspricht &>)
2>
Umleitung der Standardfehlerausgabe
/proc/sys/vm/laptop_mode
Beachten Sie aber, dass ein zu häufiges Ein- und Ausschalten die Lebensdauer von Festplatten verkürzen kann (siehe auch http://lwn.net/Articles/257426/). Der Laptop-Modus sollte nicht auf Desktop-PCs verwendet werden, weil deren Festplatten zumeist für weniger Ein/Aus-Zyklen konzipiert sind. Außerdem muss Ihnen natürlich klar sein, dass Sie im Falle eines Absturzes alle nicht gesicherten Daten verlieren. In der Regel wird der Laptop-Modus durch die Scripts und Konfigurationsdateien des Pakets laptopmode-tools gesteuert. Dieses Paket führt auch diverse andere Energiesparmaßnahmen durch. Die Konfiguration erfolgt durch die Dateien im Verzeichnis /etc/laptop-mode (siehe man laptopmode.conf). Weitere Informationen zum Laptop-Modus und zu den laptop-mode-tools finden Sie unter: http://samwel.tk/laptop_mode/
Schnittstellen und Bussysteme Unter Linux sind serielle bzw. parallele Schnittstellen über die Device-Dateien /dev/ttySn bzw. /dev/lpn zugänglich. Am ehesten treffen Sie auf diese veralteten Schnittstellen bei der Konfiguration eines Analogmodems bzw. eines alten Druckers.
Serielle und parallele Schnittstelle
Interne Festplatten, CD- und DVD-Laufwerke sowie diverse andere Datenträger sind in der Regel über die Bussysteme IDE, SATA oder SCSI mit dem Rechner verbunden (siehe auch Seite 608). Aktuelle Linux-Versionen kommunizieren mit IDE-, SATA- und SCSI-Geräten über das SCSI-System des Kernels. Nur bei wenigen IDE-Controllern, die inkompatibel zur der libata-Erweiterung des SCSISystems ist, kommen noch die alten IDE-Treiber zum Einsatz.
IDE, SATA, SCSI
Informationen über den Zustand der IDE- und SCSI-Systeme und aller damit verwalteten Geräte geben das Kommando lsscsi sowie die folgenden Dateien: /sys/bus/ide/* /sys/bus/scsi/* /proc/scsi/* Der Universal Serial Bus (USB) wird zur Verbindung zwischen dem Computer und diversen externen Geräten eingesetzt – von der Maus bis zum Scanner. Die erforderlichen USB-Kernelmodule werden automatisch geladen. USB-Datenträger (also USB-Festplatten, Memorysticks, externe CD- und DVD-Laufwerke) etc. werden wie SCSI-Geräte behandelt.
USB
501
Kapitel 20
Basiskonfiguration
Das virtuelle Dateisystem usbfs gibt im Verzeichnis /proc/usb Informationen über alle angeschlossenen USB-Geräte. Weitere Daten können Sie dem Verzeichnis /sys/bus/usb entnehmen. Eine ausführliche Liste aller USB-Schnittstellen und -Geräte liefert lsusb -v (Paket usbutils). Firewire
Das Bussystem Firewire ist eine Alternative zu USB. Firewire ist durch den Standard IEEE 1394 definiert und auch unter dem von Sony bevorzugten Namen i.Link bekannt. Firewire ist etwas schneller als USB und ist vor allem zur Datenübertragung von Videokameras beliebt. Umfassende Informationen zum Thema Linux und IEEE 1394 finden Sie auf der folgenden Website: http://www.linux1394.org/ Beim Anschluss von Firewire-Geräten werden die erforderlichen Module (insbesondere ieee1394) automatisch geladen. Informationen über die angeschlossenen Geräte und den Status des FirewireSystems geben die Dateien in /sys/bus/ieee1394.
PCI
Informationen über PCI-Komponenten in Ihrem Rechner ermitteln Sie am besten mit dem Kommando lspci. Die Dateien in /proc/bus/pci/ und /sys/bus/pci/ enthalten dieselben Informationen, sind aber wesentlich schwieriger zu interpretieren. Die folgende Ausgabe ist aus Platzgründen stark gekürzt: root# lspci 00:00.0 Host bridge: Intel Corporation 82P965/G965 Memory Controller Hub 00:01.0 PCI bridge: Intel Corporation 82P965/G965 PCI Express Root Port 00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI #4 00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller 00:1f.0 ISA bridge: Intel Corporation 82801HB/HR (ICH8/R) LPC Interface Controller 00:1f.2 IDE interface: Intel Corporation 82801H (ICH8 Family) 4 port SATA IDE Controller 00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller 01:00.0 VGA compatible controller: nVidia Corporation G70 [GeForce 7600 GS] 02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller (rev 12) 05:03.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller
PCMCIA
Die fast unaussprechliche Abkürzung PCMCIA steht für Personal Computer Memory Card International Association. PCMCIA-Karten sind kreditkartengroße Erweiterungskarten für Notebooks, wobei die Erweiterungen natürlich nicht auf Speicherkarten beschränkt sind, sondern eine weite Palette umfassen. Für die meisten Linux-Anwender sind WLAN-, UMTS- und ISDN-Karten wohl die wichtigsten. Es gibt zwei Typen von PCMCIA-Karten, sogenannte PC-Cards (alt) und CardBus-Karten (neu). Der Unterschied besteht darin, dass die Datenübertragung zwischen Notebook und Karte im einen Fall über einen 16-Bit-Bus, im anderen Fall über einen 32-Bit-Bus erfolgt. Linux unterstützt beide Kartentypen. Linux-kompatible PCMCIA-Karten werden vom Hotplug-System erkannt (siehe den folgenden Abschnitt) und automatisch initialisiert. pccardctl liefert Informationen zu den eingesteckten PCMCIA-Karten. Da die Karten intern in der Regel über den PCI-Bus angesprochen werden, verweist
502
Hardware-Referenz
Abschnitt 20.6
das Programm oft auf lspci. Mit pccardctl können Sie auch einige PCMCIA-Funktionen steuern und beispielsweise die Stromversorgung von PCMCIA-Karten unterbrechen. Detaillierte Informationen zur Konfiguration von LAN- und WLAN-Schnittstellen sowie zum Umgang mit Modems finden Sie in Kapitel 28 ab Seite 791.
NetzwerkSchnittstellen
Bluetooth ist ein Verfahren zur Kommunikation von Hardware-Geräten per Funk. Bluetooth hat eine geringere Reichweite als WLAN und wird überwiegend in elektronischen Kleingeräten eingesetzt (Tastaturen, Mäuse, Handys etc.). Linux kommt mit den meisten Bluetooth-Geräten auf Anhieb und ohne besondere Konfigurationsarbeiten zurecht.
Bluetooth
Unter Gnome helfen das im Panel angezeigte bluetooth-applet sowie der bluetooth-wizard beim Einrichten neuer Bluetooth-Geräte. Unter KDE übernehmen diese Aufgaben kbluetooth und der kbluetooth-devicemanager. Hinter den Kulissen ist der Dämon bluetoothd im Zusammenspiel mit udev für die Verwaltung der Bluetooth-Geräte verantwortlich. Die entsprechenden Konfigurationsdateien befinden sich im Verzeichnis /etc/bluetooth. Weitere Informationen zu Bluetooth unter Linux finden Sie hier: http://www.bluez.org/ Grafikkarten werden unter Linux durch das X Window System genutzt. Dessen Konfiguration ist Thema eines eigenen Kapitels, das auf Seite 555 beginnt.
Grafik (X)
Hotplug-System Bei modernen Rechnern können im laufenden Betrieb Festplatten, USB-Sticks, Erweiterungskarten und andere Geräte verbunden bzw. wieder entfernt werden. Linux muss auf die geänderte Hardware-Situation rasch und möglichst automatisch reagieren. Diese Aufgabe übernimmt das Hotplug-System, dessen Komponenten im Verlauf der letzten Jahre immer wieder verändert wurden. Zuletzt wurde der als ineffizient bekannte Hardware Abstraction Layer (HAL) aus den meisten Distributionen entfernt bzw. nur noch in Sonderfällen aktiviert. Die aktuelle Vorgehensweise sieht so aus: » Kernel: Der Kernel stellt Veränderungen an der Hardware fest, z. B. dass der Benutzer eine CD eingelegt oder einen USB-Stick mit dem Rechner verbunden hat. » udev: Der Kernel erzeugt via udev neue Device-Dateien (siehe Seite 347) und startet geeignete Programme, um die neuen Geräte zu verwalten bzw. um Benachrichtigungen an das DesktopSystem zu versenden. Dabei werden Regeldateien aus den Verzeichnissen /lib/udev/rules.d sowie /etc/udev/rules.d ausgewertet. Tipps zum Verfassen bzw. Verändern dieser Regeln finden Sie hier: http://www.reactivated.net/writing_udev_rules.html » DeviceKit: Für manche Geräte bzw. Komponenten hilft das sogenannte DeviceKit bei der Verwaltung. Es besteht aus den Bibliotheken libudev und libgudev, die üblicherweise in gleichnamige Pakete verpackt sind.
503
Kapitel 20
Basiskonfiguration
Für Festplatten(partitionen) und externe Datenträger sind die Programme und Scripts des Pakets udisks verantwortlich (ehemals DeviceKit-disks). Um die Energieverwaltung kümmern sich die Regeln und Programme des Pakets upower (ehemals DeviceKit-power). Weitere, leider eher spärliche Informationen finden Sie hier: http://freedesktop.org/wiki/Software/DeviceKit/ http://www.freedesktop.org/wiki/Software/udisks http://upower.freedesktop.org/ » Desktop: In KDE 4 ist das Device-Framework Solid für die Verarbeitung von HAL- und D-BusNachrichten zuständig. Unter Gnome kümmert sich ab Version 2.22 Nautilus im Zusammenspiel mit PolicyKit (siehe Seite 361) um die externen Datenträger; die Konfiguration erfolgt in Nautilus durch BEARBEITEN jEINSTELLUNGENjDATENTRÄGER. » D-Bus: Zur Kommunikation zwischen den verschiedenen Ebenen des Hotplug-Systems wird das D-Bus-Kommunikationssystem (kurz D-Bus) verwendet. Auf der Basis der Bibliothek libdbus kann die Kommunikation direkt zwischen zwei Programmen erfolgen. Wenn Nachrichten zwischen mehreren Programmen ausgetauscht werden sollen, kommt als zentrale Vermittlungsstelle das Hintergrundprogramm dbus-daemon zum Einsatz.
Audio-System (ALSA) ALSA
ALSA steht für Advanced Linux Sound Architecture und ist seit Kernel 2.6 für die Ansteuerung von Sound-Karten auf unterster Ebene verantwortlich. In früheren Kernelversionen kam stattdessen OSS (Open Sound System) zum Einsatz. ALSA bietet bei Bedarf durch die Module snd-pcm-oss, sndseq-oss und snd-mixer-oss eine Kompatibilitätsschicht zu OSS. Bei vom Kernel unterstützten Audio-Controllern wird das erforderliche ALSA-Modul automatisch geladen. Die Namen aller ALSA-Module beginnen mit snd. lsmod j grep snd liefert daher einen raschen Überblick über alle aktiven ALSA-Module. Der Zugriff auf diverse Soundfunktionen erfolgt über Dateien im Verzeichnis /proc/asound. Die Konfiguration des ALSA-Systems erfolgt durch die Dateien /etc/alsa/*, /etc/asound.conf sowie ~/.asoundrc. Bei einer gewöhnlichen Nutzung des Audio-Systems besteht keine Notwendigkeit, diese Dateien zu verändern. Die Hardware-Erkennung sollte automatisch erfolgen. Wer besondere Audio-Anforderungen hat (Musiker), zwischen mehreren Audio-Karten differenzieren will oder andere Sonderwünsche hat, findet auf der folgenden Website und dem dazugehörenden Wiki umfassende Hintergrundinformationen zu ALSA und zu seiner Konfiguration: http://www.alsa-project.org/ Beim Herunterfahren des Rechners bzw. beim nächsten Neustart werden durch ein Init-V-Script (siehe Seite 736) die aktuellen Lautstärkeeinstellungen gespeichert bzw. wiederhergestellt.
ALSA-Tools
504
Zur direkten Nutzung von ALSA stehen diverse Kommandos zur Auswahl (Paket alsa-utils), von denen hier die wichtigsten kurz vergestellt werden: alsactl speichert bzw. lädt alle ALSAEinstellungen (Lautstärke etc.). alsamixer verändert die Lautstärke bzw. den Eingangspegel diverser ALSA-Audio-Kanäle. aplay spielt eine Audio-Datei ab. arecord nimmt eine Audio-Datei auf.
Hardware-Referenz
Tipp
Wenn die Lautsprecher still bleiben, ist die Ursache oft nur ein auf 0 gestellter Lautstärkeregler. Für gewöhnliche Anwendungen sind drei Kanäle wichtig: Die Master-Lautstärke steuert die Lautstärke des Gesamtsignals. Die PCM-Lautstärke gibt an, wie laut von Audio- und Video-Playern erzeugte Audio-Daten in das Gesamtsignal eingespeist werden. (PCM steht für Pulse Code Modulation.) Die CD-Lautstärke gibt schließlich an, wie laut die direkt vom CD-Laufwerk kommenden Daten in das Gesamtsignal einfließen, wenn das CD-Laufwerk und die Audio-Karte mit einem Kabel verbunden sind.
Abschnitt 20.6
Bei modernen Distributionen fehlen bisweilen grafische Benutzeroberflächen, um die AudioEingänge und -Ausgänge einzeln einzustellen. Abhilfe: Starten Sie alsamixer in einer Textkonsole. Nun können Sie mit den Cursortasten die Kanäle auswählen und deren Pegel justieren. M schaltet einen Kanal ganz ein bzw. wieder aus (mute). Viele Audio-Programme verwenden ALSA nicht direkt, sondern greifen auf Sound-Bibliotheken, Sound-Server etc. zurück. Diese Zwischenschicht zwischen dem Low-Level-System ALSA und den eigentlichen Audio-Anwendungen soll die Programmierung vereinfachen, Audio-Anwendungen netzwerktauglich machen und die konfliktfreie Kooperation gleichzeitig laufender Audio-Programme sicherstellen.
AudioBibliotheken
Das Problem besteht nun darin, dass es momentan keine einheitliche Audio-Architektur oberhalb von ALSA gibt: KDE und Gnome gehen jeweils eigene Wege. Anspruchsvolle Audio-Anwendungen, für die die vorhandenen Audio-Bibliotheken unzureichend sind, implementieren elementare AudioFunktionen selbst neu. Es ist extrem schwierig, Audio-Programme zu entwickeln, die unabhängig vom Desktop-System einfach funktionieren. Programmierer der Firma Adobe gaben AudioProbleme als einen wesentlichen Grund dafür an, weswegen die Entwicklung des Flash-Plugins für Linux so lange dauerte. Die folgenden Punkte stellen einige gängige Audio-Systeme kurz vor: » aRts: aRts steht für Analog Real-Time Synthesizer und ist die Audio-Basis von KDE 2.n und 3.n. aRts besteht aus einer Reihe von Modulen, die Audio-Daten erzeugen, filtern, vereinen etc. KDEProgramme sprechen aRts über den Dämon artsd an, der zusammen mit KDE gestartet wird. Programme, die nicht aRts-kompatibel sind, werden via artsdsp umgeleitet. aRts wird allerdings nicht mehr gewartet und ist mit KDE 4 obsolet. » EsounD: EsounD steht für Enlightened Sound Daemon und war das Gnome-Gegenstück zu aRts. EsounD-kompatible Programme senden Audio-Daten an den Dämon esd, der zusammen mit Gnome gestartet wird. EsounD hat ein ähnliches Schicksal erlitten wie aRts: Das Programm wird zwar aus Kompatibilitätsgründen noch immer mit Gnome installiert, die meisten AudioAnwendungen greifen aber mittlerweile auf GStreamer zurück. » GStreamer: Die GStreamer-Bibliothek ist ein umfassendes Multimedia-Framework (Audio und Video), das von vielen Gnome-Programmen eingesetzt wird. Dank einer Plugin-Architektur ist es sehr modular und kann gut erweitert werden. Auch Codecs zur Verarbeitung verschiedener Audio- und Video-Formate sind als Plugins verfügbar. Anders als aRts und EsounD enthält die GStreamer-Bibliothek keinen Sound-Dämon. Dessen Hauptaufgabe, nämlich das Zusammenführen mehrerer Audio-Signale, übernimmt direkt ALSA. Weitere Informationen finden Sie hier: http://www.gstreamer.net/
505
Kapitel 20
Basiskonfiguration
» Phonon: Das Multimedia-Fundament von KDE 4 heißt Phonon. Die Bibliothek bietet eine einheitliche Programmierschnittstelle (API) zur Nutzung von Audio- und Video-Funktionen, die auf vorhandene Multimedia-Bibliotheken zurückgreift (oft Xine, aber je nach installiertem Backend kommen auch GStreamer oder VLC in Frage). Phonon wird auch von der Qt-Bibliothek als Multimedia-Schnittstelle verwendet. Weitere Details verrät die Phonon-Website: http://phonon.kde.org/ » PulseAudio: PulseAudio ist ein netzwerkfähiger Sound-Server, der ähnliche Funktionen wie das Programm esd bietet und dieses auf aktuellen Distributionen ersetzt. Auf den ersten Blick werden Sie davon nichts bemerken – alles sollte wie bisher funktionieren. Hinter den Kulissen hat sich aber eine Menge getan: Alle Audio-Streams können mit dem Programm pavucontrol getrennt gesteuert und unterschiedlichen Audio-Karten bzw. -Ausgabegeräten zugewiesen werden. PulseAudio sollte auch zusätzliche Audio-Hardware – z. B. USB-Boxen – automatisch erkennen und aktivieren. Weitere Details verraten die folgenden Seiten: http://pulseaudio.org/ http://pulseaudio.org/wiki/FAQ Zu diesen Audio-Systemen gesellen sich diverse Programme, die selbst umfassende Audio- bzw. Multimedia-Bibliotheken enthalten und diese auch anderen Programmen zur Verfügung stellen. Prominente Beispiele sind der RealPlayer bzw. Helix Player auf Basis der Helix DNA oder der Video-Player Xine auf Basis der xinelib. Man kann sich leicht ausrechnen, dass Inkompatibilitäten zwischen verschiedenen Audio-Programmen und -Bibliotheken wortwörtlich vorprogrammiert sind. Weitere Hintergründe zum unbefriedigenden Zustand des Linux-Audio-Systems sind im Artikel Audio: it’s a mess zusammengefasst. Der im September 2008 verfasste Artikel ist zwar nicht mehr ganz neu, aber leider noch immer weitgehend aktuell. http://lwn.net/Articles/299211/ Für Musiker bzw. professionelle Audio-Anwender gibt es eigene Distributionen, die speziell in Hinblick auf die optimale und störungsfreie Nutzung der Audio-Programme zusammengestellt sind. Am populärsten ist zurzeit Ubuntu Studio (http://ubuntustudio.org/).
20.7 Logging Der Kernel, diverse administrative Werkzeuge (PAM, APT, dpkg) und die meisten Netzwerkdienste protokollieren alle erdenklichen Ereignisse in zahllose Dateien in /var/log. Diese Logging-Dateien sind während der Inbetriebnahme eines neuen Dienstes ausgesprochen praktisch, um Konfigurationsfehler zu finden.
Syslog (rsyslogd) Damit nicht jedes Programm das Rad neu erfinden muss, greifen der Kernel sowie eine Menge administrativer Werkzeuge und Server-Dienste auf zentrale Logging-Funktionen zurück, die üblicherweise als Syslog bezeichnet werden. Bei den meisten aktuellen Distributionen (Fedora, openSUSE, Ubuntu) kommt hierfür das Programm rsyslogd zum Einsatz.
506
Logging
Abschnitt 20.7
Beachten Sie, dass durchaus nicht alle Netzwerkdienste Syslog nutzen! Insbesondere die »großen« Server-Dienste, beispielsweise Apache, CUPS und Samba, verwenden jeweils ihre eigenen, in das Programm integrierten Logging-Funktionen. Sie entziehen sich damit der globalen SyslogKonfiguration. Die Logging-Parameter werden vielmehr in den jeweiligen Konfigurationsdateien des Programms eingestellt. Wenn Sie sich einen Überblick über die von Syslog verwalteten LoggingDateien verschaffen möchten, führen Sie die folgenden Kommandos aus: root# root#
cd /var/log ls $(find -user syslog)
Die Konfiguration von rsyslogd erfolgt durch die Dateien /etc/rsyslogd.conf und /etc/rsyslog.d/ *.conf. Für die meisten Dienste ist die Konfigurationsdatei 50-default.conf entscheidend. Diese Datei enthält Regeln, die aus zwei Teilen bestehen: Der erste Teil (Selektor) gibt an, was protokolliert werden soll, der zweite Teil (Aktion) gibt an, was mit der Meldung geschehen soll. Regeln können mit dem Zeichen \ über mehrere Zeilen verteilt werden. Es ist möglich, dass auf eine Meldung mehrere Regeln zutreffen. In diesem Fall wird die Meldung mehrfach protokolliert bzw. weitergegeben.
Konfiguration
Jeder Selektor besteht aus zwei durch einen Punkt getrennten Teilen: dienst.prioritätsstufe. Es ist erlaubt, mehrere durch einen Strichpunkt separierte Selektoren anzugeben. Des Weiteren können in einem Selektor mehrere Dienste durch Kommas getrennt werden. Alle Linux-Programme, die Syslog verwenden, müssen ihren Meldungen einen Dienst und eine Priorität zuordnen. Syslog kennt die folgenden Dienste (Facilities): auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, syslog, user, uucp sowie local0 bis local7. Das Zeichen * umfasst alle Dienste. Syslog kennt außerdem diese Prioritätsstufen (in steigender Wichtigkeit): debug, info, notice, warning = warn, error = err, crit, alert und emerg = panic. Die Schlüsselwörter warn, error und panic gelten als veraltet – verwenden Sie stattdessen warning, err und emerg. Das Zeichen * umfasst alle Prioritätsstufen. Das Schlüsselwort none gilt für Nachrichten, denen keine Priorität zugeordnet ist. Die Angabe einer Prioritätsstufe schließt alle höheren (wichtigeren) Prioritätsstufen mit ein. Der Selektor mail.err umfasst also auch crit-, alert- und emerg-Meldungen des Mail-Systems. Wenn Sie explizit nur Nachrichten einer bestimmten Priorität wünschen, stellen Sie das Zeichen = voran (also etwa mail.=err). Als Aktion wird normalerweise der Name einer Logging-Datei angegeben. Normalerweise werden Logging-Dateien nach jeder Ausgabe synchronisiert. Wenn dem Dateinamen ein Minuszeichen vorangestellt ist, verzichtet Syslog auf die Synchronisierung. Das ist wesentlich effizienter, allerdings gehen dann bei einem Absturz noch nicht physikalisch gespeicherte Meldungen verloren. Syslog kann Nachrichten auch an FIFO-Dateien (First In First Out) oder Pipes weiterleiten. In diesem Fall stellen Sie dem Dateinamen das Zeichen j voran. Die im folgenden Listing vorkommende Datei /dev/xconsole ist eine besondere FIFO-Datei zur Weitergabe von Meldungen an das Grafiksystem X. Das Zeichen * bedeutet, dass die Nachricht an alle in Konsolen bzw. via SSH eingeloggten Benutzer gesendet wird. Da das sehr störend ist, wird es standardmäßig nur für kritische Meldungen verwendet.
507
Kapitel 20
Basiskonfiguration
Weitere Details zur Syntax von rsyslog.conf gibt die gleichnamige man-Seite. Die folgenden Zeilen geben die Syslog-Standardkonfiguration von Ubuntu leicht gekürzt und etwas übersichtlicher formatiert wieder: # Datei /etc/rsyslog.d/50-default.conf bei Ubuntu # Selektor Aktion auth,authpriv.* /var/log/auth.log . ;auth,authpriv.none -/var/log/syslog * * daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log user.* -/var/log/user.log mail.* -/var/log/mail.log mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err *.=debug;\ auth,authpriv.none;\ news.none;mail.none -/var/log/debug *.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/messages *.emerg * daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ | /dev/xconsole *.=notice;*.=warn Im Klartext bedeutet die obige Konfiguration: » /var/log/auth enthält Authentifizierungsmeldungen aller Prioritätsstufen. Dazu zählen gescheiterte und erfolgreiche Login-Versuche (auch via SSH), PAM-Meldungen, sudo-Kommandos etc. Als einzige Logging-Datei wird auth bei jeder Meldung sofort synchronisiert. » /var/log/syslog enthält alle via Syslog protokollierten Meldungen (inklusive Authentifizierungsmeldungen, denen keine Priorität zugewiesen ist). Der allumfassende Ansatz ist zugleich ein Vorund ein Nachteil. Einerseits können Sie so aus einer einzigen Datei alle erdenklichen Informationen extrahieren. Andererseits ist es in diesem Sammelsurium natürlich besonders schwierig, relevante Einträge zu finden. » /var/log/daemon.log ist speziell für Nachrichten von Dämonen (Netzwerkdiensten) gedacht. Alle Netzwerkdienste, die Syslog verwenden, protokollieren dort ihre Fehlermeldungen. Dazu zählen beispielsweise dhcpd, kadmind, krb5*, mountd, named, pptpd, squid etc. Wenn es bei der Installation eines neuen Dienstes Probleme gibt, sollte die daemon-Datei die erste Anlaufstelle sein. » /var/log/kern.log enthält alle Kernelmeldungen. » /var/log/lpr.log ist für Meldungen des Drucksystems gedacht. Die Datei ist aber normalerweise leer, weil CUPS seine eigenen Logging-Funktionen verwendet und in Dateien des Verzeichnisses /var/log/cups/ protokolliert.
508
Logging
Abschnitt 20.7
» /var/log/user.log ist für allgemeine, benutzerspezifische Meldungen gedacht. Auf Servern finden Sie hier meist nur wenige Nachrichten von untergeordneter Bedeutung. » Die Nachrichten des Mail-Systems (z. B. Postfix) werden über mehrere Dateien verteilt. In mail.log und mail.info werden alle Nachrichten gespeichert, in mail.warn Nachrichten, die zumindest die Prioritätsstufe warn erreichen, und schließlich in mail.err Fehlermeldungen. Wenn auf Ihrem Rechner also ein Mail-Server läuft, gibt Ihnen ein Blick in die zumeist kleine Datei mail.err sofort einen Überblick über kritische Fehler. mail.warn enthält schon mehr (und nicht ganz so wichtige) Meldungen usw. » /var/log/debug enthält Debugging-Nachrichten sowie Meldungen ohne Prioritätsangabe für die Dienste auth, authpriv, news und mail. » /var/log/messages protokolliert allgemeine Hinweise und Warnungen (aber keine Fehlermeldungen!). » Kritische Systemmeldungen (z. B. über einen bevorstehenden Shutdown oder über KernelFehler) werden an alle Konsolen weitergeleitet. » Außerdem werden diverse Warnungen und Fehlermeldungen an das X-System weitergeleitet. Um diese Meldungen unter X zu verfolgen, starten Sie das Programm xconsole. Es sieht wie ein kleines Terminalfenster aus, erlaubt aber keine Eingaben. Meldungen des Kernels werden in einen 16 kByte großen Ringpuffer im RAM geschrieben. Wenn dieser Puffer voll ist, werden alte Nachrichten gelöscht, um Platz für neue Nachrichten zu schaffen. Den Inhalt dieses Ringpuffers können Sie mit dmesg ansehen. Wenn Sie dabei die Option -c angeben, wird der Ringpuffer gleichzeitig geleert.
Kernel-Logging
Alle Kernelnachrichten werden außerdem in die virtuelle Datei /proc/kmsg geschrieben. Diese Datei dient zur Weitergabe der Kernelnachrichten an Syslog. Den dmesg-Kernelmeldungen ist oft eine Zeitangabe in der Form [nnn.nnnnnn] vorangestellt. Die Zahl vor dem Komma gibt die Anzahl der Sekunden seit dem Systemstart an, die weiteren sechs Stellen präzisieren die Zeitangabe auf millionstel Sekunden. Bei der Speicherung der Kernelmeldungen in einer Logging-Datei wird diese Zeitangabe in der Regel durch die absolute Zeit ergänzt. Meldungen des Init-Systems (siehe Kapitel 26) werden leider nur bei wenigen Distributionen aufgezeichnet. Zu den positiven Ausnahmen zählt Fedora (Datei /var/log/boot.log).
Init-Meldungen
logrotate Logging-Dateien haben die Tendenz, langsam, aber sicher ins Unermessliche zu wachsen. Ohne die regelmäßige Komprimierung und Löschung alter Logging-Daten ist /var/log auf kurz oder lang das Verzeichnis mit dem größten Speicherbedarf auf Ihrem Server! Um den Speicherbedarf der Logging-Dateien unter Kontrolle zu behalten, bietet sich logrotate an. Dieses Programm wird einmal täglich durch das Cron-Script /etc/cron.daily/logrotate aufgerufen. Es verarbeitet dann alle Logging-Dateien, die in den Konfigurationsdateien in /etc/logrotate.d beschrieben sind. Wie logrotate mit den Logging-Dateien umgeht, hängt im Detail von der jeweiligen Programmkonfiguration ab. Die prinzipielle Vorgehensweise ist aber immer dieselbe und sieht so aus:
509
Kapitel 20
Basiskonfiguration
» Logrotate benennt bereits vorhandene Logging-Archive um. Aus name.4.gz wird name.5.gz, aus name.3.gz wird name.2.gz etc. Dieser Vorgang wird »rotieren« genannt und gibt dem Paket seinen Namen. » Wenn es mehr als eine vorgegebene Maximalanzahl von Logging-Archiven gibt, werden die ältesten Archivdateien gelöscht. » Logrotate benennt die aktuelle Logging-Datei um. Aus name wird name.0. » Logrotate erzeugt eine neue, leere Logging-Datei name. » Bei den meisten Server-Diensten fordert Logrotate den Dämon durch /etc/init.d/name reload dazu auf, die Konfiguration neu einzulesen. Bei dieser Gelegenheit erkennt der Dämon, dass es eine neue, leere Logging-Datei gibt, und verwendet nun diese. » Logrotate komprimiert name.0 oder name.1 (Option delaycompress). delaycompress vermeidet Konflikte zwischen dem Dämon, der vielleicht noch in name.0 schreibt, und dem Komprimierkommando (üblicherweise gz). Konfiguration
/etc/logrotate.conf enthält einige Defaulteinstellungen für Logrotate. Diese Einstellungen gelten nur, soweit die programmspezifischen Konfigurationsdateien keine abweichenden Daten enthalten. /etc/logrotate.d enthält Detaileinstellungen zu diversen Programmen, die Logging-Dateien produzieren. Diese Dateien stammen nicht aus dem Logrotate-Paket, sondern aus den Paketen des jeweiligen Programms. Das samba-Paket stellt also beispielsweise /etc/logrotate.d/samba zur Verfügung. Das stellt sicher, dass die Dateien zur jeweils installierten Programmversion passen und dass Logrotate den jeweiligen Server-Dienst über das Umbenennen der Logging-Dateien informiert bzw. neu startet. Die folgenden Zeilen zeigen als Beispiel die Konfigurationsdatei für Apache: Logrotate bearbeitet die Logging-Dateien einmal pro Woche. Die Logging-Dateien werden umbenannt und komprimiert. Das Archiv ist auf 52 Dateien limitiert, d. h., Sie können bei Bedarf auf alle Logging-Daten eines ganzen Jahres zurückgreifen. Sofern Apache läuft, wird es durch reload davon informiert, dass es neue Logging-Dateien gibt. # Datei /etc/logrotate.d/apache /var/log/apache2/*.log { weekly missingok rotate 52 compress delaycompress notifempty create 640 root adm sharedscripts postrotate if [ -f "`. /etc/apache2/envvars ; \ echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then /etc/init.d/apache2 reload > /dev/null fi endscript }
510
21. Software- und Paketverwaltung Unter Windows ist es üblich, neue Programme durch das Ausführen von setup.exe zu installieren. Linux verfolgt einen ganz anderen Ansatz: Mit einem Paketverwaltungssystem wird eine Datenbank verwaltet, die Informationen über alle bereits installierten Software-Pakete enthält. Neue Programme werden durch die Kommandos des Paketverwaltungssystems installiert. Dieses Konzept hat eine Menge Vorteile: So können Abhängigkeiten und Konflikte zwischen Software-Paketen berücksichtigt werden. Wenn beispielsweise ein Programm A die Bibliothek B voraussetzt, lässt das Paketverwaltungssystem die Installation von A erst zu, nachdem B installiert worden ist. Es lässt sich jederzeit nachvollziehen, zu welchem Paket eine bestimmte Datei gehört, ob sich diese Datei noch im ursprünglichen Zustand befindet etc. Der Linux-Markt wird von zwei verschiedenen Paketverwaltungssystemen dominiert: Red Hat, Fedora, Mandriva, SUSE sowie zahllose weitere Distributionen verwenden das von Red Hat entwickelte Paketformat RPM (siehe Seite 513). Debian und alle davon abgeleiteten Distributionen nutzen dagegen das Paketformat DEB (siehe Seite 526). Die Kommandos zur Installation, Deinstallation und zum Update dieser Pakete (rpm, dpkg etc.) sind allerdings relativ primitiv. Sie können beispielsweise fehlende Abhängigkeiten feststellen, diese aber nicht auflösen.
Paketformate
Aufbauend auf rpm bzw. dpkg wurden weitere Programme mit diversen Zusatzfunktionen entwickelt. Dazu zählen die automatische Installation abhängiger Pakete, die Durchführung von Updates für das gesamte System und die Berücksichtigung von Paketquellen auf CDs/DVDs bzw. aus dem Internet. Weiters ermöglicht die Paketverwaltung ein einheitliches Update-System für alle installierte Programme. Beispiele für derartige Paketverwaltungssysteme sind Yum und ZYpp für RPM-Pakete (siehe Seite 518 bzw. 524) sowie APT und Aptitude für DEB-Pakete (siehe Seite 528 bzw. 531). Auch an grafischen Benutzeroberflächen herrscht kein Mangel. Populäre Programme sind Yum Extender, PackageKit (siehe Seite 1076) und Synaptic (siehe Seite 536).
Paketverwaltungssysteme
Ergänzend zu diesen Standardprogrammen gibt es bei manchen Distributionen eigene Programme zur Paketverwaltung und zur Durchführung von Updates:
Distributionsspezifische Werkzeuge
Debian, Ubuntu: Fedora 9, RHEL 6: Fedora 8, RHEL 5: SUSE: Ubuntu:
update-manager packagekit pirut und pup YaST-Module der Gruppe SOFTWARE (siehe Seite 1093) gnome-app-install, gnome-language-selector (siehe ab Seite 1119)
Achtung
Kapitel 21
Sicherheit
Software- und Paketverwaltung
Die Pakete einer Linux-Distribution sind aufeinander abgestimmt. Das bedeutet, dass sie einheitliche Bibliotheken nutzen, mit demselben Compiler kompiliert wurden etc. Als Linux-Einsteiger sind Sie deshalb gut beraten, nur Pakete zu installieren, die für Ihre Distribution gedacht sind. Nicht zu empfehlen ist die Installation eines Red-Hat-Pakets unter SUSE (oder umgekehrt). Die dabei auftretenden Probleme wie fehlende Bibliotheken oder nicht erfüllter Paketabhängigkeiten lassen sich – wenn überhaupt – nur von Linux-Profis beheben. Die meisten Paketverwaltungssysteme sehen umfassende Sicherheitsmaßnahmen vor. Unter anderem sind sowohl die Pakete an sich als auch die Beschreibung der Paketquellen kryptografisch signiert, um Manipulationen auszuschließen. Deswegen ist beim Einrichten neuer Paketquellen oft die Installation eines neuen Schlüssels erforderlich. Eine ausführliche Sicherheitsanalyse der Paketverwaltungssysteme verschiedener Distributionen liefert der folgende Artikel: http://lwn.net/Articles/326817/
Nachteile der Paketverwaltung
Die Paketverwaltung gängiger Distributionen funktioniert gut, ist aber auch mit Nachteilen verbunden: » Die bei vielen Distributionen beinahe täglichen Updates verunsichern viele Anwender, die von Windows oder Mac OS X größere Update-Zeitspannen gewohnt sind. » Der Download-Bedarf für die Updates ist riesig und erfordert eine schnelle Internetverbindung. (Am schlimmsten ist es in der Regel bei Fedora.) » Viele Linux-Anwender würden gerne eine Distribution länger verwenden, während dieser Zeit aber einige wenige Programme aktualisieren (oft Desktop-Anwendungen wie Firefox, OpenOffice oder Gimp). Genau das machen gängige Distributionen so gut wie unmöglich. Es werden zwar Sicherheits-Updates angeboten, aber Versionssprünge sind dabei die Ausnahme. Wenn Sie eine neuere Version von einem bestimmten Programm nutzen möchten, müssen Sie eine manuelle Installation durchführen, auf nicht offizielle Paketquellen zurückgreifen oder die gesamte Distribution neu installieren. Unter Windows oder Mac OS X ist es hingegen ein Kinderspiel, die gerade aktuelle OpenOffice-Version herunterzuladen und zu installieren. Es gibt technische Gründe, warum das so ist: Die meisten Linux-Programme verwenden unzählige Bibliotheken. Ein Versions-Update von OpenOffice setzt in der Regel voraus, dass auch einige Bibliotheken aktualisiert werden müssen. Das kann Probleme mit anderen Programmen auslösen, die ebenfalls auf diese Bibliothek zurückgreifen. Diese möglichen Nebenwirkungen zu testen kostet mehr Zeit, als zur Wartung alter Distributionen aufgewendet werden kann. Ein möglicher Ausweg besteht darin, bei wichtigen Programmen die dazugehörigen Bibliotheken gleich zu integrieren. (Google Chrome hat diesen Weg von Anfang an beschritten, und auch die Firefox-Pakete von Ubuntu werden mittlerweile so gewartet.) Auch diese Vorgehensweise ist mit Nachteilen verbunden: Aufgrund der nun unvermeidlichen Redundanzen steigen der Platzbedarf auf der Festplatte, das Download-Volumen bei jedem Update und der RAM-Bedarf bei der gleichzeitigen Ausführung mehrerer Programme. Das größte Problem ist die Wartung: Jedes Programm verwaltet seine Bibliotheken nun selbst. Tritt in einer Bibliothek ein Sicherheitsproblem auf, kann es nicht mehr zentral behoben werden. Vielmehr müssen alle Programme, die diese Bibliothek verwenden, aktualisiert werden. Dennoch werden in Zukunft immer mehr
512
RPM-Paketverwaltung
Abschnitt 21.1
Distributionen Mischwege beschreiten: zentrale Bibliotheken für die Mehrheit der Programme, individuelle Bibliotheken für wenige kritische Anwendungen (momentan vor allem Webbrowser). Wenn Sie für 50, 100 oder 1000 Linux-Rechner verantwortlich sind, wird die Administration und Paketverwaltung trotz der in diesem Kapitel vorgestellten Werkzeuge zur Qual. Sie benötigen ein Werkzeug, um zentral auf allen oder auf zuvor ausgewählten Rechnern ein Update durchzuführen, ein neues Programm zu installieren oder die Konfiguration zu verändern. Je nach Distribution bieten sich hierfür Red Hat Network, ZENworks (Novell/SUSE) bzw. m23 (Debian, Ubuntu) an:
Zentrale Administration für mehrere Rechner
http://www.redhat.com/rhn/ http://www.novell.com/de-de/products/zenworks/configurationmanagement/ http://m23.sourceforge.net/ Das Kommando tar hilft dabei, eine Menge Dateien zu einem Archiv zusammenzufassen bzw. ein derartiges Archiv wieder auszupacken (siehe auch Seite 1221). In den Anfangszeiten von Linux, noch bevor es die Paketformate RPM und DEB gab, verwendeten die meisten Distributionen tar-Archive anstelle von Paketen. Heute gibt es nur noch wenige Distributionen, die tar-Archive als Paketersatz verwenden (z. B. Slackware).
Paketverwaltung mit tar
Dennoch spielen tar-Archive nach wie vor eine große Rolle im Alltag fortgeschrittener LinuxAnwender. Viele Software-Entwickler, die keine Lust dazu haben, RPM- oder DEB-Pakete zu bilden, stellen stattdessen einfache tar-Archive mit allen erforderlichen Dateien zur Verfügung. Deren Installation ist ebenso einfach wie die eines richtigen Pakets (tar czf name.tgz), sie führt aber an der Paketverwaltung Ihrer Distribution vorbei, lässt sich schwer aktualisieren, nicht deinstallieren und kann Konflikte verursachen. Die Installation von tar-Paketen ist daher nur zu empfehlen, wenn Sie wissen, was Sie tun, und wenn das gewünschte Programm in keiner anderen Form verfügbar ist. Neben den in diesem Buch behandelten RPM- und DEB-Paketformaten gibt es einige weitere, die bis jetzt aber keine große Bedeutung erlangt haben. Zu den wichtigsten Zielen neuer Paketformate zählt eine höhere Distributionsunabhängigkeit sowie die Möglichkeit, Pakete bzw. Software ohne root-Rechte in lokale Benutzerverzeichnisse zu installieren.
Sonstige Paketformate
http://0install.net/ http://labix.org/smart http://autopackage.org/
21.1 RPM-Paketverwaltung Das Kommando rpm installiert und verwaltet RPM-Pakete. Es hilft dabei, » im Rahmen einer Installation automatisch Änderungen in schon vorhandenen Dateien durchzuführen (etwa in Script-Dateien), » ein Programm durch eine aktuellere Version zu ersetzen (wobei von geänderten Dateien automatisch Updates erstellt werden), » alle Dateien eines Programms wieder zu entfernen,
513
Kapitel 21
Software- und Paketverwaltung
» sicherzustellen, dass vor der Installation eines Programms alle Voraussetzungen erfüllt sind (dass also alle erforderlichen Bibliotheken in der richtigen Version zur Verfügung stehen), » zu überprüfen, ob eine Datei seit der Installation des Pakets verändert wurde, » festzustellen, zu welchem Paket eine bestimmte Datei gehört. Die erforderlichen Verwaltungsinformationen befinden sich in jedem RPM-Paket. Bei der Installation werden diese Informationen in eine Datenbank eingetragen (Dateien im Verzeichnis /var/lib/rpm). Herkunft und Wartung
RPM wurde ursprünglich von Red Hat entwickelt. Nachdem der Code mehrere Jahre lang nur halbherzig gewartet wurde, kam es zu einer Spaltung der Entwicklung. Die von Fedora, Red Hat, SUSE etc. eingesetzte RPM-Version 4.n wird nun unter der Federführung von Fedora und in Kooperation mit anderen Distributionen im Rahmen des Projekts rpm.org gewartet und weiterentwickelt. Parallel dazu arbeitet eine andere Gruppe von Entwicklern an RPM 5.n. Diese RPM-Version wird momentan aber nur in wenigen, relativ kleinen Distributionen eingesetzt. http://rpm.org/ (RPM 4.n) http://rpm5.org/ (RPM 5.n)
Grundlagen Die meisten RPM-Pakete werden in zwei Varianten zur Verfügung gestellt: als Binärpaket und als Quellcodepaket. Das Binärpaket enthält die zur Ausführung des Programms notwendigen Dateien. Das Quellcodepaket ist nur für Entwickler interessant. Es enthält den Quellcode, der erforderlich war, um das Binärpaket zusammenzustellen. Der Paketname enthält ziemlich viele Informationen: abc-2.0.7-1.i686.rpm bezeichnet beispielsweise das Paket abc mit der Versionsnummer 2.0.7, Release-Nummer 1. (Falls bei der Zusammenstellung eines Pakets ein Fehler aufgetreten ist, zusätzliche Online-Dokumentation beigefügt wurde oder andere Änderungen durchgeführt wurden, entstehen Release-Ziffern größer als 1 für eine bestimmte Versionsnummer. Die Versionsnummer bezieht sich also auf das eigentliche Programm, die Release-Nummer auf die rpm-Zusammenstellung.) Die Kennung i686 weist darauf hin, dass das Paket Binärdateien für Pentium-II-kompatible Prozessoren enthält. (Es gibt ja auch Linux-Versionen für andere Prozessoren.) Wenn das Paket abc Scriptoder Textdateien enthält, die von der CPU-Architektur unabhängig sind, wird statt der CPU-Kennung das Kürzel noarch verwendet. Wenn das Paket den Quellcode enthält, ist stattdessen das Kürzel src üblich. Kurz eine Erläuterung zu den verschiedenen x86-Kürzeln: i386 = 386er und kompatible Prozessoren i486 = 486er und kompatible Prozessoren i586 = Pentium und kompatible Prozessoren i686 = Pentium II und kompatible Prozessoren x86_64 = AMD64 und dazu kompatible 64-Bit-Prozessoren (inklusive Intel)
514
RPM-Paketverwaltung
Abschnitt 21.1
Ein i386-Paket läuft auf allen oben genannten Prozessoren. Ein i686-Paket verwendet dagegen diverse Erweiterungen des Pentium II. Der Code kann deswegen etwas schneller ausgeführt werden. Allerdings funktioniert das Programm in der Regel auf älteren Prozessoren nicht mehr. Die Paketdatei enthält neben den zu installierenden Dateien zahlreiche Verwaltungsinformationen: eine kurze Paketbeschreibung, abermals Informationen über Versionsnummern, die Einordnung in die Gruppenhierarchie, Abhängigkeiten von anderen Paketen etc. Abhängigkeiten bestehen dann, wenn ein Paket eine bestimmte Programmiersprache wie Perl oder eine bestimmte Library voraussetzt. In diesem Fall müssen zuerst diese Pakete installiert werden.
Metadaten
rpm verwaltet eine Datenbank mit Informationen über alle installierten Binärpakete. Diese Datenbank wird in diversen Dateien im Verzeichnis /var/lib/rpm gespeichert. Die Datenbank enthält nur Informationen zu Binärpaketen; eventuell auch installierte Pakete mit Quellcode werden nicht in die Datenbank aufgenommen. Die Dateien der rpm-Datenbank dürfen auf keinen Fall direkt verändert werden! Damit die RPMDatenbank mit der tatsächlichen Installation übereinstimmt, dürfen Pakete nicht einfach durch Löschen der Dateien, sondern müssen durch ein Deinstallieren (rpm -e) entfernt werden. Um ein RPM-Paket zu aktualisieren, wird das gesamte neue Paket heruntergeladen. Gerade bei Sicherheits-Updates, bei denen oft nur winzige Änderungen an wenigen Dateien erforderlich sind, ist das ineffizient. Aus diesem Grund hat SUSE sogenannte Delta-RPM-Pakete entwickelt, die nur die Änderungen gegenüber einer bestimmten Version des Pakets enthalten. Auch Mandriva und Fedora (ab Version 11) haben diese Idee aufgegriffen und verwenden sie für Updates.
Delta-RPMPakete
Die Anwendung von Delta-RPMs ist grundsätzlich einfach: Zuerst erzeugt das Kommando applydeltarpm aus dem Delta-RPM und dem Original-Paket bzw. dessen installierten Dateien das neue, aktualisierte RPM-Paket. Dieses wird dann ganz normal installiert (rpm -U). applydeltarpm ist Teil des Pakets deltarpm. Delta-RPMs haben allerdings auch Nachteile: applydeltarpm ist sehr CPU-intensiv und setzt voraus, dass momentan eine ganz bestimmte Version des Pakets installiert ist. Ist das nicht der Fall bzw. wurden deren Dateien nach der Installation verändert, ist zur Durchführung des Updates die Original-RPM-Datei erforderlich. Grundsätzlich ist das RPM-System eine tolle Sache – aber ganz ohne Nachteile ist es leider nicht. Die folgende Liste nennt die häufigsten Probleme:
Probleme
» In RPM-Paketen werden zwar Paketabhängigkeiten gespeichert, das Kommando rpm kann diese aber nicht automatisch auflösen. Abhilfe schaffen erst Programme wie Yum. » Die Verwaltung von Paketabhängigkeiten kommt durcheinander, wenn Sie Pakete unterschiedlicher Distributionen mischen oder wenn Sie einzelne Programme mit tar installieren bzw. wenn Sie Programme selbst kompilieren. Der Grund ist immer derselbe: Die Informationen darüber, welche Software auf dem Rechner installiert ist, fehlen entweder ganz, oder die Angaben passen nicht zusammen (weil jede Distribution eigene Richtlinien zur Formulierung von Paketabhängigkeiten hat).
515
Kapitel 21
Software- und Paketverwaltung
» Neue RPM-Versionen sind zwar abwärtskompatibel, aber nicht aufwärtskompatibel. Das bedeutet, dass beispielsweise das rpm-Kommando von Version 4.7 nicht mit RPM-Dateien umgehen kann, die mit rpm Version 4.8 erstellt wurden. (Abhilfe: Installieren Sie eine aktuelle rpm-Version.) » Der Platzbedarf für die RPM-Datenbank (also für die Dateien in /var/lib/rpm) ist relativ hoch. Bei einem Installationsumfang von 5 GByte füllen die RPM-Datenbankdateien rund 80 MByte. » In seltenen Fällen passiert es, dass die RPM-Datenbank inkonsistente Daten enthält. Das äußert sich darin, dass das rpm-Kommando nicht mehr verwendet werden kann bzw. Fehlermeldungen wie cannot open packages database liefert. Abhilfe schaffen meistens die Kommandos rm -f /var/lib/rpm/__db* und dann rpm --rebuilddb. Damit wird die RPM-Datenbank neu erzeugt. (Das dauert allerdings eine Weile.)
Beispiele Eine Syntaxübersicht zu rpm finden Sie auf Seite 1207, eine komplette Referenz liefern rpm --help und man rpm. Die folgenden Beispiele verdeutlichen die Anwendung von rpm in Standardsituationen: root# rpm -i abc-2.0.7-1.i686.rpm installiert das Programm abc. root# rpm --import http://myserver.com/RPM-myserver-GPG-KEY lädt die GPG-Schlüsseldatei von http://myserver.com herunter und richtet sie als Schlüsseldatei für RPM ein. root# rpm -U http://myserver.com/mypath/abc-2.1.0-2.i686.rpm aktualisiert das Programm abc, wobei die Paketdatei direkt vom angegebenen Webserver heruntergeladen wird. root# rpm -V abc liefert eine Liste aller Dateien des Pakets abc, die seit der Installation verändert wurden. root# rpm -e abc entfernt das Programm abc. root# rpm -qa liefert eine Liste aller installierten Pakete. root# rpm -qa --last liefert eine Liste aller installierten Pakete, wobei die Pakete nach dem Installationsdatum sortiert werden (das zuletzt installierte Paket steht zuoberst in der Liste). root# rpm -qa | grep -i mysql liefert eine Liste aller installierten Pakete, deren Namen die Zeichenkette mysql (in beliebiger Großund Kleinschreibung) enthalten. root# rpm -qi perl liefert Informationen zum Perl-Paket (falls dieses installiert ist). root# rpm -ql perl listet alle Dateien des Perl-Pakets auf.
516
RPM-Paketverwaltung
Abschnitt 21.1
root# rpm -qd perl listet alle Dokumentationsdateien des Perl-Pakets auf. root# rpm -qc cups listet alle Konfigurationsdateien des CUPS-Pakets auf. root# rpm -qip abc-2.0.7-1.i686.rpm liefert Informationen zum noch nicht installierten Paket abc-.rpm. Die RPM-Datei muss dazu lokal verfügbar sein. root# rpm -qf rpm -qf /usr/lib/libkdnssd.so gibt an, aus welchem Paket die Datei /usr/lib/libz.so stammt (Ergebnis: kdelibs). root# rpm -q --provides php-mysql gibt an, welche Attribute (im englischen Original: capabilities, also Fähigkeiten) das php-mysqlPaket zur Verfügung stellt. Das Ergebnis unter Fedora 13 lautet: mysql.so, mysqli.so, pdo_mysql.so, php-mysqli, php_database und php-mysql = 5.3.3-1. Attribute werden zur Auflösung von Paketabhängigkeiten benutzt. Üblicherweise stimmen die Namen von Attributen mit den Namen von Programmen oder Bibliotheken überein, die ein Paket zur Verfügung stellt. Allerdings bleibt es den Paketadministratoren jeder Distribution überlassen, auf welche Weise Attribute definiert werden. Attribute können auch mit Versionsnummern versehen werden. root# rpm -q --requires php-mysql gibt an, welche Voraussetzungen zur Installation des Pakets php-mysql erfüllt sein müssen. Unter Fedora ist die resultierende Attributsliste ziemlich lang, weswegen sie hier nur auszugsweise wiedergegeben wird: libc.so.6, libm.so.6, libmysqlclient.so.16, php-common = 5.3.3-1 und phppdo. root# rpm -q --requires -p alien-8.56-2.i586.rpm Die Kommandos rpm -q --provides bzw. rpm -q --provides können auch mit der Option -p kombiniert werden, um Attributslisten für noch nicht installierte Pakete zu ermitteln (im obigen Beispiel: alien). root# rpm -q --whatprovides mysqli.so gibt an, welches bereits installierte Paket das Attribut mysqli.so zur Verfügung stellt (Ergebnis: das Paket php-mysql). root# rpm -q --whatrequires libpthread.so.0 liefert eine schier endlose Liste aller installierten Pakete, die auf das Attribut libpthread.so.0 angewiesen sind. (Die gleichnamige Bibliothek wird übrigens vom Paket glibc zur Verfügung gestellt.) Bei 64-Bit-Distributionen kann es vorkommen, dass rpm -qi name trotz eines eindeutigen Paketnamens Informationen zu zwei Paketen auflistet. Das ist kein Fehler; vielmehr handelt es sich um zwei gleichnamige Pakete mit den Dateien der 32- und der 64-Bit-Variante eines Programms bzw. einer Bibliothek.
32/64-BitProbleme
SUSE vermeidet gleichnamige Pakete mit unterschiedlichem Inhalt, indem es die 32-Bit-Varianten im Paketnamen mit dem Anhang 32bit kennzeichnet. rpm -qa j grep 32bit liefert dort eine überraschend lange Liste aller 32-Bit-Pakete, die aus Kompatibilitätsgründen erforderlich sind.
517
Kapitel 21
Paketabhängigkeiten
Software- und Paketverwaltung
Das erste Mal werden Sie wahrscheinlich mit Abhängigkeiten konfrontiert, wenn Sie bei einem Installationsversuch eine Fehlermeldung der folgenden Art erhalten: failed dependencies: attributname is needed by paketname Um diesen Problemen aus dem Weg zu gehen, verwenden Sie zur Installation nach Möglichkeit nicht rpm, sondern yum, zypper oder ein anderes Paketverwaltungswerkzeug Ihrer Distribution. Besteht diese Möglichkeit nicht, müssen Sie nun nach dem Paket suchen, das attributname zur Verfügung stellt. Dazu können Sie auf die Suchmaschine http://rpmfind.net zurückgreifen, in der Sie nach Dateien und Attributen suchen, die in einer RPM-Datei enthalten sind.
21.2 Yum Yum ist ein Programm, das die Verwaltung von RPM-Paketen vereinfacht. Auf das Kommando rpm aufbauend bietet es eine Menge Zusatzfunktionen: » Als Datenquelle (englisch repository) dienen Yum-Archive im Internet. Ein Yum-Archiv ist eine Sammlung von RPM-Paketen, die zusätzlich mit Metadaten ausgestattet ist (Verzeichnis repodata). Diese Metadaten geben Informationen über den Inhalt und die Abhängigkeiten aller Pakete. Durch die Trennung von Paketen und Metadaten ist eine rasche Verarbeitung möglich (also ohne dass alle Pakete eingelesen werden müssen, um die Daten zu extrahieren). Yum ist in der Lage, automatisch zwischen verschiedenen Mirrors für eine Paketquelle zu wechseln. » Yum löst automatisch alle Paketabhängigkeiten auf, lädt alle erforderlichen Pakete und installiert sie. Dabei werden alle bekannten Paketquellen berücksichtigt. Wenn Sie beispielsweise ein Paket aus der Paketquelle A installieren, kann es sein, dass Yum vorher einige abhängige Pakete aus den Quellen B und C herunterlädt. » Yum kann alle bereits installierten Pakete mit einem einzigen Kommando aktualisieren. Dazu wird für jedes Paket getestet, ob es in einer der registrierten Paketquellen eine neuere Version des Pakets gibt. Wenn das der Fall ist, werden die entsprechenden Pakete heruntergeladen und installiert. Natürlich werden auch dabei alle Paketabhängigkeiten aufgelöst. Yum wurde mit der Programmiersprache Python entwickelt. Das Programm wird standardmäßig unter anderem von Fedora und Red Hat eingesetzt. Dieser Abschnitt bezieht sich auf Yum, wie es in Fedora 13 zum Einsatz kommt. Weiterführende Informationen zu Yum finden Sie unter: http://www.linux.duke.edu/projects/yum/ LockingKonflikte
Es ist nicht zulässig, mehrere Yum-Instanzen parallel auszuführen. Wenn bereits ein Yum-Kommando oder -Programm läuft, führt ein neuerlicher Start zur Fehlermeldung another copy is running. Die Ursache des Problems liegt oft beim automatischen Yum-Update-System (siehe Seite 523). Das können Sie leicht feststellen: Die Datei /var/run/yum.pid enthält die ID-Nummer des Programms, das den Konflikt verursacht. Mit ps j grep id stellen Sie den Programmnamen fest. Wenn nötig, können Sie das Update-System vorübergehend mit /etc/init.d/yum-updatesd stop stoppen und später mit start wieder aktivieren.
518
Yum
Abschnitt 21.2
Konfiguration Die Grundkonfiguration von Yum erfolgt durch die Datei /etc/yum.conf. Die folgenden Zeilen zeigen auszugsweise die Konfiguration von Fedora 13: # Datei /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=3 color=never Kurz eine Erläuterung zu den wichtigsten Einstellungen: keepcache=0 bewirkt, dass heruntergeladene Pakete nach der Installation nicht archiviert werden. In der Regel ist das eine zweckmäßige Einstellung, weil der Platzbedarf für die Pakete im Laufe der Zeit recht groß wird und normalerweise kein Grund dazu besteht, die Pakete ein zweites Mal zu installieren. Es kann allerdings passieren, dass yum während der Installation ein Problem feststellt und die Installation abbricht. Auch in diesem Fall werden die heruntergeladenen Pakete gelöscht. Wenn Sie das Problem beheben können und anschließend das Update wiederholen, müssen alle Pakete neuerlich heruntergeladen werden. Diese Situation vermeiden Sie mit keepcache=1. Um die heruntergeladenen Pakete in /var/cache/ yum explizit zu löschen, führen Sie yum clean packages aus. exactarch=1 bewirkt, dass Yum nur Updates berücksichtigt, bei denen die Architektur mit dem bereits installierten Paket übereinstimmt. i386-Pakete können also nicht durch neuere x86_64Pakete ersetzt werden. gpgcheck=1 bewirkt, dass Yum mit einem Schlüssel die Authentizität der Pakete sicherstellt. gpgcheck kann abweichend von der Einstellung in yum.conf auch individuell für jede Paketquelle eingestellt werden. plugins entscheidet, ob Yum Plugins berücksichtigt (siehe Seite 520). Es gibt Pakete, die Yum installieren, aber nicht aktualisieren soll. Dazu zählen insbesondere KernelPakete: Bei einem Kernel-Update wird das neue Kernel-Paket zusätzlich installiert, ohne das alte Kernel-Paket anzurühren. Mit der Variable installonlypkgs werden die Namen derartiger Pakete eingestellt. Standardmäßig hat diese Variable die Einstellung kernel, kernel-smp, kernelbigmem, kernel-enterprise, kernel-debug, kernel-unsupported. Die in yum.conf enthaltene Variable installonly_limit steuert schließlich, wie viele Versionen derartiger Pakete parallel installiert werden. Die Standardeinstellung 3 bewirkt, dass immer nur die aktuellsten drei Kernel-Versionen installiert bleiben. Ältere Kernel-Pakete werden entfernt. color=never bewirkt, dass das Kommando yum im Terminal keine Farben nutzt. Wenn Sie das möchten, verwenden Sie color=always.
519
Kapitel 21
Software- und Paketverwaltung
Paketquellen einrichten
Jede Paketquelle wird in einer eigenen *.repo-Datei im Verzeichnis /etc/yum.repos.d definiert. Die folgenden Zeilen zeigen die Paketquelle für die Basispakete von Fedora 13: # Datei /etc/yum.repos.d/fedora.repo [fedora] name=Fedora $releasever - $basearch failovermethod=priority mirrorlist= https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch enabled=1 metadata_expire=7d gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch Die Adresse der Paketquelle kann wahlweise absolut mit baseurl=... oder mit mirrorlist=... in Form einer Mirror-Datei angegeben werden. Diese Datei enthält eine Liste von Mirror-Servern. Yum entscheidet sich selbstständig für einen der Mirrors. Yum ersetzt in der Konfigurationsdatei die Variablen $releasever, $arch und $basearch durch die Versionsnummer der Linux-Distribution und deren Architektur. Kurz zur Herkunft dieser drei Variablen: » $arch wird mit dem Kommando uname ermittelt (genau genommen mit der gleichnamigen, auf uname basierenden Python-Funktion) und liefert beispielsweise auf einem 64-Bit-Intel/AMDRechner x86_64. » $basearch ist die $arch zugrunde liegende Basisarchitektur (beispielsweise i386). » $releasever ergibt sich aus der Versionsnummer des Pakets redhat-release bzw. fedorarelease. (Es besteht die Möglichkeit, in yum.conf mit dem Schlüsselwort distroverpkg den Namen eines anderen Pakets anzugeben. Die Versionsnummer dieses Pakets gilt dann als Versionsnummer der Distribution.) metadata_expires gibt an, wie lange die von einer Paketquelle heruntergeladenen Metadaten gültig sind. Yum speichert die Metadaten in einem Cache und verzichtet auf ein neuerliches Herunterladen, wenn die Metadaten noch nicht veraltet sind. Das spart Zeit und Download-Volumen (die Dateien mit den Metadaten sind zum Teil riesig), kann aber dazu führen, dass Yum kürzlich durchgeführte Änderungen in der Paketquelle ignoriert. (Gegebenenfalls erzwingen Sie durch yum clean metadata das Löschen der lokalen Metadaten. Damit ist Yum beim nächsten Mal gezwungen, die Metadaten aller Paketquellen neu einzulesen.) Die optimale Einstellung für metadata_expires variiert je nach Paketquelle: Bei Paketquellen, die sich selten oder nie ändern, ist ein langer Zeitraum zweckmäßig. Bei Update-Paketquellen ist es dagegen besser, einen kurzen Zeitraum anzugeben oder ganz auf eine Einstellung zu verzichten.
Pakete sperren
Wenn Sie möchten, dass bestimmte Pakete von Yum nicht angetastet und beim Vorliegen einer neuen Version auch nicht aktualisiert werden, fügen Sie in yum.conf oder in die *.repo-Datei der Paketquelle eine Zeile mit exclude name1 name2 name3 ein. In den Paketnamen können Sie Jokerzeichen verwenden, d. h., auch exclude xemacs* ist erlaubt.
Plugins
Yum lässt sich durch Plugins erweitern und bietet dann noch mehr Funktionen. Die Konfiguration der Plugins erfolgt durch Dateien im Verzeichnis /etc/yum/pluginconf.d.
520
Yum
Abschnitt 21.2
Eines der interessantesten Yum-Plugins ist Presto: Es ermöglicht die Verwendung von Delta-RPMs für Updates. Delta-RPMs stehen erstmalig in Fedora 11 zur Verfügung. Allerdings muss Presto explizit durch yum install yum-presto installiert werden, damit die Delta-RPMs zur Anwendung kommen. Der Download-Umfang von Updates sinkt nun dramatisch (um 60 bis 80 Prozent!), allerdings ist die CPU-Belastung während der Anwendung der Updates höher.
Presto
Prinzipiell können Sie mit Yum auch ein Distributions-Update durchführen. Dazu installieren Sie zuerst manuell die Pakete fedora-release-n.noarch.rpm und fedora-release-n.noarch.rpm und führen dann yum upgrade aus. Ich bin allerdings kein Freund von Distributions-Updates. Meiner Erfahrung nach läuft dabei immer irgendetwas schief, ganz egal, wie ausgeklügelt das Paketverwaltungssystem ist. Wenn immer möglich, sollten Sie eine Neuinstallation vorziehen.
DistributionsUpdates
Beispiele Die gesamte Paketverwaltung erfolgt mit dem Kommando yum. Die Syntax des Kommandos ist auf Seite 1238 zusammengefasst, geht aber auch aus den folgenden Beispielen hervor. Die folgenden Kommandos demonstrieren die Anwendung von yum. (Die Ausgaben sind aus Platzgründen gekürzt.) root# yum check-update ... acl.x86_64 cifs-utils.x86_64 gdb.x86_64 glx-utils.x86_64
2.2.49-6.fc13 4.6-1.fc13 7.1-32.fc13 7.8.1-8.fc13
updates updates updates updates
... root# yum update ... Vorgangsübersicht Installieren 0 Paket(e) Upgrade 35 Paket(e) Gesamte Downloadgrösse: 26 M Ist dies in Ordnung? [j/N] : j ... root# yum install mysql-server ... Installieren: mysql-server Installiert für Abhängigkeiten: mysql perl-DBD-MySQL perl-DBI
x86_64
5.1.48-2.fc13
updates
8.1 M
x86_64 x86_64 x86_64
5.1.48-2.fc13 4.016-1.fc13 1.609-4.fc13
updates updates fedora
889 k 135 k 707 k
Vorgangsübersicht Installieren 4 Paket(e) Upgrade 0 Paket(e) Gesamte Downloadgrösse: 9.8 M
521
Kapitel 21
Software- und Paketverwaltung
Installed size: 28 M Ist dies in Ordnung? [j/N] : j ... root# yum history ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------12 | kofler | 2010-08-09 10:38 | Install | 3 11 | kofler | 2010-08-09 10:35 | Install | 1 10 | System | 2010-08-06 12:47 | Install | 2 ... root# yum history info 10 Transaction ID : 10 Begin time : Fri Aug 6 12:47:08 2010 Begin rpmdb : 1239:cd1de7f23aa89953e4eeb9fa5e561f7fe36e079a End time : 12:47:22 2010 (14 seconds) End rpmdb : 1241:bad14ec1137d77b9d69ffa13ddf55138972644aa User : System Return-Code : Success Transaction performed with: Installiert rpm-4.8.1-2.fc13.x86_64 Installiert yum-3.2.27-4.fc13.noarch Installiert yum-plugin-fs-snapshot-1.1.27-2.fc13.noarch Installiert yum-presto-0.6.2-1.fc13.noarch Packages Altered: Dep-Install freeglut-2.6.0-5.fc13.x86_64 Install mesa-demos-7.8.1-6.fc13.x86_64 history info Wenn Sie yum zum ersten Mal ausführen, werden Metainformationen zu allen eingerichteten Paketquellen heruntergeladen. In der Folge werden diese Daten regelmäßig aktualisiert. Paketgruppen
yum kennt Paketgruppen, um mit wenig Aufwand alle erforderlichen Pakete für eine bestimmte Aufgabe zu installieren. Eine Liste der verfügbaren Paketgruppen liefert yum grouplist. yum groupinfo name verrät, welche Pakete zu einer Gruppe gehören. yum groupinfo unterteilt die Pakete in drei Kategorien: mandatory, default und optional. yum groupinstall name installiert alle mandatory- und default-Pakete. yum kennt keine Option, um auch die optionalen Pakete zu installieren. Wenn Sie das möchten, müssen Sie die folgende Änderung in yum.conf durchführen: # Ergänzung in /etc/yum.conf group_package_types = mandatory default optional Um eine Paketgruppe zu aktualisieren bzw. zu entfernen, verwenden Sie yum groupupdate bzw. yum groupremove.
522
Yum
yum ist für sich nicht in der Lage, Quellcodepakete zu installieren. Diese Aufgabe übernimmt stattdessen das Kommando yumdownloader, das sich im Paket yum-utils befindet. Das folgende Kommando lädt das Quellcodepaket des Editors gedit in das lokale Verzeichnis. Dabei werden die normalerweise nicht aktiven source-Quellen in den *.repo-Dateien automatisch aktiviert. user$
Abschnitt 21.2
Quellcodepakete
yumdownloader --source gedit
Automatische Downloads und Updates Wenn das Paket yum-updatesd installiert ist, wird beim Rechnerstart durch den Init-V-Prozess das gleichnamige Programm yum-updatesd gestartet. (Wie Sie den automatischen Start von InitV-Scripts steuern, ist auf Seite 365 beschrieben.) yum-updatesd überprüft regelmäßig, ob Updates zur Verfügung stehen. Je nachdem, wie die Einstellungen in /etc/yum/yum-updatesd.conf aussehen, werden die Update-Pakete auch gleich heruntergeladen und sogar installiert. Das folgende Listing zeigt die Standardkonfiguration unter Fedora 13, bei der aber keine automatischen Updates durchgeführt werden. Wenn Sie das möchten, müssen Sie dreimal no durch yes ersetzen. # /etc/yum/yum-updatesd.conf [main] # einmal pro Stunde testen, ob neue Updates zur Verfügung stehen run_interval = 3600 # höchstens alle 10 Minuten den Update-Server kontaktieren updaterefresh = 600 # lokale Update-Benachrichtigung via dbus durchführen emit_via = dbus dbus_listener = yes # Updates automatisch herunterladen do_download = no # auch abhängige Pakete für Updates herunterladen do_download_deps = no # Updates automatisch installieren do_update = no Leider kann das ständig laufende Yum-Update-Programm gelegentlich zu Locking-Problemen führen (siehe Seite 518). Abhilfe: Stoppen Sie yum-updatesd vorübergehend, bevor Sie die Paketverwaltung selbst nutzen. Vergessen Sie nicht, yum-updatesd anschließend wieder zu starten! root# root# root#
/etc/init.d/yum-updatesd stop ... manuelle Pakete installieren oder entfernen ... /etc/init.d/yum-updatesd start
523
Kapitel 21
Software- und Paketverwaltung
Yum Extender (Yumex) Yumex ist eine einfache und funktionelle grafische Benutzeroberfläche zu Yum. Beim Start aktualisiert Yumex die lokalen Metadaten zu allen Paketquellen. Anschließend können Sie nach Paketen suchen, diese zur Installation markieren und die Installation schließlich durchführen (Button A NWENDEN, siehe auch Abbildung 21.1). Yumex wertet nun alle Paketabhängigkeiten aus und zeigt einen Zusammenfassungsdialog an. Erst wenn Sie den bestätigen, werden die Pakete tatsächlich heruntergeladen und installiert.
Abbildung 21.1: Paketverwaltung mit dem Yum Extender
21.3 ZYpp SUSE verwendet wie Fedora und Red Hat RPM-Pakete. Die auf RPM aufbauende Paketverwaltung ZYpp ist allerdings eine Novell/SUSE-Eigenentwicklung. ZYpp steht für ZENworks, YaST, Packages and Patches, wobei die Verwendung von ZENworks optional und nur in den Enterprise-Distributionen von Novell/SUSE vorgesehen ist. Umfassende Informationen zu ZYpp finden Sie unter: http://en.opensuse.org/Zypp
Hinweis
libzypp
524
Hinter den Kulissen stellt die Bibliothek libzypp die ZYpp-Grundfunktionen zur Verfügung. libzypp kommt sowohl mit YaST- als auch mit YUM-Paketquellen zurecht. Sämtliche Konfigurations-, Datenbank- und Cache-Dateien befinden sich im Verzeichnis /var/lib/zypp. Sowohl YaST als auch PackageKit greifen unter openSUSE auf libzypp zurück. zypper unterscheidet zwischen Updates und Patches! Updates sind Pakete, die in einer neueren Version als der installierten zur Verfügung stehen. Patches sind dagegen Ergänzungs- bzw. Aktualisierungspakete (Delta-RPMs). SUSE verwendet zur Aktualisierung seiner Pakete Patches in Form von Delta-RPMs. Externe Paketquellen wie Packman stellen neue Paketversionen dagegen in Form von Updates zur Verfügung.
ZYpp
Paketquellen werden in Textdateien im Verzeichnis /etc/zypp/repos.d gespeichert. Wenn Sie diese Dateien mit einem Editor verändern, achten Sie darauf, anschließend alle Sicherheitskopien zu löschen! Andernfalls bekommen Sie Doppelgänger in der Liste der Paketquellen. Die folgenden Zeilen zeigen die Definition der Open-Source-Paketquelle für openSUSE 11.3:
Abschnitt 21.3
Paketquellen
# Datei /etc/zypp/repos.d/repo-oss.repo [repo-oss] name=openSUSE-11.3-Oss enabled=1 autorefresh=1 baseurl=http://download.opensuse.org/distribution/11.3/repo/oss/ path=/ type=yast2 keeppackages=0 zypper ist eine Kommandoschnittstelle zu libzypp. zypper ist damit das SUSE-Gegenstück zu aptget oder yum. Sie können damit Pakete suchen, installieren, aktualisieren und entfernen sowie Paketquellen verwalten. zypper muss von root ausgeführt werden. Auf Seite 1240 finden Sie eine Syntaxzusammenfassung der wichtigsten Optionen. Weitere Informationen geben man zypper und die folgende Seite:
zypper
http://de.opensuse.org/Zypper/Anleitung Die folgenden Beispiele zeigen die Anwendung von zypper. Das erste Kommando listet die Paketquellen auf, das zweite aktualisiert die Quellen, das dritte installiert den Editor emacs, und das vierte stellt fest, welche Updates zur Verfügung stehen. root# zypper repos # | Alias | Name | Enabled | Refresh --+--------------------+-------------------------+---------+-------1 | repo-oss | openSUSE-11.3-Oss | Yes | Yes 2 | repo-non-oss | openSUSE-11.3-Non-Oss | Yes | Yes 3 | Aktualisierungen | Aktualisierungen für | Yes | Yes ... root# zypper refresh All repositories have been refreshed. root# zypper install nano The following NEW packages are going to be installed: ctags emacs emacs-info emacs-x11 fribidi libotf0 m17n-db m17n-lib xaw3d 9 new packages to install. Overall download size: 21.0 MiB. After the operation, additional 85.5 MiB will be used. Continue? [y/n/?] (y): y
525
Kapitel 21
Software- und Paketverwaltung
root# zypper list-updates S | Repository | Name | Current Version | Available Version | Arch --+------------------+-------------+-----------------+-------------------+------v | Aktualisierungen | bind-libs | 9.7.1-1.5 | 9.7.1-2.1.1 | x86_64 v | Aktualisierungen | bind-utils | 9.7.1-1.5 | 9.7.1-2.1.1 | x86_64 v | Aktualisierungen | ethtool | 6-84.1 | 6-85.1.1 | x86_64 ... Paketgruppen
Um alle erforderlichen Pakete für eine bestimmte Aufgabe zu installieren, etwa zur Verwendung des Rechners als Datei-Server, kennt ZYpp sogenannte pattern. zypper search -t pattern ermittelt eine Liste aller derartigen Paketgruppen. zypper info -t pattern name verrät, welche Pakete zu einer Paketgruppe gehören. Mit zypper install -t pattern name installieren Sie alle Pakete einer Paketgruppe.
history
Die Datei /var/log/zypp/history enthält eine ausgesprochen praktische Referenz darüber, wann welches Paket aus welcher Paketquelle installiert oder entfernt wurde und welche Konfigurationsarbeiten dabei durchgeführt wurden.
DistributionsUpdates
Seit openSUSE 11.1 können Sie wie bei Debian und Ubuntu mit zypper dup ein Distributions-Update im laufenden Betrieb durchführen: root# zypper updates root# ... root# zypper dup root# reboot
(Update für die bisherige Version) (Paketquellen auf die neue Version umstellen) (alte Pakete durch neue ersetzen) (Neustart)
21.4 Debian-Paketverwaltung (dpkg) Die Verwaltung von Debian-Paketen erfolgt auf zwei Ebenen: Dieser Abschnitt beschreibt das Kommando dpkg, das auf der unteren Ebene für die Installation und Verwaltung von Paketen verantwortlich ist. dpkg ist mit rpm vergleichbar. Das Kommmando kann einzelne Pakete installieren, aktualisieren, entfernen und dabei testen, ob alle Paketabhängigkeiten erfüllt sind. Es ist aber nicht in der Lage, nicht erfüllte Paketabhängigkeiten selbst aufzulösen oder Pakete selbstständig von Paketquellen zu laden. Genau diese Aufgaben erfüllt APT (Advanced Package Tool, siehe Seite 528). Es baut auf dpkg auf und bietet ähnliche Funktionen wie die gerade vorgestellten Systeme Yum und ZYpp. Zur eigentlichen Paketverwaltung stehen zwei Kommandos zur Wahl: apt-get wird standardmäßig unter Ubuntu eingesetzt, während aptitude seit Debian 5.0 als das bevorzugte Werkzeug zur Paketinstallation gilt. Auch wenn in diesem und dem folgenden Abschnitt von Debian-Paketen die Rede ist, gelten die Informationen für alle Linux-Distributionen, die dieses Paketformat nutzen. Neben Debian sind das beispielsweise die Ubuntu-Familie, Mepis, Mint und Knoppix. Wenn Sie von einer RPM-basierten Distribution auf eine Distribution mit Debian-Paketen umsteigen, finden Sie auf dieser Seite eine gute Übersicht über rpm-Kommandos sowie dazu äquivalente dpkg- und apt-Kommandos:
526
Debian-Paketverwaltung (dpkg)
Abschnitt 21.4
http://tinyurl.com/yfgvnlw = https://help.ubuntu.com/community/SwitchingToUbuntu/ FromLinux/RedHatEnterpriseLinuxAndFedora Details zur Syntax von dpkg finden Sie auf Seite 1150. Eine komplette Referenz liefern dpkg --help und man dpkg. Die folgenden Beispiele verdeutlichen die Anwendung von dpkg in Standardsituationen. In der Praxis werden Sie dpkg aber ohnedies kaum benötigen. Die Paketadministration der meisten Distributionen, die Debian-Pakete nutzen, erfolgt direkt mit APT oder einem darauf basierenden Werkzeug.
Beispiele
root# dpkg --install test.deb ... Entpacke test ... Richte test ein ... root# dpkg --search /etc/sensors3.conf libsensors4: /etc/sensors3.conf root# dpkg --listfiles libsensors4 ... /usr/lib /usr/lib/libsensors.so.4.2.1 /etc /etc/sensors3.conf /etc/sensors.d ... dpkg --list liefert eine Liste aller installierten Pakete. Dabei wird ein Statuscode angezeigt, der aus bis zu drei Buchstaben besteht. Der erste Buchstabe gibt den gewünschten Zustand an (u = unknown, i = install, r = remove, p = purge, h = hold), der zweite Buchstabe gibt den tatsächlichen Zustand an (n = not, i = installed, c = config files, u = unpacked, f = failed config, h = half installed), der dritte den optionalen Fehlercode (h = hold, r = reinstall required, x = hold + reinstall required). root# dpkg --list ii hplip ii hplip-cups ii hplip-data
| grep hplip 3.10.6-0ubuntu1 3.10.6-0ubuntu1 3.10.6-0ubuntu1
Paketstatus
HP Linux Printing and Imaging System (HPLIP) HP Linux Printing and Imaging - CUPS Raster driver (hpcups) HP Linux Printing and Imaging - data files
Die beiden häufigsten Statuscodes sind ii (installiertes Paket) und rc (entferntes Paket, die Konfigurationsdateien sind aber noch verfügbar). Um rc-Pakete vollständig zu entfernen, führen Sie dpkg --purge name aus. Der Status hold bedeutet, dass ein Paket bei einem Update nicht aktualisiert werden soll. Die beiden folgenden Kommandos zeigen, wie Sie ein Paket in den hold-Status bringen bzw. diesen Status wieder aufheben: root# root#
echo "paketname hold" | dpkg --set-selections echo "paketname install | dpkg --set-selections
Weitere Details zum Paketstatus und zur Behebung von Problemen finden Sie mit man dpkg.
527
Kapitel 21
Software- und Paketverwaltung
Neukonfiguration
Bei manchen Paketen gibt es zusätzlich zu den automatischen Konfigurations-Scripts interaktive Setup-Programme, die bei der individuellen Konfiguration des Programms helfen. Wenn Sie die Konfiguration später ändern möchten, führen Sie dpkg-reconfigure paketname aus.
Metadaten
dpkg verwaltet zu allen Paketen umfassende Metainformationen (eine Paketbeschreibung, eine Liste aller Dateien des Pakets, Abhängigkeitsdaten etc.). Diese Daten liegen im dctrl-Format (Debian control) vor. Das Paket dctrl-tools enthält diverse Kommandos, um Abfragen in den dctrl-Daten durchzuführen. man grep-dctrl gibt eine ausführliche Beschreibung dieser Kommandos und eine Menge konkreter Anwendungsbeispiele.
21.5 APT APT (Advanced Packaging Tool) ist für Debian-Pakete, was Yum für RPM-Pakete ist: ein High-LevelPaketverwaltungssystem, das Pakete selbstständig von Paketquellen herunterlädt und Paketabhängigkeiten automatisch auflöst. Die Kombination aus Debian-Paketen und APT ergibt momentan das wohl ausgereifteste Paketverwaltungssystem für Linux. Es wird unter anderem von Ubuntu und Debian als Standardsystem zur Paketverwaltung eingesetzt. Zur eigentlichen Paketverwaltung stehen zwei alternative Kommandos zur Auswahl: apt-get und aptitude. Beide Kommandos sind einander sehr ähnlich und weisen bei einfachen Operationen sogar dieselbe Syntax auf. Sowohl apt-get install paketname als auch aptitude install paketname laden das angegebene Paket und alle davon abhängigen Pakete herunter und installieren sie. Momentan kommt apt-get standardmäßig unter Ubuntu zum Einsatz, während Debian seit Version 5 den Einsatz von aptitude empfiehlt. Egal, ob Sie unter Debian oder Ubuntu arbeiten, beide Kommandos sind standardmäßig installiert. Wie Yum erfordert auch APT spezielle Paketquellen, die neben den DEB-Paketen auch Metainformationen über den Inhalt der Pakete und deren Abhängigkeiten zur Verfügung stellen. Es gibt auch eine APT-Version für RPM-Pakete, die im Vergleich zu Yum aber nur geringe Verbreitung gefunden hat. Dieser Abschnitt behandelt nur APT für Debian-Pakete. Informationen zu APT-RPM finden Sie hier: http://apt-rpm.org/
Konfiguration Die Konfiguration von APT erfolgt durch die beiden Dateien apt.conf.d/* und sources.list im Verzeichnis /etc/apt. Weitere Definitionen von Paketquellen können sich im Verzeichnis sources.list.d befinden. apt.conf.d/* enthält in der Regel nur wenige Basiseinstellungen, die Sie zumeist so belassen, wie sie von Ihrer Distribution vorgegeben sind (siehe auch man apt.conf). Schon interessanter ist sources.list (man sources.list). Diese Datei enthält zeilenweise die APT-Paketquellen. Die Syntax jeder Zeile sieht so aus:
528
APT
Abschnitt 21.5
pakettyp uri distribution [komponente1] [komponente2] [komponente3] ... Der Pakettyp lautet deb für gewöhnliche Debian-Pakete bzw. deb-src für Quellcodepakete. Die zweite Spalte gibt das Basisverzeichnis der Paketquelle an. Neben HTTP- und FTP-Verzeichnissen unterstützt APT auch gewöhnliche Verzeichnisse, RSH- oder SSH-Server sowie CDs bzw. DVDs. Ein Sonderfall sind allerdings CD- und DVD-Paketquellen: Derartige Paketquellen müssen mit dem etwas weiter unten beschriebenen Kommando apt-cdrom eingerichtet werden. Das bloße Hinzufügen einer deb cdrom-Zeile reicht nicht aus. Die dritte Spalte bezeichnet die Distribution. (Auf einem Server können sich ja durchaus Pakete für mehrere Distributionen bzw. Versionen befinden.) Alle weiteren Spalten geben die Komponenten der Distribution an, die berücksichtigt werden können. Die Komponentennamen sind von der Distribution und von der Paketquelle abhängig! Beispielsweise unterscheidet Ubuntu zwischen main-, restricted-, universe- und multiverse-Paketen, während Debian zwischen den Komponenten main, contrib, non-free etc. differenziert. Die zuerst genannten Paketquellen werden bevorzugt: Wenn ein bestimmtes Paket also in mehreren Quellen zum Download zur Verfügung steht, lädt APT es von der ersten Quelle herunter. Die folgenden Zeilen demonstrieren die Syntax. Sie gelten für Ubuntu 10.10 unter Verwendung eines deutschen Mirror-Servers. # Datei /etc/apt/sources.list deb http://de.archive.ubuntu.com/ubuntu/ maverick main restricted universe multiverse deb http://de.archive.ubuntu.com/ubuntu/ maverick-updates main restricted universe multiverse deb http://security.ubuntu.com/ubuntu maverick-security main restricted universe multiverse
Veränderungen an sources.list führen Sie am einfachsten mit einem Texteditor durch. Stattdessen können Sie auch das Programm apt-setup oder eine grafische Benutzeroberfläche wie Synaptic zu Hilfe nehmen. Auch CDs können als APT-Datenquellen dienen. Dazu müssen Sie für jede CD das Kommando aptcdrom add ausführen. apt-cdrom liest die APT-Metadaten der CD-ROM und trägt die verfügbaren Pakete in eine Cache-Datei ein. Außerdem wird sources.lst aktualisiert. Falls apt-cdrom sich darüber beklagt, dass es keine CD/DVD findet, geben Sie deren Verzeichnis mit der Option -d an: root#
apt-cdrom -d /media/dvd add
Bei den meisten APT-Quellen im Internet sind die Metadateien zur Beschreibung der Paketquellen durch einen Schlüssel signiert. Weiters enthalten die APT-Inhaltsverzeichnisse Prüfsummen für alle Pakete. Mit diesem Kontrollmechanismus kann sichergestellt werden, dass kein Paket nachträglich verändert wurde. Diese Kontrolle funktioniert aber nur, wenn das APT den öffentlichen Teil des Schlüssels kennt und somit die Authentizität des Paketarchivs feststellen kann. Um einen Schlüssel für APT einzurichten, verwenden Sie das Kommando apt-key: root#
CD als Paketquelle anmelden
APT-Schlüssel installieren
apt-key add schlüsseldatei.gpg
529
Kapitel 21
Software- und Paketverwaltung
apt-get Die eigentliche Paketverwaltung führen Sie wahlweise mit den Kommandos apt-get oder aptitude durch (siehe den nächsten Abschnitt). Die Syntax von apt-get ist auf Seite 1136 zusammengefasst, geht aber auch aus den folgenden Beispielen hervor. In ihnen sind die Ausgaben aus Platzgründen gekürzt. APT-Infos aktualisieren
Bevor Sie Pakete installieren, sollten Sie apt-get update ausführen und damit die neuesten Informationen aus den Paketquellen herunterladen. Dadurch werden weder Pakete installiert noch aktualisiert. Es geht hier nur um die Paketbeschreibungen!
Pakete installieren
Anschließend führen Sie apt-get install aus, wobei Sie den richtigen Paketnamen angeben müssen. Wenn das Kommando nicht erfüllte Paketabhängigkeiten entdeckt, schlägt es die fehlenden Pakete ebenfalls zur Installation vor. Sobald Sie diesem Vorschlag zustimmen, lädt apt-get die Paketdateien herunter und installiert sie. Im folgenden Beispiel empfiehlt apt-get die Installation einiger weiterer Pakete: root# apt-get update ... root# apt-get install apache2 ... Die folgenden zusätzlichen Pakete werden installiert: apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 Vorgeschlagene Pakete: apache2-doc apache2-suexec apache2-suexec-custom Die folgenden NEUEN Pakete werden installiert: apache2 apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 0 aktualisiert, 6 neu installiert, 0 zu entfernen und 11 nicht aktualisiert. Es müssen 1472kB an Archiven heruntergeladen werden. Nach dieser Operation werden 5452kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren [J/n]? ...
Pakete entfernen
apt-get remove paketname entfernt das angegebene Paket. Ursprünglich zusammen mit dem Paket installierte abhängige Pakete bleiben davon aber unberührt. Abhilfe schafft apt-get autoremove. Dieses Kommando entfernt alle nicht mehr benötigten Pakete.
Pakete aktualisieren
Mit apt-get dist-upgrade aktualisieren Sie alle installierten Pakete. Wenn dies aufgrund geänderter Paketabhängigkeiten erforderlich ist, werden auch neue Pakete installiert bzw. vorhandene Pakete entfernt. qqroot# apt-get upgrade ... Die folgenden Pakete werden aktualisiert: libmozjs1d xulrunner-1.9 xulrunner-1.9-gnome-support 3 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 8208kB an Archiven heruntergeladen werden. Nach dieser Operation werden 8192B Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren [J/n]? J ...
530
APT
Abschnitt 21.5
Zum apt-get-Kommando dist-upgrade existiert die Variante upgrade: Auch dabei werden alle Pakete aktualisiert. Der Unterschied besteht darin, dass dabei keine neuen Pakete installiert und keine vorhandenen Pakete entfernt werden. apt-get source paketname installiert den Quellcode des gewünschten Pakets in das aktuelle Verzeichnis. Weitere Details finden Sie auf Seite 549.
Quellcode installieren
Aptitude Das textbasierte Programm aptitude baut ebenfalls auf APT auf. Wenn Sie das Programm kommandoorientiert einsetzen (aptitude install paketname), ist es weitgehend syntaxkompatibel zu apt-get. Alternativ können Sie das Programm auch mit einer Text-Benutzeroberfläche in einer Konsole nutzen (siehe Abbildung 21.2), indem Sie das Programm einfach ohne weitere Parameter starten. Zur Menüauswahl verwenden Sie die Taste (F10).
Abbildung 21.2: Paketverwaltung mit aptitude
aptitude bietet im Vergleich zu apt-get einen entscheidenden Vorteil: Das Programm merkt sich, welche abhängigen Pakete installiert wurden, und entfernt diese bei einer Deinstallation automatisch wieder. Wenn Sie beispielsweise das Programm xyz installieren und dieses fünf weitere Pakete (lib-abc, lib-efg etc.) voraussetzt, dann werden diese Pakete bei der Deinstallation von xyz wieder entfernt (sofern mittlerweile kein anderes Paket davon abhängig ist). Wenn Sie xyz dagegen mit aptget oder Synaptic entfernen, bleiben die abhängigen Pakete lib-abc, lib-efg etc. erhalten. Nach einer Weile weiß niemand mehr, warum die Pakete installiert sind. Debian 5 empfiehlt explizit die Verwendung von aptitude anstelle von apt-get zur Paketverwaltung. Sie können sich über diese Empfehlung natürlich hinwegsetzen. Vermeiden Sie aber, die Kommandos zu mischen! Beide Kommandos verwalten jeweils eigene Datenbanken mit Daten über bereits installierte Pakete und deren Abhängigkeiten etc. Wenn Sie apt-get oder aptitude parallel einsetzen, werden diese Datenbanken inkonsistent.
531
Kapitel 21
Beispiel
Software- und Paketverwaltung
Die beiden folgenden Kommandos installieren zuerst das Paket html2ps und entfernen es dann wieder. Bemerkenswert ist, dass dabei die meisten zusammen mit html2ps installierten abhängigen Pakete wieder entfernt werden. (Es werden allerdings nicht alle abhängigen Pakete entfernt – aptitude ist also auch nicht vollkommen.) root# aptitude install html2ps Paketlisten werden gelesen... Fertig ... Die folgenden Pakete werden zusätzlich installiert: gs-gpl html2ps libcompress-zlib-perl libfont-afm-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libmailtools-perl ... Wollen Sie fortsetzen? [Y/n/?] Y ... root# aptitude remove html2ps ... Die folgenden Pakete sind nicht verwendet und werden ENTFERNT: libfont-afm-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libmailtools-perl libtimedate-perl liburi-perl libwww-perl perlmagick ...
tasksel Zur Installation von Paketgruppen greifen Debian und Ubuntu in der Regel auf Metapakete zurück: Das sind leere Pakete, die lediglich eine Menge Paketabhängigkeiten definieren. Beispielsweise wird zusammen mit dem Metapaket build-essential eine ganze Sammlung von Paketen mit grundlegenden Entwicklungswerkzeugen installiert (Compiler, make etc.). Daneben gibt es noch einen zweiten Mechanismus zur Definition von Paketgruppen, der auf dem Kommando tasksel basiert. Dieser Mechanismus ist vor allem dazu gedacht, während der Installation der Distribution auf einfache Weise Paketgruppen auszuwählen. tasksel kann aber natürlich auch später im laufenden Betrieb verwendet werden: Eine Liste aller verfügbaren Paketgruppen liefert tasksel --list-task. Zur Installation von Paketgruppen verwenden Sie tasksel install gruppenname. Wenn tasksel ohne Optionen ausgeführt wird, erscheint ein Dialog zur Auswahl der gewünschten Paketgruppen.
apt-cache apt-cache ermittelt diverse Daten zu den verfügbaren bzw. zu bereits installierten Paketen (siehe Seite 1135 für eine Syntaxübersicht): root# apt-cache show apache2 Package: apache2 Priority: optional Section: web ...
532
APT
Abschnitt 21.5
Description: next generation, scalable, extendable web server Apache v2 is the next generation of the omnipresent Apache web server. This version - a total rewrite - introduces many new improvements, such as threading, a new API, IPv6 support, request/response filtering, and more. ... root# apt-cache search scribus | sort lprof - Hardware Color Profiler scribus - Open Source Desktop Publishing scribus-template - additional scribus templates
Updates automatisieren APT wird normalerweise so installiert, dass Sie lediglich einige Konfigurationsdateien anpassen müssen, um Updates automatisch herunterzuladen und eventuell auch gleich zu installieren. Die erforderlichen Konfigurationsdateien sind Teil des Pakets unattended-upgrades, das unter Debian und Ubuntu standardmäßig installiert ist. Ausgangspunkt für die Download- und Update-Automatik ist das Programm Cron, das einmal täglich das Script /etc/cron.daily/apt ausführt. Es wertet die Konfigurationsdatei /etc/apt/apt.conf.d/ 50unattended-upgrades aus und führt bei Bedarf das Upgrade-Kommando unattended-upgrade aus. Automatische Updates müssen durch die folgenden Änderungen in 50unattended-upgrades explizit aktiviert werden: // Datei /etc/apt/apt.conf.d/50unattended-upgrades // tägliche Updates aktivieren APT::Periodic::Unattended-Upgrade "1"; // Sicherheits- und Standard-Updates durchführen Unattended-Upgrade::Allowed-Origins { "${distro_id} stable"; "${distro_id} ${distro_codename}-security"; "${distro_id} ${distro_codename}-updates"; }; // folgende Pakete nicht aktualisieren Unattended-Upgrade::Package-Blacklist { // "vim"; // ... }; // E-Mail über Update-Status senden // Unattended-Upgrade::Mail "root@localhost"; Die erste Zeile gibt an, nach wie vielen Tagen ein Update versucht werden soll. Mit Allowed-Origins geben Sie an, welche Paketquellen für das automatische Update berücksichtigt werden sollen. Mit Package-Blacklist können Sie einzelne Pakte vom automatischen Update ausschließen. Zu guter
533
Kapitel 21
Software- und Paketverwaltung
Letzt können Sie mit Mail eine Adresse angeben, an die das Kommando unattended-upgrade nach erfolgten Updates einen kurzen Statusbericht sendet. Der E-Mail-Versand setzt voraus, dass auf dem Rechner ein E-Mail-Server (MTA) eingerichtet ist und dass zusätzlich das Paket mailx installiert ist. Abschließend noch einige Interna zum Upgrade-Prozess: /etc/cron.daily/apt enthält ein sleepKommando, das das Script für eine zufällige Anzahl von bis zu 1800 Sekunden anhält (also für bis zu einer halben Stunde). Diese Zwangspause vermeidet, dass Tausende Rechner aufgrund des CronJobs gleichzeitig auf die Paketquellen zugreifen. Das Script /usr/bin/unattended-upgrade protokolliert alle Updates bzw. Update-Versuche in Logging-Dateien im Verzeichnis /var/log/unattended-upgrade. Außerdem legt /etc/cron.daily/ apt im Verzeichnis /var/lib/apt/periodic/ Timestamp-Dateien an, aus denen hervorgeht, wann bestimmte Operationen zum letzten Mal durchgeführt wurden. unattended-upgrade aktualisiert keine Pakete, für die ein sogenannter conffile prompt besteht, d. h., deren Konfigurationsdatei manuell verändert wurde. Leider geht das nur aus den LoggingDateien hervor, nicht aus der Status-E-Mail. Da dieser Fall in der Praxis recht oft vorkommt, müssen Sie trotz der automatisierten Updates regelmäßig kontrollieren, ob es nicht doch Updates gibt, die manuell durchzuführen sind.
Tipp
Kernel-Updates werden erst wirksam, wenn der Rechner neu gestartet wird. unattended-upgrade kümmert sich darum nicht – Sie müssen den Rechner also durch ein reboot-Kommando selbst neu starten. Automatische Updates sind gut, weil sie das Risiko vermindern, dass ein Angreifer eine bereits behobene Sicherheitslücke ausnutzt; aber sie können auch fatale Folgen haben, wenn einzelne Server-Funktionen aufgrund eines defekten Updates plötzlich nicht mehr richtig laufen. In der Vergangenheit hat Ubuntu mehrfach unzureichend getestete Updates freigegeben. Eine Alternative zu automatischen Updates ist ein Cron-Script, das einmal täglich die Verfügbarkeit neuer Updates überprüft (z. B. durch apt-get dist-upgrade --simulate) und das Ergebnis als E-Mail an den Administrator sendet.
Release- bzw. Distributions-Updates Mit apt-get dist-upgrade können Sie auch eine gesamte Distribution auf die nächstneuere Version aktualisieren. Dazu müssen Sie die Paketquellen in /etc/apt/sources.list vorher entsprechend neu einstellen. Bei Ubuntu können Sie ein Distributions-Update auch mit do-release-update -m desktop (für Desktop-Systeme) bzw. -m server (für Server) ausführen. Bei Ubuntu LTS-Versionen sind ReleaseUpdates nur für die nächste LTS-Version vorgesehen, also z. B. von 8.04 auf 10.04. Wenn Sie ein Update auf eine Nicht-LTS-Version durchführen möchten, müssen Sie vorher in /etc/updatemanager/release-upgrades die Variable Prompt von lts auf normal stellen. Release-Updates sind trotz des ausgezeichneten Debian-Paketverwaltungssystems eine heikle Angelegenheit. Dass nach dem Update alle Programme und Server-Dienste wie bisher funktionieren, ist eher ein Glücks- als der Regelfall.
534
APT
Abschnitt 21.5
apt-cacher (Paket-Proxy) Wenn in Ihrem Netzwerk Dutzende Debian- oder Ubuntu-Rechner laufen und jeder für sich seine Updates von einer externen Paketquelle bezieht, ergibt das ein Datenvolumen von einigen GByte pro Monat. Auch wenn die meisten Internetzugänge momentan ohne Download-Limit angeboten werden, verstopfen die Updates das Netz und machen den Internetzugang für das LAN langsamer als notwendig. Es liegt daher auf der Hand, im LAN einen zentralen Zwischenspeicher (Proxy) einzurichten, über den alle anderen Rechner Paket-Updates beziehen. Genau diese Aufgabe erfüllt das Programm apt-cacher. Auf dem Cache-Server (also dem Rechner, der den Zwischenspeicher verwaltet) muss das Paket apt-cacher installiert werden. (Viele apt-cacher-Anleitungen im Internet behaupten, dass Sie auch Apache installieren müssen. Das ist nicht richtig! apt-cacher arbeitet selbstständig. Ein Zusammenspiel mit Apache ist nur dann zweckmäßig, wenn die Kommunikation zu apt-cacher über den HTTP-Port 80 erfolgen soll.) root#
ServerKonfiguration
apt-get install apt-cacher
Damit apt-cacher in Zukunft automatisch als Dämon gestartet wird, müssen Sie eine kleine Änderung an /etc/default/apt-cacher durchführen: # Datei /etc/default/apt-cacher AUTOSTART=1 ... /etc/apt-cacher/apt-cacher.conf enthält die restliche Konfiguration. Die meisten Einstellungen können Sie so lassen, wie sie sind: Der APT-Proxy ist dann über den Port 3142 für alle Rechner zugänglich. Die Paketdateien werden im Verzeichnis /var/cache/apt-cacher gespeichert. Aus Sicherheitsgründen empfiehlt es sich, die folgenden Änderungen an der Konfiguration durchzuführen: # Datei /etc/apt-cacher/apt-cacher.conf ... daemon_addr=192.168.0.1 allowed_hosts=192.168.0.0/24 ... Damit binden Sie den Dämon an eine bestimmte Adresse (hier 192.168.0.1, wichtig bei Rechnern mit mehreren Netzwerkschnittstellen) und erlauben nur Clients aus dem Adressbereich 192.168.0.*, den Proxy zu nutzen. Außerdem ist es zweckmäßig, den Port 3142 internet-seitig durch eine Firewall zu blockieren. Nach diesen Konfigurationsarbeiten starten Sie apt-cacher erstmalig: root#
service apt-cacher start
apt-cacher protokolliert alle Zugriffe sowie eventuelle Fehler in Logging-Dateien im Verzeichnis /var/log/apt-cacher. Das Verzeichnis /var/cache/apt/archive auf dem Server enthält normalerweise bereits eine Menge Pakete, die von der lokalen Paketverwaltung für Installationen bzw. Updates heruntergeladen wurden. Sie können diese Pakete in den Cache von apt-cacher importieren. Das ist zweckmäßig, wenn zu erwarten ist, dass diese Pakete von anderen Rechnern im LAN benötigt werden:
Vorhandene Pakete importieren
535
Kapitel 21
Software- und Paketverwaltung
root# root# ClientKonfiguration
cd /usr/share/apt-cacher ./apt-cacher-import.pl /var/cache/apt/archives
Am Client vergewissern Sie sich mit einem Webbrowser, dass apt-cacher via HTTP erreichbar ist. Dazu geben Sie die folgenden Adressen ein (wobei Sie natürlich mein-apt-cacher durch den Hostnamen oder die IP-Adresse des Proxy-Servers ersetzen): http://mein-apt-cacher:3142 http://mein-apt-cacher:3142/report Die erste Seite fasst die Konfiguration zusammen, die zweite Seite gibt Informationen über die Effizienz des Proxys, die umso besser ist, je länger der Proxy läuft und je mehr Clients ihn benutzen. Wenn apt-cacher prinziell funktioniert, müssen Sie nur noch eine kleine Änderung an der APTKonfiguration durchführen, damit auch apt-get den Proxy verwendet. Dazu erstellen Sie die folgende neue Datei, wobei Sie wieder mein-apt-cacher durch den Hostnamen oder die IP-Adresse des ProxyServers ersetzen: // Datei /etc/apt/apt.conf.d/01proxy Acquire::http::Proxy "http://mein-apt-cacher:3142/"; Von nun an verwenden alle APT-Kommandos den neuen Proxy. Dateien, die dort noch nicht verfügbar sind, müssen natürlich wie bisher aus dem Internet heruntergeladen werden. Aber wenn der zweite Rechner im LAN ebenfalls ein Update durchführt oder ein Paket installiert, das vor Kurzem auch auf einen anderen Rechner installiert wurde, stehen die erforderlichen Pakete sofort zur Verfügung. (Beachten Sie, dass Sie die obige Zeile mit // auskommentieren müssen, wenn Sie mit Ihrem Notebook unterwegs sind und Updates oder Pakete installieren möchten, obwohl Sie gerade keinen Zugang zum Proxy-Server haben!)
Synaptic Zu APT existieren zahlreiche grafische Benutzeroberflächen, wobei das momentan beste Programm ohne Zweifel Synaptic ist (siehe Abbildung 21.3). Paketsuche
Synaptic besitzt gleich zwei Suchfunktionen: eine Schnellsuche für Paketnamen und -beschreibungen und eine herkömmliche Suchfunktion, in der Sie auch nach anderen Kriterien suchen können. Beide Suchfunktionen können miteinander kombiniert werden: Die Schnellsuche bezieht sich dann auf die Suchergebnisse der herkömmlichen Suche. Zumeist ist diese Kombination aber unbeabsichtigt: Löschen Sie entweder den Suchtext im Schnellsuchfeld, oder klicken Sie in der Spalte SUCHERGEBNISSE auf den Eintrag A LLE, um so die herkömmliche Suchfunktion zurückzustellen.
Installation
Um ein bestimmtes Paket zu installieren, wählen Sie es per Doppelklick zur Installation aus. Wenn das Paket von anderen Paketen abhängig ist, erscheint ein Dialog mit allen weiteren Paketen, die ebenfalls installiert werden müssen. Die eigentliche Installation beginnt mit dem Button A NWENDEN , wobei Sie noch eine Zusammenfassung aller geplanten Aktionen bestätigen müssen.
536
APT
Abschnitt 21.5
Abbildung 21.3: Paketverwaltung mit Synaptic
Die Liste aller zur Installation vorgemerkten Pakete sehen Sie, wenn Sie zuerst den Button BENUT ZERDEFINIERTE FILTER und dann den Listeneintrag VORGEMERKTE Ä NDERUNGEN anklicken. Synaptic merkt sich alle Installationsvorgänge. Sie können diese jederzeit mit DATEI|C HRONIK nachvollziehen. Die Verwaltung der Paketquellen erfolgt im Dialog E INSTELLUNGEN|PAKETQUELLEN . Dort werden alle bekannten Paketquellen angezeigt. Durch einen Klick auf das Auswahlhäkchen können Sie einzelne Paketquellen rasch aktivieren bzw. deaktivieren. Mit B EARBEITEN verändern Sie die Eigenschaften vorhandener Paketquellen, mit H INZUFÜGEN richten Sie eine neue Paketquelle ein.
Paketquellen verwalten
Es kann immer nur ein Paketverwaltungsprogramm laufen. Beim Versuch, zwei Paketverwaltungsprogramme gleichzeitig auszuführen, erscheint die Warnung unable to get exclusive lock. Das bedeutet, dass das Programm nicht allein auf die internen Paketverwaltungsdateien zugreifen kann. Abhilfe: Beenden Sie eines der beiden Programme.
Locking
In seltenen Fällen tritt die lock-Warnung auch dann auf, wenn augenscheinlich kein anderes Paketverwaltungsprogramm mehr läuft. Die Ursache ist zumeist, dass ein Programm die lock-Datei beim Programmende nicht ordnungsgemäß entfernt hat. Gegebenenfalls löschen Sie die lock-Datei ganz einfach: root#
rm /var/lib/dpkg/lock
In seltenen Fällen passiert es, dass während der Installation oder Deinstallation eines Pakets ein Problem auftritt und der Vorgang nicht korrekt abgeschlossen werden kann. Das Paket wird dann als defekt markiert. Synaptic und andere Paketverwaltungswerkzeuge verweigern ihren Dienst, bis dieses Problem gelöst ist.
Defekte Pakete
537
Kapitel 21
Software- und Paketverwaltung
Zur Abhilfe klicken Sie in Synaptic in der Seitenliste auf den Button BENUTZERDEFINIERT und dann auf den Eintrag DEFEKT. Synaptic zeigt nun eine Liste aller defekten Pakete an. Markieren Sie alle Pakete durch (Strg)+(A), klicken Sie die Liste mit der rechten Maustaste an, und wählen Sie den Eintrag Z UM ERNEUTEN INSTALLIEREN VORMERKEN . Anschließend führen Sie die Neuinstallation durch A NWENDEN aus. Sollten dabei abermals Probleme auftreten, markieren Sie die betreffenden Pakete zum Entfernen.
21.6 PackageKit PackageKit ist eine Benutzeroberfläche zur Paketinstallation und -verwaltung. Die größte Besonderheit des Programms besteht darin, dass es zu vielen Paketverwaltungssystemen kompatibel ist, unter anderem zu APT, Yum und Zypper. PackageKit bzw. dessen KDE-Variante KPackageKit wird unter anderem von Fedora, Kubuntu und openSUSE eingesetzt (in openSUSE allerdings nur zur Durchführung von Updates). PackageKit greift zur Erlangung von root-Rechten auf PolicyKit zurück (siehe Seite 361). Interna und Konfiguration
PackageKit ist aus mehreren Teilen zusammengesetzt, die üblicherweise in eigenen Paketen verpackt sind: Zu den wichtigsten Komponenten zählen die Grundfunktionen bzw. -kommandos (Paket packagekit), die Schnittstelle zum zugrunde liegenden Paketverwaltungssystem (z. B. packagekitbackend-apt) und die grafische Benutzeroberfläche (Paket gnome-packagekit bzw. kpackagekit). Die Paketnamen variieren je nach Distribution. PackageKit wird durch die Dateien /etc/PackageKit/* konfiguriert. Die wichtigste Einstellung ist DefaultBackend in PackageKit.conf: Diese Variable gibt an, auf welches backend (also auf welches Paketverwaltungssystem) PackageKit zurückgreifen soll. Der Dämon packagekitd ist für die Koordination der PackageKit-Operationen erforderlich. Das Programm wird bei Bedarf automatisch von den PackageKit-Kommandos bzw. -Benutzeroberflächen gestartet. Mit dem Kommando pkcon können Sie sämtliche Paketoperationen auch in einer Konsole ausführen oder durch ein Script automatisieren. Beachten Sie, dass das Kommando nicht von root ausgeführt werden darf! Sie müssen das Kommando als gewöhnlicher Benutzer starten; soweit erforderlich, verwendet das Kommando PolicyKit, um root-Rechte zu erlangen. (Diese Regel gilt auch für die grafischen Benutzeroberflächen). Falls Sie in einer Konsole verfolgen möchten, was PackageKit gerade macht, führen Sie pkmon aus.
Installation von Paketen
Die weitere Beschreibung von PackageKit bezieht sich auf dessen grafische Benutzeroberfläche für Gnome, wobei ich die mit Fedora 13 mitgelieferte Version getestet habe. Zur Installation zusätzlicher Pakete bzw. zum Entfernen vorhandener Pakete starten Sie das Programm gpk-application. Sie können nun nach dem Paketnamen suchen (siehe Abbildung 21.4) oder durch diverse Gruppen zusammengehöriger Pakete blättern (PAKET -Z USAMMENSTELLUNGEN). Über das FILTER-Menü können Sie die bisweilen riesigen Ergebnislisten einschränken – z. B. auf bereits installierte Pakete, auf Entwicklerpakete oder auf Pakete mit grafischer Benutzeroberfläche. Mit A NWENDEN starten Sie die Installation bzw. Deinstallation des ausgewählten Pakets.
538
tar
Abschnitt 21.7
Abbildung 21.4: Paketinstallation mit dem PackageKit
Das unter Gnome standardmäßig im Hintergrund laufende Programm gpk-update-icon testet regelmäßig, ob Updates zur Verfügung stehen. Ist das der Fall, weist ein Icon im Panel darauf hin. Ein Mausklick startet dann den gpk-update-viewer, der Details über die verfügbaren Updates anzeigt. Nach dem Start des Updates informiert ein Statusdialog über den Verlauf des Updates.
Updates
21.7 tar Vor allem bei erfahrenen Linux-Anwendern kommt es häufig vor, dass Linux-Software installiert werden soll, die nicht in Form eines Pakets einer bestimmten Distribution organisiert ist. Ganze GBytes von Linux-Software im tar-Format finden Sie auf diversen Linux-Internet-Servern. Mit gzip komprimierte Archive weisen üblicherweise die Dateikennungen *.tgz oder *.tar.gz auf. Die Archive müssen mit dem Programm tar auf Ihrem Rechner installiert werden. (Details zum Umgang mit tar finden Sie auf Seite 1221.) root# root# root# root#
tar tar tar tar
-tzf -xzf -xzf -xzf
archiv.tar.gz archiv.tar.gz archiv.tar.gz "*.tex" archiv.tar.gz -C verz
(Inhalt des Archivs anzeigen) (Dateien relativ zum aktuellen Verzeichnis auspacken) (nur *.tex-Dateien auspacken) (in ein Verzeichnis auspacken)
Immer häufiger wird zur Komprimierung der Archive das leistungsstärkere Programm bzip2 verwendet. Sie erkennen derartige Archive an der Kennung *.tar.bz2. Zum Anzeigen bzw. Dekomprimieren müssen Sie nun statt -z die tar-Option -j verwenden, also beispielsweise tar -tjf archiv.tar.bz2. In vielen Fällen liegt die Software nur im Quellcode vor und muss vor ihrer Verwendung noch kompiliert werden (siehe auch Seite 547). Das setzt voraus, dass Sie die wichtigsten Entwicklungswerkzeuge (gcc, make etc.) sowie alle erforderlichen Bibliotheken (devel-Pakete) installiert haben.
539
Achtung
Kapitel 21
Software- und Paketverwaltung
Die Installation von Software-Pakten durch tar umgeht die Paketverwaltung des jeweiligen Systems. Die RPM-Datenbanken wissen daher nichts von den Programmen, die Sie installiert haben. Aus diesem und anderen Gründen ist es immer vorzuziehen, Pakete zu installieren, die speziell für die jeweilige Distribution vorbereitet wurden.
21.8 Umwandlung zwischen Paketformaten (alien) Was können Sie tun, wenn ein Paket nur im RPM-Format zu finden ist, Sie aber unter Debian oder Ubuntu arbeiten? Was tun Sie, wenn Sie aus einem RPM-Paket nur eine einzige Datei ansehen möchten? Die Antwort lautet: Verwenden Sie alien. Dieses Kommando wandelt Pakete zwischen verschiedenen Formaten um (RPM, DEB, tar-Archiv und Stampede SLP). alien funktioniert leider nur bei einfachen Paketen problemlos. Wenn ein Paket dagegen Installations-Scripts oder andere spezifische Eigenheiten des jeweiligen Paketformats nutzt, wird die Installation des zuvor umgewandelten Pakets meist scheitern. Generell ist alien eher ein Werkzeug für Linux-Profis. Das gewünschte Paketformat wird durch die Optionen --to-deb (Debian), --to-rpm (RPM) oder --to-tgz (tar-Archiv) angegeben. alien muss von root ausgeführt werden, damit die Besitzer und Zugriffsrechte der neuen Pakete richtig eingestellt werden. Das folgende Kommando wandelt ein Debian-Paket in ein RPM-Paket um: root#
alien --to-rpm paket.deb
Die folgenden Kommandos zeigen, wie Sie eine einzelne Datei aus einem RPM-Paket extrahieren. Dazu wandeln Sie das Paket zuerst in ein tar-Archiv um und verwenden dann tar, um die Datei daraus zu extrahieren und dann mit less anzuzeigen. (Statt tar können Sie natürlich auch den Dateimanager Konqueror oder Archivprogramme wie ark oder file-roller einsetzen. Diese Programme zeigen den Inhalt des Archivs in einer ansprechenden Benutzeroberfläche an.) root# root# root#
alien --to-tgz paket.rpm tar -xzf paket.tgz ./usr/share/doc/packages/paket/TODO less ./usr/share/doc/packages/paket/TODO
21.9 Verwaltung von Parallelinstallationen (alternatives) Unter Linux stehen oft mehrere alternative Programme zur Auswahl, die denselben Zweck erfüllen und manchmal sogar denselben Kommandonamen nutzen: Drucksysteme, Editoren, FTPKommandos, Java-Umgebungen etc. In manchen Situationen ist es zweckmäßig, mehrere Varianten bzw. sogar mehrere Versionen ein- und desselben Programms parallel zu installieren. Sofern dabei jede Programmversion in einem eigenen Verzeichnisbaum landet, ist die Installation an sich ohne Konflikte möglich. Welche Programmversion kommt aber zum Einsatz, wenn der Anwender ein bestimmtes Kommando ausführt?
540
Verwaltung von Parallelinstallationen (alternatives)
Abschnitt 21.9
Zur Beantwortung dieser Frage verwenden viele gängige Distributionen ein zuerst von Debian eingesetztes Konzept, das auf symbolischen Links im Verzeichnis /etc/alternatives basiert. Die folgende Liste gibt an, in welchem Paket das alternatives-Verzeichnis und das dazugehörende Verwaltungskommando update-alternatives enthalten ist: Debian, Ubuntu: Red Hat, Fedora: SUSE:
Paket dpkg Paket chkconfig Paket update-alternatives
Am einfachsten ist das Konzept anhand eines Beispiels zu verstehen. Nehmen wir an, auf einem Rechner sind zwei Java-Versionen installiert. Java-Programme werden mit java klasse ausgeführt. Nun ist /usr/bin/java als Link auf /etc/alternatives/java realisiert. /etc/alternatives/java ist ein weiterer Link, der auf die gewünschte Java-Version verweist. user$ ls -l /usr/bin/java ... /usr/bin/java -> /etc/alternatives/java user$ ls -l /etc/alternatives/java ... /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk/jre/bin/java Die Verwaltung der Links erfolgt in der Regel automatisch durch Scripts bei der Paketinstallation. Dabei kommt das Kommando update-alternatives zur Anwendung. Die Syntax des Kommandos ist auf Seite 1228 zusammengefasst. Unter Red Hat/Fedora ist das Kommando auch unter dem Namen alternatives verfügbar. Mit update-alternatives --display stellen Sie fest, welche Versionen eines bestimmten Programms verfügbar sind und welche Version standardmäßig gilt. Die folgenden Zeilen zeigen das Ergebnis für java unter Ubuntu nachdem zwei Java-Versionen installiert wurden. Die slave-Zeilen betreffen Kommandos, die dem eigentlichen Programm untergeordnet sind, und man-Seiten. updatealternatives aktualisiert bei einer Veränderung des Kommando-Links automatisch auch alle slave-Links.
Alternativen auflisten
root# update-alternatives --display java java - Auto-Modus Link verweist zur Zeit auf /usr/lib/jvm/java-6-openjdk/jre/bin/java /usr/lib/jvm/java-6-openjdk/jre/bin/java - Priorität 1061 Slave java.1.gz: /usr/lib/jvm/java-6-openjdk/jre/man/man1/java.1.gz /usr/lib/jvm/java-6-sun/jre/bin/java - Priorität 63 Slave java.1.gz: /usr/lib/jvm/java-6-sun/jre/man/man1/java.1.gz Gegenwärtig »beste« Version ist /usr/lib/jvm/java-6-openjdk/jre/bin/java. Normalerweise erfolgt die Link-Verwaltung im Automatikmodus: Jedes installierte Paket enthält eine Prioritätsnummer. update-alternative aktiviert bei jeder (De-)Installation die Alternative mit der höchsten Priorität. update-alternatives -config bestimmt die in Zukunft aktive Variante. Das Kommando liefert die Liste der zur Auswahl stehenden Alternativen, von denen Sie dann eine aktivieren. updatealternatives aktualisiert nun die Links. update-alternatives -auto führt bei Bedarf zurück in den Automatikmodus.
Andere Alternative auswählen
541
Kapitel 21
Software- und Paketverwaltung
root# update-alternatives --config java update-alternatives --config java Es gibt 2 Auswahlmöglichkeiten für die Alternative java (welche /usr/bin/java bereitstellen). Auswahl Pfad Priorität Status ----------------------------------------------------------------------------------/usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 Auto-Modus * 0 1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manueller Modus 2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manueller Modus Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten, oder geben Sie die Auswahlnummer ein: 2 update-alternatives: Verwende /usr/lib/jvm/java-6-sun/jre/bin/java, um /usr/bin/java (java) in manueller Modus bereitzustellen. Interne Verwaltungsinformationen zu den Links werden je nach Distribution im Verzeichnis /var/lib/alternatives oder /var/lib/rpm/alternatives gespeichert.
542
22. Bibliotheken, Java und Mono Im Mittelpunkt dieses Kapitels stehen Bibliotheken, die zur Ausführung von Programmen erforderlich sind. Die meisten Linux-Programme stehen in kompilierter Form zur Verfügung und greifen auf diverse Bibliotheken zurück, die dynamisch bei Bedarf geladen werden. Der erste Abschnitt dieses Kapitels führt in die unter Linux übliche Bibliotheksverwaltung ein. Wenn Sie mit gängigen Distributionen arbeiten, installieren Sie zumeist nur fertig kompilierte Programme (sogenannte Binärpakete). Wenn Sie allerdings ganz neue Programmversionen oder selten benutzte Programme einsetzen möchten, kann es sein, dass Sie keine vorkompilierte Version des Programms zum Download finden. In solchen Fällen müssen Sie den Quellcode (meist in den Sprachen C oder C++) herunterladen und das Programm selbst kompilieren. Abschnitt 22.2 gibt dazu einige einführende Tipps (ohne aber im Detail auf das unerschöpfliche Thema Programmentwicklung unter Linux einzugehen). Das Kapitel beschreibt auch, wie unter Linux Java- bzw. .NET-Programme ausgeführt werden. Dazu muss eine Java-Laufzeitumgebung bzw. Mono installiert werden. Bei vielen Distributionen ist das bereits standardmäßig der Fall. Scripts, die von einem Interpreter ausgeführt werden, sind nicht Thema dieses Kapitels. Unter Linux sind diverse Script-Sprachen üblich, unter anderem Perl, Python, PHP (für Webseiten) sowie die Shell bash. Dieses Buch geht allerdings nur auf die bash ausführlich ein (siehe Kapitel 19). Ganz kurz kommt auch PHP zur Sprache: In Kapitel 32 geht es um die Installation eines LAMP-Servers (Linux + Apache + MySQL + PHP).
22.1 Bibliotheken Praktisch alle Linux-Programme verwenden dieselben Standardfunktionen, beispielsweise zum Zugriff auf Dateien, zur Ausgabe am Bildschirm, zur Unterstützung von X etc. Es wäre sinnlos, wenn jedes noch so kleine Programm all diese Funktionen unmittelbar im Code enthalten würde – riesige Programmdateien wären die Folge. Stattdessen bauen die meisten Linux-Programme auf sogenannten Shared Libraries auf: Bei der Ausführung eines Programms werden automatisch auch die erforderlichen Libraries (Bibliotheken) geladen. Der Vorteil: Wenn mehrere Programme Funktionen derselben Library nutzen, muss die Library nur einmal geladen werden. Bibliotheken spielen eine zentrale Rolle dabei, ob und welche Programme auf Ihrem Rechner ausgeführt werden können. Fehlt auch nur eine einzige Bibliothek (bzw. steht sie in einer zu alten Version
Kapitel 22
Bibliotheken, Java und Mono
zur Verfügung), kommt es sofort beim Programmstart zu einer Fehlermeldung. Damit Sie in solchen Fällen nicht ganz hilflos den Tiefen der Linux-Interna ausgeliefert sind, vermittelt dieser Abschnitt einige Grundlageninformationen zu Bibliotheken. Dynamisch gelinkte Programme
Die meisten Linux-Programme greifen auf Shared Libraries zurück. Das spart sowohl Festplattenkapazität (weil die Binärdateien der Programme kompakt sind) als auch RAM (weil derselbe Code nicht mehrfach geladen werden muss). Für MS-Windows-Programmierer: Shared Libraries sind vom Konzept her mit Windows-DLLs (Dynamic Link Libraries) zu vergleichen.
Statisch gelinkte Programme
Beim Kompilieren eines Programms besteht auch die Möglichkeit, Libraries statisch zu linken. Das bedeutet, dass die Library-Funktionen direkt in den Programmcode integriert werden. Die Programmdatei wird dadurch größer, ist aber nicht von irgendwelchen Libraries abhängig. Das ist praktisch, um Programme weiterzugeben, die unabhängig von den gerade installierten Bibliotheken auf Anhieb funktionieren. Bisweilen werden auch einige elementare Administrationskommandos statisch gelinkt, damit diese selbst dann verwendbar bleiben, wenn die Shared Libraries aufgrund einer falschen Konfiguration nicht verfügbar sind.
Bibliotheksformate und -versionen Im Laufe der Linux-Geschichte hat es mehrmals ebenso grundlegende wie inkompatible Veränderungen der Linux-Bibliotheken gegeben, beispielsweise die Umstellung vom sogenannten a.out-Format auf das ELF-Format oder die Umstellung von der Bibliothek libc 5 auf die glibc 2.n , die auch unter dem Namen libc 6 angesprochen wird. (Mittlerweile ist glibc 2.10 aktuell.) In beiden Fällen gab es technische Gründe für den Bibliothekswechsel. Die jeweils neuen Formate bzw. Versionen ermöglichen eine bessere Verwaltung der Libraries, neue Funktionen, eine bessere Kompatibilität zwischen den verschiedenen Linux-Plattformen (Intel, Sun-Sparc, DEC-Alpha) etc. Das Problem bei den Bibliotheksumstellungen besteht darin, dass kompilierte Programme nur dann ausgeführt werden können, wenn die dazu passenden Bibliotheken installiert sind und auch gefunden werden können. Der Versuch, ein glibc-Programm auf einer alten Distribution ohne glibcUnterstützung auszuführen, endet mit der folgenden kryptischen Fehlermeldung:
Hinweis
root# programmxy bash: /usr/local/bin/programmxy: No such file or directory Aufgrund von Schwierigkeiten mit dem Verwalter der glibc-Bibliothek wird die kommende DebianVersion 6 ( »Squeeze«) voraussichtlich nicht die originale glibc-Bibliothek einsetzen, sondern die dazu vollkommen kompatible Bibliothek eglibc. Die Umstellung soll weder für den Endanwender noch für Entwickler mit Problemen verbunden sein. Die Hintergründe dieses Schritts sind hier beschrieben: http://lwn.net/Articles/332000/
Bibliotheken automatisch laden Sofern Sie Linux nur als Anwender nutzen (nicht als Programmierer), werden Sie mit Bibliotheken eigentlich nur dann konfrontiert, wenn sie fehlen. Meistens treten solche Probleme auf, wenn Sie ein
544
Bibliotheken
Abschnitt 22.1
neues Programm nachträglich installieren. Beim Versuch, das Programm zu starten, erscheint eine Fehlermeldung, in der das Fehlen einer bestimmten Library angezeigt wird. (Aktuelle Programmversionen sind oft mit der allerneuesten Version der jeweiligen Bibliothek gelinkt, die auf Ihrem Rechner vielleicht noch nicht installiert ist. Bei älteren Programmversionen kann gerade das Gegenteil der Fall sein. Sie sind womöglich noch mit einem alten Bibliothekstyp gelinkt, der von Ihrer Distribution gar nicht mehr unterstützt wird.) Dem Kommando ldd wird als Parameter der vollständige Dateiname des Programms übergeben. Als Reaktion listet ldd alle Libraries auf, die das Programm benötigt. Außerdem wird angegeben, wo sich eine passende Library befindet und welche Libraries fehlen bzw. nur in einer veralteten Version zur Verfügung stehen. user$
Bibliotheksliste feststellen
ldd /bin/cp linux-vdso.so.1 => (0x00007ffff83fe000) libselinux.so.1 => /lib/libselinux.so.1 (0x00007fd0eff6f000) libacl.so.1 => /lib/libacl.so.1 (0x00007fd0efd67000) libc.so.6 => /lib/libc.so.6 (0x00007fd0ef9f5000) libdl.so.2 => /lib/libdl.so.2 (0x00007fd0ef7f1000) libattr.so.1 => /lib/libattr.so.1 (0x00007fd0ef5ec000) /lib64/ld-linux-x86-64.so.2 (0x00007fd0f018b000)
Bei X-, KDE- und Gnome-Programmen ist die Bibliotheksliste wesentlich länger. Das ist auch der Grund, warum der Start dieser Programme relativ lange dauert. Wenn ldd das Ergebnis not a dynamic executable liefert, handelt es sich um ein Programm, das alle erforderlichen Bibliotheken bereits enthält, also um ein statisch gelinktes Programm. Kurz einige Informationen zur Nomenklatur der Libraries: Das Kürzel .so weist darauf hin, dass es sich um eine Shared Library handelt (im Gegensatz zu .a für statische Libraries). Die folgende Ziffer gibt die Hauptversionsnummer an. ls benötigt also Version 6 der libc-Bibliothek.
Bibliotheksnamen
In den typischen Library-Verzeichnissen (zumeist /lib, /usr/lib, /usr/local/lib, /usr/X11R6/lib und /opt/lib) befinden sich oft Links von der Library-Hauptversion auf die tatsächlich installierte Library. So benötigt cp (siehe oben) die Bibliothek ld-linux-x68-64.so.2. Tatsächlich ist aber die aufwärtskompatible Version ld-2.9.so auf dem Rechner installiert: user$ ls -l /lib/ld* ... /lib/ld-2.9.so ... /lib/ld-linux.so.2 -> /lib32/ld-linux.so.2 ... /lib/ld-linux-x86-64.so.2 -> ld-2.9.so Beim Start eines Programms ist der sogenannte Runtime Linker ld.so dafür zuständig, alle Bibliotheken zu finden und zu laden. ld.so berücksichtigt dabei alle in der Umgebungsvariable LD_LIBRARY_PATH enthaltenen Verzeichnisse. Die Verzeichnisse müssen durch Doppelpunkte getrennt sein.
Programmstart
Außerdem wertet der Linker die Datei/etc/ld.so.cache aus. Dabei handelt es sich um eine Binärdatei mit allen relevanten Bibliotheksdaten (Versionsnummern, Zugriffspfaden etc.). Der einzige Zweck dieser Datei besteht darin, dem Linker eine langwierige Suche nach den Bibliotheken zu ersparen.
545
Kapitel 22
Bibliotheken, Java und Mono
/etc/ld.so.cache wird vom Programm ldconfig erzeugt. ldconfig wertet seinerseits /etc/ ld.so.conf aus. Diese Datei enthält üblicherweise eine Liste mit allen Bibliotheksverzeichnissen bzw. Verweise auf andere Dateien mit den Verzeichnissen. (Die Verzeichnisse /lib und /usr/lib werden auf jeden Fall berücksichtigt und fehlen daher zumeist in ld.so.conf bzw. in den weiteren Konfigurationsdateien. Wenn außer /lib und /usr/lib keine weiteren Verzeichnisse zu berücksichtigen sind, kann ld.so.conf auch ganz fehlen.) Bei manchen Distributionen wird ldconfig bei jedem Rechnerneustart ausgeführt, um so sicherzustellen, dass die Cache-Datei auf dem aktuellsten Stand ist. ldconfig muss unbedingt ausgeführt werden, wenn neue Bibliotheken manuell installiert werden! Andernfalls sind die Bibliotheken für das System nicht sichtbar. Falls sich die Bibliotheken in einem neuen Verzeichnis befinden, muss außerdem die Datei /etc/ld.so.conf entsprechend ergänzt werden. Bei der Installation von Bibliothekspaketen kümmert sich in der Regel der Paketmanager um diese Aufgaben.
32- und 64-Bit-Bibliotheken Die meisten gängigen Distributionen gibt es momentan in zumindest zwei Ausführungen: für Intel/ AMD-kompatible 32-Bit-Prozessoren und für Intel/AMD-kompatible 64-Bit-Prozessoren. Bei 32-BitDistributionen gibt es naturgemäß nur 32-Bit-Bibliotheken. Dies gilt aber leider nicht analog für 64Bit-Distributionen: Nach wie vor gibt es Programme, die sich nicht für 64-Bit-Systeme kompilieren lassen. Der Acrobat Reader von Adobe ist der zurzeit bekannteste Vertreter dieser Gattung. Zur Ausführung von 32-Bit-Programmen auf 64-Bit-Distributionen sind 32-Bit-Bibliotheken erforderlich. Um Konflikte zu vermeiden, werden die Bibliotheken in unterschiedliche Verzeichnisse installiert. Im Linux-Jargon heißt diese Vorgehensweise Multi Architecture (Multiarch) bzw. exakter Bi-architecture, weil mehrere bzw. zwei Prozessorarchitekturen parallel unterstützt werden. Bei den meisten Distributionen sind die Verzeichnisse /lib32 oder /lib64 üblich, um zwischen Bibiliotheken unterschiedlicher Bitbreite zu differenzieren. Diese Doppelgleisigkeit ist natürlich mit Nachteilen verbunden: Die doppelte Installation zahlloser Bibliotheken erfordert zusätzlichen Platz auf der Festplatte und macht die Wartung komplizierter.
Prelinking Beim Start eines Programms, das auf dynamische Bibliotheken zurückgreift, muss eine Verbindung zwischen dem Programm und den Bibliotheken hergestellt werden. Dieser Vorgang wird als Linking bezeichnet. Er beansprucht bei komplexen Programmen geraume Zeit. Das Programm prelink kann die erforderlichen Link-Informationen im Voraus ermitteln, was beim ersten Mal sehr lange dauert. Bei diesem Vorgang müssen alle ausführbaren Programme durchsucht werden. Welche Verzeichnisse für Programme und Bibliotheken prelink berücksichtigt, wird durch die Datei /etc/prelink.conf konfiguriert. Weitere Optionen können Sie in /etc/sysconfig/ prelink bzw. /etc/default/prelink (Debian, Ubuntu) einstellen. In der Folge kann jedes so präparierte Programm viel schneller auf seine Bibliotheken zugreifen und daher schneller starten. Besonders stark merkt man die Beschleunigung beispielsweise bei
546
Programme selbst kompilieren
Abschnitt 22.2
OpenOffice oder bei KDE-Programmen, deren Startzeit sich in etwa halbiert. Die Prelinking-Informationen müssen allerdings jedes Mal aktualisiert werden, wenn eine Bibliothek aktualisiert wird. Prelinking hat den Nachteil, dass dadurch die ausführbaren Dateien aller Programme und Bibliotheken verändert werden. Es ist anschließend nicht mehr möglich, die Integrität dieser Dateien zu kontrollieren (also sicherzustellen, dass die Dateien nach der Installation nicht verändert wurden). Immerhin können Sie mit prelink -ua alle Prelinking-Veränderungen rückgängig machen. Hintergrundinformationen zum Prelinking finden Sie auf der man-Seite zu prelink sowie unter: http://www.gentoo.org/doc/en/prelink-howto.xml Um Prelinking unter Debian und Ubuntu zu nutzen, müssen Sie das Paket prelink installieren und in /etc/default/prelink die Einstellung PRELINKING=yes vornehmen. prelink wird täglich durch einen Cron-Job ausgeführt.
Debian, Ubuntu
Bei Fedora und Red Hat ist Prelinking standardmäßig eingerichtet. Die Prelinking-Informationen werden regelmäßig aktualisiert (Cron-Job /etc/cron.daily/prelink, Konfigurationsdatei /etc/sysconfig/prelink).
Red Hat, Fedora
Um Prelinking in SUSE-Distributionen zu nutzen, müssen Sie das Paket prelink installieren und dann in /etc/sysconfig/prelink die Einstellung PRELINKING=yes vornehmen. prelink wird in Zukunft nach jeder Installation von Programmen oder Bibliotheken durch YaST ausgeführt (Script /sbin/conf.d/SuSEconfig.prelink).
SUSE
22.2 Programme selbst kompilieren Es gibt zumeist nur zwei Gründe dafür, Linux-Programme selbst zu kompilieren: Entweder finden Sie für das gewünschte Programm und Ihre Distribution kein Binärpaket mit dem fertig kompilierten Programm, oder Sie möchten das Programm mit einer vom Standard abweichenden Konfiguration kompilieren. Bevor Sie zur Tat schreiten, müssen einige Voraussetzungen erfüllt sein:
Voraussetzungen
» Die GNU Compiler Collection (Pakete gcc und gcc-c++) muss installiert sein. Diese Pakete enthalten Compiler für C und C++. » Hilfswerkzeuge wie make, automake, autoconf etc. müssen installiert sein. Diese Programme sind für die Konfiguration und Durchführung des Kompilationsprozesses erforderlich. » Die Entwicklerversionen diverser Bibliotheken müssen installiert sein. Die Namen der entsprechenden Pakete enden üblicherweise auf -devel (Red Hat, SUSE) oder -dev (Debian, Ubuntu). Beispielsweise enthält glibc-devel bzw. libc6-dev die Entwicklungsdateien für die glibcBasisbibliothek. Welche Entwicklerpakete Sie sonst noch brauchen, hängt von der Natur des Programms ab, das Sie kompilieren möchten. Fehlermeldungen, in denen sich der Compiler oder Linker über fehlende Bibliotheken beklagt, sind ein eindeutiges Indiz dafür, dass Sie ein wichtiges Entwicklerpaket übersehen haben.
547
Kapitel 22
Bibliotheken, Java und Mono
Debian, Ubuntu
Bei Debian und Ubuntu definiert das Metapaket build-essential Abhängigkeiten für die wichtigsten Entwicklerpakete. Deswegen führt die Installation von build-essential automatisch zur Installation diverser weiterer Pakete, die zusammen die Grundausstattung für die Programmentwicklung in C/C++ bilden.
Fedora
Um die Grundvoraussetzungen für die Programmentwicklung in Fedora zu erfüllen, führen Sie am einfachsten yum groupinstall development-tools aus. Auch für die KDE- und Gnome-Programmentwicklung gibt es eigene Paketgruppen: kde-software-development und gnome-softwaredevelopment.
SUSE
Angehende SUSE-Entwickler installieren in YaST alle Pakete des Paketschemas G RUNDLEGENDE ENTWICKLUNGSUMGEBUNG. Falls Sie vorhaben, KDE- oder Gnome-Programme zu entwickeln, installieren Sie auch die Selektionen KDE- bzw. G NOME-ENTWICKLUNG. Wenn Sie zypper vorziehen, führen Sie zypper install -t pattern devel_basis bzw. devel_kde bzw. devel_gnome aus.
Code auspacken tar
Im Internet finden Sie den Quellcode zumeist in komprimierten TAR-Archiven (Kennung *.tar.gz oder *.tgz oder *.tar.bz2). Nach dem Download entpacken Sie den Code in ein lokales Verzeichnis: user$ user$ user$
SRMP-Pakete
tar xzf name.tar.gz tar xjf name.tar.bz2 cd name
(für .gz oder .tgz) (für .bz2)
Eine Alternative zu den TAR-Archiven sind Quellcodepakete, die exakt den Code enthalten, aus dem ein bestimmtes Programm Ihrer Distribution kompiliert wurde. Die Quellcodepakete finden Sie in der Regel auf dem (FTP-)Server Ihrer Distribution. Bei Distributionen auf Basis von RPM-Paketen befinden sich die Quellcodedateien in SRMP-Paketen mit der Dateikennung *.src.rpm. Zur Installation führen Sie wie üblich rpm -i aus: root#
rpm -i name.src.rpm
Es hängt von der Distribution ab, wo der Quellcode nun tatsächlich landet: Fedora, Red Hat: SUSE:
/usr/src/redhat/ /usr/src/packages/
» SOURCES/name.tar.xxx enthält den eigentlichen Code. Das TAR-Archiv muss wie oben beschrieben entpackt werden. » SOURCES/name-xxx.patch (Red Hat) oder SOURCES/name.dif (SUSE) enthält distributionsspezifische Veränderungen am ursprünglichen Code. Wenn Sie die Codedateien entsprechend ändern (patchen) möchten, führen Sie das folgende Kommando aus: user$ user$
cd name-quellcodeverzeichnis patch < name.dif/patch
Je nachdem, welches Verzeichnis gerade aktuell ist und wie die Verzeichnisangaben innerhalb der Patch-Datei sind, müssen Sie zusätzlich die Option -p1 angeben (siehe man patch).
548
Programme selbst kompilieren
Abschnitt 22.2
» SPECS/name.spec enthält eine Paketbeschreibung, die auch zur Erstellung von RPM-Paketen dient. (Wenn Sie aus selbst kompilierten Programmen wieder ein RPM-Paket erstellen möchten, müssen Sie dazu das Kommando rpmbuild einsetzen, auf das ich hier aber nicht eingehe. Lesen Sie man rpmbuild!) Bei Debian-basierten Distributionen befindet sich der Quellcode in mehreren Dateien, die Sie am besten mit apt-get source in das aktuelle Verzeichnis installieren: user$
DebianQuellcodepakete
apg-get source paketname
Im aktuellen Verzeichnis finden Sie nun drei neue Dateien und ein Verzeichnis: » paketname.dsc enthält eine Kurzbeschreibung des Pakets. » paketname.orig.tar.gz enthält ein TAR-Archiv mit dem ursprünglichen Quellcode des Programmentwicklers. » paketname.diff.gz enthält alle Debian- bzw. Ubuntu-spezifischen Änderungen am Originalquellcode. » Das neue Verzeichnis paketname/ enthält schließlich den bereits extrahierten Inhalt von paketname.diff.gz, wobei alle Änderungen aus der diff-Datei bereits ausgeführt wurden.
Programm kompilieren Zum Kompilieren und Installieren von Programmen sind drei Kommandos erforderlich, die manchmal auch als »Dreischritt« bezeichnet werden: ./configure, make und make install. Die drei Kommandos werden im Folgenden näher beschrieben. Dabei setze ich voraus, dass Sie sich im Quellcodeverzeichnis befinden. configure ist ein Script, das testet, ob alle erforderlichen Programme und Bibliotheken verfügbar sind. Da sich das Script im lokalen Verzeichnis befindet, muss es in der Form ./configure ausgeführt werden. Das Script adaptiert die Datei Makefile, die alle Kommandos enthält, um die diversen Codedateien zu kompilieren und zu linken. Bei manchen (zumeist eher kleineren Programmen) kann es sein, dass es das Script configure nicht gibt. In diesem Fall führen Sie sofort make aus. user$
./configure
make löst die Verarbeitung der Compile- und Link-Kommandos aus. Sie sehen nun (manchmal schier endlose) Nachrichten und Warnungen der verschiedenen Compiler-Läufe über das Konsolenfenster huschen. Solange kein Fehler auftritt, können Sie diese Meldungen getrost ignorieren. Als Ergebnis sollte sich im Quellcodeverzeichnis nun die ausführbare Datei name befinden. user$
configure
make
make
In vielen Fällen können Sie das Programm nun sofort starten (Kommando ./name) und testen. Beachten Sie aber, dass insbesondere Netzwerk-Dienste eine spezielle Konfiguration erfordern und zumeist nur durch Init-V-Scripts korrekt gestartet werden!
549
Kapitel 22
Bibliotheken, Java und Mono
make install
Der letzte Schritt besteht darin, das Programm allen Benutzern zugänglich zu machen. Dazu müssen die Programm- und eventuell auch Bibliotheksdateien in öffentlich zugängliche Verzeichnisse kopiert werden. Das erfordert root-Rechte. Vor der Ausführung von make install sollten Sie sicherstellen, dass das betreffende Programm nicht schon installiert ist! Wenn das der Fall ist, sollte es vorher deinstalliert werden. root#
make install
Mögliche Probleme Während des Kompilierens können vielfältige Probleme auftreten. Am wahrscheinlichsten ist, dass irgendwelche Compiler-Hilfswerkzeuge oder zum Kompilieren notwendige Bibliotheken (die Entwicklerversionen dieser Bibliotheken) fehlen. Diese Probleme werden in der Regel bereits durch configure festgestellt und lassen sich meist relativ leicht beheben, indem das fehlende Paket einfach installiert wird. Schon schwieriger wird es, wenn configure nach Bibliotheken verlangt, die in Ihrer Distribution nicht oder nicht in der erforderlichen Version verfügbar sind: Dann müssen Sie sich im Internet auf die Suche nach der betreffenden Bibliothek machen und eventuell zuerst die Bibliothek kompilieren. Zu komplexen Programmen wie Apache oder mplayer finden Sie im Internet richtiggehende Kompilieranleitungen, in denen Schritt für Schritt beschrieben wird, was in welcher Reihenfolge installiert und kompiliert werden muss. Noch problematischer ist es, wenn während der Kompilierung ein Syntaxfehler auftritt, die Kompilation also mit einer Fehlermeldung abbricht. Schuld daran ist oft nicht ein Programmfehler, sondern eine Inkompatibilität zwischen Ihrem Compiler und dem Code. Manche Programme können nur mit einer bestimmten Version von gcc kompiliert werden (oft nicht mit der gerade neuesten gcc-Version!). Die Lösung besteht hier darin, die gewünschte Compiler-Version zu installieren. Auch hierzu finden Sie im Internet oder in den README-Dateien zum Quellcode oft genaue Anweisungen. Paketverwaltung
Selbst kompilierte Programme oder Bibliotheken bringen die Paketverwaltung durcheinander. Das Problem besteht darin, dass das selbst kompilierte Programm abc zwar nun auf Ihrem System installiert ist, die RPM- oder DEB-Datenbank aber nichts davon weiß. Wenn Sie nun versuchen, das Paket xyz zu installieren, das von abc abhängt, kommt es zu einer Fehlermeldung wegen scheinbar nicht erfüllter Paketabhängigkeiten. Mit rpm können Sie das Paket dank der Optionen -nodeps und -force dennoch installieren. Die eleganteste Lösung besteht darin, das Programm nicht mit make install zu installieren, sondern zuerst in ein Paket zu verpacken und dieses dann zu installieren. Das setzt voraus, dass Sie sich zuerst mit den Kommandos zur Paketverpackung vertraut machen. Außerdem ist diese Vorgehensweise ziemlich umständlich, insbesondere wenn ein Programm mehrfach getestet und neu kompiliert werden muss.
550
Programme selbst kompilieren
Abschnitt 22.2
Beispiele Der Platz in diesem Buch reicht nicht aus, um auch eine Einführung in die Programmierung in C und C++ zu geben. Da ich aber in der Vergangenheit immer wieder diesbezügliche Fragen erhalten habe, finden Sie hier eine kurze Anleitung, wie Sie das klassische »Hello World«-Programm in C und C++ programmieren und kompilieren. Für die C-Version schreiben Sie mit einem Editor die folgenden Zeilen in die Datei hello.c:
Hello World in C
// hello.c #include <stdio.h> int main(void) { printf("Hello World!\n"); } Mit den folgenden Kommandos kompilieren Sie das Programm und führen es aus: user$ gcc -o hello hello.c user$ ./hello Hello World! Der vergleichbare Code in C++ sieht so aus:
Hello World in C++
// hello.cpp #include int main() { std::cout /lib64/libwrap.so.0 (0x00007fa6e5c6a000) In diesem Fall funktioniert CUPS nur dann, wenn dies in /etc/hosts.deny nicht verboten oder in /etc/hosts.allow explizit erlaubt ist. Standardmäßig ist das der Fall. Wenn Sie die beiden Dateien aber selbst verändern, müssen Sie unbedingt auch CUPS berücksichtigen (Eintrag cupsd). Details zur Konfiguration von /etc/hosts.allow und hosts.deny finden Sie ab Seite 885.
CUPS-Webschnittstelle Grundsätzlich ist es möglich, die CUPS-Konfigurationsdateien mit einem Texteditor zu verändern. Für manche Basiseinstellungen mag das praktikabel sein, ansonsten rate ich davon wegen der großen Komplexität aber ab. Vernünftiger ist es zumeist, lokale Konfigurationswerkzeuge zu nutzen (das setzt eine grafische Benutzeroberfläche voraus) oder die CUPS-Webschnittstelle zu verwenden (siehe Abbildung 31.5).
Abbildung 31.5: CUPSKonfiguration im Webbrowser
968
CUPS – Grundlagen
Abschnitt 31.9
Aus Sicherheitsgründen steht diese Schnittstelle nur auf dem lokalen Rechner zur Verfügung. Die folgende Adresse führt zur Startseite: http://localhost:631 Wenn Sie auf dem Server keine grafische Benutzeroberfläche installiert haben, können Sie zur Not einen textbasierten Webbrowser einsetzen (z. B. lynx). Bequemer ist es aber, cups.conf so zu verändern, dass ein Zugriff auch von einem anderen Rechner im LAN aus möglich ist. Aus Sicherheitsgründen sollten Sie den Port 631 außerhalb Ihres LANs durch eine Firewall blockieren: # Änderungen in /etc/cups/cups.conf # Port 631 ersetzt die Einstellung 'Listen localhost:631' Port 631 ... Allow @LOCAL ... Allow @LOCAL ... Allow @LOCAL Damit die geänderten Einstellungen gültig werden, fordern Sie CUPS auf, die Konfiguration neu einzulesen: root#
service cupsys reload
Zur Nutzung der administrativen Teile der Webschnittstelle müssen Sie sich einloggen (mit Ihrem Linux-Benutzernamen und dem dazugehörigen Passwort). Sie können nun neue Drucker einrichten, Druckjobs verwalten etc.
CUPS-Administration per Kommando In der Regel werden Sie zum Drucken die Dialoge des jeweiligen Programms (OpenOffice, Firefox etc.) verwenden, zur Verwaltung der Druckjobs die entsprechenden Werkzeuge von Gnome oder KDE. Für Freunde der Kommandozeile stehen alternativ diverse Kommandos zur Auswahl, um Dateien zu drucken bzw. Druckjobs zu verwalten. Diese Kommandos sind vor allem dann hilfreich, wenn Sie Druckaufgaben durch Script-Dateien automatisieren möchten. Die Kommandos lpr, lpq, lprm und lpc stehen nicht nur bei CUPS, sondern auch bei BSD-LPD und LPRng zur Verfügung. Das ist gewissermaßen ein gemeinsamer Nenner aller Spooling-Systeme. Beachten Sie aber, dass es Unterschiede bei den unterstützten Optionen gibt.
969
Kapitel 31
lpr
LAN-Server
Mit lpr drucken Sie eine Datei aus. Falls Sie mehrere Drucker eingerichtet haben, geben Sie mit der Option -P ohne Leerzeichen den Namen der Warteschlange an. Für den Standarddrucker können Sie auf -P verzichten. user$
lpr -Pname datei
Falls eine Druckdatei bereits im druckerspezifischen Format vorliegt, übergeben Sie an lpr die zusätzliche Option -l. Das Kommando umgeht nun das sonst übliche Filtersystem und sendet die Druckerdaten unverändert an den Drucker. Wenn PostScript-Dateien auf PostScript-Druckern gedruckt werden sollen, kann das eine Menge Zeit sparen. Durch eine Pipe kann lpr auch dazu verwendet werden, die Ausgabe eines anderen Kommandos auszudrucken. Das folgende Kommando druckt die mit ls ermittelte Dateiliste auf dem Standarddrucker aus: user$
ls -l *.tex | lpr
Statt lpr können Sie auch das Kommando lp verwenden (Syntax siehe man 1 lp). Dieses Kommando soll Umsteigern von System-V-Drucksystemen das Leben erleichtern. (Dabei handelt es sich um ein weiteres Spooling-System, das unter Linux aber keine große Rolle spielt.) lpq, lprm
Alle Druckaufträge, die nicht sofort ausgeführt werden können, werden in Warteschlangen zwischengespeichert (je eine pro eingerichtetem Drucker). Den Inhalt der Warteschlange sehen Sie sich mit lpq -Pname an. Druckjobs, die Sie selbst initiiert haben, können Sie mit lprm -Pname id wieder löschen, wobei Sie den Namen der Warteschlange und die ID-Nummer des Jobs angeben müssen. Die richtige Nummer ermitteln Sie vorher mit lpq. user$ lpq FS-1800+ ist nicht bereit Rang Besitz Auftrag Datei(en) 1st kofler 20 evince-print 2nd kofler 21 evince-print user$ lprm 20 user$ lprm 21
Gesamtgröße 17408 Byte 16384 Byte
lpc
lpc gestattet eine feinere Kontrolle über den Druckvorgang. Nach dem Start dieses Kommandos befinden Sie sich in einer interaktiven Arbeitsumgebung, in der Sie Kommandos wie status, help etc. ausführen. topq verändert die Position eines Druckjobs in der Warteliste. Als Parameter geben Sie den Druckernamen und die Jobnummer an. Ein Teil der Kommandos in lpc (so auch topq) darf nur von root ausgeführt werden. exit, bye oder quit beenden lpc.
lpstat, lpinfo, lpadmin, lpoptions
lpstat liefert Informationen über alle für CUPS verfügbaren Drucker. lpinfo ermittelt eine Liste aller verfügbaren Druck-Devices und Druckertreiber. Mit lpadmin richten Sie einen neuen Drucker ein bzw. löschen eine vorhandene Druckerkonfiguration. lpoptions zeigt die Optionen von CUPSDruckern an bzw. verändert sie. user$
970
lpoptions -o PageSize=A4
CUPS – Druckerkonfiguration
Abschnitt 31.10
CUPS deaktiviert Drucker, die nicht erreichbar sind. Um den Drucker wieder zu aktivieren, führen Sie eines der beiden folgenden Kommandos aus: user$ user$
lpadmin -E druckername accept druckername
Um einen Drucker explizit zu deaktivieren, setzen Sie das Kommando reject: user$
reject
druckername
31.10 CUPS – Druckerkonfiguration Bei der Konfiguration des Druckers helfen wahlweise die in Gnome bzw. KDE integrierten Werkzeuge, die CUPS-eigene Webkonfiguration oder spezielle Konfigurationsprogramme Ihrer Distribution. Das üblicherweise mit Gnome mitgelieferte Programm system-config-printer wurde ursprünglich von Red Hat entwickelt. SUSE-Anwender können auf das YaST-Modul H ARDWAREjDRUCKER zurückgreifen. Die entscheidende Frage bei der Druckerkonfiguration ist natürlich, ob Ihr Drucker kompatibel zu Linux bzw. zur Kombination aus CUPS, GhostScript und dessen Druckertreibern ist. Die folgende Aufzählung fasst zusammen, wie gut verschiedene Druckerkategorien unterstützt werden:
Druckertreiber
» Laser-Drucker: Die meisten Laser-Drucker sind PostScript- oder HP-kompatibel (Druckersprache PCL). Sie sind optimal für den Betrieb unter Linux geeignet. Das gilt auch für die meisten Netzwerkmodelle. » GDI-Drucker/Windows-Drucker: Diese zumeist sehr preisgünstigen Laser-Drucker wurden speziell für den Einsatz unter Windows entwickelt. Die Grundidee besteht darin, dass ein WindowsProgramm die gesamte zu druckende Seite zuerst auf dem Rechner vorbereitet und dann an den Drucker überträgt. Beim Seitenaufbau kommt die von Microsoft entwickelte Grafikschnittstelle GDI zum Einsatz – daher der Name GDI-Drucker. Das Problem: Das Format zur Datenübertragung der Seite vom Rechner zum Drucker ist in den meisten Fällen nicht öffentlich dokumentiert. Daher werden viele derartige Drucker unter Linux nicht unterstützt. » Tintenstrahl- und Fotodrucker: Bei Tintenstrahldruckern ist das Ausmaß der Linux-Unterstützung sehr stark vom jeweiligen Modell abhängig. Relativ gut ist die Unterstützung für HP-Modelle. HP arbeitet sehr gut mit der Linux-Gemeinde zusammen, und für die meisten Modelle gibt es Open-Source-Treiber. Gerade bei ganz neuen Modellen kann es aber passieren, dass diese in der CUPS-Druckerdatenbank noch fehlen. Mehr Probleme bereiten in der Regel Tintenstrahldrucker anderer Hersteller. Wenn Sie vor dem Kauf eines neuen Druckers stehen, lohnt auf jeden Fall ein Blick auf die folgende Website, die zahllose Informationen zum Thema Linux und Drucken gibt. Dazu zählt auch eine umfassende Datenbank der von Linux unterstützten Modelle: http://www.linuxfoundation.org/collaborate/workgroups/openprinting
971
Kapitel 31
TurboPrint
LAN-Server
Manche Drucker, zu denen es keinen Open-Source-Treiber gibt, werden vom kommerziellen Druckertreiber der Firma TurboPrint unterstützt. Außerdem können Sie mit TurboPrint bei manchen Fotodruckern bessere Ergebnisse erzielen als mit den Standardtreibern von CUPS. Sie finden den relativ preisgünstigen Treiber sowie eine kostenlose, aber eingeschränkte FreeEdition auf der folgenden Website: http://www.turboprint.de/
Konfiguration eines lokalen Druckers Unabhängig davon, welches Konfigurationsprogramm Sie einsetzen, sollten die folgenden Tipps weiterhelfen: » Die automatische Druckererkennung funktioniert (wenn überhaupt) nur, wenn der Drucker eingeschaltet ist. Falls Sie mehrere Drucker besitzen, sollten Sie während der Konfiguration eines Druckers alle anderen ausschalten. » Zur manuellen Konfiguration müssen Sie zumindest die Schnittstelle (parallel, seriell, USB, Netzwerk etc.) und das Druckermodell angeben. Das Druckermodell wählen Sie aus einer riesigen Datenbank aus. Falls Ihr Gerät nicht enthalten ist, versuchen Sie ein kompatibles Modell zu finden. Bei PostScript- und HP-kompatiblen Laserdruckern können Sie als Hersteller G ENERIC wählen und dann den Standard angeben (z. B. PostScript oder PCL). Zu manchen neuen Druckern, die in der CUPS-Modelldatenbank noch nicht enthalten sind, finden Sie im Internet passende *.ppd-Dateien. Sie können eine derartige Datei während der Konfiguration laden. Beachten Sie aber, dass nicht jede *.ppd-Datei CUPS-kompatibel ist bzw. unter Umständen eine ganz aktuelle CUPS-Version voraussetzt. » Bei vielen Druckermodellen stehen mehrere Treiber zur Auswahl. Dafür kann es zwei Gründe geben: Erstens unterstützen viele Drucker verschiedene Standards. Zweitens enthält CUPS Druckertreiber aus verschiedenen Projekten (GhostScript, Gutenprint etc.). Daher gibt es für manche Drucker mehrere Treiber, die aus unterschiedlichen Projekten stammen. Wenn Sie unsicher sind, welcher Treiber die besten Ergebnisse erzielt, richten Sie den Drucker mehrfach unter verschiedenen Namen ein. Anschließend können Sie die verschiedenen Treiber bequem ausprobieren. Die Qualität des Ausdrucks hängt auch davon ab, was Sie drucken möchten – Text, technische Zeichnungen, Fotos etc. Die Druckqualität wird zudem durch die Einstellung der Treiberparameter beeinflusst (z. B. der DPI-Auflösung). » Fast alle PostScript-Laserdrucker können auch in einem Kompatibilitätsmodus betrieben werden, sodass sie sich wie ein HP-Laserjet-Drucker verhalten. Sie können also Ihren PostScriptDrucker zumeist auch als HP-Laserjet-kompatiblen Drucker konfigurieren. Das bewirkt, dass die Druckdaten von Ihrem Computer in das HP-Laserjet-Format umgewandelt und dann an den Drucker gesandt werden. Das wirkt umständlich, ist aber gerade bei älteren Druckern mit einer deutlichen Geschwindigkeitssteigerung verbunden.
972
CUPS – Druckerkonfiguration
Abschnitt 31.10
Konfiguration eines Netzwerkdruckers (Client-Sicht) Dieser Abschnitt gibt einige Tipps zur Konfiguration eines Druckers, der über das Netzwerk mit dem Rechner verbunden ist. Dabei gibt es ziemlich viele Varianten, je nachdem, welche Protokolle der Netzwerkdrucker selbst versteht bzw. wie ein selbst nicht netzwerkfähiger Computer mit einem Rechner im LAN verbunden ist: » IPP-Drucker (Verwaltung z. B. durch Linux/Unix/Mac OS X mit CUPS, Internet Printing Protocol) » Unix-Drucker (Verwaltung durch Linux/Unix, LPD-Protokoll) » Windows-Drucker (Verwaltung durch einen Windows-Rechner oder Samba-Server) » Novell-Drucker (Verwaltung durch einen Novell-Networks-Rechner) » Socket-API (z. B. JetDirect von HP) am IP-Port 9100 » AppSocket (z. B. Tektronix) » herstellerspezifische Protokolle Die Details der Konfiguration hängen davon ab, über welches Protokoll die Kommunikation erfolgt. Am einfachsten funktioniert das Drucken im Netzwerk, wenn auf beiden Seiten CUPS bzw. das Protokoll IPP zum Einsatz kommt. Derartige Drucker sind ohne weitere Konfigurationsarbeiten auf der Client-Seite sichtbar und können sofort verwendet werden.
IPP-Drucker verwenden
lpstat -v liefert eine Liste aller verfügbaren Drucker. Das folgende Kommando wurde auf dem Rechner merkur ausgeführt. Dort ist lokal ein Drucker mit dem Namen DeskJet-5940 konfiguriert. Außerdem sind auf den Rechnern mars und saturn zwei weitere Drucker mit den Namen pluto und kyocera verfügbar: user@uranus$ lpstat -v Gerät für DeskJet-5940: parallel:/dev/lp0 Gerät für pluto: ipp://mars.sol:631/printers/pluto Gerät für kyocera: ipp://saturn.sol:631/printers/kyocera Sie können alle drei Drucker sofort mit lpr -Pname benutzen. Falls mehrere Drucker im Netzwerk denselben Namen haben, müssen deren Namen in der Form druckername@hostname angegeben werden, also z. B. lpr -Plp@jupiter. Damit die CUPS-Drucker anderer Rechner auf dem lokalen Rechner sichtbar sind, muss CUPS auf den externen Rechnern so konfiguriert sein, wie dies im nächsten Abschnitt beschrieben wird. Port 631 darf nicht durch eine Firewall blockiert sein! Hinweis
Grundsätzlich kann ein IPP-Drucker auch so konfiguriert sein, dass er zwar im Netz genutzt werden kann, aber nicht automatisch sichtbar ist. In diesem Fall müssen Sie den Drucker auf dem lokalen Rechner zuerst konfigurieren. Dabei wählen Sie den Druckertyp IPP-NETZWERKDRUCKER und geben als Adresse ipp://hostname/printers/druckername an. Sofern der externe Drucker via Linux/CUPS verwaltet wird, geben Sie als Hersteller und Modell RAW und QUEUE an. Das bedeutet, dass die PostScript-Daten ohne Veränderung an den externen Rechner weitergeleitet werden; dieser kümmert sich dann um die Aufbereitung der Daten für den Drucker.
973
Kapitel 31
LAN-Server
Andere Netzwerkdrucker konfigurieren
Wenn der externe Netzwerkdrucker nicht IPP-kompatibel ist, muss er vor der ersten Verwendung client-seitig konfiguriert werden. Dazu setzen Sie dieselben Programme wie bei der Konfiguration eines lokalen Druckers ein, wählen als Druckertyp aber NETZWERKDRUCKER. Die weitere Konfiguration hängt vom Protokoll ab: » LPD (Unix-LPD): Hier geben Sie den Hostnamen des Rechners/Druckers sowie den Namen der Warteschlange an (im Zweifelsfall einfach lp oder lp0). » SMB (Windows/Samba): Sie müssen den Hostnamen des Rechners, den Druckernamen sowie eventuell Benutzername und Passwort angeben. Bevor Sie einen Windows-Drucker verwenden können, müssen Sie die Samba-Client-Tools installieren (bzw. bei Distributionen, die nicht zwischen Client- und Server-Tools differenzieren, das komplette Samba-Paket). » SOCKET-PROTOKOLL BZW. HP JETDIRECT : Hier geben Sie den Hostnamen oder die IP-Adresse des Druckers sowie die Port-Nummer an (in der Regel 9100). Manche Konfigurationsprogramme erwarten die obigen Angaben auch in Form einer URI-Adresse (siehe die Tabelle etwas weiter unten). Detailinformationen für die Netzwerkdrucker – also Protokoll, Login-Name etc. – werden in der Datei /etc/cups/printers.conf gespeichert. Die folgenden Zeilen zeigen die Konfiguration eines JetDirect-kompatiblen Netzwerkdruckers: # in /etc/cups/printers.conf Info Kyocera FS-1800+ Location pluto DeviceURI socket://pluto:9100 State Idle StateTime 1243572198 Accepting Yes Shared Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 OpPolicy default ErrorPolicy retry-job Das entscheidende Schlüsselwort in printers.conf ist DeviceURI. Diesem Schlüsselwort folgt die URI-Adresse, aus der das Protokoll und die Netzwerkadresse hervorgehen. Tabelle 31.2 gibt einige Beispiele dafür, wie diese Adresse zusammengesetzt werden kann.
Konfiguration eines CUPS-Netzwerkdruckers (Server-Sicht) Immer mehr Drucker (vor allem Laser-Drucker) sind selbst netzwerkfähig. Derartige Drucker verbinden Sie einfach mit dem lokalen Netzwerk, und schon kann jeder Rechner im LAN auf den Drucker zugreifen (siehe den vorigen Abschnitt). Das Thema dieses Abschnitts ist aber ein anderes: Wie können Sie einen lokalen Drucker ohne Netzwerkschnittstelle im Netzwerk nutzen? Sicherlich
974
CUPS – Druckerkonfiguration
ADRESSE
BEDEUTUNG
usb:/dev/usb/lp0
lokaler USB-Drucker
parallel:/dev/lp0
lokaler Drucker an der parallelen Schnittstelle
serial:/dev/ttyS0?baud=115200
lokaler Drucker an der seriellen Schnittstelle
lpd://hostname/printername
LPD-Netzwerkdrucker
socket://hostname:9100
Drucker mit Socket-Protokoll, z. B. HP JetDirect
smb://hostname/printername
Windows-Drucker
smb://workgroup/hostname/printer
Windows-Drucker
smb://user:xxx@wg/host/printer
Windows-Drucker
ipp://hostname/printers/printername
IPP-Drucker (zumeist keine Konfiguration nötig)
Abschnitt 31.10
Tabelle 31.2: CUPS-URIAdressen
haben Sie es schon erraten – via CUPS. Auf dem Rechner, der mit dem Drucker verbunden ist, konfigurieren Sie CUPS so, dass der Drucker-Server allen anderen Rechnern im Netzwerk Zugang zum lokalen Drucker gibt. Anschließend können Sie den Drucker von allen gängigen Betriebssystemen aus über IPP ansprechen. Normalerweise kann ein via CUPS eingerichteter Drucker nur vom lokalen Rechner aus genutzt werden. Damit der Drucker auch von anderen Rechnern aus genutzt werden kann, wählen Sie in der Webschnittstelle das Dialogblatt V ERWALTUNG aus, aktivieren dort die Option VERTEILE PUBLIZIERTE DRUCKER , WELCHE MIT DIESEM SYSTEM VERBUNDEN SIND und klicken dann auf den Button EINSTELLUNGEN ÄNDERN . Wenn Sie die Konfigurationsdateien lieber selbst verändern, müssen Sie die folgenden Einstellungen in cupsd.conf durchführen und cupsys anschließend neu starten:
ServerKonfiguration
# Änderungen in /etc/cups/cupsd.conf Listen 631 Browsing On BrowseOrder allow,deny BrowseAddress @LOCAL ... Allow @LOCAL Listen 631 bedeutet, dass CUPS über den Netzwerk-Port 631 kommuniziert. (Ungeeignet ist dagegen die Einstellung Listen localhost:631! Sie erlaubt den Zugriff nur für den lokalen Rechner.) BrowseAddress @LOCAL bewirkt, dass die CUPS-Informationen an alle lokalen Netzwerkschnittstellen gesendet werden (broadcast), nicht aber an Internetschnittstellen (PPP etc.). Alternativ kann mit BrowseAddress @IF(eth0) auch eine bestimmte Netzwerkschnittstelle angegeben werden. cupsd.conf sieht eine Reihe weiterer Browse-Schlüsselwörter vor. Beispielsweise steuern BrowseAllow und BrowseDeny, von welchen Rechnern CUPS-Informationen empfangen werden. Standardmäßig gibt es keine Empfangseinschränkungen, und es ist selten notwendig oder sinnvoll, diese oder die anderen BrowseXxx-Einstellungen zu ändern.
975
Kapitel 31
LAN-Server
Allow @LOCAL bewirkt, dass andere Rechner im lokalen Netzwerk die von CUPS angebotenen Drucker tatsächlich nutzen dürfen. ClientKonfiguration
Damit andere Linux-Rechner im Netz den externen CUPS-Drucker automatisch erkennen, müssen Sie dort die Option FREIGEGEBENEN DRUCKER ANDERER SYSTEME ANZEIGEN aktivieren. Wo Sie diese Option (möglicherweise in einem anderen Wortlaut) finden, hängt vom jeweiligen Konfigurationsprogramm ab. Alternativ ist es auch möglich, den Drucker manuell einzurichten. Dazu starten Sie den Dialog zur Konfiguration eines neuen Druckers, wählen als Gerätetyp INTERNET PRINTING PROTOCOL und geben den Hostnamen des Servers an. Der Konfigurationsdialog zeigt dann eine Liste aller auf dem Server verfügbaren Drucker an. Auch unter Windows können CUPS-Drucker genutzt werden. Dazu wählen Sie im Druckerkonfigurationsdialog die Option V ERBINDUNG MIT EINEM DRUCKER IM INTERNET ODER N ETZWERK HERSTELLEN und geben die folgende Adresse an: http://mars.sol:631/printers/pluto Dabei müssen Sie natürlich mars.sol durch den Hostnamen des CUPS-Servers ersetzen und pluto durch den Namen des Druckers. Als Treiber geben Sie nach Möglichkeit den tatsächlichen Druckertreiber an; wenn es unter Windows keinen Treiber für Ihren Drucker gibt (was unwahrscheinlich ist), können Sie auch einen beliebigen PostScript-Druckertreiber verwenden. In diesem Fall sendet Windows PostScript-Daten an den CUPS-Server, der dann die Umwandlung in das Format des Druckers vornimmt. Ein geeigneter kostenloser Treiber ist der Adobe Universal PostScript Windows Driver, den es zuletzt hier zum Download gab: http://www.adobe.com/support/downloads/detail.jsp?ftpID=1500
Probleme
Wenn der Ausdruck statt des erwarteten Ergebnisses nur wirren Text bzw. undefinierbare Grafikmuster enthält, ist zumeist eine doppelte Verarbeitung der Druckdaten schuld: Zuerst wandelt der Windows-Treiber den Ausdruck in das Format des Druckers um. Diese Daten kommen dann bei CUPS an und werden dort ein zweites Mal formatiert (in der CUPS-Nomenklatur: »gefiltert«). Das kann natürlich nicht funktionieren. Abhilfe: Richten Sie nur unter Windows den für den Drucker erforderlichen Treiber ein! Am CUPSServer konfigurieren Sie den Drucker in Form einer sogenannten Raw-Warteschlange, die die empfangenen Daten ohne Veränderung einfach an den Drucker weiterleitet. Dazu wählen Sie bei der Druckerkonfiguration als Gerätetyp RAW und als Modell RAW QUEUE. Außerdem müssen Sie am Ende von /etc/cups/mime.convs bei der folgenden, bereits vorgesehenen Zeile das Kommentarzeichen entfernen. Damit erlauben Sie das Weiterleiten von binären Druckdaten ohne die Weiterverarbeitung ( »Filterung«) von CUPS: # am Ende von /etc/cups/mime.convs application/octet-stream application/vnd.cups-raw 0 -
976
CUPS – Druckerkonfiguration
Abschnitt 31.10
Konfiguration eines Samba-Netzwerkdruckers (Server-Sicht) Anstatt den Drucker direkt via CUPS im lokalen Netzwerk anzubieten, kann auch Samba diese Aufgabe übernehmen (wobei dann Samba wiederum auf CUPS zurückgreift). Standardmäßig ist Samba bei den meisten Distributionen bereits entsprechend vorkonfiguriert. Das folgende Listing fasst die relevanten Zeilen aus /etc/samba/smb.conf zusammen: # Datei /etc/samba/smb.conf ... # alle CUPS-Drucker via Samba nutzen [printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 Der [printers]-Abschnitt ist für den eigentlichen Zugriff auf die Drucker verantwortlich. browseable = no bewirkt, dass nur die Drucker, nicht aber das Verzeichnis printers sichtbar sind. Der Pfad gibt den Ort für temporäre Druckdateien an. Wenn Sie nicht alle Drucker, sondern nur einen bestimmten Drucker freigeben möchten, verwenden Sie die folgenden Zeilen anstelle des [printers]-Abschnitts. Das Beispiel geht davon aus, dass die Warteschlange dieses Druckers in /etc/printcap den Namen lp1 hat, auf den Samba-Clients aber unter dem Namen hp3 sichtbar sein soll: # Datei /etc/samba/smb.conf ... # Zugriff nur auf den CUPS-Drucker pluto unter dem Namen HP_pluto [HP_pluto] printer = pluto browseable = no path = /var/spool/samba/ printable = yes guest ok = no read only = yes create mask = 0700 Samba bietet die Möglichkeit, den Windows-Clients Druckertreiber anzubieten. Die folgenden Zeilen in der Samba-Standardkonfiguration sehen hierfür das Verzeichnis /var/lib/samba/printers vor: # Datei /etc/samba/smb.conf ... [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no
977
Kapitel 31
LAN-Server
Das Problem an der Sache ist: Das Verzeichnis mit den Druckertreibern ist leer. Die Beschaffung und das Einrichten der Druckertreiber in einem Format, das alle gängigen Windows-Versionen verstehen, ist schwierig und lohnt sich nur, wenn der Drucker von sehr vielen Windows-Clients genutzt werden soll. Andernfalls ist es einfacher, die Treiberinstallation manuell unter Windows durchzuführen und dabei auf den Fundus der mitgelieferten Druckertreiber zurückzugreifen. Weitere Informationen zu diesem Thema geben man cupsaddsmb sowie die folgende Seite: http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/CUPS-printing.html
31.11 NTP Wenn mehrere Personen von unterschiedlichen Rechnern aus gemeinsam auf Dateien zugreifen, ist es wichtig, dass auf allen Rechnern eine einheitliche Zeit gilt. Die in jeden Computer eingebaute Uhr ist aber leider nicht besonders genau. Das Network Time Protocol (NTP) verhilft den Rechnern im Netzwerk dennoch zu einer exakten Zeit. NTP erlaubt den Zeitabgleich zwischen mehreren Rechnern. Es gibt im Internet mehrere öffentliche Zeit-Server, von denen die exakte Zeit bezogen werden kann. Zur Nutzung von NTP bestehen zwei Möglichkeiten: » Das Kommando ntpdate bezieht einmal die exakte Zeit und stellt die Uhr des Rechners. Bei Rechnern, die häufig ein- und ausgeschaltet werden, ist das ausreichend genau. » Bei einem Server, der oft wochen- oder monatelang läuft, reicht die einmalige korrekte Einstellung der Uhrzeit nicht aus. Die Uhrzeit des Rechners wird im Laufe der Zeit immer stärker von der exakten Zeit abweichen. Abhilfe schafft der Dämon ntpd, der regelmäßig Kontakt zu anderen Zeit-Servern herstellt und die lokale Uhrzeit in kleinen Schritten korrigiert. ntpd kann gleichzeitig selbst als Zeit-Server für andere Rechner fungieren (beispielsweise für alle Clients im lokalen Netzwerk). Auch wenn Sie auf einem Rechner ntpd einsetzen, ist ntpdate praktisch, um die Uhrzeit erstmalig exakt einzustellen. ntpd funktioniert nämlich nur dann, wenn die anfängliche Abweichung zwischen der exakten und der lokalen Uhrzeit kleiner als eine Minute ist. Links
Weitere Informationen zur Verwaltung von Datum und Uhrzeit finden Sie auf den folgenden Seiten: http://www.ntp.org/ http://tldp.org/HOWTO/TimePrecision-HOWTO/ http://wwp.greenwichmeantime.com/
Debian, Ubuntu
Ob und wie die Programme ntpdate und ntpd gestartet werden, hängt von der gewählten Distribution ab. Bei Debian und Ubuntu ist ntpdate standardmäßig installiert und wird immer dann ausgeführt, wenn eine Verbindung zu einem Netzwerk hergestellt wird (Script /etc/network/if-up.d/ntpdate). Wenn Sie auf dem Rechner auch ntpd ausführen möchten, müssen Sie das Paket ntp installieren. Außerdem sollten Sie der Datei /etc/ntp.conf die Adresse eines nahegelegenen, gut erreichbaren NTP-Servers hinzufügen. Standardmäßig ist nur ein einziger Server eingetragen, was zu wenig ist. Mit ntpq -p überzeugen Sie sich davon, dass ntpd funktioniert. Entscheidend ist die offset-Spalte der Ausgabe dieses Kommandos: Sie gibt die Differenz zwischen der lokalen Uhr und der Uhr ver-
978
NTP
Abschnitt 31.11
schiedener Referenz-Server in Millisekunden an. Die Differenz sollte möglichst klein sein. Damit ntpq -p brauchbare Ergebnisse liefert, muss ntpd einige Zeit laufen (zumindest mehrere Minuten lang). Beachten Sie, dass ntpd die Zeit bei kleinen Abweichungen nicht einfach korrigiert, sondern die Uhr eine Weile etwas schneller oder etwas langsamer laufen lässt, bis die korrekte Zeit erreicht wird. Dadurch werden abrupte Zeitänderungen vermieden. root#
ntpq -p remote refid st t when poll reach delay offset jitter ====================================================================== europium.canoni ... 2 u 2 64 1 21.565 -117.64 0.002 www.alter-provi ... 2 u 1 64 1 20.436 -118.56 0.002 Sollte die Zeitabweichung größer als eine Sekunde sein (das entspricht einem Wert größer 1000 in der Offset-Spalte), muss die Uhrzeit manuell mit ntpdate eingestellt werden. Dazu müssen Sie ntpd vorübergehend beenden und an ntpdate die Adresse eines öffentlich erreichbaren Zeit-Servers übergeben: root# root# 28 Jan root#
/etc/init.d/ntp stop ntpdate de.pool.ntp.org 10:43:06 ntpdate[16752]: adjust time server 131.234.137.24 offset 3.010946 sec /etc/init.d/ntp start
Bei Fedora und Red Hat hilft system-config-date bei der NTP-Konfiguration. Wenn Sie in diesem Programm NTP aktivieren, wird beim Rechnerstart das Init-V-Script ntpd ausgeführt und der gleichnamige Dämon gestartet. Mit ntpq -p überzeugen Sie sich davon, dass alles funktioniert. Sollte die anfängliche Zeitabweichung zu groß sein, müssen Sie ntpd vorübergehend stoppen und mit ntpdate die lokale Uhrzeit synchronisieren: root# root# root#
Fedora, Red Hat
service ntpd stop service ntpdate start service ntpd start
Bei SUSE ist die NTP-Konfiguration zweigeteilt: Im YaST-Modul SYSTEMjDATUM UND Z EIT können Sie die aktuelle Zeit via NTP einstellen (Button Ä NDERN ), wobei einmalig ntpdate ausgeführt wird. Um einen NTP-Server einzurichten, starten Sie das YaST-Modul N ETZWERKDIENSTEjNTP-EINRICHTUNG und aktivieren die Option STARTE NTP-DIENST JETZT UND BEIM BOOTEN. Entscheidend ist, dass Sie der Konfiguration einen oder mehrere NTP-Server hinzufügen. (Standardmäßig wird nur die lokale Uhr verwendet, was unzureichend ist.) ntpd wird nun durch das Init-V-Script ntp gestartet.
SUSE
Unabhängig von der Distribution steuert die Datei /etc/ntp.conf den NTP-Server ntpd. Eine minimale Konfiguration sieht so aus:
ntpd.conf
# Datei /etc/ntp.conf driftfile /var/lib/ntp/ntp.drift statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable
979
Kapitel 31
LAN-Server
# genaue Zeit von hier beziehen server de.pool.ntp.org server ch.pool.ntp.org # Zugriff auf den Server standardmäßig verbieten restrict -4 default kod notrap nomodify nopeer noquery restrict -6 default kod notrap nomodify nopeer noquery # uneingeschränkter Zugriff für localhost (inklusive Konfiguration) restrict 127.0.0.1 restrict ::1 # Zeitabfragen im lokalen Netz 192.168.0.* erlauben restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
980
32. Web- und Root-Server In diesem Kapitel beschreibe ich, wie Sie einen Webserver einrichten, der aus Linux, Apache, MySL und PHP (kurz LAMP) besteht. Außerdem ermöglicht ein SSH-Server die Administration. Wie in den anderen Kapiteln zur Server-Konfiguration beschränkt sich auch dieses auf die ersten Schritte. Zu Apache, PHP und MySQL gibt es jeweils unzählige eigene Bücher, die alle möglichen Konfigurations- und Anwendungsvarianten beschreiben. Grundsätzlich können Sie ein LAMP-System auf jedem Rechner installieren – etwa als Entwicklungsumgebung für Webanwendungen. Für Websites, die öffentlich im Internet erreichbar sind, werden Sie aber üblicherweise einen Root-Server mieten und die Installation dort durchführen. Als »Root-Server« wird ein externer Rechner in einem Rechenzentrum bezeichnet, den Sie ohne Einschränkungen selbst administrieren dürfen (eben mit root-Rechten). Für erfahrene Linux-Administratoren stellen Root-Server eine preisgünstige Möglichkeit dar, eigene Webauftritte einzurichten. Das ist vor allem für kleine und mittelgroße Unternehmen interessant, deren Firmeninternetzugang auf ADSL basiert und damit ungeeignet für Server-Dienste mit einem eigenen Domainnamen ist.
Root-Server
Bei der Auswahl eines Root-Servers sollten Sie vor allem auf die Seriosität des Webhosting-Unternehmens achten. Nichts ist ärgerlicher als ein nicht funktionierender Support bei einem Rechner, zu dem Sie selbst keinen physikalischen Zugang haben. Wichtig sind auch administrative Hilfen, z. B. eine Webschnittstelle, um nach einem Absturz einen Server-Reboot auszulösen, oder die Möglichkeit, ein Live-System zu starten, um eine fehlerhafte Konfiguration zu korrigieren. Achten Sie schließlich darauf, welche Linux-Distributionen installiert werden können – nicht jeder Provider unterstützt alle gängigen Distributionen. Gut geeignet für den Root-Server-Einsatz sind neben den (teuren) Enterprise-Distributionen vor allem Debian, Ubuntu LTS und CentOS. Aufgrund des zu kleinen Wartungszeitraums sind Fedora und openSUSE nicht empfehlenswert. Die meisten Root-Server-Provider führen eine Minimalinstallation der von Ihnen gewünschten Distribution durch. Sie erfahren die IP-Adresse Ihres Servers und Ihr root-Passwort und sind dann auf sich gestellt. Die gesamte Administration erfolgt via SSH und zumeist ohne grafische Konfigurationshilfen. (Manche Provider stellen webbasierte Administrationswerkzeuge zur Verfügung, auf die ich hier aber nicht eingehe.)
SSH
Kapitel 32
Web- und Root-Server
32.1 SSH Ein SSH-Server ermöglicht einen ssh-Login über das lokale Netzwerk oder auch über das Internet. SSH eignet sich ideal zur Fernwartung von Rechnern. SSH ist der Nachfolger von telnet und rlogin und ist erheblich sicherer. Die Client-Sichtweise von ssh wurde bereits auf Seite 385 beschrieben. Noch mehr Informationen sowohl zur Client- als auch zur Server-Anwendung finden Sie auf der OpenSSH-Website: http://www.openssh.com/ Installation und Start
Auf einem Root-Server steht ein SSH-Server in der Regel standardmäßig zur Verfügung. Auf eigenen Rechnern müssen Sie je nach Distribution das Paket openssh-server oder openssh installieren. Der SSH-Server wird durch das Init-System gestartet. Auch hierfür variieren die Kommandos je nach Distribution. Sie sind auf Seite 365 zusammengefasst. Beim ersten Start erzeugt sshd automatisch RSA-Dateien zur Verschlüsselung der Kommunikation. Diese Dateien werden im Verzeichnis /etc/ssh/ gespeichert.
Konfiguration
Die Konfigurationsdateien zu sshd befinden sich im Verzeichnis /etc/ssh. Für die ServerKonfiguration ist sshd_config zuständig. Normalerweise kann diese Datei unverändert bleiben, d. h., der SSH-Server sollte auf Anhieb funktionieren. Die Kommunikation erfolgt standardmäßig über den IP-Port 22. Wenn Sie besondere Anforderungen stellen, finden Sie in den man-Seiten zahlreiche weitere Informationen. Nutzer aktueller Ubuntu-Versionen sollten beachten, dass die Datei /etc/ default/ssh nicht mehr berücksichtigt wird. Wenn Sie Parameter direkt an den SSH-Server übergeben möchten, müssen Sie die exec-Zeile in /etc/init/ssh.conf entsprechend anpassen.
Secure FTP
Ein Bestandteil des SSH-Servers ist der sftp-Server. Dabei handelt es sich um eine sichere Alternative zu einem normalen FTP-Server. Die sftp-Funktionen stehen normalerweise automatisch zur Verfügung, sobald der SSH-Server läuft. Sie können allerdings nur mit sftp-kompatiblen Clients genutzt werden (z. B. mit dem Programm sftp). sftp sieht lediglich User-Logins vor (also kein Anonymous FTP).
Absicherung Grundsätzlich läuft der SSH-Server auf Anhieb ohne Konfigurationsarbeit. Das ist allerdings ein nicht zu unterschätzendes Sicherheitsrisiko: Jeder, der eine gültige Kombination aus Benutzername und Passwort errät, kann sich auf Ihrem Rechner anmelden! Cracker verwenden automatisierte Tools, die im Internet nach Servern suchen und sich dort einzuloggen versuchen. Alle derartigen Aktivitäten werden in der Datei /var/log/auth.log vermerkt. Auf öffentlich erreichbaren Servern finden Sie darin täglich Tausende von Einlog-Versuchen! Sie tun also gut daran, alle Benutzer durch nichttriviale Passwörter abzusichern! Verwenden Sie beispielsweise das Kommando makepasswd aus dem gleichnamigen Paket, um sichere Passwörter zu erzeugen. Die Datei /etc/shadow, in der in verschlüsselter Form alle Benutzerpasswörter gespeichert sind, darf auf keinen Fall Einträge ohne Passwort enthalten! Sie erkennen derartige Einträge daran, dass in einer Zeile zwischen dem ersten und dem zweiten Doppelpunkt kein Text enthalten ist. Übli-
982
SSH
Abschnitt 32.1
cherweise befindet sich dort entweder ein verschlüsseltes Passwort oder bei System-Accounts ein Sonderzeichen (zumeist * oder !), das Logins vollständig unmöglich macht. Sollten Sie in dieser Datei tatsächlich einen Eintrag ohne Passwort finden, beheben Sie den Missstand mit password name. Die folgenden Maßnahmen reduzieren jeweils die Wahrscheinlichkeit eines Crack-Angriffs auf Ihren SSH-Server. Sie können einzeln oder in Kombination angewendet werden. Ein Angreifer möchte root-Rechte erzielen – und am einfachsten gelingt das natürlich durch einen root-Login. Dabei muss nur ein Parameter (das root-Passwort) erraten werden. Wesentlich sicherer ist es, einen direkten root-Login via SSH zu verbieten. Sie müssen sich also unter einem anderen Benutzernamen einloggen und dann mit su oder sudo in den root-Modus wechseln. (Testen Sie das, bevor Sie die folgende Änderung durchführen!)
Kein root-Login
# Änderung in /etc/ssh/sshd_config ... PermitRootLogin = no Damit die Änderung wirksam wird, müssen Sie sshd dazu auffordern, die Konfigurationsdateien neu einzulesen: root#
root /etc/init.d/ssh reload
Für den Angreifer hat das die Konsequenz, dass nun zwei Parameter unbekannt sind: der LoginName und das Passwort! Der SSH-Server kommuniziert standardmäßig über den Port 22. Mit der Port-Zeile können Sie mühelos einen anderen, momentan unbenutzten Port einstellen. Da viele automatisierte CrackTools nur den Port 22 berücksichtigen, entledigen Sie sich damit auf einen Schlag vieler Sicherheitsprobleme.
SSH-Port ändern
Bei der Verwendung von ssh müssen Sie nun jedes Mal mit -p den Port Ihres SSH-Servers explizit angeben. Beachten Sie, dass Sie beim Kommando scp die Option -P verwenden müssen, weil -p dort die Bedeutung preserve hat und bewirkt, dass Zeit- und Zugriffsinformationen der zu kopierenden Datei erhalten bleiben! Sie sollten sich freilich im Klaren darüber sein, dass der Schutz durch den Port-Wechsel nur begrenzte Wirkung hat: Wer Ihren Server ernsthaft angreifen will und nicht nur auf der Suche nach dem nächstbesten schlecht konfigurierten Server zur Installation eines Root-Kits ist, der wird einen Port-Scan durchführen. Damit bleibt Ihr SSH-Server nicht lange unentdeckt, egal auf welchem Port er läuft. Die Veränderung des SSH-Ports hat zudem einen nicht unerheblichen Nachteil: Während die meisten Firewalls so konfiguriert sind, dass sie Verkehr über den Port 22 zulassen, wird dies für Ihren neuen Port wahrscheinlich nicht zutreffen. Wenn Sie vom Unternehmen Xy, wo Sie gerade ein paar Tage arbeiten, schnell via SSH auf Ihren Server zugreifen möchten, scheitern Sie womöglich bereits an der Firmen-Firewall. Am sichersten ist die Verwendung des SSH-Servers, wenn Sie sich nicht mit einem Passwort authentifizieren, sondern mit einem Schlüssel. Die Erzeugung und Verteilung eines SSH-Schlüssels ist im Detail auf Seite 388 beschrieben.
Authentifizierung mit Schlüsseln
983
Kapitel 32
Web- und Root-Server
Sobald der Aufbau einer SSH-Verbindung mit dem Schlüssel (also ohne Login-Aufforderung) funktioniert, können Sie auf dem Server die Konfigurationsdatei sshd_config verändern. Entscheidend sind zwei Zeilen: # in /etc/ssh/sshd_config ... PasswordAuthentication no UsePAM no Damit ist von nun an eine SSH-Authentifizierung nur noch mit Schlüsseln möglich. Passen Sie aber auf, dass Sie sich nicht selbst aus Ihrem System aussperren! Wenn Sie den Schlüssel auf Ihrem Client-Rechner verlieren, können Sie sich auf dem Server nicht mehr einloggen! Das ist gleichzeitig auch der entscheidende Nachteil der schlüsselbasierten Authentifizierung: Während Sie sich per Passwort von jedem beliebigen Rechner aus beim Server anmelden konnten, gelingt dies mit Schlüsseln nur noch auf zuvor entsprechend konfigurierten Rechnern. Wenn Sie auf diesen bzw. diese Rechner gerade keinen Zugriff haben (weil Sie unterwegs sind, Ihr Notebook kaputt ist etc.), können Sie sich nicht mehr beim Server anmelden. Es ist wie so oft: Jede zusätzliche Sicherheit bezahlen Sie durch geringere Flexibilität ... TCP-Wrapper
Der SSH-Server verwendet die sogenannte TCP-Wrapper-Bibliothek. Deswegen können Sie auch durch die Konfigurationsdateien /etc/hosts.allow und /etc/hosts.deny steuern, von welchen Netzwerkadressen der SSH-Server genutzt werden kann. Bei einem SSH-Server auf einem Root-Server ist diese Art der Absicherung selten zweckmäßig – SSH soll ja gerade aus dem ganzen Internet verwendbar sein. Wenn Sie dagegen einen SSH-Server auf einem LAN-Server installiert haben und die Administration nur innerhalb des LANs erfolgen soll, ist es durchaus sinnvoll, die Zugriffsmöglichkeiten entsprechend einzuschränken. Details zur TCP-Wrapper-Bibliothek und den dazugehörigen Konfigurationsdateien finden Sie auf Seite 885.
DenyHosts
Das Python-Script DenyHosts überwacht alle SSH-Login-Versuche. Sobald es feststellt, dass es von einer IP-Adresse mehrere vergebliche Logins gibt, wird diese IP-Adresse automatisch der Datei /etc/hosts.deny hinzugefügt. Je nach Konfiguration bleibt die IP-Adresse nun für immer in hosts.deny oder wird nach einer bestimmten Zeit (einem Tag oder einer Woche) wieder entfernt. DenyHosts verhindert automatisierte Login-Versuche wirksam (es sei denn, es handelt sich um einen Angriff, der gleichzeitig von sehr vielen unterschiedlichen Rechnern erfolgt) und hat sich auf den von mir betreuten Servern sehr gut bewährt. Für viele Distributionen gibt es fertige Pakete. Weitere Informationen und die gerade aktuelle Version finden Sie unter: http://denyhosts.sourceforge.net/ denyhosts wird durch ein Init-Script gestartet und wertet die Konfigurationsdatei /etc/denyhosts.conf aus. Entscheidend ist, dass denyhost die richtige Logging-Datei überwacht (Parameter SECURE_LOG). Das folgende Listing zeigt einige Zeilen der Konfiguration auf meinem Webserver kofler.info: # Datei /etc/denyhosts.conf SECURE_LOG = /var/log/auth.log HOSTS_DENY = /etc/hosts.deny
984
Apache
Abschnitt 32.2
# blockierte IP-Adressen nach 24h wieder freigeben PURGE_DENY = 1d # blockieren nach drei vergeblichen Versuchen für einen falschen Login-Namen DENY_THRESHOLD_INVALID = 3 # blockieren nach fünf vergeblichen Versuchen für einen richtigen Login-Namen DENY_THRESHOLD_VALID = 5 # blockieren nach einem vergeblichen Versuch für root DENY_THRESHOLD_ROOT = 1
32.2 Apache Apache ist der Webserver der Open-Source-Welt. Im August 2010 liefen laut http://netcraft.com ca. 56 Prozent aller Websites unter Apache. Wird nur die Million der am meisten besuchten Websites betrachtet, steigt der Marktanteil sogar auf sagenhafte 67 Prozent. Dieses Kapitel kratzt gerade einmal an der Oberfläche von Apache. Aktuelle Informationen sowie eine umfassende Dokumentation zu Apache finden Sie auf der Apache-Website: http://www.apache.org Eine typische Apache-Installation besteht aus zahlreichen zusammengehörenden Paketen: dem Server an sich, diversen Bibliotheken, Plugins, Programmiersprachen etc. Um Ihnen die Installation zu erleichtern, können Sie bei einigen Distributionen jeweils eine ganze Gruppe von Paketen zur Installation auswählen: Bei Fedora führen Sie in einer Konsole yum groupinstall ’Web-Server’ aus, unter SUSE zypper intall -t pattern lamp_server, unter Ubuntu tasksel install lamp-server. Damit werden neben Apache auch die wichtigsten MySQL- und PHP-Pakete installiert.
Hinweis
Seit Version 2 unterstützt Apache drei unterschiedliche Multi-Threading-Verfahren, nämlich perchild, prefork und worker. Diese Verfahren haben Einfluss darauf, wie effizient Apache mehrere Anfragen gleichzeitig verarbeiten kann. Bei der Installation von Apache müssen Sie sich für eine dieser drei Varianten entscheiden. Wenn Sie vorhaben, zusammen mit Apache die Programmiersprache PHP einzusetzen, ist das Verfahren prefork die sicherste Wahl. Bei den beiden anderen Varianten sind Fehler aufgrund von nicht thread-sicheren Bibliotheken möglich:
Installation
http://www.php.net/manual/en/faq.installation.php Apache ist ein Dämon, der je nach Distribution explizit gestartet werden muss. Eine Zusammenfassung der erforderlichen Kommandos finden Sie auf Seite 365. Der Name des Init-Scripts variiert je nach Distribution: apache2 bei Debian, SUSE und Ubuntu bzw. httpd bei Fedora und Red Hat.
Start/Stopp
Auch der Programmname des Apache-Webservers variiert je nach Distribution. Aus Sicherheitsgründen wird der Webserver wie die meisten anderen Netzwerk-Dämonen nicht unter dem Account root ausgeführt, sondern unter einem anderen Account. Dessen Namen stellen Sie am einfachsten mit ps axu fest. Wie Tabelle 32.1 zeigt, variieren Programmname und Account je nach Distribution.
Programmname und Account
Um zu testen, ob alles funktioniert, starten Sie einen Webbrowser und geben als Adresse http://localhost/ oder http://servername/ ein. Sie sollten nun eine Testseite des Webservers sehen (siehe Abbildung 32.1).
Test
985
Kapitel 32
Tabelle 32.1: Programmname, Account und DocumentRootVerzeichnis von Apache
Web- und Root-Server
DISTRIBUTION
PROGRAMMNAME
ACCOUNT
DOCUMENTROOT
Debian, Ubuntu
apache
www-data
/var/www
Fedora, Red Hat
httpd
apache
/var/www/html
SUSE
httpd2-threadverfahren
wwwrun
/srv/www/htdocs
Abbildung 32.1: Apache-Testseite eines UbuntuRechners
Eigene HTML-Seiten
Damit statt der Testseite die Startseite Ihres eigenen Webauftritts erscheint, müssen Sie Ihre HTML-Dateien in das Dokumentverzeichnis von Apache speichern. Auch dieses Verzeichnis ist distributionsabhängig (Schlüsselwort DocumentRoot in den Konfigurationsdateien, siehe Tabelle 32.1). Ihre HTML-Dateien müssen für den Account des Apache-Webservers lesbar sein!
Konfiguration Es fehlt in diesem Buch der Platz, um detailliert auf die Konfiguration von Apache einzugehen. Ich möchte an dieser Stelle aber zumindest einen Überblick darüber geben, wo sich die Konfigurationsdateien je nach Distribution befinden und wie ganz elementare Einstellungen durchgeführt werden. Früher erfolgte die Konfiguration von Apache durch die Datei httpd.conf, wobei deren genauer Ort distributionsabhängig war. Allerdings wurde diese Konfigurationsdatei im Laufe der Zeit immer unübersichtlicher. Gleichzeitig wurde eine automatisierte Wartung – also beispielsweise das Aktivieren oder Deaktivieren von Plugins – zunehmend schwieriger. Aus diesem Grund sind die meisten Distributionen dazu übergegangen, die Einstellungen auf diverse Dateien zu verteilen, die durch Include-Anweisungen aus verschiedenen Verzeichnissen gelesen werden (siehe die Tabellen 32.2 bis 32.4). Das macht zwar jede einzelne Datei übersichtlicher, das Gesamtsystem wird aber noch undurchschaubarer. Zudem ist es nun beinahe unmöglich, Einstellungen von einer Distribution in eine andere zu übernehmen. Wenn Sie ein bestimmtes Schlüsselwort in den Konfigurationsdateien suchen, gehen Sie am besten so vor: user$ user$
cd /etc/httpd (bzw.) cd /etc/apache2 find -type f -exec grep -i -q Schlüsselwort
^; -print
Bei Debian/Ubuntu enthält das Verzeichnis mods-available eine Kollektion von *.load- und *.confDateien für diverse Apache-Module. Um weitere Module zu aktivieren, richten Sie in mods-enabled Links auf diese Dateien ein. Bei der Verwaltung der Links helfen die Debian-spezifischen Kommandos a2enmod und a2dismod. Des Weiteren können Sie mit a2ensite und a2dissite virtuelle Hosts
986
Apache
DATEIEN
INHALT
/etc/apache2/apache2.conf
Startpunkt
/etc/apache2/httpd.conf
benutzerspezifische Konfiguration
/etc/apache2/ports.conf
überwachte Ports, normalerweise Port 80
/etc/apache2/mods-available/*
verfügbare Erweiterungsmodule
/etc/apache2/mods-enabled/*
Links auf aktive Erweiterungsmodule
/etc/apache2/conf.d/*
sonstige Konfigurationsdateien
/etc/apache2/sites-available/*
verfügbare Websites (virtuelle Hosts)
/etc/apache2/sites-enabled/*
Links auf aktive Websites
/etc/apache2/envvars
Umgebungsvariablen für das Init-Script
DATEIEN
INHALT
/etc/httpd/conf/httpd.conf
Startpunkt
/etc/httpd/conf/magic
MIME-Konfiguration (für mod_mime)
/etc/httpd/conf.d/*.conf
Modulkonfigurationsdateien
DATEIEN
INHALT
/etc/apache2/httpd.conf
Startpunkt
/etc/apache2/*.conf
globale Konfigurationsdateien
/etc/apache2/sysconf.d/*.conf
automatisch generierte Systemkonfigurationsdateien
/etc/apache2/conf.d/*.conf
sonstige Konfigurationsdateien
/etc/apache2/vhosts.d/*.conf
Websites (virtelle Hosts)
/etc/sysconfig/apache2
Grundeinstellungen
Abschnitt 32.2
Tabelle 32.2: ApacheKonfiguration bei Debian und Ubuntu
Tabelle 32.3: ApacheKonfiguration bei Fedora und Red Hat
Tabelle 32.4: ApacheKonfiguration bei SUSE
aktivieren bzw. deaktivieren. Standardmäßig enthält sites-available nur die Datei default: Sie konfiguriert einerseits die Standard-Website des Servers (Verzeichnis /var/www), enthält darüber hinaus aber auch diverse Grundeinstellungen für die Protokollierung von Fehlern und Seitenzugriffen. Der Mechanismus funktioniert wie bei den Modulen: Das Verzeichnis sites-available enthält die Konfigurationsdateien für alle Hosts, in sites-enabled befinden sich die entsprechenden Links. Bei SUSE werden sämtliche *.conf-Dateien im Verzeichnis sysconf.d bei jedem Apache-Start durch das Init-V-Script /etc/init.d/apache2 neu erstellt! Änderungen in diesen Dateien sind daher zwecklos! Vielmehr müssen Sie die Variablen in /etc/sysconfig/apache2 ändern. In dieser Datei ist auch festgelegt, welche Module beim Apache-Start geladen werden (Variable APACHE_MODULES). Wenn Sie den SUSE-Konfigurationsdateien eine eigene Datei hinzufügen möchten, geben Sie deren Dateinamen in der Variable APACHE_CONF_INCLUDE_FILES an.
987
Kapitel 32
Konfiguration testen
Web- und Root-Server
Nach Änderungen an der Syntax können Sie mit httpd -t, httpd2 -t bzw. apache2 -t testen, ob die Konfiguration frei von Syntaxfehlern ist. Bei Debian und Ubuntu müssen Sie vorher einige Umgebungsvariablen aus envvars einlesen: root# . /etc/apache2/envvars root# apache2 -t Syntax OK Anschließend fordern Sie Apache dazu auf, die Konfigurationsdateien neu einzulesen: root#
ServerName
/etc/init.d/init-script-name reload
Der Webserver Apache funktioniert zwar im Regelfall auf Anhieb. Je nach Netzwerkkonfiguration müssen Sie aber zumindest eine Zeile in den Konfigurationsdateien ändern bzw. zu ihnen hinzufügen: ServerName sollte den Namen Ihres Rechners enthalten. Falls diese Einstellung nicht wirksam wird, müssen Sie außerdem die Einstellung UseCanonicalName Off verwenden. # in /etc/apache2/httpd.conf (Debian/Ubuntu) # bzw. /etc/httpd/conf/httpd.conf (Fedora/Red Hat) ServerName mars.sol # geben Sie hier den Namen Ihres Rechners an Bei SUSE stellen Sie den Rechnernamen in /etc/sysconfig/apache2 mit der Variablen APACHE_SERVERNAME ein.
Standardzeichensatz Bei allen gängigen Linux-Distributionen gilt automatisch der Unicode-Zeichensatz UTF-8. Wenn Sie also mit einem Texteditor eine Textdatei erstellen, die die deutschen Buchstaben ä, ö, ü oder ß enthält, werden diese in der UTF-8-Codierung gespeichert. Vor allem ältere HTML-Dateien für deutsche Webseiten sind dagegen oft noch im Zeichensatz Latin-1 (ISO-8851-1) codiert. Apache ist die Codierung der HTML-Dateien grundsätzlich egal. Das Programm überträgt die Dateien einfach Byte für Byte an den Webbrowser, der die Seite angefordert hat. Allerdings sendet Apache zusätzlich einen sogenannten Header mit, der unter anderem Informationen darüber enthält, in welchem Zeichensatz die Seite codiert ist. Der Webbrowser wertet diese Information aus und verwendet den angegebenen Zeichensatz zur Darstellung der Seite. Zeichensatz einstellen
Der springende Punkt ist nun, dass Apache den richtigen Zeichensatz angibt: Wenn das schiefgeht, sieht der Benutzer in seinem Webbrowser statt ä oder ü irgendwelche merkwürdigen Zeichenkombinationen. Aus diesem Grund bietet Apache diverse Möglichkeiten zur Zeichensatzkonfiguration: » AddDefaultCharset off: Bei dieser Einstellung wertet Apache das <meta>-Tag in der zu übertragenden HTML-Datei aus und sendet den dort angegebenen Zeichensatz an den Browser. Wenn die HTML-Datei wie folgt beginnt, kommt der Zeichensatz Unicode UTF-8 zur Anwendung: <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> ...
988
Apache
Abschnitt 32.2
» AddDefaultCharset zeichensatz: Apache überträgt den hier angegebenen Zeichensatz für alle Seiten an den Browser. Die Einstellung gilt sowohl für HTML- als auch für PHP-Dateien. Das <meta>-Tag im HTML-Code wird ignoriert. » AddCharset zeichensatz kennung: Damit wird ein Zeichensatz für Dateien mit einer bestimmten Kennung eingestellt. AddCharset utf-8 .utf8 bewirkt also, dass für alle Dateien, deren Name auf .utf8 endet, als Zeichensatz Unicode UTF-8 an den Browser gesendet wird. AddCharset setzt das Apache-Modul mod_mime voraus, das unter allen hier getesten Distributionen standardmäßig aktiv ist. Natürlich gilt je nach Distribution eine unterschiedliche Standardkonfiguration. Für die globale Voreinstellung des Zeichensatzes ist unter Ubuntu die Konfigurationsdatei /etc/apache2/conf.d/ charset vorgesehen. Standardmäßig ist diese Datei leer, d. h., es gilt AddDefaultCharset off.
Debian, Ubuntu
Sie können AddDefaultCharset und AddCharset auch in den Konfigurationsdateien für virtuelle Hosts (Verzeichnis sites-available) sowie in .htaccess-Dateien einsetzen, wenn Sie eine host- bzw. verzeichnisspezifische Konfiguration wünschen. Beachten Sie aber, dass die Zeichensatzeinstellungen in .htaccess nur berücksichtigt werden, wenn für das Webverzeichnis AllowOverride All oder FileInfo gilt. Auch bei Fedora und Red Hat gilt AddDefaultCharset UTF-8. Die Einstellung befindet sich in /etc/ httpd/conf/httpd.conf. In derselben Datei ist auch AllowOverride None für das Verzeichnis /var/ www/html eingestellt.
Fedora, Red Hat
Bei SUSE fehlt in den Konfigurationsdateien eine explizite Zeichensatzeinstellung. Damit gilt AddDefaultCharset off, d. h., die <meta>-Informationen in den HTML-Dateien sind für die richtige Zeichensatzerkennung entscheidend. Ein geeigneter Ort zur Einstellung von AddDefaultCharset ist die Datei /etc/apache2/mod_mime-defaults.conf. Auch bei SUSE gilt AllowOverride None für das Verzeichnis /srv/www/htdocs. Sie können die Einstellung in /etc/apache2/default-server.conf verändern.
SUSE
Absicherung für den internen Betrieb Wenn Sie Apache nur für den internen Betrieb bzw. für das lokale Netzwerk verwenden, sollten Sie den Zugriff von außen blockieren. Das können Sie wahlweise durch eine Firewall (siehe Kapitel 30) oder durch das Ändern weniger Zeilen in den Konfigurationsdateien erreichen. Grundsätzlich erfolgt die Zugriffssteuerung auf einzelne Webverzeichnisse in den Abschnitten der Konfigurationsdateien (wie üblich bei jeder Distribution woanders). Dabei definieren – falls vorhanden – die Einstellungen für das Verzeichnis / den Standard für alle Verzeichnisse. In weiteren -Abschnitten können davon abweichend für bestimmte Verzeichnisse andere Regeln definiert werden. Die grundsätzliche Bedeutung der Schlüsselwörter Order, Deny und Allow sollte aus dem folgenden Beispiel klar hervorgehen.
Die folgenden Zeilen bewirken, dass Webseiten aus dem Standardverzeichnis nur von Rechnern des lokalen Netzwerks abgerufen werden können. Außerdem werden symbolische Links nicht mehr unterstützt, weil diese oft eine erhebliche Sicherheitslücke darstellen. (Beachten Sie, dass deny,allow ohne ein Leerzeichen angegeben werden muss!) Im Anschluss daran werden für das
989
Kapitel 32
Web- und Root-Server
Verzeichnis /var/www/html/public die recht strengen Standardregeln etwas aufweicht. Die Option Indexes bewirkt, dass im Webbrowser eine Liste aller Dateien eines Verzeichnisses angezeigt wird, wenn im Verzeichnis die Datei index.html fehlt. # sicherere Standardkonfiguration für den gesamten Verzeichnisbaum Options None # keine Optionen AllowOverride None # .htdocs hat keine Wirkung Order deny,allow # zuerst verbieten, dann erlauben Deny from all # alles verbieten, aber ... Allow from 192.168.0.0/8 # Zugriff aus dem lokalen Netz, Allow from .sol # Zugriff aus dem lokalen Netz und Allow from localhost # Zugriff für localhost erlauben # Webzugriff auf http://<site>/public erlauben (für Fedora/Red Hat) Options Indexes FollowSymLinks Order allow,deny Allow from all # freier Zugriff für alle!
Passwortschutz für Webverzeichnisse Vorhin habe ich beschrieben, wie der Zugriff auf den Webserver auf das lokale Netz eingeschränkt werden kann. Manchmal besteht allerdings der Wunsch, den Zugriff auf Webverzeichnisse nicht grundsätzlich zu sperren, sondern einen Zugriff erst nach einer Passwortkontrolle zu erlauben. Eine derartige Vorgehensweise bietet sich beispielsweise an, wenn Sie auf Ihrer Website einige Administrationsseiten haben (z. B. phpMyAdmin zur MySQL-Administration, siehe Seite 999): Egal wo Sie sich als MySQL-Administrator gerade befinden, Sie möchten auf diese Seiten zugreifen können. Gleichzeitig muss aber vermieden werden, dass gewöhnliche Benutzer diese Administrationsseiten verwenden können. Passwortdatei
Die Lösung für derartige Probleme besteht darin, das Verzeichnis mit einer Passwortdatei abzusichern. Die Passwortdatei sollte möglichst außerhalb der üblichen Webverzeichnisse angelegt werden, damit ein Zugriff auf die Datei per Webadresse (http://servername/verzeichnis/passwortdatei) ausgeschlossen ist. Das folgende Beispiel geht davon aus, dass die Passwortdatei im Verzeichnis /private gespeichert wird. Um eine neue Passwortdatei anzulegen, verwenden Sie das Kommando htpasswd (htpasswd2 bei SUSE) mit der Option -c (create). Das Passwort wird selbstverständlich verschlüsselt. user$ cd /private user$ htpasswd -c passwords.pwd username New password: ******** Re-type new password: ******** Adding password for user username
990
Apache
Abschnitt 32.2
Weitere Benutzername/Passwort-Paare werden mit htpasswd ohne die Option -c hinzugefügt: user$ cd /private user$ htpasswd passwords.pwd name2 New password: ******** Re-type new password: ******** Adding password for user username
Falls Ihr Rechner durch SElinux oder AppArmor geschützt ist (siehe Seite 918 bzw. 924), müssen die Regeln dieser Sicherheitssysteme ebenfalls den Zugriff auf die Passwortdatei zulassen.
Hinweis
Achten Sie darauf, dass Apache Leserechte für die Passwortdatei und deren Verzeichnis haben muss! Apache läuft aus Sicherheitsgründen nicht als root, sondern unter einem anderen Account (www-date bei Debian und Ubuntu, apache bei Fedora und Red Hat, wwwrun bei SUSE).
Es bestehen nun zwei Varianten, um Apache so zu konfigurieren, dass die Passwortdatei tatsächlich berücksichtigt wird. Die erste Variante setzt eine Veränderung der zentralen Konfigurationsdateien voraus (httpd.conf & Co.). Bei der zweiten Variante erfolgt die Konfiguration durch die Datei .htaccess, die sich innerhalb des Webverzeichnisses befindet. Damit die Passwortdatei von Apache berücksichtigt wird, müssen Sie für das zu schützende Verzeichnis einen eigenen -Eintrag in httpd.conf einfügen. Die folgenden Zeilen geben hierfür ein Muster:
httpd.conf & Co.
# Passwortgeschütztes Verzeichnis AuthType Basic AuthUserFile /private/passwords.pwd AuthName "admin" Require valid-user # weitere Optionen, soweit notwendig AuthName bezeichnet den Bereich (Realm), für den der Zugriff gültig ist. Der Sinn besteht darin, dass Sie nicht jedes Mal einen Login durchführen müssen, wenn Sie auf unterschiedliche Verzeichnisse zugreifen möchten, die durch dieselbe Passwortdatei geschützt sind. Sobald Sie sich mit einer bestimmten AuthName-Bezeichnung eingeloggt haben, gilt dieser Login auch für alle anderen Verzeichnisse mit diesem AuthName. Require valid-user bedeutet, dass als Login jede gültige Kombination aus Benutzername und Passwort erlaubt ist. Alternativ können Sie hier auch angeben, dass ein Login nur für ganz bestimmte Benutzer erlaubt ist: Require user name1 name2 Die oben skizzierte Vorgehensweise ist nur möglich, wenn Sie Zugang zu den zentralen ApacheKonfigurationsdateien haben, d. h., wenn Sie selbst der Webadministrator sind. Ist das nicht der Fall, kann eine gleichwertige Absicherung auch durch die Datei .htaccess erfolgen, die sich im zu schützenden Verzeichnis befindet. In dieser Datei müssen sich dieselben Anweisungen befinden, die vorhin innerhalb der -Gruppe angegeben wurden, also AuthType, AuthUserFile, AuthName und Require.
.htaccess
991
Kapitel 32
Web- und Root-Server
Beachten Sie bitte, dass .htaccess-Dateien nur beachtet werden, wenn in httpd.conf in der -Gruppe des Verzeichnisses die Veränderung der Authentifizierungsinformationen zugelassen wird. (Statt AllowOverride AuthConfig darf auch AllowOverride All angegeben werden.) Gerade bei Webservern, auf denen unterschiedliche Benutzer ihre eigenen Webverzeichnisse warten, ist diese Voraussetzung meist gegeben. # Verzeichnis, das mit .htaccess geschützt werden kann AllowOverride AuthConfig # weitere Optionen, soweit notwendig
32.3 PHP Dynamische Webseiten
Apache an sich kann nur statische Webseiten übertragen. Alle modernen Websites nutzen aber dynamische Seiten. Jedes Mal, wenn eine derartige Seite angefordert wird, startet Apache ein externes Programm, verarbeitet den Code der Seite und liefert als Ergebnis eine Seite, die individuell angepasst ist. (Die Seite kann beispielsweise die aktuelle Uhrzeit enthalten oder das Ergebnis einer Datenbankabfrage oder eine ständig wechselnde Werbeeinblendung etc.)
PHP
Zur Programmierung dynamischer Webseiten eignen sich zahllose Programmiersprachen – z. B. Perl oder Java. Am populärsten in der Linux/Unix-Welt ist momentan allerdings PHP. PHP steht für PHP Hypertext Preprocessor. Ausführliche Informationen zu PHP finden Sie auf folgender Website: http://www.php.net/ Die Grundidee einer PHP-Webseite besteht darin, dass die Datei mit der Kennung *.php sowohl HTML- als auch PHP-Code enthält. PHP-Code wird mit dem Tag . Wenn ein Webnutzer eine PHP-Seite anfordert, übergibt Apache die Seite an den PHP-Interpreter. Dort wird der PHP-Code ausgeführt. Das Ergebnis des Codes wird direkt in die HTML-Datei eingebettet. Der PHP-Interpreter übergibt die resultierende Seite zurück an Apache, und dieser sendet sie dem Webnutzer. Der Webbrowser des Nutzers sieht also nie den PHP-Code, sondern immer nur die resultierende HTML-Seite. (Das gleiche Konzept wendet übrigens Microsoft bei seinen Active Server Pages (ASP) an.)
Hello World!
Der Platz reicht hier nicht für eine Einführung in die Programmiersprache PHP. Stattdessen soll das folgende Minibeispiel das Konzept von PHP veranschaulichen. Die folgende Datei liefert nach der Verarbeitung durch den PHP-Interpreter eine HTML-Seite mit der aktuellen Uhrzeit: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> PHP-Beispiel
992
PHP
Abschnitt 32.4
Die aktuelle Uhrzeit auf diesem Server:
Sofern PHP nicht bereits mit Apache mitinstalliert wurde, installieren Sie mit Ihrem Paketverwaltungsprogramm die erforderlichen php5-Pakete. Was »erforderlich« ist, ist allerdings gar nicht so einfach festzustellen: Ähnlich wie bei Apache ist auch PHP zumeist auf zahlreiche Pakete verteilt, die die Sprache an sich sowie diverse Erweiterungen enthalten. Für erste Experimente reichen üblicherweise php5, php5-common sowie libapache2-mod-php5. Soweit sich nicht die Paketverwaltung darum kümmert, müssen Sie Apache nach der Installation neu starten, damit der Webserver das hinzugekommene PHP-Modul berücksichtigt.
Installation
Zahllose Optionen des PHP-Interpreters werden durch die Datei php.ini gesteuert. Im Regelfall können Sie die Grundeinstellungen einfach beibehalten. Der Ort dieser Datei sowie weiterer PHPKonfigurationsdateien ist wieder einmal distributionsabhängig:
Konfiguration
Debian, Ubuntu: Fedora, Red Hat: SUSE:
/etc/php5/apache2/php.ini, /etc/php5/apache2/conf.d/*.ini /etc/php.ini, /etc/php.d/*.ini /etc/php5/apache2/php.ini
Um zu testen, ob die PHP-Installation funktioniert, erstellen Sie die Datei phptest.php, die aus nur einer einzigen Zeile Code besteht:
Test
Kopieren Sie diese Datei in das DocumentRoot-Verzeichnis (siehe Seite 986), und stellen Sie sicher, dass Apache die Datei lesen darf. Obwohl es sich bei PHP-Dateien eigentlich um Script-Dateien handelt, reichen Leserechte. Zugriffsrechte zum Ausführen (x-Zugriffsbits) sind nicht erforderlich. Mit einem Webbrowser sehen Sie sich nun die Seite http://localhost/phptest.php an. Das Ergebnis ist eine sehr umfangreiche Seite, die alle möglichen Optionen und Einstellungen von Apache und PHP enthält. (Aus Sicherheitsgründen ist es nicht empfehlenswert, eine derartige Seite frei zugänglich ins Internet zu stellen. Sie enthält eine Menge Informationen über Ihre Konfiguration.) Wenn Sie statt der Testseite den PHP-Code sehen oder die PHP-Datei zum Download angeboten bekommen, ist die wahrscheinlichste Fehlerursache die, dass Sie als Webadresse den Dateinamen (z. B. /srv/www/htdocs/phpinfo.php) angegeben haben. In diesem Fall wird die Datei direkt aus dem lokalen Dateisystem gelesen, anstatt von Apache und PHP verarbeitet zu werden. Die Webadresse muss mit http:// beginnen!
Wenn es nicht funktioniert
Eine weitere Fehlerursache ist die Apache-Konfiguration: Haben Sie Apache nach der Installation von PHP bzw. nach der Veränderung von Konfigurationsdateien neu gestartet? Wenn es einmal nicht geklappt hat, kann Ihnen in der Folge der Cache Ihres Webbrowsers einen Strich durch die Rechnung machen. Anstatt die Seite neu von Apache anzufordern (was nun vielleicht funktionieren würde), liest er die Seite aus dem internen Cache. Starten Sie das Programm sicherheitshalber neu, bzw. löschen Sie den Cache!
993
Kapitel 32
Web- und Root-Server
Abbildung 32.2: PHP-Testseite
32.4 MySQL MySQL ist momentan das populärste Datenbanksystem für Linux. MySQL ist schnell, relativ einfach zu warten und unkompliziert in der Programmierung. Besonders beliebt ist MySQL in der Kombination mit PHP, um dynamische Websites zu erstellen. Diverse fertige Webapplikationen (Joomla, TYPO3 etc.) bauen auf PHP und MySQL auf. Im Vergleich zu kommerziellen Datenbanksystemen von Oracle oder IBM DB/2 bietet MySQL zwar weniger Funktionen, für die meisten Anwendungen ist der Funktionsumfang von MySQL aber ausreichend. Ausführliche Informationen zu MySQL inklusive eines sehr umfassenden Handbuchs finden Sie hier: http://dev.mysql.com Lizenz
MySQL sowie die MySQL-Treiber für diverse Programmiersprachen unterstehen der GPL. Die firmeninterne Nutzung von MySQL (ohne Weitergabe/Vertrieb nach außen) sowie die Nutzung in GPL-Projekten ist grundsätzlich kostenlos. Beachten Sie aber, dass die Weitergabe kommerzieller Projekte (Closed Source, keine GPL), die auf MySQL aufbauen, eine kommerzielle Lizenz des MySQL-Servers erfordert! Details zu den Lizenzbedingungen von MySQL finden Sie hier: http://www.mysql.com/about/legal/ Im Januar 2010 hat Oracle Sun gekauft und ist nun der Eigentümer von MySQL. Was das für die Zukunft von MySQL bedeutet, ist noch unklar. Es zeichnet sich aber bereits jetzt ab, dass es neben dem offiziellen MySQL auch sogenannte Forks geben wird (also vom Open-Source-Code abgeleitete neue Projekte). Besonders aktiv ist dabei der ursprüngliche MySQL-Gründer Monty Widenius, der zu diesem Zweck die Open Database Alliance gegründet hat.
994
MySQL
Abschnitt 32.4
http://opendatabasealliance.com/ Als erste Distribution liefert openSUSE 11.3 standardmäßig das Paket mariadb mit, das den MariaDB-Datenbank-Server enthält. Er kann anstelle des offiziellen MySQL-Servers verwendet werden und enthält den zusätzlichen Aria-Tabellentreiber. Dieser Abschnitt beschreibt lediglich die Installation von MySQL. Natürlich gäbe es noch viel mehr zum Design von Datenbanken, zur Verwaltung der Benutzerrechte, zur Programmierung von Datenbankanwendungen und zur Administration zu sagen. Sie können Ihren Informationshunger mit einem der zahllosen Bücher zu diesem Thema stillen. Ich möchte nicht verschweigen, dass ich selbst bei Addison-Wesley zwei Bücher zu MySQL bzw. zu PHP und MySQL veröffentlicht habe. Inhaltsverzeichnisse und Probekapitel finden Sie auf meiner Website:
PHP- und MySQL-Buch
http://www.kofler.info/
Installation und Absicherung Bei allen gängigen Distributionen werden MySQL-Pakete mitgeliefert. Beachten Sie, dass der Datenbank-Server selbst, seine Bibliotheken und Administrationswerkzeuge etc. in unterschiedlichen Paketen installiert sind. Die folgende Tabelle fasst zusammen, welche Pakete Sie üblicherweise benötigen: Debian, Ubuntu: Fedora, Red Hat: SUSE:
mysql-client, mysql-common, mysql-server mysql, mysql-server mysql, mysql-client, libmysqlclientn
Bei Fedora ist es zweckmäßig, statt der Einzelpakete gleich eine vordefinierte Gruppe von MySQLPaketen zu installieren: root#
yum groupinstall mysql
MySQL ist ein Dämon, der je nach Distribution explizit gestartet werden muss. Das dafür erforderliche Kommando variiert je nach Distribution. Eine Zusammenfassung finden Sie auf Seite 365. Je nach Distribution lautet der Name des Init-Scripts mysql oder mysqld.
Start/Stopp
Die Datenbankdateien des MySQL-Servers werden normalerweise im Verzeichnis /var/lib/mysql gespeichert. Der Ort der Logging-Dateien variiert je nach Distribution. Üblich sind /var/log/syslog (Debian, Ubuntu), /var/lib/mysql/hostname (SUSE) bzw. /var/log/mysql*. Die Konfiguration des MySQL-Servers erfolgt durch die Datei /etc/my.cnf bzw. /etc/mysql/my.cnf (Debian, Ubuntu). Diese Datei ist für den gewöhnlichen Betrieb vorkonfiguriert. Aus Platzgründen kann ich nicht auf alle Schlüsselwörter für diese Datei eingehen. Einige sicherheitsrelevante Details möchte ich aber doch herausgreifen.
Konfiguration
Grundsätzlich ist die Konfigurationsdatei durch [name] in mehrere Abschnitte gegliedert. Im Folgenden beziehe ich mich ausschließlich auf den Abschnitt [mysqld], der den Server an sich betrifft. Änderungen in diesem Abschnitt werden nur wirksam, wenn Sie den MySQL-Server neu starten. Die anderen Abschnitte dienen zur Konfiguration diverser Client-Programme.
995
Kapitel 32
Web- und Root-Server
» old_passwords = 1: Diese Einstellung bewirkt, dass MySQL interne Passwörter so wie in den MySQL-Versionen 4.0 speichert. Diese Einstellung ist bei alten Distributionen noch immer standardmäßig vorgesehen, um Kompatibilitätsproblemen mit alten MySQL-Anwendungen aus dem Weg zu gehen. Sie mindert aber die Sicherheit des MySQL-Zugriffssystems ganz erheblich. Fortgeschrittene MySQL-Anwender, die keine Rücksicht auf alte MySQL-Programme nehmen müssen, sollten nach Möglichkeit old_passwords=0 verwenden bzw. die Anweisung einfach ganz aus my.cnf entfernen – und zwar, bevor Sie irgendwelche Passwörter einstellen! Starten Sie den MySQL-Server neu, damit die geänderte Einstellung wirksam wird! Umfassende Hintergrundinformationen zum alten und neuen Authentifizierungssystem finden Sie im MySQL-Handbuch: http://dev.mysql.com/doc/refman/5.1/en/password-hashing.html » bind-address = 127.0.0.1: Diese Einstellung bewirkt, dass Netzwerkverbindungen zum MySQL-Server ausschließlich vom lokalen Rechner aus möglich sind (nicht aber von anderen Rechnern im lokalen Netzwerk oder aus dem Internet). Wenn MySQL ohnedies nur von lokalen Programmen (z. B. PHP) genutzt werden soll, vergrößert diese Einstellung die Sicherheit. Bei Debian und Ubuntu gilt diese Einstellung standardmäßig, bei anderen Distributionen sollte sie nach Möglichkeit hinzugefügt werden. » skip-networking: Diese Einstellung verhindert jeglichen Netzwerkzugang auf den MySQLServer, also selbst Netzwerkverbindungen durch den lokalen Rechner. Die Einstellung ist damit noch restriktiver als bind-address = 127.0.0.1. Ein Verbindungsaufbau ist nur noch für lokale Programme möglich, die über eine sogenannte Socket-Datei mit dem MySQL-Server kommunizieren (z. B. PHP- oder C-Programme). Programme, die via TCP/IP mit dem MySQL-Server kommunizieren (z. B. alle Java-Programme!), können den MySQL-Server nicht nutzen. Aus diesem Grund sollten Sie im Zweifelsfall bind-address = 127.0.0.1 vorziehen. root-Passwort
Bei Debian und Ubuntu müssen Sie während der Installation des MySQL-Servers ein root-Passwort angeben. root hat nicht nur in Linux, sondern auch in MySQL eine besondere Bedeutung und verfügt über uneingeschränkte Administrationsrechte. Debian und Ubuntu richten außerdem den MySQL-Benutzer debian-sys-main ein und versehen diesen mit einem zufälligen Passwort, das sich im Klartext in der nur für Linux-root lesbaren Datei /etc/mysql/debian.cnf befindet. Das für den Start von MySQL erforderliche Script /etc/mysql/ debian-start greift auf diesen Benutzer zurück. Deswegen darf der Benutzer debian-sys-maint nicht deaktiviert werden! Nach einer Passwortänderung müssen Sie auch debian.cnf entsprechend aktualisieren! Fedora, Red Hat und SUSE verzichten auf die Absicherung von MySQL. Deswegen kann nach der Installation jeder unter Verwendung des Benutzernamens root ohne Passwort eine Verbindung zu MySQL herstellen. Abhilfe schaffen die folgenden Kommandos: user$ mysql> mysql> mysql>
mysql -u root UPDATE mysql.user SET password=PASSWORD('xxx') WHERE user='root'; FLUSH PRIVILEGES; exit
Wenn Sie in Zukunft mit mysql SQL-Kommandos ausführen möchten, müssen Sie sich so anmelden:
996
MySQL
Abschnitt 32.4
user$ mysql -u root -p Enter password: ****** Die Verwaltung der Benutzernamen und Passwörter in MySQL und in Linux ist vollkommen voneinander getrennt. Aus Sicherheitsgründen sollten Sie auf keinen Fall für MySQL-Benutzer und für Linux-Benutzer dieselben Passwörter verwenden! MySQL-Passwörter müssen oft im Programmcode gespeichert werden und sind daher wesentlich schwerer zu schützen als gewöhnliche Linux-Passwörter. Der MySQL-Benutzer root ist nun durch ein Passwort abgesichert. Je nach Distribution kann es aber sein, dass es einen anonymen MySQL-Benutzer gibt. Das bedeutet, dass sich jeder (mit einem beliebigen Benutzernamen) beim MySQL-Server anmelden kann. Der anonyme Benutzer hat zwar nach dem MySQL-Login nur wenige Rechte, dennoch stellt dieser Benutzer ein Sicherheitsrisiko dar und sollte eliminiert werden.
Anonyme MySQL-Benutzer
Ob es anonyme Benutzer gibt, stellen Sie mit dem Kommando mysql fest. Sie erkennen anonyme Benutzer daran, dass im SELECT-Ergebnis die Spalte user leer ist. Mit dem DELETE-Kommando löschen Sie diese Benutzer. FLUSH PRIVILEGES macht die Änderung in der Benutzerdatenbank sofort wirksam. user$ mysql -u root -p Enter password: ******* mysql> SELECT user, host, password FROM mysql.user; +------+----------------+-------------------------------------------+ | user | host | password | +------+----------------+-------------------------------------------+ | root | localhost | *FACF054603403E6836B8DCFCB1EAC269746E8720 | | root | uranus-suse111 | *FACF054603403E6836B8DCFCB1EAC269746E8720 | | root | 127.0.0.1 | *FACF054603403E6836B8DCFCB1EAC269746E8720 | | | localhost | | | | uranus-suse111 | | +------+----------------+-------------------------------------------+ mysql> DELETE FROM mysql.user WHERE user=''; mysql> FLUSH PRIVILEGES; mysql> exit
Erste Tests Um MySQL zu testen, müssen Sie die Datenbanksprache SQL kennen, was ich hier voraussetze. Das Ziel der folgenden Kommandos besteht darin, die neue Datenbank mydatabase und einen neuen Nutzer newuser zu schaffen, der auf diese Datenbank zugreifen darf. Für derartige Arbeiten setzen Sie am einfachsten das Programm mysql ein. Es hat eine vergleichbare Aufgabe wie eine LinuxShell: Es nimmt (MySQL-)Kommandos entgegen, leitet diese an den MySQL-Server weiter und zeigt schließlich das Ergebnis an. Dabei müssen alle SQL-Kommandos mit einem Strichpunkt enden.
Neue Datenbank und neuen Benutzer einrichten
user$ mysql -u root -p Enter password: ****** ...
997
Kapitel 32
Web- und Root-Server
mysql> mysql> mysql>
CREATE DATABASE mydatabase; GRANT ALL ON mydatabase.* TO newuser@localhost IDENTIFIED BY 'xxxxxxxxx'; exit
Alle weiteren Tests mit der neuen Datenbank kann nun der MySQL-Benutzer newuser durchführen. Wie unter Linux ist es auch in MySQL zweckmäßig, so wenig wie möglich als root zu arbeiten. Tabelle erzeugen und mit Daten füllen
Mit den folgenden Kommandos erzeugt newuser eine neue Tabelle (CREATE TABLE), fügt darin einige Datensätze ein (INSERT) und sieht sich schließlich alle Datensätze an (SELECT). Bei der Tabelle spielt die Spalte id eine besondere Rolle: Der MySQL-Server fügt dort für jeden neuen Datensatz selbstständig eine eindeutige Zahl ein. Diese Zahl dient zur Identifizierung des Datensatzes. user$ mysql -u newuser -p Enter password: ****** mysql> USE mydatabase; mysql> CREATE TABLE mytable ( id INT NOT NULL AUTO_INCREMENT, txt VARCHAR(100), n INT, PRIMARY KEY(id)); mysql> INSERT INTO mytable (txt, n) VALUES('abc', 123); mysql> INSERT INTO mytable (txt, n) VALUES('efgsd', -4); mysql> INSERT INTO mytable (txt, n) VALUES(NULL, 0); mysql> SELECT * FROM mytable; +----+-------+------+ | id | txt | n | +----+-------+------+ | 1 | abc | 123 | | 2 | efgsd | -4 | | 3 | NULL | 0 | +----+-------+------+ mysql> exit
MySQL-Administration Grundsätzlich kann die gesamte MySQL-Administration mit den textorientierten Kommandos mysql und mysqladmin erfolgen – besonders komfortabel ist das aber nicht. Als Alternative gibt es eine ganze Reihe Benutzeroberflächen, die dabei helfen, Datenbanken zu erstellen, Daten einzugeben, MySQL-Benutzer zu verwalten etc. Zu den offiziellen Administrationswerkzeugen zählen der MySQL Administrator (siehe Abbildung 32.3), der MySQL Query Browser und die neue MySQL Workbench, die momentan aber leider nur mit wenigen Distributionen mitgeliefert wird. Zu den wenigen positiven Ausnahmen zählt openSUSE 11.3; die mitgelieferte Version ist aber leider veraltet. Abhilfe: Laden Sie Workbench von der MySQL-Download-Seite herunter. Sie finden dort fertige Pakete für die meisten Linux-Distributionen: http://dev.mysql.com/downloads/workbench/#downloads
998
MySQL
Abschnitt 32.4
Abbildung 32.3: Der MySQL Administrator
phpMyAdmin Wenn PHP und MySQL funktionieren, ist der richtige Zeitpunkt für die Installation von phpMyAdmin gekommen. Dabei handelt es sich um ein Paket von PHP-Dateien, die zusammen eine sehr komfortable HTML-Benutzeroberfläche zur Administration von MySQL bilden. Der große Vorteil von phpMyAdmin im Vergleich zu anderen Administrationsprogrammen besteht darin, dass damit eine einfache Fernwartung von MySQL möglich ist. Sie brauchen dazu lediglich einen Internetzugang zu Ihrer Website.
Abbildung 32.4: phpMyAdmin
999
Kapitel 32
Installation
Web- und Root-Server
Bei den meisten Distributionen, unter anderem bei Debian, Fedora und Ubuntu, können Sie phpMyAdmin einfach als Paket installieren und anschließend über die Adresse localhost/phpmyadmin bzw. bei Fedora localhost4/phpmyadmin verwenden. Bei SUSE bzw. wenn Sie Wert auf die aktuelle Version legen, müssen Sie phpMyAdmin selbst installieren. Dazu laden Sie das TAR-Archiv von der Website phpmyadmin.net herunter und packen es in einem Apache zugänglichen Verzeichnis aus. Durch das tar-Kommando wird ein neues Verzeichnis phpMyAdmin-n erstellt, das Sie am besten gleich in das Verzeichnis phpmyadmin umbenennen, das sich leichter merken lässt. (Die folgenden Kommandos gelten für SUSE, bei anderen Distributionen müssen Sie bei cd das jeweilige DocumentRoot-Startverzeichnis angeben.) root# root# root#
cd /srv/www/htdocs/ tar xzf phpMyAdmin-n-n-all-languages.tar.gz mv phpMyAdmin-n-n-all-languages phpmyadmin
Stellen Sie sicher, dass Apache die Dateien lesen darf! Gegebenenfalls müssen Sie dazu noch chmod -R oder chown -R ausführen. Verwendung
phpMyAdmin ist so vorkonfiguriert, dass Sie sich vor der Nutzung mit einem MySQL-Benutzernamen und einem dazu passenden Passwort anmelden können. Je nachdem, welche Zugriffsrechte der in config.inc.php eingestellte MySQL-Nutzer hat, können Sie MySQL mit phpMyAdmin vollständig administrieren: Sie können neue Datenbanken und Tabellen anlegen, vorhandene modifizieren oder löschen, Datensätze eingeben, modifizieren, löschen, MySQL-Zugriffsrechte verwalten, CSV-Dateien importieren, Tabellen exportieren (z. B. als Backup) etc.
32.5 FTP-Server (vsftpd) Den meisten Webservern gesellt sich ein FTP-Server zur Seite, der je nach Website zwei Aufgaben erfüllt: Einerseits ermöglicht er den Download großer Dateien, die auf der Website zur Verfügung gestellt werden; andererseits hilft er bei der Wartung bzw. Aktualisierung der Website, indem er eine einfache Möglichkeit zum Upload von Dateien zulässt. Sicherheit
FTP ist ein sehr altes Programm. Sein Protokoll führt in Kombination mit Firewalls bzw. mit Masquerading oft zu Problemen. Noch problematischer ist der Umstand, dass beim Verbindungsaufbau zwischen einem FTP-Client und dem -Server der Benutzername und das Passwort unverschlüsselt übertragen werden. Da stehen jedem sicherheitsbewussten Anwender die Haare zu Berge! Natürlich gibt es schon längst sichere Alternativen zu FTP. Unter anderem stellt der am Beginn dieses Kapitels beschriebene SSH-Server mit SFTP (Secure FTP) auch Dienste zur Dateiübertragung zur Verfügung. Das Problem liegt hier mehr auf der Client-Seite: Es gibt nur relativ wenige benutzerfreundliche Programme, die SFTP beherrschen. Aus diesem Grund wird FTP trotz aller Sicherheitsmängel noch immer recht häufig eingesetzt. Eine andere Alternative ist der WebDAV-Standard, der das HTTP-Protokoll erweitert und die Datenübertragung in beide Richtungen erleichtert. Beispielsweise unterstützt Apache in Kombination mit dem Modul mod_dav WebDAV:
1000
FTP-Server (vsftpd)
Abschnitt 32.5
http://httpd.apache.org/docs/2.2/mod/mod_dav.html http://wiki.ubuntuusers.de/Apache/webdav Wenn Sie auf einen traditionellen FTP-Server nicht verzichten möchten, können Sie diesen auch als reinen Anonymous-FTP-Server konfigurieren. Dabei werden beim Login keine kritischen Daten übertragen. Allerdings schränkt das auch die Anwendung von FTP stark ein. Zur einfachen Wartung einer Website lässt sich FTP dann nicht mehr verwenden. Es gibt unzählige verschiedene FTP-Server. Das populärste Programm ist momentan vsftpd. Alle gängigen Distributionen stellen hierfür ein Paket zur Verfügung. vsftpd steht für Very Secure FTP Daemon. Das Attribut Very Secure ist aber unter dem Vorbehalt zu sehen, dass auch der beste FTPServer die Sicherheitsmängel des FTP-Protokolls aufweist.
vsftpd
vsftpd kann auf zwei Arten gestartet werden: entweder als eigenständiger Dämon durch das InitSystem oder über xinetd. Bei den meisten Distributionen ist die Dämon-Variante vorkonfiguriert. Die Konfigurationsdatei vsftpd.conf muss dazu die Anweisung listen=YES enthalten. Um den FTPServer zu starten bzw. zu stoppen, verwenden Sie je nach Distribution die üblichen Kommandos (siehe die Zusammenfassung auf Seite 365).
Start als Dämon
Die Konfiguration von vsftpd erfolgt durch die Datei /etc/vsftpd.conf bzw. /etc/vsftpd/ vsftpd.conf. Standardmäßig ist oft nur ein Read-Only-Zugang per Anonymous FTP zugelassen. FTP-Clients können also nur einen Download, aber keinen Upload durchführen. Wenn Sie neben Anonymous FTP auch Benutzer-Logins benötigen, müssen Sie locale_enable auf YES stellen. Wenn Sie bei dieser FTP-Form auch einen Daten-Upload zulassen möchten, müssen Sie zusätzlich write_enable auf YES stellen. Wenn vsftpd.conf die Zeile tcp_wrappers=Yes enthält, wertet vsftpd wie xinetd die Dateien /etc/hosts.allow und /etc/hosts.deny aus (siehe Seite 885). Die folgenden Zeilen fassen die wichtigsten Einstellungen in vsftpd.conf zusammen:
Konfiguration
# /etc/vsftpd.conf bzw. /etc/vsftpd/vsftpd.conf ... local_enable=YES / NO # FTP-Login zulassen write_enable=YES / NO # Daten-Upload grundsätzlich zulassen ... anonymous_enable=YES / NO # Anonymous FTP zulassen anon_upload_enable=YES / NO # Daten-Upload auch bei Anonymous FTP ... listen=YES / NO # Start als Init-Dämon (YES) oder durch xinetd (NO) tcp_wrapper=YES / NO # hosts.allow und hosts.deny auswerten FTP müsste jetzt eigentlich auf Anhieb funktionieren. Führen Sie auf dem Server-Rechner ftp localhost aus, um zu testen, ob der FTP-Server ordnungsgemäß gestartet wird. Beachten Sie dabei, dass root grundsätzlich keinen FTP-Login durchführen darf.
FTP ausprobieren
Wenn Anonymous FTP in vsftpd.conf zugelassen ist, akzeptiert vsftpd als Login die Namen anonymous und ftp in Kombination mit einem beliebigen Passwort. Es ist üblich, als Passwort die E-Mail-Adresse anzugeben. vsftpd kontrolliert das aber nicht.
Anonymous FTP
Nach dem Login kann der FTP-Client auf die Dateien des Home-Verzeichnisses des Linux-Benutzers ftp zugreifen. Der Ort dieses Verzeichnisses wird in /etc/passwd angegeben:
1001
Kapitel 32
Web- und Root-Server
Debian, Ubuntu: Fedora, Red Hat: SUSE: Upload per Anonymous FTP
/home/ftp /var/ftp/ /srv/ftp/
Wenn Sie den Upload von Dateien per Anonymous FTP zulassen, sollten Sie darauf achten, dass es nur ein einziges Verzeichnis innerhalb des FTP-Datenverzeichnisses gibt, das Schreibrechte hat – z. B. /var/ftp/upload bei Fedora oder Red Hat. Dieses Verzeichnis sollte dem Benutzer ftp gehören und aus Sicherheitsgründen keine Leserechte haben: root# root# root#
mkdir /var/ftp/upload chown ftp upload chmod 730 upload
Somit kann jeder einen Upload durchführen und dem FTP-Administrator anschließend eine E-Mail mit Instruktionen senden, wofür die Datei dient. Andere FTP-Nutzer können die Datei aber aus dem upload-Verzeichnis weder sehen noch herunterladen. Wenn Sie auf derartige Sicherheitsmaßnahmen verzichten, kann es passieren, dass das FTP-Upload-Verzeichnis zum Austausch illegaler Dateien missbraucht wird. FTP für root und andere Spezialbenutzer
Aus Sicherheitsgründen sind root und einige andere Spezialbenutzer wie daemon, lp oder nobody von der FTP-Benutzung ausgeschlossen. Die dazu erforderliche Konfiguration variiert von Distribution zu Distribution. Bei Fedora und Red Hat erfolgt der Login-Schutz doppelgleisig. Einerseits greift vsftpd für die Login-Kontrolle auf PAM zurück (Pluggable Authentication Modules). PAM wertet die Datei /etc/ pam.d/vsftpd aus, die auf die Datei etc/vsftpd/ftpusers verweist. Diese Datei enthält eine Liste aller Login-Namen, die FTP nicht benutzen dürfen. Andererseits wendet vsftpd auch eine interne Login-Kontrolle an und sperrt alle Benutzer, die in /etc/vsftpd.user_list genannt sind. Diese Login-Kontrolle wird in vsftpd.conf durch userlist_enable=YES und userlist_deny=YES (gilt standardmäßig) aktiviert. Bei Debian, SUSE und Ubuntu greift vsftpd für den Login ebenfalls auf PAM zurück. /etc/pam.d/ vsftpd verweist hier allerdings auf /etc/ftpusers. Diese Datei enthält eine Liste aller Login-Namen, die FTP nicht benutzen dürfen.
1002
33. Mail-Server Dieses Kapitel beschreibt, wie Sie auf einem Root-Server einen E-Mail-Server für Ihre Domäne einrichten. Damit können Sie alle Mitarbeiter einer Firma oder Organisation mit eigenen EMail-Adressen ausstatten. Jeder Mitarbeiter kann E-Mails per SMTP versenden und per POP abholen. Als eigentlicher MailServer (SMTP-Server) kommt dabei das Programm Postfix zum Einsatz, als POP/IMAP-Server und zur SMTP-Authentifizierung das Programm Dovecot. Zur Eindämmung der Spam-Flut können Sie optional noch policyd-weight und/oder SpamAssassin einsetzen. Wenn Ihre Mitarbeiter (bzw. die Ihrer Auftraggeber) mit Windows-PCs arbeiten, lohnt sich vermutlich auch die Installation des Virenschutzprogramms von ClamAV. Bevor Sie an die Arbeit gehen können, brauchen Sie einen Server mit einem international gültigen Hostnamen. Sie müssen in der Lage sein, dessen DNS-Einträge selbst zu konfigurieren (MX-Eintrag, Reverse DNS). Ich gehe in diesem Kapitel davon aus, dass Ihr Server unter Ubuntu oder Debian läuft. Selbstverständlich stehen die hier vorgestellten Programme Postfix, Dovecot, SpamAssassin etc. auch für andere Distributionen zur Verfügung, ich habe die Installation und Konfiguration aber nicht im Detail getestet. Beachten Sie, dass bei Fedora und RHEL standardmäßig das Programm Sendmail als MailServer installiert ist. Wenn Sie bei diesen Distributionen Postfix verwenden möchten, müssen Sie Sendmail vorher deinstallieren! E-Mail ist ein wesentlich komplexeres Thema, als viele Einsteiger in diese Materie vermuten. Für jede Teilaufgabe stehen unterschiedliche Programme und Kommandos zur Auswahl, und es existieren schier unendlich viele Konfigurationsmöglichkeiten. Dieses Kapitel beschreibt deswegen zuerst die wesentlichen Grundlagen der E-Mail-Kommunikation und gibt Ihnen einen ersten Überblick über die zur Auswahl stehenden Werkzeuge.
33.1 Einführung und Grundlagen E-Mail ist ganz einfach, oder? Aus der Sicht des Endanwenders stimmt das – zumindest, solange alles funktioniert. Hinter den Kulissen ist das E-Mail-System wesentlich komplexer, als es den Anschein hat. Es gibt scheinbar unendlich viele Konfigurationsmöglichkeiten, die alle unter bestimmten Umständen ihre Berechtigung haben. Gute Bücher über »E-Mail-Server« (genau genommen MTAs, siehe unten) wie Sendmail, Postfix oder Exim haben vielfach mehr Seiten als dieses Buch – ein Umstand, der für sich spricht.
Kapitel 33
Mail-Server
Komponenten eines E-Mail-Servers, Glossar Ein vollständiger E-Mail-Server besteht aus drei Komponenten: » MTA: Der Mail Transfer Agent ist das, was umgangsprachlich als E-Mail-Server bezeichnet wird. Der MTA kümmert sich darum, E-Mails über das Internet zu versenden bzw. zu empfangen, wobei das Protokoll SMTP eingesetzt wird. Die meisten Einsteiger in die Interna der E-Mail-Welt sind sich nicht darüber im Klaren, dass sich die Zuständigkeit des MTAs auf den Netzwerkverkehr beschränkt und am Server endet. Empfangene E-Mails werden an den MDA weitergegeben, der sich um die lokale Speicherung kümmert. Es ist nicht Aufgabe des MTAs, E-Mails zu einem Benutzer zu bringen, der in der Regel auf einem anderen Rechner arbeitet! Beispiele: Courier, Cyrus, Exim, Postfix, Qmail, Sendmail » MDA: Der Mail Delivery Agent kümmert sich um die lokale Zustellung von E-Mails, also um die Speicherung der beim MTA eintreffenden E-Mails in lokalen Postfächern. Ein »Postfach« meint in diesem Zusammenhang einfach ein Verzeichnis bzw. eine Datei auf dem Server. Beispiele: Maildrop, Procmail In viele MTAs ist ein MDA bereits integriert bzw. wird mitgeliefert, z. B. das Kommando local bei Postfix. Die Programme Maildrop bzw. Procmail sind dennoch sehr populär, weil sie in der Regel noch mehr Konfigurationsmöglichkeiten bieten. » POP/IMAP-Server: E-Mails werden selten direkt auf dem Server gelesen. Damit ein extern arbeitender Benutzer die E-Mails auf seinen lokalen Rechner übertragen bzw. von dort aus verwalten kann, haben sich die Protokolle POP und IMAP durchgesetzt. Zur Unterstützung dieser Protokolle muss auf dem Server ein POP- und/oder IMAP-Server eingerichtet werden. (Bisweilen werden POP- und IMAP-Server zu den MDAs hinzugerechnet, was der ursprünglichen Bedeutung eines MDAs aber widerspricht und somit falsch ist.) Beispiel: Dovecot In diesem Zusammenhang werden Sie häufig auf eine weitere Abkürzung stoßen: E-Mail-Programme (Clients), wie der Benutzer sie sieht und verwendet, heißen in der Nomenklatur der E-MailWelt MUAs (Mail User Agents). Diese Programme holen E-Mails beim E-Mail-Server ab (Protokoll POP) bzw. helfen beim Lesen und bei der Verwaltung der externen E-Mails (IMAP). Zum Versenden kommuniziert der MUA direkt mit dem MTA (Protokoll SMTP). Populäre Vertreter dieser Gattung sind Thunderbird, Evolution, KMail, Outlook (Express) sowie das textbasierte Programm mutt. Damit Sie den Überblick über die vielen Abkürzungen nicht verlieren, fasst Tabelle 33.1 die wichtigsten Abkürzungen aus dem E-Mail-Umfeld zusammen. Einige Abkürzungen sind im Text noch nicht vorgekommen, tauchen aber auf den nächsten Seiten auf.
1004
Einführung und Grundlagen
ABKÜRZUNG
BEDEUTUNG
IMAP
Internet Message Access Protocol
MDA
Mail Delivery Agent
MTA
Mail Transfer Agent
MUA
Mail User Agent
POP
Post Office Protocol
SASL
Simple Authentification and Security Layer
SMTP
Simple Mail Transfer Protocol
Tabelle 33.1: Wichtige E-MailAbkürzungen
Hinweis
In der Anfangszeit des Internets war jeder Rechner direkt mit dem Internet verbunden und hatte – bei Bedarf – seinen eigenen E-Mail-Server. POP oder IMAP waren überflüssig, weil die Anwender die E-Mails direkt auf ihren Rechner = Server serviert bekamen. Die zu diesem Zeitpunkt üblichen textbasierten MUAs (elm, mail, pine) konnten die lokalen Postfächer direkt auslesen – eine Fähigkeit, die den meisten modernen MUAs mit grafischer Benutzeroberfläche abhanden gekommen ist. Herkömmliche MUAs kommunizierten mit dem MTA auch nicht via SMTP, sondern übergaben die zu sendende E-Mail ganz einfach an das Kommando sendmail. Wenn Sie einen modernen textbasierten E-Mail-Client suchen, sollten Sie mutt ausprobieren (siehe Seite 186).
Abschnitt 33.1
Der Nachrichtenfluss im Detail Anhand von Abbildung 33.1 können Sie nun verfolgen, wie eine E-Mail von Herrn Huber von FirmaAbc an
[email protected] gesendet wird bzw. wie eine E-Mail von
[email protected] zurück zu
[email protected] kommt.
Abbildung 33.1: E-Mail-Kommunikationsfluss
1005
Kapitel 33
Mail-Server
Beginnen wir mit dem ersten Fall: Ein Mitarbeiter der Firma-Abc verfasst in seinem E-Mail-Client Thunderbird eine E-Mail an
[email protected] und sendet diese ab. Thunderbird nimmt nun über das Protokoll SMTP Kontakt mit dem Mail-Server der Firma auf, also mit dem Programm Postfix, das auf dem Server firma-abc.de läuft. Postfix übernimmt die E-Mail, stellt fest, an welche Domain sie adressiert ist, und nimmt Kontakt mit dem Mail-Server von ziel.de auf. Der MTA von ziel.de vergewissert sich, dass der angegebene Benutzer schmiedt tatsächlich einen E-Mail-Account auf ziel.de hat, und nimmt die E-Mail entgegen. Währenddessen hat
[email protected] eine E-Mail für Herrn Huber verfasst und diese versendet. Der MTA von absender.de tritt nun mit dem MTA von firma-abc.de in Verbindung und leitet die E-Mail weiter. Auf dem Server firma-abc.de stellt Postfix fest, dass es einen E-Mail-Account für huber gibt. Postfix akzeptiert die E-Mail und übergibt sie an das zu Postfix gehörende Kommando local, das die E-Mail im Postfach von Herrn Huber speichert. Das »Postfach« ist eine Datei oder ein Verzeichnis, das sich auf dem Server firma-abc.de befindet. Dort bleibt die E-Mail liegen, bis der E-Mail-Client von Herrn Huber über das Protokoll POP mit dem Programm Dovecot auf dem Rechner firma-abc.de in Kontakt tritt. Die meisten E-Mail-Programme sind so eingestellt, dass sie das alle paar Minuten automatisch tun. Wenn Herr Huber gerade offline ist, kann es aber natürlich Stunden oder Tage dauern, bis es so weit ist. Nun muss die E-Mail nur noch in das E-Mail-Programm übertragen werden und kann dann dort gelesen werden.
Varianten Um Sie nicht zu sehr mit Details zu erschlagen, habe ich die obige Darstellung ein wenig verkürzt: Beispielsweise bin ich nicht auf den Umgang mit (vorübergehend) unzustellbaren E-Mails eingegangen. Ein E-Mail-Server unternimmt über mehrere Stunden Zustellversuche, bevor er den Versand aufgibt. Wenn die Zustellung definitiv scheitert, bekommt der Absender die E-Mail mit einer kurzen Beschreibung der Fehlerursache zurück. Authentifizierung
Auch das Thema Authentifizierung ist außen vor geblieben: Nicht jeder darf einfach mit einem beliebigen MTA in Kontakt treten und E-Mails versenden. Um einen derart unkontrollierten E-Mail-Versand zu verhindern, dürfen E-Mails in der Basiskonfiguration nur lokal losgesandt werden. Damit auch ein externer E-Mail-Client E-Mails versenden darf, bedarf es einer Authentifizierung. Das in diesem Kapitel präsentierte Programm Postfix unterstützt zwar das Protokoll SASL (Simple Authentification and Security Layer), kann die Authentifizierung aber nicht selbst durchführen. In der Beispielkonfiguration dieses Kapitels übernimmt das Programm Dovecot diese Aufgabe.
Relaying
Ein weiterer Punkt ist die Nachrichtenübertragung von einem MTA zum nächsten: Nicht immer ist der Weg so direkt wie in Abbildung 33.1. Bisweilen erfolgt der Versand über mehrere Stationen. Die dazwischenliegenden MTAs geben die Nachricht nur weiter (Relaying). Das ist vor allem dann zweckmäßig, wenn es für eine Mail-Domäne einen Haupt- und einen oder mehrere Backup-Server gibt. Wenn der Haupt-Server gerade nicht erreichbar ist, nehmen die Backup-Server die E-Mails entgegen und leiten sie später an den Haupt-Server weiter. Diese Art der Konfiguration mindert das Risiko, dass das E-Mail-System während Wartungsarbeiten nicht erreichbar ist.
1006
Einführung und Grundlagen
Abschnitt 33.1
Das Schlimmste, was bei der Konfiguration eines E-Mail-Servers passieren kann, ist die mangelnde oder fehlerhafte Absicherung des Relaying: Dann kann jeder ohne Authentifizierung an Ihren E-Mail-Server Nachrichten zur Weiterleitung übergeben.
Achtung
Spam-Versender durchsuchen das Internet beständig nach solchen Servern und missbrauchen diese für die allgegenwärtige Werbeflut. Das zieht unangenehme Konsequenzen nach sich: Innerhalb weniger Tage landet Ihr Server in Blacklists, die gefährliche bzw. falsch konfigurierte E-MailServer auflisten. Viele E-Mail-Server akzeptieren zur Vermeidung von Spam keine E-Mails von derartigen Servern. Es ist wesentlich schwieriger, aus solchen Blacklists wieder gelöscht zu werden, als darin zu landen. Seien Sie bei der Konfiguration also vorsichtig! Wenn Sie den Verdacht haben, dass Ihr Server (genau genommen: dessen IP-Adresse) auf einer Blacklist gelandet ist, können Sie das sehr einfach auf der folgenden Seite verifizieren: http://www.mxtoolbox.com/blacklists.aspx Schließlich lässt sich das in Abbildung 33.1 dargestellte Szenario natürlich noch erweitern: durch einen serverseitigen Spam- und Virenschutz (wobei es hier nur um Windows-Viren geht, Linux-Viren sind bisher ja zum Glück nicht aufgetreten), durch eine Webmail-Schnittstelle, die es ermöglicht, Nachrichten ohne E-Mail-Client zu lesen bzw. zu verfassen, durch Programme zur Verwaltung von E-Mail-Listen etc.
Spam- und Virenschutz
DNS-Konfiguration Um nochmals zu Abbildung 33.1 zurückzukommen: Woher kennt der MTA auf dem Rechner firmaabc.de die IP-Adresse des Mail-Servers für ziel.de? Dank DNS natürlich, werden Sie antworten. Grundsätzlich ist das richtig, allerdings sind für den E-Mail-Verkehr nicht gewöhnliche DNSEinträge (sogenannte A-Records) zuständig, sondern spezielle MX-Einträge. Ein MX-Eintrag gibt den Hostnamen (nicht die IP-Adresse) des Rechners an, der für die E-Mail einer Domain zuständig ist. Das ermöglicht es, die E-Mail-Dienste auf einem anderen Rechner zu realisieren als die restlichen Internetdienste (Web, SSH, FTP etc.). Außerdem enthält jeder MX-Eintrag eine Prioritätsnummer. Wenn mehrere E-Mail-Server mit unterschiedlicher Priorität eingerichtet werden, erhält normalerweise der Server mit der höchsten Priorität alle E-Mails. Ist dieser Server vorübergehend nicht erreichbar, kommen die niedriger priorisierten Server zum Zuge. Diese Server dienen normalerweise nur als Backup-System und leiten die E-Mails an den Haupt-Server weiter (Relaying), sobald dieser wieder online ist. Tabelle 33.2 fasst eine typische DNS-Konfiguration für einen einfachen Server zusammen. Alle Internetdienste inklusive Mail laufen auf demselben Rechner, es gibt kein Backup-E-Mail-Server. Da beim MX-Eintrag ein Domainname (keine IP-Adresse) angegeben werden muss, muss der dort angegebene Domainname – üblicherweise mail.domain – ebenfalls durch einen A-Eintrag definiert werden. Neben den in Tabelle 33.2 angegebenen Einträgen hat jede Domain diverse weitere DNSEinträge, die unter anderem auf die zugrunde liegenden Nameserver verweisen. Wenn Sie die DNS-Mail-Konfiguration überprüfen möchten, ist das Kommando host hilfreich, das je nach Distribution im Paket bind9-host versteckt ist. Die folgenden Zeilen zeigen, wie Sie zuerst den oder die Hostname(n) der Mail-Server ermitteln und dann deren IP-Adresse:
host-Kommando
1007
Kapitel 33
Mail-Server
TYP
Tabelle 33.2: DNS-Konfiguration eines einfachen Web- und Mail-Servers
NAME
WERT
A
firma-abc.de
213.214.215.216
A
www.firma-abc.de
213.214.215.216
A
mail.firma-abc.de
213.214.215.216
MX
–
mail.firma-abc.de
PRIORITÄT
10
user$ host -t MX firma-abc.de firma-abc.de mail is handled by 10 mail.firma-abc.de user$ host mail.firma-abc.de mail.firma-abc.de has address 213.214.215.216 Führen Sie host nach Möglichkeit nicht direkt auf dem Server, sondern auf einem externen Rechner aus! Andernfalls können ein eigener Nameserver sowie der Nameserver Ihres Providers das Ergebnis beeinflussen. Das ist zumeist unerwünscht, wenn es darum geht, eventuell vorhandene eigene DNS-Konfigurationsfehler zu finden.
Reverse-DNS-Eintrag Normalerweise liefern Domain Name Server (DNS) zu einem Hostnamen die dazugehörende IPAdresse. Wenn ein fremder Rechner mit firma-abc.de in Kontakt treten möchte – sei es mit einem Webbrowser, via SSH oder per E-Mail –, kontaktiert er zuerst den nächsten DNS. Dieser liefert die IP-Nummer der Servers von firma-abc.de.
Reverse DNS funktioniert gerade umgekehrt: Die IP-Nummer ist bekannt, dafür wird nun der Hostname gesucht. Damit das funktioniert, muss ein Reverse-DNS-Eintrag vorhanden sein. Wenn Sie einen Root-Server gemietet haben, muss Ihr Provider diesen Reverse-DNS-Eintrag durchführen. Viele Provider stellen ihren Kunden ein Konfigurationswerkzeug zur Verfügung, damit diese den Eintrag selbst durchführen können. Auch Reverse DNS testen Sie am einfachsten mit dem Kommando host. Beachten Sie, dass zwar mehrere Hostnamen zur selben IP-Adressse führen können (etwa, wenn dank Virtual Hosting mehrere Websites auf einem Server laufen), dass die umgekehrte IP-Auflösung aber immer nur einen eindeutigen Hostnamen liefert: user$ host firma-abc.de firma-abc.de has address 213.214.215.216 firma-abc.de mail is handled by 10 mail.firma-abc.de. user$ host 213.214.215.216 216.215.214.213.in-addr.arpa domain name pointer firma-abc.de. An sich sind Reverse-DNS-Einträge für den Internet-Verkehr nicht zwingend erforderlich. Es gibt keinen Internet-Standard, der derartige Einträge vorschreibt. Bei E-Mail-Servern haben sich Reverse-DNS-Einträge dennoch durchgesetzt: Viele MTAs akzeptieren nämlich den Empfang von E-Mails von externen MTAs nur, wenn für den Hostnamen des Servers, auf dem der MTA läuft, ein
1008
Postfix (MTA)
Abschnitt 33.2
Reverse-DNS-Eintrag existiert und dieser vermutlich nicht dynamisch generiert ist. Diese Schutzmaßnahme richtet sich gegen durch Schadsoftware infizierte (Windows-)PCs, die – oft ohne das Wissen des Eigentümers – zum Spam-Versand missbraucht werden. Auch wenn der Reverse-DNSTest keinen zuverlässigen Schutz gegen Spam bietet, wird er oft eingesetzt. Und das bedeutet: Damit andere MTAs E-Mails von Ihrem Server nicht als Spam klassifizieren, braucht der Server einen Reverse-DNS-Eintrag.
33.2 Postfix (MTA) Dieser Abschnitt beschreibt die Installation und Konfiguration des MTAs Postfix unter Ubuntu. Postfix zählt momentan zu den populärsten MTAs und ist sehr gut dokumentiert – sowohl auf postfix.org als auch in unzähligen unabhängigen Artikeln und einigen Büchern. Dennoch ist die Wahl von Postfix keineswegs selbstverständlich: Während es für manche Aufgaben nur ein weitverbreitetes Programm gibt (beispielsweise den Webserver Apache), stellt die OpenSource-Welt gleich mehrere ausgezeichnete MTAs zur Auswahl. Ob Postfix oder Exim, Qmail oder Sendmail – alle genannten Programme sind weitverbreitet und erfüllen ihren Zweck. Wenn Sie mit Administratoren sprechen, wird vermutlich jeder den MTA empfehlen, den er selbst einsetzt und gut kennt. Einen relativ neutralen und gut fundierten Vergleich verschiedener MTAs finden Sie hier: http://shearer.org/MTA_Comparison Bevor Sie mir auf den nächsten Seiten durch diverse Konfigurationsdetails folgen, sollten einige Voraussetzungen erfüllt sein:
Voraussetzungen
» Sie brauchen einen von Ihrem Server unabhängigen E-Mail-Account – beispielsweise bei GMX, Google oder Yahoo –, um Ihr neues E-Mail-System zu testen. » Die DNS-Konfiguration Ihrer Domain muss korrekt sein (insbesondere der MX-Eintrag, siehe Seite 1007). » Der Hostname Ihres Rechners sollte korrekt eingestellt sein. Die Kommandos hostname und cat /etc/hostname sollten jeweils den richtigen Namen Ihres Servers liefern (also z. B. firmaabc.de). » Für Ihren Root-Server sollte es einen Reverse-DNS-Eintrag geben (siehe Seite 1008). » Zu guter Letzt ist die Installation eines kleinen textbasierten E-Mail-Clients empfehlenswert, um den frisch installierten MTA direkt zu testen (siehe Seite 186).
Installation Bei Debian und Ubuntu erscheint nach der Installation des postfix-Pakets ein Konfigurationsprogramm. Dort müssen Sie angeben, welche Art von Grundinstallation Sie wünschen. Auf einem Root-Server ist INTERNET SITE die richtige Wahl: Sie wollen Postfix einsetzen, um auf dem Server E-Mails per SMTP zu versenden und zu empfangen. Im nächsten Punkt müssen Sie den Namen des E-Mail-Servers angeben (standardmäßig einfach den Hostnamen des Rechners, also beispielweise firma-abc.de). Dieser Name wird dazu verwendet, um
1009
Kapitel 33
Mail-Server
E-Mail-Adressen ohne Domainnamen zu vervollständigen. Aus einer E-Mail an name wird also eine an
[email protected]. Grundkonfiguration
Nach dieser Minimalkonfiguration wird Postfix sofort gestartet. Das Programm erfüllt in der Grundkonfiguration die folgenden Funktionen: » Postfix empfängt via SMTP E-Mails an
[email protected]. Sofern es auf dem Server den Login name gibt, wird die E-Mail akzeptiert und gespeichert. Das gilt für alle Accounts, die in /etc/passwd definiert sind: Sofern Apache installiert ist, ist beispielsweise auch
[email protected] eine gültige E-Mail-Adresse. Wenn name nicht bekannt ist, wird die E-Mail zurückgewiesen (user unknown). » Akzeptierte E-Mails werden vom Postfix-eigenen MDA im Mbox-Format in der Datei /var/mail/ name gespeichert. Die Dateien in /var/mail sind also die »Postfächer« (Mailboxes) der verschiedenen E-Mail-Benutzer des Rechners. Das Mbox-Format bedeutet vereinfacht gesagt, dass die E-Mails in einer immer größer werdenden Datei aneinandergefügt werden. Da E-Mails in der Regel in einem Textformat codiert sind, können Sie die Mbox-Datei zur Not sogar mit cat oder less ansehen. (Eine Alternative zum Mbox-Format ist das Maildir-Format, in dem es für jedes Postfach ein eigenes Verzeichnis und für jede E-Mail eine eigene Datei gibt.) » Lokale Benutzer können E-Mails versenden – sowohl intern (also an alle Accounts auf dem Server) als auch extern (an beliebige andere E-Mail-Adressen).
Test
Als ersten Test senden Sie von einem externen Account eine E-Mail an
[email protected] (wobei name ein aktiver Linux-Account auf dem Root-Server ist). Die E-Mail sollte nach kurzer Zeit in /var/ mail/name auftauchen. Wenn Sie sich als name anmelden, können Sie die E-Mail mit mutt lesen. Ebenfalls mit mutt testen Sie als Nächstes das Versenden einer E-Mail an Ihre externe E-MailAdresse. Sollten bei den beiden Tests Probleme auftreten, ist die wahrscheinlichste Fehlerursache eine falsche bzw. fehlende DNS-Konfiguration (siehe Seite 1007).
Konfiguration Die grundlegenden Postfix-Konfigurationsdateien befinden sich in /etc/postfix. Innerhalb der Konfigurationsdateien können Sie bereits eingestellte Optionen wie Variablen verwenden – also option1 = wert1 und dann option2 = $option1. Anweisungen in der Konfigurationsdatei dürfen über mehrere Zeilen reichen, wobei der Text ab der zweiten Zeile eingerückt sein muss. Lookup Tables
In den Konfigurationsdateien wird oft auf Tabellen oder Listen verwiesen (Lookup Tables oder Mappings in der englischen Dokumentation). Dabei gilt die Syntax option=type:name. Der gebräuchlichste Dateityp ist hash. In diesem Fall wertet Postfix die Datei name.db aus, d. h., es fügt dem angegebenen Dateinamen die Endung .db hinzu. *.db-Dateien sind Tabellen in einem binären Format (Berkeley Database, kurz BDB). Zur Manipulation solcher Dateien verwenden Sie das Kommando postmap. Tabellen im Textformat sind aus Effizienzgründen nicht vorgesehen. Eine Ausnahme ist lediglich die Textdatei /etc/aliases, deren Format kompatibel zu Sendmail ist. Aber auch in diesem Fall greift Postfix auf die dazugehörende BDB-Datei aliases.db zurück. Deswegen muss aliases.db nach
1010
Postfix (MTA)
Abschnitt 33.2
jeder Änderung an aliases durch das Kommando newaliases synchronisiert werden. (Was MailAliase sind und wie sie konfiguriert werden, ist ab Seite 1013 beschrieben.) Postfix kann aber auch mit externen Datenbanken (MySQL, PostgreSQL, LDAP) kommunizieren, sofern die entsprechenden Postfix-Erweiterungspakete installiert sind. Die in der Konfigurationsdatei genannte Datei enthält nun nicht die eigentlichen Daten, sondern die Verbindungsinformationen und eine (SQL-)Abfrage. Der Einsatz externer Datenbanken bietet sich vor allem dann an, wenn Sie sehr viele, also Hunderte oder Tausende von E-Mail-Accounts verwalten müssen.
Externe Datenbanken
virtual_mailbox_domains=mysql:/etc/postfix/mysql-virt-domains.cf
main.cf Die wichtigste Konfigurationsdatei für Postfix ist /etc/postfix/main.cf. Das folgende Listing gibt die wichtigsten Zeilen dieser Datei in der Grundeinstellung (Typ INTERNET SITE) wieder: # Datei /etc/postfix/main.cf (auszugsweise) # so meldet sich Postfix bei anderen MTAs smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) # keine automatische Adressvervollständigung durch .firma-abc.de append_dot_mydomain = no # Hostname myhostname = firma-abc.de # Domain für lokale E-Mails ohne explizite Domain-Angabe # /etc/mailname enthält in der Beispielkonfiguration firma-abc.de myorigin = /etc/mailname # Ort der Alias-Datei alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases # Versand neuer E-Mails nur vom lokalen Rechner zulassen mydestination = firma-abc.de, localhost mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 # keine E-Mail-Weitergabe an andere Hosts (kein Relaying) relayhost = # E-Mail-Empfang über alle Netzwerkschnittstellen inet_interfaces = all # keine Beschränkung der E-Mail- und Postfach-Größe mailbox_size_limit = 0
1011
Kapitel 33
Mail-Server
Neben den im obigen Listing enthaltenen Schlüsselwörtern gibt es unzählige weitere, die in man 5 postconf dokumentiert sind. Für alle nicht explizit eingestellten Optionen gelten Defaulteinstellungen. Wie diese aussehen, verrät das Kommando postconf -d. Es fehlt hier der Platz, um alle Postfix-Schlüssselwörter bzw. Optionen im Detail zu behandeln. Auf einige besonders wichtige Einstellungen möchte ich aber doch eingehen: » myhostname sollte den Hostnamen des Servers enthalten. myhostname gilt als Standardeinstellung für viele andere Optionen. » myorigin gibt an, welcher Domain lokal versandte E-Mails zugeordnet werden sollen. Standardmäßig hat myorigin denselben Wert wie myhostname, und bei der hier vorgestellten Konfiguration sollten Sie es auch dabei belassen! Bei der mit Ubuntu bzw. Debian mitgelieferten Konfigurationsdatei wird myorigin aus der Datei /etc/mailname gelesen. Stellen Sie sicher, dass dort der richtige Name enthalten ist (für unser Beispiel also firma-abc.de), oder ändern Sie die Einstellung in der Datei main.cf in myorigin=$myhostname! » mydestinations listet Domänen auf, für die empfangenen E-Mails lokal in ein Postfach zugestellt (also gespeichert) werden sollen. Nach der Basiskonfiguration hat diese Zeile bei mir auch localhost.de enthalten; diesen Eintrag habe ich wieder entfernt. Vorsicht: Auch wenn Postfix für mehrere Domänen zuständig ist, darf mydestinations nur Einträge für die Hauptdomäne enthalten. Virtuelle Domänen geben Sie mit der Option virtual_alias_domains an (siehe ab Seite 1017). » mynetworks gibt an, von welchen Adressen Postfix E-Mails ohne Authentifizierung via SMTP entgegennimmt. Die hier angegebenen Adressen bzw. Adressbereiche bezeichnen also die Rechner, denen Postfix »vertraut« (Trusted SMTP Clients). Bei der hier präsentierten Konfiguration (also für einen eigenständigen E-Mail-Server auf einem Root-Server) darf mynetworks nur localhost (oben in IP4- und IP6-Schreibweise) enthalten! Wenn Sie mynetworks falsch (zu liberal) konfigurieren, können fremde Benutzer Ihren Mail-Server dazu verwenden, ohne Authentifizierung E-Mails zu versenden. Vorsicht, Spam-Versender lieben solche Rechner! » relayhost gibt an, an welchen MTA E-Mails weitergeleitet werden sollen, die nicht für die lokale Zustellung gedacht sind. Bei der hier vorgestellten Konfiguration muss relayhost leer bleiben. Wenn Postfix dagegen auf einem Rechner im LAN läuft und zu versendende E-Mails an einen externen MTA im Internet weitergeben soll, ist relayhost der entscheidende Parameter. Eine Beschreibung diverser weiterer Optionen folgt im weiteren Verlauf dieses Kapitels. Änderungen an der Konfiguration
Postfix besteht aus einer Menge Einzelprogrammen, von denen viele bei Bedarf jedes Mal neu gestartet und wenig später gleich wieder beendet werden. Diese Programme lesen die für sie relevanten Konfigurationsdateien jedes Mal neu ein. Allerdings gibt es auch Postfix-Komponenten, die Konfigurationsänderungen nicht selbstständig bemerken. Postfix-Einsteiger, denen oft unklar ist, welche Änderungen Postfix selbstständig bemerkt, sollten nach Konfigurationsänderungen grundsätzlich /etc/init.d/postfix reload ausführen. Das gilt insbesondere für Änderungen an master.cf und main.cf. Postfix-Profis werden
1012
Postfix (MTA)
Abschnitt 33.2
reload dagegen wegen des damit verbundenen Geschwindigkeitsverlusts möglichst vermeiden, besonders bei großen aktiven Systemen. Anstatt main.cf mit einem Editor zu ändern und anschließend ein reload-Kommando auszuführen, können Sie die Änderung auch mit postconf -e option=wert durchführen. Das Kommando postconf benachrichtigt dann auch gleich Postfix über die Änderung.
mbox- oder Maildir-Format Standardmäßig speichert Postfix eintreffende E-Mails im mbox-Format in der Datei /var/mail/name. Wenn E-Mails stattdessen in einer lokalen Datei im Benutzerverzeichnis gespeichert werden sollen (weiterhin im mbox-Format), geben Sie den gewünschten Dateinamen (relativ zum Homeverzeichnis) mit home_mailbox an: # in /etc/postfix/main.cf ... # E-Mails im mbox-Format in der Datei /home/name/Mailbox speichern home_mailbox = Mailbox Wenn Sie vorhaben, die Mails überwiegend via IMAP abzurufen, sollten Sie das Maildir-Format vorziehen. Die korrekte Einstellung von home_mailbox sieht nun so aus: # in /etc/postfix/main.cf ... # E-Mails im maildir-Format im Verzeichnis /home/name/Maildir speichern home_mailbox = Maildir/ Der Verzeichnisname muss mit / enden, damit Postfix das Maildir-Format verwendet! Neu eintreffende E-Mails werden nun in eigenen Dateien im Verzeichnis /homename/Maildir gespeichert. Vergessen Sie nicht, auch Ihrem lokalen Mail-Client bzw. Dovecot den Ort und das Format Ihres Postfachs mitzuteilen (siehe auch Seite 1021)! Wenn Sie mutt einsetzen, muss die Umgebungsvariable MAIL leer sein und die Variable MAILDIR den vollständigen Pfad des Maildir-Verzeichnisses enthalten (also z. B. /home/kofler/Maildir).
Mail-Aliase Ein Mail-Alias ist ein zusätzlicher Mail-Name zum Empfang von E-Mail. Die E-Mail wird aber tatsächlich an einen bereits vorhandenen Account weitergeleitet. Aliase werden in der Datei /etc/aliases definiert. Diese Datei sieht üblicherweise so ähnlich wie das folgende Muster aus: # Datei /etc/aliases postmaster: root webmaster: huber Bernhard.Huber: huber ... Die erste Spalte gibt also den Alias-Namen an (ohne Domäne, der Name gilt für die in myhostname definierte Domäne, also beispielsweise
[email protected]), und die zweite Spalte enthält den
1013
Kapitel 33
Mail-Server
lokalen Empfänger. Im obigen Beispiel werden an postmaster adressierte E-Mails an root weitergeleitet werden, E-Mails an webmaster und an Bernhard.Huber an huber. Es ist zulässig, in /etc/aliases für jeden Alias mehrere, durch Kommas getrennte Empfänger anzugeben. Als Empfänger können Sie statt eines lokalen E-Mail-Account-Namens auch eine externe E-MailAdresse angeben oder eine Datei (an die die E-Mail angefügt wird) oder ein Programm in der Schreibweise |kommando, an das die E-Mail weitergegeben wird. Das Weiterleiten an externe E-Mail-Adressen funktioniert zwar problemlos, scheitert in der Praxis aber oft am Spam-Schutz des Ziel-MTAs. Wenn Sie also beispielsweise E-Mails an webmaster an
[email protected] weiterleiten, erkennt der Spam-Filter von GMX, dass die E-Mail nicht direkt an gmx.de übertragen wurde, sondern indirekt über firma-abc.de. Das reicht für einen misstrauischen Spam-Filter, um die E-Mail als Spam zu klassifizieren. Damit geänderte Aliase wirksam werden, müssen Sie das Kommando newaliases ausführen. Dieses Kommando synchronisiert die Textdatei /etc/aliases mit der BDB-Datei /etc/aliases.db. alias_database und alias_maps
In /etc/postfix/main.cf stoßen Sie in der Regel auf zwei alias-Optionen, was bisweilen Verwirrung stiftet: # in /etc/postfix/main.cf ... alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases alias_database gibt an, welche Datenbankdatei durch das Kommando newaliases aktualisiert werden soll. Die hier angegebene Datei (deren Name durch .db ergänzt wird) enthält die in /etc/aliases angegebenen Aliase in einem binären Format. alias_maps gibt an, welche Alias-Datenbanken Postfix berücksichtigen soll. Normalerweise geben Sie hier dieselbe Datei an wie bei alias_database. Es ist aber zulässig, darüber hinaus weitere Quellen für Alias-Definitionen anzugeben. (Der entscheidende Unterschied zwischen den beiden Parametern besteht darin, dass alias_database für newaliases gilt, alias_maps dagegen für Postfix!)
.forward
Auch als lokaler Benutzer, der keinen Zugriff auf /etc/aliases hat, können Sie Ihre E-Mail an eine andere Adresse umleiten: Dazu erzeugen Sie die Datei ~/.forward und speichern darin die neue Zieladresse. Fertig! Wie ich oben bereits erwähnt habe, funktioniert diese simple Form der E-Mail-Umleitung zumeist nur bei lokalen Adressen wunschgemäß. Bei externen Zieladressen kann es dagegen passieren, dass sich die umgeleiteten E-Mails im Spam-Schutz des Ziel-MTAs verfangen.
Explizite Empfängerliste Standardmäßig kann jeder Linux-Account E-Mails empfangen. Es ist aber selten wünschenswert, dass System-Accounts wie daemon, sys oder man E-Mails erhalten. Um diesen Missstand zu beheben, müssen Sie am Parameter local_recipient_maps drehen. Die Standardeinstellung lautet: local_recipient_maps = proxy:unix:passwd.byname $alias_maps
1014
Postfix (MTA)
Abschnitt 33.2
Das bedeutet, dass alle in der Unix-Datei /etc/passwd aufgezählten Benutzer sowie alle in den Alias-Datenbanken genannten Benutzer E-Mails empfangen können. Wenn Sie möchten, dass nur fischer, huber, schmidt sowie root (für System-Benachrichtigungen) E-Mails empfangen sollen, gehen Sie wie folgt vor: Zuerst erzeugen Sie eine Textdatei, die zeilenweise die Account-Namen enthält. Die Datei muss in einer zweiten Spalte einen beliebigen Wert enthalten, weil Postfix und das Kommando postmap generell Schlüssel/Wert-Paare (Key/Value Pairs) erwarten – auch bei Listen, bei denen eigentlich nur die Existenz eines Schlüssels relevant ist, der dazugehörige Wert aber gar nicht berücksichtigt wird. # Datei /etc/postfix/local-recips fischer x huber x schmidt x root x Aus dieser Datei erstellen Sie nun mit postmap eine für Postfix lesbare Datenbankdatei localrecips.db: root# root#
cd /etc/postfix postmap local-recips
Mit postmap -s können Sie überprüfen, dass die Datei korrekt erstellt wurde: root# postmap -s hash:local-recips huber x root x schmidt x fischer x Nach jeder Änderung in local-recips müssen Sie postmap abermals ausführen, um die für Postfix relevante Datenbankdatei local-recips.db zu aktualisieren. Diese Akualisierung ist allerdings ein kritischer Vorgang: postmap löcht dabei local-recips.db und schreibt die Datei anschließend neu. Wenn Postfix gerade während dieses Zeitpunkts auf local-recips.db zugreift, erhält es falsche bzw. unvollständige Daten. Achtung
Eine sichere Vorgehensweise sieht deswegen so aus: Sie geben der zugrunde liegenden Textdatei einen anderen Namen (z. B. local-recips1), wenden postmap auf diese Datei an und führen dann mv local-recips1.db local-recips.db aus. Somit ist sichergestellt, dass local-recips.db immer konsistente Daten enthält – entweder in der alten oder in der neuen Version. Diesen Vorgang können Sie durch eine Script- oder make-Datei automatisieren, wie es beispielsweise hier beschrieben ist: http://www.postfix.org/DATABASE_README.html#safe_db Dieser Hinweis gilt naturgemäß für alle in diesem Kapitel vorkommenden Mapping-Dateien für Postfix. Anschließend fügen Sie in /etc/postfix/main.cf eine Zeile zur Einstellung von local_recipient_maps ein: # in /etc/postfix/main.cf local_recipient_maps = hash:/etc/postfix/local-recips $alias_maps
1015
Kapitel 33
Linux-Accounts einrichten
Mail-Server
Von nun an akzeptiert Postfix nur noch E-Mails an die in local-recips genannten Empfänger. Es gibt allerdings noch eine Einschränkung: Es werden nur dann E-Mails zugestellt (gespeichert), wenn der Benutzer einen Account auf dem Rechner hat. Ist das nicht der Fall, müssen Sie mit adduser einen neuen Account erstellen. Im folgenden Beispiel bewirkt die Option --shell /bin/false, dass dem Account statt einer Shell das Programm /bin/false zugeordnet ist. Das macht ein interaktives Arbeiten unmöglich. --gecos ,,, unterdrückt die Fragen nach dem vollständigen Namen und weiteren überflüssigen Kontaktinformationen. Wichtig ist hingegen das Passwort, und das, obwohl sich der Benutzer gar nicht einloggen kann. Der Grund: Das Passwort gilt für die ab Seite 1020 beschriebene POP- und SMTP-Authentifizierung. root# adduser --shell /bin/false --gecos ,,, huber Geben Sie ein neues UNIX-Passwort ein: ******** Geben Sie das neue UNIX-Passwort erneut ein: ********
Tipp
Wenn Sie sich nicht bei jedem neuen Benutzer ein Passwort ausdenken möchten, können Sie auf das Kommando makepasswd zurückgreifen, dessen gleichnamiges Paket Sie vorher installieren müssen. makepasswd --chars n erzeugt ein zufälliges Passwort in der gewünschten Länge. Wenn Sie mit virtuellen Domänen arbeiten (siehe ab Seite 1017), können Sie übrigens darauf verzichten, für jeden Benutzer einen eigenen Linux-Account einzurichten. Postfix unterstützt dann sogenannte virtuelle Postfächer (die ganz real sind, aber keinem gültigen Benutzernamen entsprechen).
Vom Linux-Account abweichende E-Mail-Adressen In vielen Firmen sind E-Mail-Adressen der Form
[email protected] üblich. Linux sieht jedoch derart lange Benutzernamen – noch dazu mit einem Punkt – nicht vor. Das hindert Sie aber nicht, dennoch lange E-Mail-Namen zu verwenden: » Legen Sie einen Linux-Account mit einem Linux-typischen, kurzen Benutzernamen an (z. B. huber). » Definieren Sie eine Alias-Regel, die E-Mails an Bernhard.Huber an huber weiterleitet. » Verwenden Sie bei der Konfiguration des E-Mail-Clients als Absenderadresse die Langform (also
[email protected]). Beachten Sie aber, dass Sie zur POP- und SMTP-Authentifizierung den Linux-Account-Namen angeben müssen! » Damit auch lokal (z. B. durch mutt) versandte E-Mails die richtige Absenderadresse in der Langform enthalten, richten Sie eine neue Tabelle in der Textdatei /etc/postfix/canonical ein. Diese Tabelle gibt an, wie Postfix E-Mail-Adressen verändern soll. # /etc/postfix/canonical huber
[email protected] ... Diese Tabelle wandeln Sie mit postmap in eine für Postfix lesbare Tabelle um. » Anschließend stellen Sie in main.cf den Parameter canonical_maps ein und führen dann /etc/ init.d/postfix reload aus.
1016
Postfix (MTA)
Abschnitt 33.2
# in /etc/postfix/main.cf ... canonical_maps = hash:/etc/postfix/canonical Neben den Canonical- und Alias-Tabellen bietet Postfix diverse weitere Möglichkeiten, um E-MailAdressen in verschiedenen Phasen des E-Mail-Verkehrs (beim Empfang, vor dem Versenden etc.) zu manipulieren. Einen guten Überblick gibt die folgende Seite: http://www.postfix.org/ADDRESS_REWRITING_README.html
Virtuelle Domänen mit gemeinsamen E-Mail-Benutzern Im einfachsten Fall ist Postfix nur für E-Mails an den Hostnamen des Rechners zuständig (z. B.
[email protected]). Oft ist es aber wünschenswert, dass ein MTA für mehrere E-Mail-Domänen zuständig ist (also
[email protected]). Alle Domänen, die nicht mit dem Hostnamen des Rechners übereinstimmen, werden in der Postfix-Nomenklatur »virtuell« genannt (auf Englisch oft auch Hosted Domains). Postfix sieht mehrere Möglichkeiten zur Realisierung virtueller Domänen vor. Der einfachste Weg besteht darin, beim Parameter mydestination einfach mehrere Domänen einzustellen, etwa so: # in /etc/postfix/main.cf ... mydestination = firma-abc.de, localhost, noch-eine-firma.de Selbstverständlich müssen Sie auch die DNS-Konfiguration von noch-eine-firma.de entsprechend anpassen. Dem MX-Hostnamen muss also die IP-Adresse Ihres Servers zugeordnet sein (siehe auch ab Seite 1007). Sie erreichen damit, dass Mails an noch-eine-firma.de genauso behandelt werden wie Mails an firma-abc.de. Es spielt also keine Rolle, ob eine E-Mail an
[email protected] oder an
[email protected] adressiert wird: Postfix stellt die E-Mail auf jeden Fall dem lokalen Benutzer huber zu. Für manche Fälle ist das ausreichend – insbesondere dann, wenn eine Firma oder Organisation mehrere Webauftritte hat, aber in Wirklichkeit immer dieselben Personen dafür verantwortlich sind.
Virtuelle Domänen mit getrennten E-Mail-Benutzern Wenn Sie zwischen gleichnamigen Benutzern je nach Domäne differenzieren möchten, geben Sie die betroffenen Domänen nicht in mydestination an, sondern mit dem Schlüsselwort virtual_alias_domains. Außerdem brauchen Sie nun eine Tabelle, die die Zuordnung zwischen den E-Mail-Adressen der virtuellen Domänen und realen Linux-Accounts herstellt. Weiterhin ist also für jede E-Mail-Adresse ein Linux-Account erforderlich. Um beim Beispiel der huber-Adressen zu bleiben: Der Account für
[email protected] ist weiterhin huber. Für
[email protected] müssen Sie einen neuen Account anlegen, z. B. huberNEF. Der Aufbau der Tabelle für die virtuellen E-Mail-Benutzer sieht so aus:
1017
Kapitel 33
Mail-Server
# Textdatei /etc/postfix/virtual
[email protected] huberNEF
[email protected] muellerNEF ... Die Tabelle kann wie die Alias-Tabelle mehreren E-Mail-Adressen denselben Benutzer zuordnen, also etwa: # in /etc/postfix/virtual ...
[email protected] huberNEF
Mit postmap machen Sie aus dieser Datei eine für Postfix lesbare Datenbankdatei: root#
postmap /etc/postfix/virtual
Jetzt müssen Sie noch main.cf anpassen. virtual_alias_domains zählt alle virtuellen Domänen auf (aber nicht die Hauptdomäne, die geben Sie weiterhin mit mydestination an!). virtual_alias_maps gibt den Dateinamen der virtuellen Alias-Tabelle an. # in /etc/postfix/main.cf ... mydestination = firma-abc.de, localhost virtual_alias_domains = noch-eine-firma.de, firma-xyz.de, ... virtual_alias_maps = hash:/etc/postfix/virtual
Virtuelle Domänen mit virtuellen Postfächern Bis jetzt war es immer erforderlich, dass jeder E-Mail-Adresse ein Linux-Account gegenüberstand. Postfix weigert sich, E-Mails in einem Postfach zu speichern, wenn es nicht einen gleichnamigen Linux-Account gibt. Bei sehr vielen E-Mail-Adressen wird es aber zunehmend unpraktisch, jedes Mal auch einen neuen Account anzulegen. Postfix sieht zur Lösung dieses Problems virtuelle Postfächer vor. Das sind ganz gewöhnliche Postfachdateien; die Bezeichnung »virtuell« bezieht sich nur darauf, dass es keine dazugehörenden Linux-Accounts gibt. Freilich müssen auch die virtuellen Postfächer jemandem gehören. Dazu erzeugen Sie eine neue Gruppe und einen neuen Benutzer mit jeweils noch unbenutzten GIDs und UIDs (im folgenden Beispiel jeweils 5000): root# root#
groupadd -g 5000 vmail useradd -g vmail -u 5000 vmail -d /home/vmail -m
Nun ändern Sie main.cf wie im folgenden Beispiel-Listing. virtual_mailbox_domains gibt die virtuellen Domänen an, deren E-Mails in virtuellen Postfächern gespeichert werden sollen. virtual_mailbox_base gibt das Verzeichnis an, in dem die virtuellen Postfächer angelegt werden sollen. Die Tabelle virtual_mailbox_maps stellt die Zuordnung zwischen den E-Mail-Adressen und den Postfächern her. virtual_uid_maps und -_gid_maps gibt die UID und GID der Postfachdateien an. Theoretisch ist es hier möglich, eigene UIDs und GIDs für jedes Postfach anzugeben, aber das ist selten zweckmäßig.
1018
Postfix (MTA)
# in /etc/postfix/main.cf ... mydestination = virtual_mailbox_domains = virtual_mailbox_base = virtual_mailbox_maps = virtual_uid_maps = virtual_gid_maps =
Abschnitt 33.2
firma-abc.de, localhost noch-eine-firma.de, firma-xyz.de, ... /var/mail hash:/etc/postfix/virtual-mboxes static:5000 static:5000
Die Datei virtual-mboxes gibt für jede E-Mail-Adresse die dazugehörende Postfachdatei an (relativ zum Pfad virtual_mailbox_base). Dieses Beispiel verwendet für jede Domain ein eigenes Verzeichnis und innerhalb dieses Verzeichnisses dann einfach den Benutzernamen. Grundsätzlich können Sie hier aber nach Belieben verfahren. Für die eigentliche Zustellung ist das Postfix-Kommando virtual zuständig. Es speichert die E-Mails standardmäßig im mbox-Format. Wenn Sie das MaildirFormat vorziehen, geben Sie in virtual-mboxes einfach im Anschluss an den Dateinamen einen Schrägstrich an, also beispielsweise noch-eine-firma.de/huber/. # Datei /etc/postfix/virtual-mboxes
[email protected] noch-eine-firma.de/huber
[email protected] noch-eine-firma.de/mueller
[email protected] firma-xyz.de/webmaster ... postmap macht aus virtual-mboxes eine Datenbankdatei: root#
postmap /etc/postfix/virtual-mboxes
Ein letzter Schritt besteht nun darin, dass Sie für jede Domain das Postfachverzeichnis erzeugen müssen. Entscheidend sind dabei die Zugriffsrechte. root# root# root#
mkdir /var/mail/noch-eine-firma.de chown mail:mail /var/mail/noch-eine-firma.de chmod g+w /var/mail/noch-eine-firma.de
postfix reload aktiviert die Konfiguration. Nun senden Sie eine Testnachricht an
[email protected] und werfen danach einen Blick in das Verzeichnis /var/mail/noch-eine-firma.de/. Dort sollte nun die Datei huber mit der neuen E-Mail auftauchen. Wenn Sie alle Domänen virtuell verwalten möchten (also auch die Domäne des Hostnamens Ihres Rechners), entfernen Sie den Hostnamen aus der mydestination-Zeile und fügen ihn der virtual_alias_domains-Zeile hinzu: # in /etc/postfix/main.cf ... mydestination = localhost virtual_mailbox_domains = firma-abc.de, noch-eine-firma.de, ...
1019
Kapitel 33
Mail-Server
Hinweis
Virtuelle Postfächer ersparen Ihnen es zwar, für jede E-Mail-Adresse einen Account einzurichten, machen dafür aber die Konfiguration von Dovecot zur Abholung der E-Mails (POP) sowie zur SMTPAuthentifizierung komplizierter (siehe auch ab Seite 1020): Sie müssen nun eine weitere Tabelle administrieren, die für jeden Benutzer einen Login-Namen und ein Passwort enthält. Virtuelle Postfächer reduzieren den Verwaltungsaufwand nur dann, wenn Sie gleichzeitig sämtliche Daten der E-Mail-Accounts in einer Datenbank oder in einem LDAP-System speichern und Postfix und Dovecot gleichermaßen auf diese Datenbank zugreifen können. Eine ausführliche Anleitung, wie Sie dies mit MySQL bewerkstelligen, gibt die folgende Seite, die auch sonst eine Menge ausgezeichneter Informationen enthält: http://workaround.org/ispmail/lenny
Logging, Administration Postfix protokolliert alle seine Tätigkeiten – und das sind viele – via Syslog in den Logging-Dateien /var/log/mail.* (siehe auch Seite 509). mail.warn enthält in erster Linie Warnungen vor DNS-Problemen. Die Datei kann im Regelfall ignoriert werden, Schuld an den Warnungen haben zumeist die Betreiber externer MTAs. Viele MTAs sind auch ganz bewusst falsch konfiguriert, weil sie ausschließlich zum Spam-Versand dienen. Fehler beim Start von Postfix (oft verursacht durch eine syntaktisch falsche Konfiguration) werden in mail.err aufgezeichnet. Ein Blick in diese Datei lohnt vor allem dann, wenn einzelne Komponenten nicht funktionieren oder gar nicht starten. Wenn Sie wissen möchten, welche E-Mails momentan auf den Versand warten, führen Sie postqueue -p oder mailq aus. Die beiden Kommandos liefern eine Liste aller E-Mails, die – aus welchen Gründen auch immer – bisher nicht versandt werden konnten.
33.3 Dovecot (POP- und IMAP-Server) Das aus mehreren Komponenten bestehende Programm Dovecot arbeitet je nach Installationsumfang (Pakete dovecot-pop3d und dovecot-imapd) als POP- und IMAP-Server. Im einfachsten Fall funktioniert das Programm ohne jede Konfigurationsarbeiten – man würde es nicht für möglich halten, dass es so etwas überhaupt noch gibt! Dieser Abschnitt bezieht sich auf die Dovecot-Version 1.2. Zwar wurde im August 2010 die neue stabile Version 2.0 fertiggestellt, alle gängigen Distributionen enthalten momentan aber noch Dovecot-1.2-Pakete. Konfiguration
1020
Die Konfiguration von Dovecot erfolgt in der Datei /etc/dovecot/dovecot.conf. Diese Datei dient gleichzeitig als Dokumentation, was einerseits praktisch ist, andererseits aber auch sehr unübersichtlich: Standardmäßig ist dovecot.conf fast 1100 Zeilen lang, enthält aber nur 22 relevante Zeilen! Die folgenden Kommandos schaffen Abhilfe. (Das erste grep-Kommando eliminiert alle Zeilen, die
Dovecot (POP- und IMAP-Server)
Abschnitt 33.3
mit Leer- oder Tabulatorzeichen und dann dem Kommentarzeichen # beginnen, und das zweite Kommando löscht alle leeren Zeilen.) root# root# root#
cd /etc/dovecot cp dovecot.conf dovecot.orig grep -v '^[[:space:]]*\#' dovecot.orig | grep -v '^[[:space:]]*$' \ > dovecot.conf
Jetzt haben Sie die ursprüngliche Datei zur Referenz und eine neue, fast leere Datei, in der Sie selbst Änderungen durchführen können. Beachten Sie, dass Sie geschwungene Klammern in einer eigenen Zeile schließen müssen. Die Anweisung protocol imap { } in nur einer Zeile ist syntaktisch nicht erlaubt. # Datei /etc/dovecot/dovecot.conf ohne Kommentare protocols = pop3 pop3s log_timestamp = "%Y-%m-%d %H:%M:%S " mail_privileged_group = mail protocol imap { } protocol pop3 { pop3_uidl_format = %08Xu%08Xv } auth default { mechanisms = plain passdb pam { } userdb passwd { } user = root } dict { } plugin { } Dovecot braucht deswegen so wenige Einstellungen, weil es für alle Optionen Defaultwerte gibt. dovecot -a liefert eine Liste aller Einstellungen, dovecot -n eine Liste mit allen Optionen, die von der Defaulteinstellung abweichen. Dovecot kommt sowohl mit dem Maildir- als auch mit dem Mbox-Format zurecht, ganz egal, ob Sie das Programm als POP- oder IMAP-Server verwenden (oder beides). Wenn Sie Dovecot allerdings überwiegend als IMAP-Server einsetzen, ist das Maildir-Format aus Effizienzgründen vorzuziehen (siehe auch Seite 1013).
Ort der Mailbox-Dateien
Dovecot versucht die Postfächer automatisch zu entdecken, was bei meinen Tests auch problemlos funktioniert hat. Es durchsucht dabei in dieser Reihenfolge die folgenden Verzeichnisse: /home/username/Maildir /home/username/mail und /var/mail/username /home/username/Mail und /var/mail/username
(Maildir-Format) (Mbox-Format) (Mbox-Format)
1021
Kapitel 33
Mail-Server
Die automatische Mailbox-Suche kann allerdings scheitern, wenn ein Benutzer noch keine Mail erhalten hat und sein Postfach somit leer ist, die Postfachdatei also noch gar nicht existiert. Deswegen empfiehlt es sich, den Mailbox-Ort in dovecot.conf explizit einzustellen. Für Postfächer in /var/ mail/username lautet die richtige Einstellung: # in /etc/dovecot/dovecot.conf ... # mbox-Postfächer in /var/mail mail_location = mbox:~/Mail:INBOX=/var/mail/%u Damit weiß Dovecot, dass Ihr Server das Mbox-Format verwendet und dass sich neue E-Mails in /var/mail/username befinden. Die zusätzliche Angabe des Verzeichnisses ~//Mail ist für diverse Zusatzfunktionen von Dovecot erforderlich – auch dann, wenn sich in diesem Verzeichnis keine E-Mails befinden! Falls Dovecot als IMAP-Server verwendet wird, werden dort alle anderen IMAPPostfächer gespeichert. (Sie können natürlich ein beliebiges anderes Benutzerverzeichnis angeben, ~/mail oder ~/Mail sind aber die übliche Wahl. Das Benutzerverzeichnis muss vor der INBOX, also dem Postfach für neue E-Mails, angegeben werden.) Falls Sie Postfix so konfiguriert haben, dass der MTA die E-Mails im Maildir-Format in das lokale Verzeichnis ~/Maildir zustellt, sieht die korrekte Einstellung von mail_location so aus: # in /etc/dovecot/dovecot.conf ... # mbox-Postfächer in /var/mail mail_location = maildir:~/Maildir Wenn Sie Postfix so konfiguriert haben, dass es E-Mail-Adressen aus diversen Domänen in virtuellen Postfächern speichert, wird die Konfiguration etwas komplizierter: Zum einen müssen Sie Dovecot verraten, wo sich die Postfächer befinden; und zum anderen brauchen Sie nun eine eigene Tabelle, die für alle E-Mail-Adressen Login-Namen und Passwörter enthält (für die POP- und SMTP-Authentifizierung). Konfigurationstipps und ein konkretes Beispiel finden Sie auf den beiden folgenden Seiten: http://wiki.dovecot.org/VirtualUsers http://workaround.org/ispmail/lenny/
Betrieb als POP- bzw. IMAP-Server Dovecot funktioniert auf Anhieb als POP- oder IMAP-Server. Um Ihre E-Mails von einem externen Rechner mit einem E-Mail-Client herunterzuladen, richten Sie darin ein neues Konto ein und geben als Verschlüsselungsverfahren SSL oder TLS an. Der Benutzername entspricht dem Namen Ihres Linux-Accounts auf dem Server, auch das Passwort ist dasselbe wie auf dem Server. Dovecot identifiziert sich mit dem selbst generierten Zertifikat /etc/ssl/certs/ssl-cert-snakeoil.pem, das Sie beim ersten Verbindungsaufbau akzeptieren müssen. (Dieses Zertifikat wird auch von Postfix verwendet. Wenn Sie stattdessen ein eigenes Zertifikat und einen eigenen Schlüssel verwenden möchten, müssen Sie die Orte der beiden Dateien mit ssl_key_file und ssl_cert_file in dovecot.conf spezifizieren.)
1022
Dovecot (POP- und IMAP-Server)
Dovecot akzeptiert bei der Authentifizierung standardmäßig nur Klartextpasswörter. Das klingt unsicher, ist es aber nicht, weil die Passwortübertragung innerhalb einer SSL- oder TLS-Sitzung erfolgt, also bereits auf einer höheren Ebene verschlüsselt wird. Eine Authentifizierung mit Klartextwörtern ohne SSL/TLS-Verschlüsselung lehnt Dovecot prinzipiell ab.
Abschnitt 33.3
ClientKonfiguration
Bevor sich die Verfahren SSL bzw. TLS zur Verschlüsselung des gesamten POP-Verkehrs durchgesetzt haben, waren verschiedene Mechanismen üblich, um die Übertragung von Klartextpasswörtern zu vermeiden. Dovecot unterstützt zwar die meisten gängigen Mechanismen (siehe das Schlüsselwort mechanism im Abschnitt auth default in dovecot.conf), setzt dann allerdings eine getrennte Passwortdatenbank voraus. Nur bei Klartextpasswörtern kann die Authentifizierung auf der Basis von PAM und der Linux-Passwortdatei /etc/shadow erfolgen, was aus administrativen Gründen die einfachste Lösung ist. Weitere Hintergrundinformationen zur Authentifizierung finden Sie hier: http://wiki.dovecot.org/Authentication/Mechanisms Wenn Sie Thunderbird als E-Mail-Client verwenden, geben Sie als Verschlüsselungssicherheit SSL/TLS an, als Authentifizierungsmethode PASSWORT , NORMAL (nicht VERSCHLÜSSELTES PASSWORT !).
SMTP-Authentifizierung für Postfix Im Postfix-Abschnitt habe ich bereits erwähnt, dass Postfix zwar das Protokoll SASL (Simple Authentification and Security Layer) unterstützt, die Authentifizierung aber nicht selbst durchführen kann. Dovecot kann Postfix in dieser Angelegenheit unter die Arme greifen. Der erforderliche Konfigurationsaufwand ist minimal. Zum einen müssen Sie den Abschnitt auth default in dovecot.conf in zwei Punkten erweitern: Der zusätzliche Authentifizierungsmechanismus login ist für Outlook Express bzw. Windows Mail erforderlich. socket listen ... client ermöglicht die Dovecot-Authentifizierung über die Socket-Datei /var/spool/postfix/private/auth. # Ergänzungen in /etc/dovecot/dovecot.conf ... auth default { mechanisms = plain login passdb pam { } userdb passwd { } user = root socket listen { client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } }
1023
Kapitel 33
Mail-Server
Zum anderen müssen Sie am Ende der Postfix-Konfigurationsdatei /etc/postfix/main.cf einige Zeilen einfügen. Beachten Sie, dass die Pfadangabe für smtpd_sasl_path relativ zum Verzeichnis /var/spool/postfix erfolgen muss. Der Grund: Postfix läuft aus Sicherheitsgründen in einer chroot-Umgebung und interpretiert alle Pfadangaben in main.cf relativ zum Postfix-Queue-Verzeichnis. # Ergänzung in /etc/postfix/main.cf ... smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination Anschließend fordern Sie beide Dienste dazu auf, ihre Konfigurationsdateien neu einzulesen: root# root#
/etc/init.d/dovecot restart /etc/init.d/postfix reload
Bei der SMTP-Konfiguration im E-Mail-Client müssen Sie zumindest in Thunderbird als Verschlüsselungsprotokoll explizit TLS angeben (nicht SSL). Zur Authentifizierung geben Sie wie üblich den Linux-Benutzernamen und das Passwort an.
Zertifikat neu generieren Bei der Installation von Dovecot werden automatisch ein Schlüssel und ein Zertifikat erzeugt, die allerdings nur einen Monat lang gültig sind. Der Schlüssel und das Zertifikat sind in den beiden folgenden Dateien gespeichert: /etc/ssl/private/ssl-cert-snakeoil.key /etc/ssl/certs/ssl-cert-snakeoil.pem Spätestens nach dem Ablauf des Zertifikats müssen Sie entweder ein neues (selbst unterzeichnetes) Zertifikat erzeugen oder Dovecot so konfigurieren, dass es ein für Sie authentifiziertes Zertifikat verwendet (Konfigurationsdatei dovecot.conf, Optionen ssl_key_file und ssl_cert_file). Die folgenden Kommandos zeigen, wie Sie ein selbst erzeugtes Zertifikat mit fünf Jahren Gültigkeit erzeugen: root# root# root# root# root#
cd /etc/ssl cp private/ssl-cert-snakeoil.key private/ssl-cert-snakeoil.bak cp certs/ssl-cert-snakeoil.pem certs/ssl-cert-snakeoil.bak openssl genrsa -out server.key 1024 openssl req -new -x509 -key server.key -out server.pem \ -days 1826 You are about to be asked to enter information that will be incorporated into your certificate request. ...
1024
Spam- und Virenschutz
Abschnitt 33.4
Country Name (2 letter code) [AU]: de State or Province Name (full name) [Some-State]: none Locality Name (eg, city) []: Berlin Organization Name (eg, company): firma-abc Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []: firma-abc.de Email Address []:
[email protected] root# mv server.key private/ssl-cert-snakeoil.key root# mv server.pem certs/ssl-cert-snakeoil.pem root# /etc/init.d/dovecot restart
33.4 Spam- und Virenschutz Grundsätzlich gibt es zwei Wege, die allgegenwärtige Spam-Flut einzudämmen:
Spam
» Sie können auf Ihrem E-Mail-Server den Empfang von E-Mails aufgrund von formalen Gründen verweigern. Zu diesen Gründen zählen beispielsweise fehlende Reverse-DNS-Einträge, offensichtlich falsche DNS-Angaben oder die Herkunft der E-Mails von bekannten »SpamSchleudern«, also von Rechnern, die aufgrund von massenhaftem Spam-Versand auf sogenannten Blacklists gelandet sind. » Sie können versuchen, bereits empfangene E-Mails mit einem Spam-Filter aufgrund ihres Inhalts als Spam zu klassifizieren und entsprechend zu markieren oder zu löschen. Dieser Schritt beansprucht wesentlich mehr Rechnerressourcen, ist relativ fehleranfällig und erfordert regelmäßiges »Training« (also menschliche Eingriffe, um richtig oder falsch klassifizierte E-Mails zu erkennen). Beide Maßnahmen sind alles andere als perfekt, und beide haben den Nachteil, dass ihnen manchmal gewöhnliche E-Mails zum Opfer fallen. Es gibt verschiedene Meinungen darüber, wo der richtige Ort für welche Art von Spam-Schutz ist. Schutzmaßnahmen auf dem Server haben in der Regel den Nachteil, dass sie für den Endanwender eine Art Blackbox sind. Wenn eine wichtige E-Mail aufgrund des Spam-Schutzes den Empfänger nicht erreicht, ist natürlich immer der übereifrige Administrator schuld (also Sie!). Um das zu vermeiden, kann der Spam-Schutz auch dem Endanwender aufgebürdet werden. In vielen E-Mail-Clients sind für diesen Zweck entsprechende Werkzeuge integriert. Aufgrund des individuellen Regeltrainings lässt sich so bisweilen eine höhere Erkennungsrate als bei serverbasierten Lösungen erzielen. Der Hauptnachteil besteht darin, dass die Endanwender – anstatt produktiv zu arbeiten – ihre Zeit mit der Spam-Bekämpfung vergeuden. Mit Spam ist es leider noch nicht getan: Wenn sich in Ihrem Netzwerk Windows-Rechner befinden, müssen Sie auch dafür sorgen, dass die E-Mails frei von Viren eintreffen. Nun sind per E-Mail verbreitete Viren für Windows-PCs heute nicht mehr das ganz große Thema, das sie vor ein paar Jahren waren. E-Mail-Viren sind aber noch immer ein sporadisches Risiko, das es zu minimieren gilt. Deswegen empfiehlt es sich, auf dem E-Mail-Server ein weiteres Programm zu installieren, das E-Mails bzw. deren Anhänge auf bekannte Viren untersucht und befallene E-Mails löscht. Technisch funktioniert ein E-Mail-Filter ähnlich wie ein Spam-Filter, wobei aber vor allem Anhänge auf Muster
Viren
1025
Kapitel 33
Mail-Server
bekannter E-Mails durchsucht werden müssen. Das kostet eine Menge CPU-Zeit und ist nur dann zielführend, wenn eine aktuelle Virendatenbank zur Verfügung steht. Empfehlungen
Die folgenden Abschnitte stellen drei Programme näher vor: policyd-weight und SpamAssassin als Spam-Blocker sowie ClamAV zur Virenabwehr. Für alle Unentschlossenen sind hier noch einige persönliche Empfehlungen: » Wenn Ihnen der Aufwand zur Installation bzw. für den Betrieb all dieser Programme hoch erscheint, sollten Sie zumindest policyd-weight ausprobieren: Die Konfiguration ist in einer Minute erledigt, anschließend sinkt das Spam-Aufkommen in der Regel um weit über 90 Prozent. Das Verhältnis zwischen Aufwand und Nutzen könnte nicht besser sein! » SpamAssassin erfordert wesentlich mehr Ressourcen als policyd-weight, ohne aber spürbar bessere Ergebnisse zu liefern. Sein größter Vorteil besteht darin, dass es spam-verdächtige E-Mails nicht blockiert, sondern markiert weiterleitet. Irrtümlich als Spam klassifizierte E-Mail geht damit nicht automatisch verloren. (Es liegt in der Verantwortung des Endanwenders, die als Spam gekennzeichneten E-Mails nochmals durchzusehen.) » E-Mails mit Viren sind selten und stellen für Linux-Anwender keine Gefahr dar. Die Installation von ClamAV lohnt sich daher nur, wenn Sie für die Sicherheit von Windows-Anwendern verantwortlich sind, die auf Ihren E-Mail-Server zugreifen.
33.5 policyd-weight (Spam-Abwehr) policyd-weight ist ein Perl-Programm, das formale Regeln des SMTP-Protokolls sowie die DNSAngaben des Versenders überprüft. policyd-weight läuft als Dämon (Hintergrundprogramm) und kommuniziert mit Postfix über einen IP-Port. Postfix sendet bei jeder empfangenen E-Mail die Eckdaten am policyd-weight. Dieses Programm entscheidet, ob die E-Mail akzeptiert oder zurückgesandt werden soll. Zu den Stärken von policyd-weight zählt der Umstand, dass das Programm mehrere Faktoren berücksichtigt und diese summiert (positive Werte: vermutlich Spam; negative Werte: vermutlich kein Spam). Nur wenn die Summe größer 1 ist, wird der E-Mail-Empfang verweigert. Das ist ein Vorteil gegenüber früher populären Schutzmaßnahmen, die direkt in Postfix ergriffen werden können, die aber jede für sich sofort zu einer Ja/Nein-Entscheidung führt. Installation
Unter Ubuntu und Debian ist die Installation problemlos, das Programm steht als fertiges Paket zur Verfügung. Bei anderen Distributionen müssen Sie policyd-weight von der folgenden Website herunterladen: http://www.policyd-weight.org/
Konfiguration
1026
Das Programm wird nach der Installation sofort gestartet und kommuniziert über den lokalen IP-Port 12525. Damit Postfix auf policyd-weight zurückgreift, müssen Sie die Einstellung des Parameters smtpd_recipient_restrictions modifizieren. Achten Sie darauf, dass check_policy_service an letzter Stelle stehen muss! (Wenn main.cf noch keine Zeile für check_policy_service enthält, lautet der Standardwert permit_mynetworks, reject_unauth_destination. Fügen Sie check_policy_service dieser Grundeinstellung hinzu.) Außerdem sollten Sie Postfix so einstellen, dass das
policyd-weight (Spam-Abwehr)
Abschnitt 33.5
Programm bei der Kommunikation mit anderen SMTP-Servern eine standardkonforme Begrüßung durch ’HELO’ verlangt. # Ergänzung in /etc/postfix/main.cf ... smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_policy_service inet:127.0.0.1:12525 ... smtpd_helo_required = yes Anschließend forden Sie Postfix dazu auf, die Konfigurationsdateien neu einzulesen: root#
/etc/init.d/postfix reload
Standardmäßig existiert keine Konfigurationsdatei für policyd-weight. Die Grundeinstellungen der zahlreichen Parameter ermitteln Sie, in dem Sie das Kommando policyd-weight defaults ausführen. Wenn Sie davon abweichende Einstellungen vornehmen möchten, tun Sie dies in /etc/policydweight.conf, wobei Sie die Perl-Syntax verwenden: Alle Optionen beginnen mit dem Zeichen $ (zur Kennzeichnung als Variablen), jede Anweisung endet mit einem Strichpunkt. Lesen Sie vorher man policyd-weight.conf! Den Schwellenwert für Spam oder Nicht-Spam stellen Sie mit der Variablen $REJECTLEVEL ein. Der Standardwert lautet 1. Je höher der Wert ist, desto mehr E-Mails werden akzeptiert. policyd-weight protokolliert seine Arbeit in /var/log/mail.log. Im folgenden Listing sehen Sie mehrere Logging-Einträge. Im ersten Eintrag sind die Faktoren der Bewertung zusammengefasst, die zu einem Rating von 24 führen, also eindeutig Spam. Der zweite Eintrag beschreibt, wie mit der E-Mail verfahren wird: Sie wird mit dem Fehlercode 550 (Requested action not taken) zurückgewiesen. Die folgenden zwei Einträge zeigen eine Bewertung einer regulären E-Mail (Rating -8,5, also kein Spam). policyd-weight fügt in den Header der E-Mail eine Zeile mit dem Bewertungsergebnis ein (PREPREND ...). Postfix stellt die E-Mail anschließend ganz normal zu.
Logging
root# grep policyd /var/log/mail.log Oct 7 06:35:14 postfix/policyd-weight[31747]: weighted check: IN_DYN_PBL_SPAMHAUS=3.25 NOT_IN_SBL_XBL_SPAMHAUS=-1.5 IN_SPAMCOP=3.75 NOT_IN_BL_NJABL=-1.5 CL_IP_NE_HELO=8.5 RESOLVED_IP_IS_NOT_HELO=1.5 (check from: ...) FROM_NOT_FAILED_HELO(DOMAIN)=10; ... rate: 24 Oct 7 06:35:14 postfix/policyd-weight[31747]: decided action=550 Mail appeared to be SPAM or forged ... ...
1027
Kapitel 33
Mail-Server
Achtung
Oct 8 11:48:10 postfix/policyd-weight[31415]: weighted check: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 ... rate: -8.5 Oct 8 11:48:10 postfix/policyd-weight[31415]: decided action=PREPEND X-policyd-weight ... Ein prinizipielles Problem von policyd-weight besteht darin, dass spam-verdächtige E-Mails generell abgelehnt werden. Sollte policyd-weight eine richtige E-Mail falsch klassifizieren, hat der Empfänger keine Chance, die E-Mail je zu lesen. Immerhin erhält der Absender eine Fehlermeldung. (Der im nächsten Abschnitt beschriebene SpamAssassin leitet spam-verdächtige E-Mails mit einer Warnung weiter. Damit bleibt die Verantwortung, was mit der E-Mail nun geschehen soll, beim Empfänger.)
33.6 SpamAssassin (Spam-Abwehr) Das bekannteste Open-Source-Programm zur Spam-Bekämpfung ist SpamAssassin. Es versucht aufgrund diverser Kriterien zu entscheiden, ob eine E-Mail Spam enthält oder nicht. Die Vorgehensweise ist ganz ähnlich wie bei policyd-weight; der entscheidende Unterschied besteht darin, dass SpamAssassin nicht nur formale Kritierien berücksichtigt, sondern auch den Inhalt der E-Mail. Zu den Besonderheiten von SpamAssassin zählt der Umstand, dass das Programm lernfähig ist: Wenn ein Benutzer bei der Klassifizierung der E-Mails hilft, versucht SpamAssassin Merkmale dieser E-Mails zu extrahieren und neue E-Mails aufgrund dieser Merkmale selbst richtig zu klassifizieren. Die zugrunde liegenden Techniken basieren auf einem sogenannten Bayesschen Filter (für Details siehe Wikipedia). Die Lernfunktionen haben den Nachteil, dass sie eine manuelle Kontrolle der Spam-Klassifizierung voraussetzen – und die ist beim Betrieb von SpamAssassin auf einem Server selten gegeben. SpamAssassin funktioniert erfreulicherweise auch ohne dieses Training, wenn auch mit einer etwas niedrigeren Trefferquote. Es ist möglich und durchaus sinnvoll, policyd-weight und SpamAssassin zu kombinieren: policydweight weist dann mit geringem Ressourcen-Aufwand einen Großteil des Spams zurück. (Erhöhen Sie eventuell $REJECTLEVEL, damit policyd-weight etwas spam-toleranter wird.) Alle E-Mails, die policyd-weight passieren lässt, werden anschließend von SpamAssassin nochmals genauer überprüft. Der Vorteil dieses zweistufigen Ansatzes besteht darin, dass die Ressourcen-Belastung zur Spam-Kontrolle wesentlich kleiner ist, als wenn Sie SpamAssassin allein einsetzen. Umgang mit spamverdächtigen E-Mails
1028
Standardmäßig verpackt SpamAssassin als Spam erkannte E-Mails neu. Die E-Mail enthält einen Hinweis auf den Spam-Verdacht. Die originale Nachricht wird im Anhang mitgeliefert, sodass der Anwender eine irrtümlich als Spam klassifizierte E-Mail problemlos lesen kann. Diese Vorgehensweise ist wesentlich sicherer als die von policyd-weight, das als Spam erkannte E-Mails einfach abweist.
SpamAssassin (Spam-Abwehr)
Abschnitt 33.6
Jetzt bleibt noch die Frage offen, wie der Endanwender am besten mit spam-verdächtigen E-Mails verfährt: SpamAssassin fügt in jede E-Mail eine Zeile der Form X-Spam-Flag: YES ein. Außerdem bekommt jede von SpamAssassin kontrollierte E-Mail eine Zeile X-Spam-Level: ********, wobei die Anzahl der Sterne die Spam-Bewertungssumme wiedergibt. (Je mehr Sterne, desto höher ist die Spam-Wahrscheinlichkeit. Beachten Sie, dass E-Mails für SpamAssassin standardmäßig erst ab fünf Sternen als Spam gelten!) Aufgrund dieser Zeilen können Sie bei den meisten E-Mail-Clients eine Filterregel aufstellen, sodass alle derart gekennzeichneten E-Mails automatisch in einen Junk- oder Spam-Ordner verschoben werden. Es gibt verschiedene Möglichkeiten, SpamAssassin mit Postfix zu kombinieren. Dieser Abschnitt beschreibt, wie Sie SpamAssassin über die Milter-Schnittstelle von Postfix aufrufen. Milter steht für Mail Filter und ist eigentlich eine von Sendmail definierte Schnittstelle, um E-Mail-Filterprogramme einzubinden. Postfix unterstützt diese Schnittstelle in aktuellen Versionen ebenfalls und vereinfacht so die Integration von Spam- und Virenfiltern im Vergleich zu anderen Verfahren ganz erheblich. Alle gängigen Distributionen stellen Pakete für SpamAssassin zur Verfügung. Unter Debian und Ubuntu führen Sie zur Installation das folgende Kommando aus: root#
Installation und Konfiguration
apt-get install spamassassin spamass-milter
Um SpamAssassin als Dämon zu aktivieren, führen Sie zwei Änderungen in /etc/default/spamassassin durch: # Änderungen in /etc/default/spamassassin ... # den SpamAssassin-Dämon spamd starten ENABLED=1 ... # regelmäßige Updates der SpamAssassin-Regeln durchführen CRON=1 Die Basiskonfiguration von SpamAssassin erfolgt durch diverse *.cf-Dateien im Verzeichnis /usr/ share/“spamassassin. Davon abweichende Einstellungen führen Sie am besten in der Datei /etc/ spamassassin/local.cf durch. Die wahrscheinlich interessanteste Einstellung ist required_score (Defaultwert 5.0): Sie gibt an, ab welcher Punkteanzahl eine E-Mail als Spam klassifiziert wird. Ebenfalls oft praktisch ist die Einstellung rewrite_header Subject *****SPAM*****: Damit wird die Subject-Zeile aller spam-verdächtigen E-Mails verändert. Das erleichtert die Spam-Erkennung für E-Mail-Anwender, die mit der Definition von Filterregeln in ihrem E-Mail-Client überfordert sind. Nach diesen Vorbereitungsarbeiten starten Sie SpamAssassin: root#
/etc/init.d/spamassassin start
Die Milter-Erweiterung zu SpamAssassin, also das Programm spamass-milter, ist bereits aktiv. Es wurde unmittelbar nach der Installation gestartet und kommuniziert direkt mit dem SpamAssassinDämon spamd. Die Konfiguration erfolgt durch die Datei /etc/default/spamass-milter, Änderungen sind in der Regel aber nicht erforderlich. Die Kommunikation zwischen spamass-milter und Postfix erfolgt über die Socket-Datei /var/spool/postfix/spamass/spamass.sock.
1029
Kapitel 33
Mail-Server
PostfixKonfiguration
Jetzt müssen Sie Postfix noch dazu bringen, dass es alle eintreffenden E-Mails durch den SpamAssassin-Filter leitet. Dazu fügen Sie die folgende Zeile in main.cf ein. Beachten Sie, dass der Pfad zur Socket-Datei relativ zum Postfix-Queue-Verzeichnis /var/spool/postfix angegeben werden muss! # Ergänzung in /etc/postfix/main.cf ... smtpd_milters = unix:spamass/spamass.sock Anschließend laden Sie die Postfix-Konfiguration neu: root#
Test
/etc/init.d/postfix reload
Um SpamAssassin auszuprobieren, senden Sie von einem externen E-Mail-Account eine speziell für SpamAssassin konzipierte Testnachricht an Ihren Server. Diese Nachricht muss die folgende Zeichenkette enthalten. Anstatt die Zeichenkette abzutippen, suchen Sie in Wikipedia nach GTUBE (Generic Test for Unsolicited Bulk Email) und kopieren die Zeichenkette von dort. XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X Wenn alles funktioniert, wird die Nachricht als Spam erkannt. Der Adressat erhält die als Spam markierte E-Mail zusammen mit einer Information, warum es sich vermutlich um Spam handelt. Der Text der Nachricht sollte in etwa so aussehen: Spam detection software, running on the system "firma-abc.de", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview:
XJS*C4JDBQADN1.NSBN3*2IDNEN* [...]
Content analysis details:
(1000.3 points, 5.0 required)
pts rule name description ---- ---------------------- --------------------------------------------------0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, low trust [213.165.64.42 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is freemail (michael.kofler[at]gmx.com) -0.0 SPF_PASS SPF: sender matches SPF record 0.0 UNPARSEABLE_RELAY Informational: message has unparseable relay lines 0.3 URIBL_RHS_DOB Contains an URI of a new domain (Day Old Bread) [URIs: kofler.info] 1000 GTUBE BODY: Generic Test for Unsolicited Bulk Email
1000 Spam-Punkte hat die Nachricht also aufgrund des GTUBE-Inhalts erhalten. Schon verwunderlicher sind die restlichen 0,3 Punkte: Sie ergeben sich daraus, dass die E-Mail angeblich eine Adresse
1030
ClamAV (Virenabwehr)
Abschnitt 33.7
einer neu registrierten Web-Domain enthält (in diesem Fall kofler.info). Das ist merkwürdig, weil kofler.info zu diesem Zeitpunkt bereits fast ein Jahr lang in meinem Besitz war, also alles andere als neu registriert war. Das Beispiel beweist, dass die Erkennungsmechanismen von SpamAssassin durchaus ihre Macken haben und mit etwas Pech auch gewöhnliche E-Mails als Spam indentifizieren.
33.7 ClamAV (Virenabwehr) ClamAV ist das populärste Open-Source-Programm zur Erkennung von Viren in Dateien oder E-Mails. Dabei geht es primär um Schadsoftware für Windows-Rechner. E-Mail-Viren für Linux und Mac OS X gibt es ja glücklicherweise (noch) nicht. Im Vergleich zu kommerziellen Virenschutzprogrammen war ClamAV in der Vergangenheit selten Testsieger, hat sich aber in der Regel einigermaßen gut geschlagen. Eine Garantie, die allerneuesten Viren sozusagen von der ersten Stunde an korrekt zu erkennen, gibt es aber naturgemäß nicht. (Diese Einschränkung gilt natürlich auch für kommerzielle Programme, wenngleich diese ihre Virendatenbanken oftmals schneller aktualisieren.) Ähnlich wie bei SpamAssassin gibt es auch bei ClamAV verschiedene Möglichkeiten zur Integration in Postfix. Ich stelle Ihnen hier wieder die Milter-Variante vor, die am einfachsten zu konfigurieren ist. Entsprechende Pakete finden Sie in allen gängigen Distributionen (unter Debian und Ubuntu mit den Namen clamav, clamav-daemon und clamav-milter). Zusammen mit ClamAV wird in der Regel auch das Programm freshclam installiert. Es kümmert sich darum, die initiale Virendatenbank herunterzuladen und in der Folge regelmäßig zu aktualisieren. Werfen Sie einen Blick in das Verzeichnis /var/lib/clamav (es darf nicht leer sein!) bzw. lesen Sie die man-Seite zu freshclam.
Installation
Damit Sie ClamAV über die Postfix-Milter-Schnittstelle benutzen können, sind einige Vorbereitungsarbeiten erforderlich: Als Erstes entfernen Sie in /etc/default/clamav-milter das Kommentarzeichen für die bereits vorgesehene Zeile zur Postfix-Konfiguration. Die Variable SOCKET_RWGROUP gibt an, welcher Gruppe die Clamav-Socket-Datei zugeordnet werden soll.
Konfiguration
# in /etc/default/clamav-milter ... SOCKET_RWGROUP=postfix In /etc/clamav/clamav-milter.conf geben Sie an, an welchem Ort die Clamav-Socket-Datei erzeugt werden soll: # in /etc/clamav/clamav-milter.conf ... MilterSocket /var/spool/postfix/clamav/clamav-milter.ctl Anschließend erzeugen Sie das Verzeichnis für die Socket-Datei so, dass sowohl Postfix als auch ClamAV darin lesen und schreiben dürfen: root# root# root#
mkdir -p /var/spool/postfix/clamav/ chown clamav:postfix /var/spool/postfix/clamav/ chmod g+s /var/spool/postfix/clamav/
1031
Kapitel 33
Mail-Server
Ein Neustart von clamd und clamav-milter stellt sicher, dass ClamAV diese Änderungen übernimmt: root# root#
/etc/init.d/clamav-daemon restart /etc/init.d/clamav-milter restart
Nun müssen Sie noch /etc/postfix/main.cf so anpassen, dass Postfix alle eintreffenden E-Mails zur Kontrolle an ClamAV weiterleitet. (Wenn Sie nur ClamAV, nicht aber SpamAssassin verwenden, lassen Sie die Socket-Datei für SpamAssassin einfach weg. Die Pfadangaben der Socket-Dateien sind relativ zum Postfix-Queue-Verzeichnis /var/spool/postfix.) # Ergänzung in /etc/postfix/main.cf ... smtpd_milters = unix:spamass/spamass.sock unix:clamav/clamav-milter.ctl Dank postfix reload übernimmt Postfix die Konfigurationsänderung sofort: root# Test
/etc/init.d/postfix reload
ClamAV fügt nun in den Header jeder überprüften E-Mail den folgenden Text ein: X-Virus-Scanned: clamav-milter 0.96.1 at firma-abc.de X-Virus-Status: Clean Wenn ClamAV tatsächlich einen Virus feststellt, wird die E-Mail nicht weitergeleitet. Weder der Absender noch der Empfänger wird davon informiert. (Diese Vorgehensweise kann in /etc/clamav/ clamav-milter.conf verändert werden. Die dort eingesetzten Schlüsselwörter sind in /usr/share/ doc/clamav-milter/examples/clamav-milter.conf dokumentiert.) Um die korrekte Funktion von ClamAV zu testen, senden Sie von einem externen E-Mail-Account eine Testnachricht mit dem folgenden Text an Ihren Server: X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* Sie müssen den Text nicht abtippen, sondern können ihn auch von der folgenden Wikipedia-Seite kopieren: http://en.wikipedia.org/wiki/EICAR_test_file
1032
34. KVM Seit KVM (Kernel-based Virtual Machine) mit Version 2.6.20 in den offiziellen Kernel-Code integriert wurde, hat sich diese Linux-spezifische Virtualisierungstechnik vor allem im Serverund Enterprise-Segment etabliert. Das für Ende 2010 erwartete Red Hat Enterprise Linux 6 wird voll auf KVM setzen, die nächste Version des SUSE Linux Enterprise Servers voraussichtlich ebenfalls. Auch Debian und Ubuntu enthalten standardmäßig KVM-Pakete. Dieses Kapitel führt zuerst in die Grundlagen von KVM ein und konzentriert sich dann auf die ServerVirtualisierung mit KVM: Damit können auf einem Rechner mehrere virtuelle Linux-Maschinen mit unterschiedliche Server-Funktionen laufen. In der Praxis wird das häufig gemacht, um die ServerFunktionen so gut wie möglich voneinander zu trennen und so die Sicherheit zu maximieren. Aber auch praktische Gründe sprechen oft für die Server-Virtualisierung: Während der eine Anwender für seine Website spezielle Apache-Module braucht, will ein anderer die neueste MySQL-Version einsetzen. Wenn viele derartige Sonderwünsche auf einem System erfüllt werden, führt das rasch zu unerwünschten Nebenwirkungen und Instabilitäten. KVM ist prinzipiell auch zur Desktop-Virtualisierung geeignet, dieser Aspekt steht in diesem Kapitel aber im Hintergrund. Der Grund: VirtualBox bietet für diesen Zweck eine wesentlich bessere und einfachere Benutzeroberfläche. Ich habe keine plausiblen Gründe gefunden, die für den Einsatz von KVM am Desktop sprechen. (Sollte Oracle freilich die Weiterentwicklung von VirtualBox bremsen, bietet KVM immerhin einen »Plan B« für die Linux-Gemeinde.) Aus Platzgründen kann dieses Kapitel nur eine Einführung in die KVM-Welt geben. Für alle Wissbegierigen sind hier ein paar Leseempfehlungen im Web: http://www.linux-kvm.org/ offizielle Website http://www.linux-kvm.com/ News, Blog, Forum http://qemu-forum.ipi.fi/ noch ein Forum http://qemu-buch.de/ deutschsprachiges Handbuch https://help.ubuntu.com/community/KVM Ubuntu- und Fedora-spezifische Dokumentation http://docs.fedoraproject.org/en-US/Fedora/13/html/Virtualization_Guide/
Links
Kapitel 34
KVM
34.1 Grundlagen KVM versus QEMU
QEMU (Kommandoname qemu) emuliert verschiedene CPUs und elementare Hardware-Komponenten eines typischen Rechners (Netzwerkkarte, CD-Laufwerk etc.). QEMU ist auch in der Lage, zur Wirts-CPU inkompatible Prozessoren zu emulieren (ARM, Sparc, PowerPC, MIPS etc.). Darunter leidet aber naturgemäß die Geschwindigkeit. Ich gehe hier nur auf die Emulation von x86-kompatiblen Prozessoren ein. Eine ausführlichere Beschreibung der Funktionen und Grenzen von QEMU finden Sie hier: http://www.nongnu.org/qemu/ KVM ist ein kleines Kernelmodul, das seine Wirkung erst in Kombination mit der Emulationssoftware QEMU entfaltet. KVM setzt eine CPU mit Funktionen zur Hardware-Virtualisierung voraus und macht aus dem Emulator QEMU ein Hardware-Virtualisierungssystem. Die Eleganz von KVM besteht darin, dass es typische Hypervisor-Aufgaben (z. B. die Speicher- und Prozessverwaltung) nicht selbst ausführt, sondern dazu Standardfunktionen des Linux-Kernels einsetzt. Die Nutzung der KVM-Funktionen erfolgt über die Device-Datei /dev/kvm.
HardwareVoraussetzungen
KVM funktioniert nur, wenn der Prozessor des Host-Systems Virtualisierungsfunktionen unterstützt (Intel-VT bzw. AMD-V). Das ist bei den meisten aktuellen Prozessoren der Fall. Zu den Ausnahmen zählen sehr preisgünstige CPUs für Billig-PCs bzw. -Notebooks sowie die Atom-Prozessoren von Intel. Um festzustellen, ob Ihre CPU bei der Hardware-Virtualisierung hilft (Intel-VT oder AMD-V), führen Sie das folgende egrep-Kommando aus. Wenn das Ergebnis leer ist, unterstützt Ihre CPU keine Virtualisierung oder die Funktion wurde im BIOS deaktiviert. user$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo flags :... vmx ... Bei Ubuntu-Systemen können Sie noch einfacher das Kommando kvm-ok aus dem Paket cpu-checker ausführen: user$ kvm-ok INFO: Your CPU supports KVM extensions INFO: /dev/kvm exists KVM acceleration can be used Im weiteren Verlauf dieses Kapitels setze ich voraus, dass Ihre CPU KVM-kompatibel ist.
Kernelmodule
KVM stellt seine Funktionen in drei Kernelmodulen zur Verfügung: Die Grundfunktionen befinden sich im Modul kvm, die Intel-VT-spezifischen Funktionen in kvm-intel, die AMD-V-spezifischen Funktionen in kvm-amd. Damit Sie KVM nutzen können, muss das zu Ihrer Hardware passende KVM-Modul geladen werden. Das Modul kvm wird dabei gleich mitgeladen. Bei den meisten Distributionen kümmert sich der Init-Prozess darum. Sollte das nicht funktionieren, müssen Sie manuell eingreifen: root# root#
1034
modprobe kvm-intel modprobe kvm-amd
(für Intel-VT-Prozessoren) (für AMD-V-Prozessoren)
Grundlagen
Abschnitt 34.2
Um eine virtuelle Maschine mit QEMU oder KVM auszuführen, verwenden Sie die Kommandos qemu oder kvm. Die virtuelle Maschine wird in einem Fenster angezeigt, das immer den Fenstertitel QEMU trägt – auch dann, wenn die virtuelle Maschine durch KVM ausgeführt wird. qemu und kvm werden durch unzählige Optionen gesteuert (Details dazu folgen unten). Der einzige Unterschied zwischen den beiden Kommandos besteht in der Geschwindigkeit, die bei KVM wesentlich höher ist. Die Daseinsberechtigung für den KVM-freien QEMU besteht darin, dass dieser Emulator auch andere CPUs als die des Host-Systems emulieren kann und auch dann funktioniert, wenn die CPU des Host-Systems keine Virtualisierungsfunktionen enthält.
kvm- und qemuKommando
libvirt ist ein API (also ein Application Programming Interface) zur Verwaltung von virtuellen Maschinen und der dazugehörigen virtuellen Netzwerk- und Festplatten-Devices. Der Dämon libvirtd ermöglicht eine effiziente und sichere Kommunikation zwischen virtuellen Maschinen und Benutzeroberflächen wie virsh (Shell) und dem Virtual Machine Manager. libvirt kann auch für andere Virtualisierungssysteme verwendet werden (z. B. Xen). Ich beziehe mich in diesem Kapitel aber ausschließlich auf KVM.
libvirt
virsh ist eine Shell (ein Kommandointerpreter), um via libvirt virtuelle Maschinen zu erzeugen, zu starten und wieder zu stoppen sowie um andere Administrationsarbeiten durchzuführen.
virsh
Der Virtual Machine Manager (Programm- bzw. Paketname virt-manager) bietet eine grafische Benutzeroberfläche, die beim Einrichten und Ausführen virtueller Maschinen hilft. Das Programm ist zwar weniger intuitiv zu bedienen als VirtualBox, erspart Ihnen aber viel Arbeit bei der manuellen Einstellung von Optionen bzw. bei der Ausführung äquivalenter virsh-Kommandos.
Virtual Machine Manager
Grundsätzlich können Sie innerhalb einer neuen virtuellen Maschine nahezu jedes Betriebssystem installieren. Dabei beziehen Sie die Installationsdateien üblicherweise aus einer ISO-Datei oder einer CD oder DVD. Die Installation dauert allerdings verhältnismäßig lange.
virt-install, virt-image und vmbuilder
Das zu den libvirt-Werkzeugen gehörende Programm virt-install hilft Ihnen dabei, diesen Prozess weitestgehend zu automatisieren. Wenn Sie bereits ein vordefiniertes Master-Image haben, können Sie dieses mit virt-image in eine neue virtuelle Maschine installieren. Noch mehr Komfort bei der Erstellung neuer virtueller Maschinen bietet das Ubuntu- bzw. Debianspezifische Kommando vmbuilder – aber auch vmbuilder erfordert eine umfassende Einarbeitung vor dem ersten Einsatz. Das Kommando ist hier dokumentiert: https://help.ubuntu.com/10.04/serverguide/C/jeos-and-vmbuilder.html virt-install, virt-image und vmbuilder richten sich also an Administratoren, die regelmäßig virtuelle Maschinen eines bestimmten Typs erzeugen müssen. virt-viewer ist ein VNC-Client zur Darstellung des Bildschirminhalts sowie zur Kommunikation mit einer virtuellen Maschine. virt-viewer setzt voraus, dass die virtuelle Maschine mit den entsprechenden VNC-Optionen gestartet wurde. Natürlich können Sie statt virt-viewer auch jeden anderen VNC-Client verwenden. virt-viewer macht den Verbindungsaufbau aber besonders einfach, wenn libvirt im Einsatz ist.
virt-viewer
1035
Kapitel 34
KVM
34.2 KVM ohne libvirt Das kvm-Kommando ist der einfachste Weg, KVM kennenzulernen. Die grafische Benutzeroberfläche des Virtual Machine Managers mag verlockender aussehen, ihr Einsatz führt aber oft zu Problemen, die KVM-Einsteiger rasch überfordern. Deswegen beginnt dieses Kapitel mit dem Kommando kvm und geht erst im weiteren Verlauf auf Werkzeuge ein, die auf libvirt basieren. Wenn Sie später mehrere virtuelle Maschinen verwalten und dabei auf die Administrationsmöglichkeiten der libvirt-Werkzeuge oder auf den Virtual Machine Manager zurückgreifen möchten, migrieren Sie Ihre mit kvm erstellten Maschinen einfach dorthin. Image-Datei erstellen
Bevor Sie mit dem Kommando kvm eine virtuelle Maschine starten können, müssen Sie mit dem Kommando qemu-img eine Image-Datei für die virtuelle Festplatte einrichten. Die zwei gängigsten Image-Formate sind RAW und QCOW2: » RAW: Beim RAW-Format werden die Blöcke der virtuellen Festplatte einfach 1:1 abgebildet. Sofern das Dateisystem des Host-Rechners sogenannte Sparse Files unterstützt (das ist unter anderem bei ext-, xfs- und btrfs-Dateisystemen der Fall), werden Blöcke, die ausschließlich Nullen enthalten, nicht physikalisch gespeichert. Das spart anfänglich eine Menge Platz. Das RAW-Format ist das einfachste und oft auch das schnellste Format für virtuelle Maschinen. Wenn Sie vorhaben, Ihre virtuellen Maschinen später mit libvirt-Programmen zu nutzen, sollten Sie sich für das RAW-Format entscheiden. Bei RAW-Dateien liefert ls -l datei.img die Größe der virtuellen Festplatte. Wenn Sie wissen möchten, wie viel Platz die Image-Datei im Dateisystem tatsächlich beansprucht, führen Sie du -h datei.img aus. Bei einem neu erzeugten, noch ungenutzten RAW-Image ist das Ergebnis 0, weil alle Datenblöcke leer sind. » QCOW2: QCOW2 steht für Qemu Copy-on-Write, Version 2. Dieses Format bietet gegenüber RAW eine Menge Zusatzfunktionen: Die Datenblöcke werden erst bei Bedarf reserviert, was anfänglich wie bei Sparse-Dateien eine Menge Platz spart, ohne ein Sparse-kompatibles Dateisystem vorauszusetzen. Außerdem kann das virtuelle Dateisystem komprimiert und verschlüsselt werden. QCOW2 ist theoretisch das beste Format für KVM-Maschinen, bereitet in der Praxis aber oft Performance- und Kompatibilitätsprobleme im Zusammenspiel mit libvirt-Programmen. Daneben unterstützt qemu-img noch diverse andere Formate, die mit VirtualBox, VMware, Xen und anderen Virtualisierungssytemen kompatibel sind (siehe man qemu-img). Beim Aufruf von qemu-img geben Sie mit -f raw oder -f qcow2 das Image-Format an. Die Größe der Datei geben Sie in MByte (nM) oder GByte (nG) an. user$
KVM starten
qemu-img create -f qcow2 datei.img 10G
KVM starten Sie nun mit dem Kommando kvm. Es gilt die folgende Syntax: user$
kvm [optionen] image-datei
Die folgende Liste fasst die wichtigsten kvm-Optionen zusammen. Unzählige weitere Optionen zur Auswahl der virtuellen Netzwerk-Hardware, zur Konfiguration der virtuellen Grafikkarte, zur Verwendung von USB-Komponenten etc. beschreiben man kvm und die Website http://qemu-buch.de/.
1036
KVM ohne libvirt
Abschnitt 34.2
-boot a/c/d gibt das Bootmedium an (Diskettenlaufwerk, Festplatte oder CD/DVD-Laufwerk). Die Buchstaben entsprechen den DOS/Windows-Laufwerksbuchstaben. Standardmäßig bootet KVM von der Festplatte. -cdrom iso-datei verwendet die angegebene ISO-Datei als Datenquelle für das virtuelle CD/DVD-Laufwerk. -full-screen startet die virtuelle Maschine im Vollbildmodus. -k sprachkürzel verwendet das angegebene Tastaturlayout. Zulässige Kürzel sind unter anderem de (Deutsch) und en-us (US-Englisch). Die Option ist nur in seltenen Fällen erforderlich, wenn kvm die Tastencodes auf dem Wirtssystem nicht richtig interpretieren kann. -localtime initialisiert die virtuelle CMOS-Uhr des Gastsystems mit der lokalen Zeit (statt standardmäßig mit der UTC-Zeit). -m n stellt die Speichergröße der virtuellen Maschine ein (in MByte). Standardmäßig haben virtuelle Maschinen 384 MByte RAM (auch wenn in man kvm noch von 128 MByte die Rede ist). -net details konfiguriert die virtuelle Netzwerk-Hardware. Standardmäßig wird eine RTL8139-kompatible Netzwerkkarte emuliert. Das Gastsystem kann dank NAT und Masquerading die Internetverbindung des Hostsystems nutzen, es ist aber keine direkte Netzwerkverbindung zwischen Gast und Host möglich. Wie Sie eine virtuelle Maschine mittels einer Netzwerkbrücke (Bridge) in ein vorhandenes lokales Netz integrieren, ist auf Seite 1048 beschrieben. Beachten Sie, dass alle virtuellen Maschinen dieselbe MAC-Adresse erhalten (standardmäßig 52:54:00:12:34:56)! Das führt naturgemäß zu Problemen, wenn Sie zwei oder mehr virtuelle Maschinen zugleich ausführen. Die Maschinen sind für den DHCP-Server von KVM nicht unterscheidbar und erhalten dieselbe IP-Adresse. Abhilfe: Geben Sie jeder virtuellen Maschine mit -net nic,macaddr=nn:nn:nn:nn:nn:nn eine eindeutige MAC-Adresse – und das von Anfang an! Jedes Mal, wenn Sie die MAC-Adresse ändern, bekommt der Netzwerkadapter der virtuellen Maschine einen neuen Devicenamen (also zuerst eth1, dann eth2 etc.). Das bringt die Netzwerkkonfiguration durcheinander (siehe auch Seite 1044). -no-acpi deaktiviert die ACPI-Unterstützung (Advanced Configuration and Power Interface). -nographic startet die virtuelle Maschine ohne Grafiksystem und ohne die Anzeige eines QEMU-Fensters. Die Kommunikation mit der virtuellen Maschine erfolgt direkt in der aktiven Konsole über die serielle Schnittstelle des Gastsystems. Die Option -nographic ermöglicht also die Nutzung einer virtuellen Maschine im Textmodus, setzt aber voraus, dass im Gastsystem ein gettyProzess mit der seriellen Schnittstelle kommuniziert (siehe Seite 1041).
1037
Kapitel 34
KVM
-snapshot führt KVM aus, ohne bleibende Änderungen an der Image-Datei der Festplatte durchzuführen. -vga cirrus/std gibt den gewünschten Typ der virtuellen Grafikkarte an. Standardmäßig emuliert KVM eine Cirrus-kompatible Grafikkarte mit einer Auflösung bis zu 1024*768 Pixeln. Dieses Grafiksystem wird von nahezu allen Gastsystemen korrekt erkannt (auch von Windows) und in einer akzeptablen Geschwindigkeit ausgeführt. Die Einstellung -vga std erlaubt eine wesentlich höhere Auflösung, sofern im Gastsystem der richtige Treiber verwendet wird. Bei Linux-Distributionen richten Sie eine minimale xorg.confDatei ein, die so aussieht: # /etc/X11/xorg.conf Section "Device" Identifier "kvm" Driver "vesa" EndSection Der Preis für die höhere Auflösung ist leider (zumindest bei Linux-Gästen) eine derart niedrige Zeichengeschwindigkeit, dass ein effizientes Arbeiten in einer grafischen Benutzeroberfläche nahezu unmöglich wird. Hohe Auflösung und hohe Geschwindigkeit verspricht das von Red Hat vorangetriebene Projekt Spice (Simple Protocol for Independent Computing Environments) in Kombination mit dem qxl-Grafiktreiber für X. Spice steht allerdings momentan nur für Fedora in Form von Paketen zur Verfügung ist relativ aufwendig zu konfigurieren. Das QEMU-Fenster
Tabelle 34.1: KVM/QEMUTastenkürzel
KVM stellt das emulierte System in einem einfachen Fenster ohne Menüs oder andere Bedienungselemente dar. Unbegreiflicherweise lautet der Fenstertitel immer QEMU, auch wenn in Wirklichkeit KVM im Einsatz ist. Zur Steuerung diverser Zusatzfunktionen dienen Tastenkürzel. Die wichtigsten sind in Tabelle 34.1 zusammengefasst. Im QEMU-Monitor können Sie Kommandos zur Steuerung der virtuellen Maschine ausführen. help stellt alle zulässigen Kommandos kurz vor. TASTENKÜRZEL
FUNKTION
(Strg)+(Alt)
den Tastaturfokus lösen
(Strg)+(Alt)+(F)
Vollbildmodus ein-/ausschalten
(Strg)+(Alt)+(1)
Standardausgabe anzeigen
(Strg)+(Alt)+(2)
QEMU-Monitor anzeigen
(Strg)+(Alt)+(3)
serielle Konsole anzeigen
(Strg)+(Alt)+(S)
Änderungen in der Image-Datei speichern (nur im Snapshot-Modus)
(Strg)+(Alt)+(U)
optimale Fenstergröße herstellen
(Strg)+(Alt)+(X)
das Programm beenden
Wenn Sie die Größe des KVM-Fensters verändern, wird sein Inhalt entsprechend skaliert. Darunter leidet die Schriftqualität massiv. (Strg)+(Alt)+(U) stellt die korrekten Fenstermaße wieder her.
1038
KVM ohne libvirt
Abschnitt 34.2
Einen KVM-Gast installieren und ausführen Die beiden folgenden Kommandos richten eine Image-Datei für die virtuelle Festplatte ein und starten KVM, wobei das ISO-Image einer Linux-Distribution (z. B. von Ubuntu Server) als Boot-Medium verwendet wird: user$ user$
Linux installieren
qemu-img create -f raw userver.img 10G kvm -boot d -cdrom userver.iso userver.img
Wenn die Installation gelungen ist, brauchen Sie das CD-Image nicht mehr und verwenden die virtuelle Festplatte zum Start des Systems: user$
kvm userver.img
Abbildung 34.1: Ubuntu Server als virtuelle KVM-Maschine
Die Warnung failed to find romfile pxe_rtl8139.bin, die beim Start von KVM angezeigt wird, wenn Sie Ubuntu als Host-System verwenden, können Sie ignorieren. Sie bedeutet nur, dass KVM keine Dateien findet, um die virtuelle Maschine über das Netzwerk zu booten (PXE steht für Preboot Execution Environment). Das war hier aber gar nicht beabsichtigt. (Wenn doch, installieren Sie das Paket kvm-pxe.) Am Beginn einer Ubuntu-Server-Installation können Sie mit (F4) die Installationsvariante EINE MINIMALE VIRTUELLE M ASCHINE INSTALLIEREN auswählen. Der Vorteil gegenüber einer herkömmlichen Server-Installation besteht darin, dass ein spezieller Kernel eingesetzt wird, der speziell für den Einsatz in virtuellen Maschinen optimiert ist und mit wenig zusätzlichem Ballast angereichert ist.
Minimales Ubuntu-System installieren
Störend beim Einsatz von Ubuntu im Textmodus ist der Umstand, dass es sich dabei gar nicht um einen echten VGA-Textmodus handelt. Vielmehr erfolgen alle Textausgaben im Grafikmodus. Deswegen ist das Scrolling im QEMU-Fenster unerträglich langsam. Abhilfe: Um zu vermeiden, dass Textkonsolen im Grafikmodus dargestellt werden, fügen Sie der Datei blacklist-framebuffer.conf die folgende Zeile hinzu:
1039
Kapitel 34
KVM
# Datei /etc/modprobe.d/blacklist-framebuffer.conf ... blacklist vga16fb Außerdem entfernen Sie in /etc/default/grub das Kommentarzeichen vor der Zeile: # Datei /etc/default/grub ... GRUB_TERMINAL=console ... Damit diese Einstellungen wirksam werden, führen Sie update-grub aus und starten die virtuelle Maschine dann neu. Minimales Fedora-System installieren
Auch bei Fedora ist eine Minimalinstallation möglich, wenn Sie zum Beginn der Installation (ÿ) drücken und den Installationsparameter text hinzufügen. Die Installation erfolgt nun im Textmodus, eine Paketauswahl ist nicht möglich. Anders als bei Ubuntu kommt aber kein besonderer Kernel zum Einsatz. Wesentlich ärgerlicher ist der Umstand, dass während der Installation keine Netzwerkkonfiguration erfolgt und auch keine entsprechenden Konfigurationswerkzeuge installiert werden. Die manuelle Installation von system-config-network-tui hat sich als Sackgasse erwiesen (zuerst dhclient eth0 und dann yum install system-config-network-tui): Die damit durchgeführte Konfiguration der Schnittstelle eth0 blieb wirkungslos (trotz chkconfig network on). Besser ist es, die Netzwerkkonfiguration gleich von Hand durchzuführen. Im Regelfall reicht es, die Datei /etc/sysconfig/network-scripts/ifcfg-eth0 wie folgt einzurichten: # Datei /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=52:54:00:12:34:56 NM_CONTROLLED=no ONBOOT=yes BOOTPROTO=dhcp TYPE=Ethernet USERCTL=no PEERDNS=yes IPV6INIT=no Außerdem müssen Sie sicherstellen, dass das Init-V-Script network gestartet wird: root#
Windows installieren
So wie Linux können Sie unter KVM auch Windows als Gastsystem installieren. Die folgenden Kommandos zeigen die Installation und Verwendung von Windows XP (siehe Abbildung 34.2). Die Option -localtime ist deswegen zweckmäßig, weil Windows standardmäßig annimmt, dass die CMOS-Uhr die lokale Uhrzeit (nicht die GMT-Zeit) enthält. user$ user$ user$
1040
chkconfig network on
qemu-img create -f qcow2 winxp.img 10G kvm -boot d -cdrom win-install-cd.iso -localtime winxp.img kvm -localtime -vga std winxp.img
(Image-Datei) (Installation) (Verwendung)
KVM ohne libvirt
Abschnitt 34.2
Abbildung 34.2: Windows XP als virtuelle KVMMaschine
KVM-Gäste im Textmodus bedienen Gerade bei Server-Installationen ist das langsame QEMU-Fenster nur schlecht zum Arbeiten geeignet. Um die virtuelle Maschine direkt in einem Terminalfenster zu steuern, führen Sie kvm mit der Option -nographics aus. Das funktioniert allerdings nur, wenn im Gastsystem ein getty-Prozess läuft, der über die serielle Schnittstelle kommuniziert. Standardmäßig ist das nicht der Fall. Deswegen müssen Sie zuerst (noch im herkömmlichen QEMU-Fenster) einige Konfigurationsarbeiten durchführen. Bei Fedora richten Sie die folgende Upstart-Konfigurationsdatei ein:
Fedora-GastKonfiguration
# Datei /etc/init/ttyS0.conf (Fedora) start on stopped rc RUNLEVEL=[12345] stop on runlevel [!12345] respawn exec /sbin/mingetty /dev/ttyS0 Damit ein root-Login über die serielle Schnittstelle möglich ist, müssen Sie außerdem an das Ende der Datei /etc/securetty eine Zeile mit dem Eintrag ttyS0 hinzufügen. Bei Ubuntu muss die Upstart-Datei so aussehen:
Ubuntu-GastKonfiguration
# Datei /etc/init/ttyS0.conf (Ubuntu) start on stopped rc RUNLEVEL=[12345] stop on runlevel [!12345] respawn exec /sbin/getty -L -8 38400 ttyS0 vt102
1041
Kapitel 34
KVM
Abbildung 34.3: Fedora als KVMGast in einem Konsolenfenster
Wenn Sie möchten, dass auch die Kernelmeldungen über die serielle Schnittstelle ausgegeben werden sollen, ändern Sie /etc/default/grub wie folgt und führen dann update-grub aus: # Datei /etc/default/grub (Ubuntu) ... GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0" ... GRUB_TERMINAL=console ... Test
Um zu testen, dass die Kommunikation über die seriellen Schnittstelle funktioniert, starten Sie getty manuell und wechseln dann mit (Strg)+(Alt)+(3) in die serielle Konsole des QEMU-Fensters. Dort sollten Sie eine Login-Aufforderung sehen. Wenn das klappt, starten Sie die KVM-Maschine mit dem folgenden Kommando neu. Nach ein paar Sekunden erscheint direkt im Terminal die LoginAufforderung. user$
kvm -nographic userver.img
34.3 libvirt-Werkzeuge Bevor Sie sich mit libvirt auseinandersetzen, lohnt eine kurze Diskussion über die Ideen, die hinter dieser Bibliothek und den dazugehörigen Werkzeugen stehen: » libvirt soll dabei helfen, eine größere Anzahl von virtuellen Maschinen effizient zu verwalten. libvirt kann virtuelle Maschinen beispielsweise während des Systemstarts automatisch starten, bei einem Shutdown herunterfahren sowie ihre Ressourcennutzung beobachten. Sie können neue virtuelle Maschinen per Kommando erzeugen, kopieren (klonen) etc. » Zur Benutzung der libvirt-Werkzeuge sind in der Regel keine root-Rechte erforderlich (es sei denn, Sie wollen Grundeinstellungen von KVM ändern). Mit libvirt gestartete virtuelle Maschinen laufen weiter, wenn Sie sich ab- und neu anmelden. » Bei komplexen Konfigurationen nehmen die für den Start von kvm erforderlichen Optionen rasch überhand. Deswegen speichert libvirt alle Einstellungen der virtuellen Maschinen in XMLDateien (standardmäßig im Verzeichnis ~/.libvirt/qemu). Das Format dieser XML-Dateien ist auf der folgenden Seite umfassend dokumentiert:
1042
libvirt-Werkzeuge
Abschnitt 34.3
http://libvirt.org/format.html Um den Start von kvm und damit um die Auswertung der XML-Datei und die Übergabe der korrekten Optionen kümmert sich libvirt. (Wenn Sie die resultierende, über mehrere Zeilen reichende Optionsliste des kvm-Kommandos ansehen möchten, führen Sie nach dem Start der virtuellen Maschine ps ax j grep kvm aus.) » libvirt ist dahingehend konzipiert, verschiedene Virtualisierungssysteme unter ein Dach zu bringen. Sie können mit libvirt also auch virtuelle Xen-Maschinen verwalten. (Auf diesen Aspekt gehe ich hier aber nicht weiter ein.) Damit Sie die libvirt-Werkzeuge verwenden können, installieren Sie unter Ubuntu die Pakete virtinst, libvirt-bin und virt-viewer, unter Fedora die Pakete libvirt, libvirt-client, pythonvirtinst und virt-viewer. Für die Kommunikation zwischen den virtuellen Maschinen und den libvirt-Werkzeugen ist der Dämon libvirtd verantwortlich, der während des Systemstarts automatisch gestartet wird.
Installation
Bei Ubuntu werden Sie bei der Installation des libvirt-bin-Pakets automatisch der Gruppe libvirtd hinzugefügt. Damit diese Änderung wirksam wird, müssen Sie sich aus- und neu einloggen. Damit auch andere Benutzer die libvirt-Werkzeuge verwenden können, müssen diese ebenfalls der libvirtd angehören. Fedora sieht das Init-V-Script /etc/init.d/libvirt-guests vor, um den Zustand laufender virtueller Maschinen bei einem Shutdown zu speichern und beim nächsten Bootprozess automatisch wiederherzustellen. Bei meinen Tests hat das aber nicht immer zuverlässig funktioniert. Ubuntu hat momentan (in Version 10.10) kein äquivalentes Script.
virt-install Mit dem Kommando virt-install richten Sie eine neue virtuelle Maschine ein. An das Kommando müssen zumindest die Größe des virtuellen RAMs, der gewünschte Name der virtuellen Maschine, der Dateiname einer Image-Datei sowie die gewünschte Installationsart (z. B. --cdrom oder --import) übergeben werden. Für alle anderen Eckdaten der virtuellen Maschine wählt virt-install selbst geeignete Einstellungen: Es kommt dieselbe CPU-Architektur wie auf dem Host-Rechner zum Einsatz (Option --arch), die virtuelle Maschine wird mit einem virtuellen RTL8139-Netzwerkadapter ausgestattet (wobei jede neue virtuelle Maschine eine eigene, eindeutige MAC-Adresse erhält!), erhält eine virtuelle Cirrus-Grafikkarte etc. Sie können die Einstellungen nach der Installation in der Datei ~/.virtlib/qemu/name.xml nachlesen. man virt-install dokumentiert unzählige Optionen, um die Einstellungen bei Bedarf zu verändern. virt-install wird ohne root-Rechte ausgeführt. (Wenn Sie das Kommando als root ausführen, wird die virtuelle Maschine auf KVM-Systemebene erzeugt, was selten zweckmäßig ist.) Das folgende Beispiel zeigt den Start einer Linux-Installation. Achten Sie darauf, die Image-Datei im RAW-Format zu erzeugen – die libvirt-Werkzeuge haben momentan (Herbst 2010) große Probleme mit anderen Image-Formaten.
1043
Kapitel 34
KVM
user$ user$
qemu-img create image.raw 10G virt-install --name vmname --ram 384 --cdrom install.iso --disk image.raw
Die eigentliche Installation des Betriebssystems erfolgt in einem virt-viewer-Fenster via VNC. Stellen Sie sicher, dass das Programm virt-viewer installiert ist! Sollte das nicht der Fall sein, können Sie die VNC-Verbindungsdaten mit dem virsh-Kommando vncdisplay ermitteln und die Installation mit einem beliebigen anderen VNC-Client durchführen. Eine VNC-Verbindung ist aus Sicherheitsgründen nur vom lokalen Rechner erlaubt. Wenn Sie die Installation auf einem anderen Rechner via VNC steuern möchten, müssen Sie mit den Optionen --vnclisten n.n.n.n die IP-Adresse des Hostrechners angeben (oder 0.0.0.0, um den Zugriff von jedem beliebigen anderen Rechner zuzulassen). Migration von KVM zu libvirt
Es ist möglich, eine mit kvm eingerichtete virtuelle Maschine mit dem Virtual Machine Manager bzw. mit anderen libvirt-Werkzeugen weiterzuverwenden. Der Migration ist aber nicht ohne Tücken. Falls Sie die Image-Datei in einem anderen Format als raw eingerichtet haben, sollten Sie die Datei in ein raw-Image umwandeln. Nach meinen Erfahrungen haben die libvirt-Werkzeuge momentan große Probleme im Umgang mit qcow2-Images. Diverse Fehler sind in den Bug-Datenbanken von Ubuntu, Fedora etc. dokumentiert, sodass immerhin die Hoffnung besteht, dass libvirt in Zukunft wieder besser mit dem QCOW2-Format harmonieren wird. Zur Konvertierung von QCOW2 nach RAW führen Sie das folgende Kommando aus: user$
qemu-img convert -f qcow2 image.qcow2 -O raw image.raw
Anschließend führen Sie die Migration wie folgt durch: user$
virt-install --name name --ram n --disk image.raw --import
Die virtuelle Maschine wird sofort gestartet. Wenn virt-viewer installiert ist, wird die Maschine dort angezeigt. Das Network-Device bekommt beim Import eine neue MAC-Adresse. Das kann dazu führen, dass in der virtuellen Maschine aus eth0 das Device eth1 wird. Dieses ist nicht konfiguriert, und somit hat die virtuelle Maschine keine Netzwerkverbindung mehr. Abhilfe: Passen Sie innerhalb der virtuellen Maschine entweder die für die eth-Nummerierung verantwortlichen udev-Regeln an (siehe Seite 823), oder führen Sie für den neuen Devicenamen abermals eine Netzwerkkonfiguration durch.
virsh Mit dem Kommando virsh starten Sie eine Shell zur Verwaltung der virtuellen Maschinen, die libvirt bekannt sind (die also zuvor mit virt-install oder mit dem Virtual Machine Manager eingerichtet wurden). Der Umgang mit virsh ist einfach: Sie starten die Shell, stellen die Verbindung zu libvirtd her und führen dann Administrationskommandos aus: user$ virsh Willkommen bei virsh, dem interaktiven Virtualisierungsterminal.
1044
libvirt-Werkzeuge
virsh #
Abschnitt 34.3
connect qemu:///session
virsh # list --all Id Name Status ---------------------------------1 userver laufend - fedora ausschalten - ubuntu1004 ausschalten virsh # start fedora Domain fedora gestartet virsh # :1
vncdisplay fedora
virsh #
exit
Im Folgenden sind nur einige elementare virsh-Kommandos beschrieben. man virsh dokumentiert mindestens hundert weitere Kommandos! Beachten Sie, dass virtuelle Maschinen in der virshNomenklatur »Domänen« heißen. connect qemu:///session stellt eine gewöhnliche Benutzerverbindung zu libvirtd her. Auf diese Weise können eigene virtuelle Maschinen verwaltet werden. connect qemu:///system stellt eine root-Verbindung zu libvirtd her. Das ist nur erforderlich, wenn globale KVMOptionen oder virtuelle Netzwerke verändert werden sollen. list [--inactive oder --all] listet alle laufenden virtuellen Maschinen auf. Wenn Sie nur die gerade nicht aktiven oder überhaupt alle Maschinen auflisten möchten, geben Sie die Optionen --inactive oder --all an. start name startet die angegebene virtuelle Maschine. Wenn Sie mit der Maschine im Grafikmodus kommunizieren möchten, verwenden Sie dazu entweder einen VNC-Client (die Verbindungsdaten ermittelt das virsh-Kommando vncdisplay, siehe unten) oder das Programm virt-viewer. suspend/resume name stoppt die angegebene virtuelle Maschine vorübergehend bzw. setzt die Ausführung wieder fort. Die gestoppte virtuelle Maschine beansprucht weiterhin RAM! Es wird also nur die virtuelle CPU angehalten. shutdown/reboot name fährt die virtuelle Maschine herunter bzw. startet sie neu. Die virtuelle Maschine erhält via ACPI ein Shutdown-Signal. Es ist allerdings der virtuellen Maschine überlassen, ob sie auch darauf reagiert. Wenn das nicht der Fall ist, hilft in der Regel die Installation des Pakets acpid in der virtuellen Maschine. (Stellen Sie sicher, dass acpid tatsächlich durch das Init-System gestartet wird!)
1045
Kapitel 34
KVM
save name dateiname speichert den Zustand der virtuellen Maschine (also im Wesentlichen den Inhalt des RAMs) in einer Datei und stoppt dann die Ausführung der Maschine. restore dateiname aktiviert die zuvor gespeicherte virtuelle Maschine wieder. Die Zustandsdatei kann anschließend gelöscht werden. destroy name beendet die virtuelle Maschine sofort. Das ist so, als würden Sie bei Ihrem Rechner das Stromkabel ausstecken, und es kann dieselben Folgen haben (also ein zerstörtes Dateisystem etc.)! undefine name löscht die XML-Datei, die die virtuelle Maschine beschreibt. Die Image-Datei mit der virtuellen Festplatte bleibt erhalten. autostart [--disable] name gibt an, dass die virtuelle Maschine während des Bootprozesses des Hostrechners automatisch gestartet werden soll. Mit der Option --disable wird der automatische Start wieder abgestellt. Der automatische Start funktioniert nur für Maschinen, die auf Systemebene eingerichtet werden (qemu:///system). Auf Session-Ebene werden autostart-Maschinen dagegen erst gestartet, wenn mit virsh zum ersten Mal eine Verbindung zu libvirtd hergestellt wird. console name ermöglicht die Bedienung der angegebenen virtuellen Maschine direkt in der Konsole. Das setzt voraus, dass in der virtuellen Maschine ein getty-Prozess für die serielle Schnittstelle /dev/ttyS0 läuft (siehe Seite 1041). Um die Verbindung zu beenden, drücken Sie (Strg)+(_]). ttyconsole name gibt an, über welches Device des Host-Computers die serielle Schnittstelle des Gastsystems zugänglich ist (z. B. /dev/pts/5). Sie können nun in einem Terminalfenster socat /dev/pts/5 ausführen und dann mit der virtuellen Maschine kommunizieren (ganz ähnlich wie beim oben beschriebenen console-Kommando). Vorher muss in der Regel das Paket socat installiert werden. vncdisplay name liefert die IP-Adresse (leer für localhost) und Portnummer für die VNC-Anzeige der virtuellen Maschine. Sie können nun einen beliebigen VNC-Client (z. B. Vinagre) starten, um mit der virtuellen Maschine zu interagieren. (Am KVM-Host können Sie stattdessen auch virt-viewer name ausführen.) Aus Sicherheitsgründen funktioniert der VNC-Zugang nur von localhost. Ändern Sie gegebenenfalls /etc/libvirt/qemu.conf (global für alle Maschinen), oder fügen Sie in der XML-Datei der virtuellen Maschine das Attribut listen=’1.2.3.4’ in das Element ein (wobei Sie die IP-Adresse des Host-Rechners oder 0.0.0.0 angeben). edit name lädt die XML-Datei zur Beschreibung der virtuellen Maschine in einen Editor (normalerweise Vi, es sei denn, die Umgebungsvariable $EDITOR verweist auf einen anderen Editor).
1046
libvirt-Werkzeuge
Abschnitt 34.3
virt-viewer virt-viewer ist ein VNC-Client zur Darstellung des Bildschirminhalts sowie zur Kommunikation mit einer virtuellen Maschine. virt-viewer name stellt die Verbindung zu einer laufenden virtuellen Maschine her. Das setzt voraus, dass die virtuelle Maschine VNC nutzt. Statt virt-viewer können Sie natürlich auch jeden beliebigen anderen VNC-Client einsetzen. Der einzige Unterschied besteht darin, dass Sie zuerst mit dem virsh-Kommando vncdisplay die Verbindungsdaten ermitteln müssen. Beachten Sie, dass weder in virt-viewer noch in anderen VNC-Clients die aus dem QEMU-Fenster bekannten Tastenkürzel gelten!
Virtual Machine Manager Anstatt virtuelle Maschinen mit virt-install einzurichten, mit virsh zu administrieren und mit virt-viewer zu steuern, können Sie all diese Schritte auch mit dem Virtual Machine Manager durchführen (siehe Abbildung 34.4). Dieses Programm ist eine grafische Benutzeroberfläche zu den wichtigsten libvirt-Werkzeugen.
Abbildung 34.4: Der Virtual Machine Manager
Wenn Sie die Konzepte von KVM und der libvirt-Werkzeuge verstanden haben, ist die Bedienung des Virtual Machine Managers relativ einfach (wenn auch nicht so intuitiv wie bei VirtualBox). Ein wenig irritierend ist der Umstand, dass die Einstellungen und die Anzeige des aktuellen Bildschirminhalts einer virtuellen Maschine im selben Fenster erfolgen. Mit A NZEIGEN jKONSOLE bzw. A NZEIGENjDETAILS schalten Sie zwischen diesen beiden Darstellungsmodi um. (Virtuelle) Hardware-Komponenten von virtuellen Maschinen können vielfach nicht direkt verändert werden. Stattdessen müssen Sie die betreffende Komponente (z. B. einen Netzwerkadapter) zuerst
1047
Kapitel 34
KVM
entfernen und dann mit HARDWARE HINZUFÜGEN neu definieren. Wenn Sie im Virtual Machine Manager neue Image-Dateien einrichten, werden diese standardmäßig im Verzeichnis /var/lib/libvirt/ gespeichert. Bei Fedora ist der Virtual Machine Manager so eingerichtet, dass er standardmäßig eine Verbindung zu qemu:///system herstellt. Dazu ist das root-Passwort erforderlich. Bei Ubuntu ist hingegen kein Passwort nötig: Der Virtual Machine Manager greift dafür nur auf lokale Ressourcen zurück (qemu:///session).
34.4 Integration der virtuellen Maschinen in das LAN (Netzwerkbrücke) Standardmäßig verwendet KVM ein sogenanntes Usermode-Networking. Den virtuellen Maschinen wird dabei via DHCP eine IP-Adresse im Bereich 10.0.2.* zugewiesen. Der Host-Rechner dient mit der IP-Adresse 10.0.2.2 als Gateway ins Internet (vorausgesetzt natürlich, der Host-Rechner hat Internetzugang). Die Gäste können zudem mit dem Host über dessen Adresse 10.0.2.2 kommunizieren. Davon abgesehen, können die KVM-Gäste aber nicht auf Netzwerkdienste im lokalen Netzwerk zugreifen, und umgekehrt können auch die Rechner im LAN nicht mit KVM-Gästen kommunizieren. Damit Sie auf KVM-Gästen Server-Dienste für das lokale Netzwerk anbieten können, brauchen Sie eine (virtuelle) Netzwerkbrücke (Bridge), die die virtuellen Netzwerkadapter der KVM-Maschinen mit dem physikalischen Netzwerkadapter des Host-Rechners verbindet. Um die Brücke zu bauen, verwenden Sie die Werkzeuge aus dem Paket bridge-utils. Die Konfigurationsdetails variieren aber wie üblich von Distribution zu Distribution. Im Folgenden beziehe ich mich auf Ubuntu. Wenn Sie mit Fedora arbeiten, finden Sie hier eine Anleitung: http://www.howtoforge.com/virtualization-with-kvm-on-a-fedora-11-server Ganz egal, mit welcher Distribution Sie arbeiten: Stellen Sie sicher, dass der Network Manager deaktiviert ist (siehe Seite 845)! Konfiguration der Netzwerkbrücke (Ubuntu)
Bei Ubuntu erfolgt die Konfiguration durch die Datei /etc/network/interfaces. Die dort vorhandenen Zeilen zur manuellen Konfiguration der Schnittstelle zum LAN (in diesem Beispiel also eth1) müssen dahingehend geändert werden, dass diese Schnittstelle nun manuell gesteuert werden kann. Dafür wandern die entsprechenden Konfigurationseinstellungen nun in die Beschreibung des Interfaces br0 (oder wie auch immer Sie die Brücke benennen). In diesem Beispiel ist 10.0.0.138 das Gateway und der DHCP-Server des lokalen Netzwerks. Der Bridge selbst wird die IP-Adresse zugewiesen, die bisher der Host-Rechner innehatte (10.0.0.120). Vergessen Sie nicht, dass /etc/ resolv.conf die Adresse des Nameservers enthalten muss! # Datei /etc/interfaces/network (Ubuntu) # Loopback-Netzwerkschnittstelle (unverändert) auto lo iface lo inet loopback
1048
Integration der virtuellen Maschinen in das LAN (Netzwerkbrücke)
Abschnitt 34.5
# Schnittstelle zum LAN (manuell) auto eth1 iface eth1 inet manual # Brücke zu eth1 auto br0 iface br0 inet static address 10.0.0.120 network 10.0.0.0 netmask 255.255.255.0 broadcast 10.0.0.255 gateway 10.0.0.138 bridge_ports eth1 Mit /etc/init.d/networking restart starten Sie das Netzwerk neu. Die Brücke br0 hat nun die IPAdresse 10.0.0.120 und überträgt die IP-Pakete an den physikalischen Netzwerkadatper eth1. Falls die Brücke ihre IP-Adresse via DHCP beziehen soll, vereinfacht sich die Konfiguration der Schnittstelle br0: # Datei /etc/interfaces/network # Loopback-Netzwerkschnittstelle (unverändert) auto lo iface lo inet loopback # Schnittstelle zum LAN (manuell) auto eth1 iface eth1 inet manual # Brücke zu eth1 auto br0 iface br0 inet dhcp bridge_ports eth1 Beim Einrichten der virtuellen Maschine verwenden Sie die Option --net bridge:br0, wobei Sie statt br0 den Device-Namen der Netzwerkbrücke angeben: root# root#
Konfiguration der virtuellen Maschine
qemu-img create image.raw 10G virt-install --name vmname --ram 384 --cdrom install.iso \ --disk image.raw --net bridge:br0
Entscheidend ist, dass virt-install mit root-Rechten ausgeführt und die virtuelle Maschine auf KVM-Systemebene eingerichtet wird (also qemu:///system). Der Grund: Die Netzwerkkommunikation zwischen dem Host-Rechner und dem KVM-Gast erfolgt durch sogenannte TUN/TAP-Devices. Dabei handelt es sich um vom Kernel simulierte Netzwerkschnittstellen, die sowohl bei der erstmaligen Installation als auch bei jedem nachfolgenden Start eingerichtet werden müssen. Die libvirt-Werkzeuge kümmern sich zum Glück um alle Details, können ihre Arbeit aber nur mit rootRechten verrichten.
1049
Kapitel 34
KVM
34.5 Direkter Zugriff auf die Dateisysteme einer Image-Datei Bisweilen kommt es vor, dass Sie den Inhalt eines Dateisystems einer virtuellen Maschine lesen oder ändern möchten, ohne die virtuelle Maschine zu starten. Das ist beispielsweise dann erforderlich, wenn sich die virtuelle Maschine aus irgendeinem Grund nicht mehr starten lässt und Sie Reparaturarbeiten durchführen müssen. Falls die Image-Datei nicht im RAW-Format vorliegt, müssen Sie die Datei in dieses Format umwandeln: user$
qemu-img convert -f qcow2 image.qcow2 -O raw image.raw
Danach verwenden Sie das Kommando kpartx aus dem gleichnamigen Paket, um die in der RAWDatei enthaltenen Partitionen mit Loop-Devices zu verbinden: root# kpartx -av image.raw add map loop0p1 (252:12): 0 1024000 linear /dev/loop0 2048 add map loop0p2 (252:13): 0 19945472 linear /dev/loop0 1026048 Soweit es sich um normale Partitionen handelt, können Sie diese nun direkt mit mount in das Dateisystem einbinden: root# root#
mkdir /kvm-image-part1 mount /dev/mapper/loop0p1 /kvm-image-part1
Wenn Sie in der virtuellen Maschine LVM konfiguriert haben, stehen die resultierenden Physical und Logical Volumes sowie Volume Groups direkt zur Verfügung. Listen der LVM-Elemente liefern lvscan, pvscan und vgscan. Der Zugriff auf die LVs setzt voraus, dass auf dem Host-System die LVMWerkzeuge installiert sind. root# lvscan ACTIVE '/dev/VolGroup/lv_root' [7,56 GiB] inherit ACTIVE '/dev/VolGroup/lv_swap' [1,94 GiB] inherit ... root# mkdir /kvm-image-part2 root# mount /dev/VolGroup/lv_root /kvm-image-part2 Nun können Sie über die Verzeichnisse kvm-image-partn auf die Dateisysteme in der virtuellen KVMFestplatte zugreifen. Wenn Sie damit fertig sind, müssen Sie aufräumen:
Hinweis
root# root# root#
1050
umount /kvm-image-part1 umount /kvm-image-part2 kpartx -dv image.raw
Bei meinen Experimenten hatte ich Probleme, einmal aktivierte Physical Volumes zu deaktivieren. kpartx -dv lieferte deswegen die Fehlermeldung device or resource busy. Abhilfe: Ermitteln Sie mit dmsetup info eine Liste aller aktiven Volume Groups, und deaktivieren Sie dann die Volume Group des KVM-Images mit dmsetup remove [-f] devicename (in meinem Fall loop0p2). Anschließend sollte ein neuerlicher Aufruf von kpartx -dv zum Erfolg führen.
Teil 6 Distributionsspezifische Details
35. Debian 5 Keine Distribution steht so sehr für das »reine« Linux wie Debian – und das aus mehreren Gründen: » Die Entwicklung von Debian erfolgt ausschließlich durch eine freie Entwicklergemeinde. Hinter Debian stehen weder eine Firma noch kommerzielle Interessen, sondern (laut Wikipedia) über 1000 Entwickler, von denen die meisten ehrenamtlich für Debian arbeiten. In logischer Konsequenz ist sowohl Debian an sich als auch der Zugang zu Updates vollkommen frei. » Zu den zentralen Zielen Debians zählt es, dass die Distribution wirklich »frei« im Sinne der Open-Source-Idee bleibt. Die Integration von Binärtreibern oder kommerzieller Software ohne frei verfügbaren Quellcode ist selbstverständlich tabu. Die Debian-Entwickler diskutieren aber auch darüber, ob es vertretbar ist, Firmware-Dateien für Hardware-Geräte mitzuliefern, wenn es dafür keinen Open-Source-Code gibt. Auch die Weitergabe von Dokumentation und Bildern, deren Lizenz unklar oder inkompatibel zur GPL ist, ist umstritten. » Bei Debian sind Stabilität und Sicherheit wichtiger als neue Installationen. Deswegen hinkt eine gewöhnliche Debian-Installation dem aktuellen Entwicklungsstand bei nahezu allen wichtigen Komponenten (Kernel, Xorg, Gnome, KDE, OpenOffice, Netzwerk-Dienste etc.) immer ein bis zwei Versionsnummern hinterher. Wer aktuellere Versionen benötigt, kann diese aus den unstablePaketquellen installieren. » Debian unterstützt wesentlich mehr Hardware-Plattformen als jede andere Distribution. Auch das ist ein Grund dafür, dass die Entwicklung einer neuen Debian-Version oft länger dauert als geplant. » Die Leitung des Debian-Projekts erfolgt durch eine demokratische Organisation, deren Führungsmitglieder regelmäßig gewählt werden. Die Spielregeln sind in einem »Gesellschaftsvertrag« formuliert: http://www.debian.org/social_contract.de.html Dieser Gesellschaftsvertrag enthält auch »Richtlinien für Freie Software« (DFSG = Debian Free Software Guidelines). Diese Richtlinien formulieren Kriterien, die ein Software-Projekt erfüllen muss, damit es Teil der offiziellen Debian-Pakete werden kann. Debian hat im Linux-Server-Segment laut einer Anfang 2009 durchgeführten c’t-Umfrage einen Marktanteil von beinahe 50 Prozent in deutschen Unternehmen. Dafür gibt es mehrere Gründe: Debian hat sich einen Ruf als sicheres System erarbeitet, ist kostenlos verfügbar und lässt sich dank des Debian-Paketsystems über viele Jahre ohne Neuinstallation immer wieder aktualisieren.
Kapitel 35
Debian 5
Abbildung 35.1: Der DebianDesktop
Im Desktop-Segment war Debian nie so präsent. Das liegt unter anderem daran, dass Debian noch immer den Ruf hat, dass es schwieriger zu installieren sei als andere Distributionen. Das stimmt aber schon lange nicht mehr: Schon seit Version 4 bietet auch Debian ein grafisches Installationsprogramm. Auch die Benutzeroberfläche ist ähnlich einfach zu bedienen wie die der viel gepriesenen Ubuntu-Distribution. Die Bedeutung von Debian reicht weit über das hinaus, was sich in Marktanteilen messen lässt: Debian ist ein wichtiges und unverzichtbares Fundament für zahlreiche andere Distributionen, allen voran für das gerade erwähnte Ubuntu. Viele Debian-Werkzeuge, angefangen bei der Paketverwaltung, haben Eingang in zahlreiche andere Distributionen gefunden. Umfassende Informationen zu Debian finden Sie auf dessen Website: http://www.debian.org Werfen Sie auch einen Blick in das Debian GNU/Linux Anwenderhandbuch von Frank Ronneburg, das vollständig online verfügbar ist: http://www.debiananwenderhandbuch.de/ Kritik
1054
Allen Errungenschaften zum Trotz gibt es natürlich auch Kritik an Debian. Heiß umstritten sind insbesondere die oft jahrelangen Release-Zyklen, die durch interne Querelen um bisweilen fast schon philosophische Details regelmäßig noch größer werden als ursprünglich geplant. Ubuntu hat bewiesen, dass es auf der Basis der Debian-Pakete möglich ist, halbjährlich aktuelle Versionen zu veröffentlichen. Und gerade der große Erfolg von Ubuntu irritiert manche Debian-Entwickler, weil
Debian 5
Abschnitt 35.1
es den Anschein hat, als würde Ubuntu dank einer besseren Vermarktung gewissermaßen die Ernte Debians einfahren. Im Vergleich zu anderen Distributionen verzichtet Debian dankenswerterweise auf unzählige Distributionsvarianten. Es gibt nur ein Debian, das aus einem Pool von rund 22.000 Paketen besteht. Die genaue Anzahl variiert je nach CPU-Architektur. Je nachdem, welches Installationsmedium Sie einsetzen, müssen Sie bei Bedarf mehr oder weniger Pakete aus dem Internet herunterladen.
Versionen/ Varianten
Die Installation des Grundsystems kann wahlweise von einer oder mehreren DVDs, von einer ganzen Serie von CDs oder von einer Netzwerkinstallations-CD ( »netinst«-Image, rund 130 MByte) erfolgen. Diese CD enthält nur das Installationsprogramm. Alle Pakete werden während der Installation aus dem Internet oder von einem lokalen Server heruntergeladen. Wenn Sie normalerweise die ISOImages von CDs oder DVDs herunterladen und die Datenträger selbst brennen, sollten Sie diese Installationsvariante in Erwägung ziehen: Sie müssen nur eine CD brennen und nur die Pakete herunterladen, die Sie tatsächlich brauchen. Beeindruckend ist die Hardware-Unterstützung: Während andere Distributionen zumeist nur zwei oder drei CPU-Plattformen unterstützen, sind es bei Debian momentan zwölf: amd64, Alpha, Arm, Armel, HPPA, i386, IA64, Mips, Mipsel, PPC, S390 und Sparc. Für die Architekturen i386 und amd64 gibt es nicht nur Installations-, sondern auch Live-CDs. Damit brauchen Debian-Anwender für etwaige Reparaturarbeiten nicht mehr auf inoffizielle Debian-Live-Systeme bzw. auf Knoppix oder Ubuntu ausweichen. Dieses Kapitel bezieht sich auf das seit Februar 2009 verfügbare Debian 5 »Lenny«, wobei ich die meisten Tests mit der AMD64-Version durchgeführt habe (die selbstverständlich auch auf aktuellen Intel-Prozessoren mit 64-Bit-Unterstützung läuft). Leider sind die mitgelieferten SoftwareVersionen nicht mehr besonders aktuell (siehe Tabelle 35.1). BASIS
VERSION
DESKTOP
VERSION
SERVER
VERSION
Kernel
2.6.26
Gnome
2.22 (teils 2.20)
Apache
2.2
gcc
4.3
KDE
3.5
MySQL
5.0
glibc
2.7
Iceweasel (Firefox)
3.0
OpenSSH
5.1
X-Server
1.4.2
Gimp
2.4
PHP
5.2
GRUB
0.97
OpenOffice
2.4
Samba
3.2
Debian 6.0 (Codename »Squeeze«) befindet sich seit August 2010 im Code-Freeze-Status. Das bedeutet, dass keine neuen Features hinzukommen und nur noch Fehlerkorrekturen durchgeführt werden. Für die Fertigstellung von Debian gibt es noch keinen offiziellen Termin; realistisch erscheint Ende 2010 oder Anfang 2011. Wenige Wochen nach der Veröffentlichung der finalen Version von Debian 6 werde ich auf meiner Website http://kofler.info ein kostenloses Update-Kapitel zum Download zur Verfügung stellen.
Tabelle 35.1: SoftwareVersionen in Debian 5 Debian 6
1055
Kapitel 35
Debian 5
35.1 Installation Wie üblich beginnen Sie die Installation, indem Sie Ihren Rechner neu starten und die Debian-CD oder -DVD einlegen. Auf der Willkommensseite geben Sie an, welche Installationsvariante Sie nutzen möchten: INSTALL G RAPHICAL INSTALL A DVANCED O PTIONS HELP
Standardinstallation im Textmodus Standardinstallation im Grafikmodus Installation für Experten, KDE-Installation, Rescue-System etc. Hilfetexte (drücken Sie (F2) bis (F10))
Standardmäßig startet das Installationsprogramm im Textmodus. Diese Installationsform ist nahezu identisch mit der von Ubuntu-Alternate-CDs (siehe 1114). Das ist kein Zufall – Ubuntu hat das Installationsprogramm mit wenigen Änderungen von Debian übernommen. Seit Version 4 gibt es auch die Möglichkeit, die Installation im Grafikmodus auszuführen. Diese Installationsvariante bietet zwar keine zusätzlichen Funktionen, sieht aber wesentlich ansprechender aus. Während der Installation können Sie das aktuelle Aussehen des Installationsprogramms dank eines dafür vorgesehenen Buttons in Screenshots dokumentieren. Die Screenshots werden im Verzeichnis /var/log gespeichert, gehen aber beim Neustart des Rechners beim Ende der Installation verloren. Um die Bilder zu archivieren, wechseln Sie vor dem Neustart in eine Textkonsole und kopieren die Dateien nach /target/root oder in ein anderes Verzeichnis Ihrer Wahl. Wenn Sie Hardware-Probleme haben, führen Sie A DVANCED O PTIONSjEXPERT INSTALL aus. Sie können nun ganz genau Einfluss auf die einzelnen Installationsschritte und insbesondere auf das Laden von Kernelmodulen nehmen. (Das setzt natürlich einiges Linux-Know-how voraus.) Normalerweise wird Debian mit dem Gnome-Desktop installiert. Wenn Sie ein anderes DesktopSystem wünschen, führen Sie A DVANCED O PTIONSjA LTERNATIVE DESKTOP ENVIRONMENTS aus. Zur Wahl stehen KDE, LXDE und Xfce. Installation im Grafikmodus
Im Folgenden gehe ich davon aus, dass Sie sich für eine Standardinstallation im Grafikmodus entschieden haben. Die ersten Schritte betreffen die Einstellung der Sprache und des Tastaturlayouts. Nach der Erkennung der CD erfolgt die Netzwerkkonfiguration. Falls Ihr Rechner über mehrere Netzwerkschnittstellen verfügt, müssen Sie die richtige auswählen. Sofern Ihr Rechner an einen lokalen Server oder einen ADSL-Router mit DHCP-Server angeschlossen ist, erfolgt die weitere Netzwerkkonfiguration automatisch. Andernfalls müssen Sie die gewünschte IP-Adresse, das Gateway etc. selbst angeben.
Partitionierung der Festplatte
Debian stellt im Prinzip dieselben Partitionierungsvarianten zur Auswahl wie Ubuntu (siehe Seite 1115). Wenn Sie die Partitionierung selbst vornehmen möchten, wählen Sie den Punkt MANUELL. Das Installationsprogramm zeigt nun eine Liste aller verfügbaren Partitionen an. Vorhandene Partitionen wählen Sie per Doppelklick aus. Neue Partitionen erstellen Sie, indem Sie den Punkt FREIER SPEICHER am Ende der Liste anklicken. Sie können übrigens auch vorhandene Windows-Partitionen verkleinern, um so Platz für neue Linux-Partitionen zu schaffen. Die verschachtelten Dialoge zur Bearbeitung der Partitionen sind leider vollkommen unübersichtlich und machen von den Möglichkeiten einer grafischen Benutzeroberfläche wenig Gebrauch. Die
1056
Installation
Abschnitt 35.1
Bedienung gelingt erst, sobald Ihnen klar wird, dass viele Texte als Menükommandos zu interpretieren sind und beim Anklicken zu weiteren Dialogen führen. Beispielsweise führt ein Mausklick auf die Zeile B ENUTZEN ALS: N ICHT BENUTZEN in eine Auswahlliste, in der Sie den Dateisystemtyp angeben (üblicherweise ext3, aber auch ReiserFS, JFS, XFS etc. stehen zur Wahl).
Abbildung 35.2: Partitionierung der Festplatte
Mit A NLEGEN DER PARTITION BEENDEN speichern Sie die Einstellungen der zuletzt bearbeiteten Partition. Anschließend können Sie eine weitere Partition bearbeiten oder die PARTITIONIERUNG BEENDEN und alle durchgeführten Ä NDERUNGEN ÜBERNEHMEN . Das Installationsprogramm zeigt eine Zusammenfassung der geplanten Änderungen an der Festplattenpartitionierung an und führt diese nach einer weiteren Bestätigung schließlich aus. Beim Anlegen neuer Partitionen verändert das Installationsprogramm die Partitionstabelle unter Umständen so, dass es später sehr schwierig ist, weitere Partitionen anzulegen (insbesondere bei der Installation anderer Distributionen, z. B. Fedora oder SUSE). Von diesem Problem sind Sie nur betroffen, wenn Sie nach Debian weitere Betriebssysteme auf Ihrem Rechner installieren möchten – andernfalls können Sie die folgenden Ausführungen getrost ignorieren. Ich setze nun voraus, dass Sie wissen, was primäre, erweiterte und logische Partitionen sind und dass maximal drei primäre und eine erweiterte Partition pro Festplatte erlaubt sind (siehe Seite 45).
Ärger mit der Partitionierung
Das Problem besteht darin, dass das Installationsprogramm beim Anlegen einer neuen logischen Partition die erweiterte Partition anschließend genau auf das Maß verkleinert, das notwendig ist, um alle logischen Partitionen aufzunehmen. Das ist am einfachsten anhand eines Beispiels zu verstehen: Nehmen Sie an, Ihre 160-GByte-Festplatte hat momentan eine primäre Partition sda1 (20 GByte), eine erweiterte Partition sda2 (140 GByte) und darin zwei logische Partitionen sda5 und sda6 (je 10 GByte). Insgesamt füllen sda1, sda5 und sda6 40 GByte. Die erweiterte Partition reicht bis zum
1057
Kapitel 35
Debian 5
Ende der Festplatte, sodass Sie darin beinahe beliebig viele logische Partitionen anlegen können – es sind ja noch 120 GByte frei. Nun erzeugen Sie mit dem Debian-Installationsprogramm zwei neue logische Partitionen: sda7 (10 GByte für das Root-Dateisystem) und sda8 (1 GByte für den Swap-Bereich). Das hat aber zur Folge, dass Debian die erweiterte Partition sda2 so weit verkleinert, dass sda5 bis sda8 gerade noch Platz haben. Wenn Sie später weitere logische Partitionen erzeugen möchten, müssen Sie die erweiterte Partition wieder vergrößern. Dazu sind aber weder fdisk noch die Partitionierungswerkzeuge von SUSE oder Red Hat in der Lage! Nur die Partitionseditoren von Debian, Mandriva und Ubuntu können diese selbst geschaffenen Hürden überwinden. Solche Sackgassen kennt man sonst eigentlich nur von anderen Betriebssystemen ... Der einfachste Ausweg besteht darin, entweder schon bei der Installation oder später in einem laufenden Debian-System eine zusätzliche logische Partition in maximaler Größe gleichsam als Platzhalter zu erzeugen. Diese Partition bleibt vorerst unbenutzt und hat nur den Zweck, dass die erweiterte Partition möglichst groß bleibt. Wenn Sie später eine andere Linux-Distribution installieren, löschen Sie zuerst die Platzhalterpartition und legen in dem nun frei werdenden Platz neue Partitionen an. root-Passwort, Benutzer
Das Installationsprogramm richtet nun einige Basispakete ein. In den nächsten Dialogen geben Sie das Passwort für root ein und legen einen neuen Benutzer an.
Paketmanager konfigurieren
Im nächsten Dialog fragt das Installationsprogramm, welchen »Spiegelserver« es verwenden soll. Im Klartext heißt das: Sollen Pakete, die sich nicht auf den vorhandenen CDs/DVDs befinden, aus dem Internet von einem Mirror-Server heruntergeladen werden? Insbesondere bei einer Netzwerkinstallation ( »netinst«-CD) ist dieser Punkt essenziell. Anschließend können Sie angeben, ob Ihre Paketauswahl an einen zentralen Server gemeldet werden soll, um so die populärsten Debian-Pakete zu ermitteln. Im nächsten Dialog führen Sie eine grobe Software-Auswahl durch: Dabei stehen die Paketgruppen DESKTOP-UMGEBUNG, WEBSERVER, DRUCK-SERVER, DNS-SERVER, DATEI-SERVER, MAIL-SERVER, SQL-DATENBANK, LAPTOP und STANDARD-SYSTEM zur Wahl. Sie haben aber leider keinen Einfluss darauf, welche DesktopUmgebung installiert wird (Gnome), welche SQL-Datenbank etc. Auch sonst müssen Sie mit der Installation weiterer Pakete warten, bis das Grundsystem läuft.
GRUBInstallation
1058
Debian verwendet GRUB 0.97 als Bootloader. Das Installationsprogramm trägt in das GRUB-Menü automatisch alle anderen Betriebssysteme ein, die bereits installiert sind. Wenn Sie nicht wollen, dass GRUB in den Bootsektor der ersten Festplatte installiert wird, beantworten Sie die entsprechende Frage mit N EIN. Sie haben dann im nächsten Dialog die Möglichkeit, eine andere Partition anzugeben. Dabei ist sowohl die Linux-übliche Schreibweise /dev/sdxy als auch die GRUB-spezifische Nomenklatur (hdn,m) erlaubt. Nach der GRUB-Installation wird der Rechner neu gestartet.
Konfiguration und Paketverwaltung
Abschnitt 35.2
35.2 Konfiguration und Paketverwaltung Die meisten Distributionen unterscheiden sich von ihren Mitbewerbern durch eine Palette von distributionsspezifischen Konfigurationswerkzeugen. Bei Debian werden Sie danach aber vergeblich suchen. Wenn man einmal von vereinzelten Konfigurations-Scripts absieht, die während der Paketinstallation bzw. zu einem späteren Zeitpunkt durch dpkg-reconfigure ausgeführt werden, überlässt Debian die Konfiguration dem Benutzer bzw. Debian-unabhängigen Programmen, die oft dem Gnome- oder KDE-Universum entspringen. Für Linux-Einsteiger ist das natürlich ein Nachteil. Fortgeschrittene Linux-Anwender stört dieser Ansatz wenig, zumal sich die textbasierten Konfigurationsdateien wesentlich leichter von einem System auf ein anderes übertragen lassen.
Konfigurationswerkzeuge
Debian verwendet naturgemäß das selbst entwickelte Debian-Paketsystem. Dieses Paketsystem und seine wichtigsten Werkzeuge (dpkg, apt-get, aptitude, synaptic) finden weit über die Grenzen von Debian hinaus Anwendung und werden deswegen in Kapitel 21 ab Seite 511 losgelöst von diesem Kapitel behandelt. Beachten Sie, dass das bevorzugte Kommando zur Paketverwaltung im Textmodus aptitude und nicht apt-get ist (obwohl selbstverständlich auch apt-get funktioniert).
Paketverwaltung
Debian-Pakete sind in drei Gruppen eingeteilt:
Paketgruppen
» Main: Das sind die Basispakete von Debian. Der Quellcode dieser Pakete ist unter einer Lizenz verfügbar, die den strengen Regeln des Debian-Projekts entspricht. Das garantiert, dass die Nutzung und Weitergabe wirklich frei im Sinne der Open-Source-Idee ist. » Contrib: Pakete dieser Gruppe sind ebenfalls samt Quellcode frei verfügbar. Die Pakete können allerdings nur in Kombination mit Non-Free-Paketen verwendet werden. Das betrifft z. B. alle Programme, die auf Bibliotheken aufbauen, deren Lizenz in irgendeiner Weise Einschränkungen unterliegt. » Non-Free: Pakete dieser Gruppe sind zwar kostenlos, ihre Lizenz entspricht aber nicht dem Open-Source-Ideal des Debian-Projekts. Zu vielen Non-Free-Paketen steht überhaupt kein öffentlicher Quellcode zur Verfügung. Zudem unterscheidet Debian zwischen Stable-, Testing- und Unstable-Paketen: » Als Stable gelten nur die Pakete, die Bestandteil der aktuellen, offiziellen Debian-Distribution sind. Diese Pakete sind in der Regel stabil und sicher, aber nicht besonders aktuell. » Aktuellere Versionen können Sie installieren, wenn Sie die Unstable-Paketquellen einrichten. Wie der Name bereits ausdrückt, setzen Sie damit zu einem gewissen Grad die Stabilität Ihres Systems aufs Spiel. (Aber auch Ubuntu greift überwiegend auf Unstable-Pakete zurück – zu viel Angst ist also nicht angebracht.) Die Summe der Unstable-Pakete stellt den aktuellen DebianEntwicklungsstand dar. » Sozusagen als Übergangsstadium zwischen Stable und Unstable sind die Testing-Pakete gedacht. Unstable-Pakete, bei denen zehn Tage lang keine kritischen Fehler entdeckt werden, landen automatisch in Testing (allerdings nur, wenn auch alle abhängigen Pakete frei von kritischen Fehlern sind!).
1059
Kapitel 35
Debian 5
Die drei Zweige haben jeweils Debian-interne Codenamen: Momentan steht »Lenny« für Stable, »Squeeze« für Testing und »Sid« für Unstable. Der Codename für Unstable bleibt immer gleich. Wenn die nächste Debian-Version fertig wird, bekommt sie den Namen Squeeze, und der TestingZweig erhält einen neuen Namen. Je nach Entwicklungsstand kann es vorübergehend auch Experimental-Pakete geben, um fundamental neue Konzepte auszuprobieren. sources.list
Damit aptitude, apt-get und synaptic Zugang zu allen Stable-Paketen haben, muss /etc/apt/ sources.list die folgende Zeile enthalten. Dabei geben Sie statt ftp.at.debian.org einen geografisch nahe liegenden Mirror-Server an. Beachten Sie, dass nach einer Debian-Neuinstallation non-free nicht enthalten ist. Wenn Sie also Zugang zu Non-Free-Paketen wünschen, müssen Sie non-free hinzufügen! # /etc/apt/sources.list # Stable-Pakete deb http://ftp.at.debian.org/debian/
lenny
main contrib non-free
Falls Sie auch Quellcodepakete installieren möchten, kopieren Sie die obige Zeile und ersetzen deb durch deb-src. Updates
Wenn Sie in Debian Gnome oder KDE nutzen, wird automatisch das Hintergrundprogramm updatenotifier ausgeführt. Es informiert im Panel über verfügbare Updates. Ein Mausklick startet dann das Programm update-manager, das in Abbildung 35.1 rechts oben zu sehen ist. Es zeigt eine Liste aller relevanten Updates und ermöglicht deren Installation mit einem einzigen Mausklick. In der Regel werden Updates sofort wirksam. Nur in seltenen Fällen, insbesondere nach Kernel-Updates, ist ein Neustart des Rechners erforderlich. Updates stammen von einer eigenen Paketquelle, deren Einträge in /etc/apt/sources.list so aussehen: # Ergänzung in /etc/apt/sources.list # Updates für Stable (Lenny) und Testing (Lenny) deb http://security.debian.org etch/updates main contrib non-free deb http://security.debian.org lenny/updates main contrib non-free Regelmäßige Sicherheits-Updates gibt es nur für Main-Pakete aus dem Stable-Zweig und mit Einschränkungen für Main-Pakete aus dem Testing-Zweig! Zu den Contrib- und Non-Free-Paketen aus dem Stable-Zweig werden nach Möglichkeit ebenfalls Updates zur Verfügung gestellt – diese Möglichkeit besteht aber nicht immer! Viele Pakete sind deswegen als Contrib oder Non-Free klassifiziert, weil sie außerhalb des Einflusses der Debian-Entwicklergemeinde stehen, der Code nicht öffentlich zugänglich ist oder das Kompilieren nicht allgemein verfügbare Werkzeuge erfordert. Daher können nur die jeweiligen Entwickler oder Firmen, die hinter Contrib- bzw. Non-Free-Paketen stehen, Updates veröffentlichen. Für den Unstable-Zweig sind keine offiziellen Updates vorgesehen. Bekannte Fehler werden durch die Veröffentlichung einer neuen Version behoben.
1060
Konfiguration und Paketverwaltung
Leider gibt es nur recht selten neue Versionen der Debian-Distribution. Um aktuelle Versionen populärer Programme unter Debian zu verwenden, lohnt es sich, die Backports-Paketquelle einzurichten. Dazu fügen Sie die folgende Zeile zu /etc/apt/sources.lst hinzu:
Abschnitt 35.2
Backports
# in /etc/apt/sources.lst deb http://backports.debian.org/debian-backports lenny-backports main contrib non-free Damit bei der Installation die Integrität der Pakete überprüft werden kann, müssen Sie auch den Schlüssel dieser Paketquelle installieren. apt-get bzw. aptitude warnen dabei, dass dieses Paket nicht authentifiziert werden kann. root# root#
aptitude update aptitude install debian-backports-keyring
Um zu vermeiden, dass beim nächsten Update alle installierten Pakete durch neuere BackportVersionen ersetzt werden, sind die Backports-Pakete standardmäßig so gekennzeichnet, dass sie eine geringere Priorität als normale Pakete haben (durch NotAutomatic: yes in der Release-Datei der Paketquelle). Deswegen müssen Sie bei der Installation von Backports-Paketen mit apt-get oder aptitude explizit die Option -t lenny-backports angeben. root#
aptitude -t lenny-backports paketname
Volatile-Pakete zielen in eine ähnliche Richtung wie Backport-Pakete: Sie ermöglichen die unkomplizierte Installation von aktuellen Programmversionen, ohne dass Sie die Nachteile der testingoder unstable-Pakete in Kauf nehmen müssen. Das Debian-Volatile-Projekt konzentriert sich aber auf ganz wenige Pakete, die sich oft ändern und zumeist für den Server-Einsatz wichtig sind. Dazu zählen ClamAV (Virenschutz), Postgrey (Spam-Schutz für Postfix) und tzdata (Zeitzoneninfos). Um die Volatile-Paketquelle zu nutzen, fügen Sie die folgende Zeile zu sources.lst hinzu:
Volatile-Pakete
# Datei /etc/apt/sources.lst deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free Debian überprüft vor der Installation anhand von GPG-Schlüsseln die Authentizität der Pakete. GPGSchlüssel für offizielle Debian-Pakete und die dazugehörenden Updates sind bereits installiert, aber wenn Sie weitere Paketquellen einrichten, müssen Sie auch die entsprechenden Schlüssel mit aptkey installieren.
GPG-Schlüssel
Viele Websites stellen den Schlüssel für Ihre Paketquellen als .asc-Datei zur Verfügung. In diesem Fall importieren Sie den Schlüssel mit dem folgenden Kommando: root#
wget http://website.org/schlüsseldatei.asc -O - | apt-key add -
Die andere Möglichkeit besteht darin, dass die Website den achtstelligen ID-Code des Schlüssels angibt. Den Schlüssel selbst laden Sie von einem öffentlichen Schlüssel-Server herunter und installieren ihn so: root# root#
gpg --keyserver subkeys.pgp.net --recv-keys key-id gpg --armor --export key-id | apt-key add -
1061
Kapitel 35
Debian 5
Alle importierten Schlüssel werden in /etc/apt/trusted.gpg gespeichert und können mit apt-key list angezeigt werden. Nicht offizielle Paketquellen
Pakete, die Debian nicht zur Verfügung stellen kann oder will, finden Sie oft in inoffiziellen Paketquellen. Populär sind beispielsweise: http://debian-unofficial.org/ http://www.debian-multimedia.org/ http://www.rarewares.org/
Testing- und Unstable-Pakete installieren Wenn Sie an der Debian-Entwicklung teilnehmen möchten oder generell aktuelle Software-Versionen wünschen, können Sie Testing- und eventuell auch Unstable-Pakete installieren. Dabei müssen Sie allerdings Abstriche bezüglich Stabilität und Sicherheit machen. Damit Sie Testing- bzw. Unstable-Pakete installieren können, müssen Sie sources.list um eine Zeile nach dem folgenden Muster erweitern: # Ergänzung in /etc/apt/sources.list # Testing-Pakete deb http://ftp.at.debian.org/debian/
squeeze
main contrib non-free
# Unstable-Pakete deb http://ftp.at.debian.org/debian/
sid
main contrib non-free
# Updates für Testing (Squeeze) deb http://security.debian.org squeeze/updates
main contrib non-free
Das Hinzufügen des Testing- oder Unstable-Zweigs führt dazu, dass das Update-System (siehe unten) plötzlich Hunderte von neuen Paketen zum Update vorschlägt. Der Grund: Das UpdateSystem verwendet einzig die Versionsnummer als Entscheidungskriterium für die Aktualisierung. Daher haben Testing- oder Unstable-Pakete immer Vorrang gegenüber Stable-Paketen. Wenn Sie ein derartiges Update durchführen, haben Sie Ihre ganze Distribution von Stable in Testing oder Unstable umgewandelt. Oft sind es aber nur wenige Pakete, von denen Sie eine aktuelle Version wünschen. Je nachdem, wie stark sich die Testing- bzw. Unstable-Zweige von Stable unterscheiden, besteht die Möglichkeit, Pakete aus beiden Zweigen zu mischen. Dazu fügen Sie die folgende Zeile in die Datei /etc/ apt/apt.conf ein. Sie bewirkt, dass apt-get und aptitude grundsätzlich Stable-Pakete bevorzugen. Diese Einstellung gilt auch für das Update-System (update-notifier, update-manager). # /etc/apt/apt.conf APT::Default-Release "5.0*"; Um mit apt-get dennoch ein Testing- oder Unstable-Paket zu installieren, führen Sie apt-get bzw. aptitude wie folgt aus: root# root#
1062
apt-get -t unstable install aptitude -t unstable install
paketname paketname
Interna, Tipps und Tricks
Abschnitt 35.3
Eine äquivalente Konfigurationsmöglichkeit bietet auch Synaptic: Mit EINSTELLUNGEN jEINSTELLUNGEN jDISTRIBUTION geben Sie an, dass Sie grundsätzlich Stable-Pakete bevorzugen. Um trotz dieser Einstellung ein einzelnes Testing- oder Unstable-Paket zu installieren, wählen Sie das Paket aus, führen dann PAKET jVERSION ERZWINGEN aus und geben die gewünschte Version an. Die Einstellung gilt auch für alle abhängigen Pakete.
Achtung
So verlockend es erscheint, das Stable-System mit einigen Testing- oder Unstable-Paketen aufzufrischen – in der Praxis handeln Sie sich damit oft Probleme aufgrund von Paketabhängigkeiten, unterschiedlichen Bibliotheksversionen etc. ein. Die Debian-Entwickler raten deswegen davon ab, Stable- mit Testing/Unstable-Paketen zu mischen, und empfehlen stattdessen ein komplettes Update auf Testing oder Unstable. Beachten Sie aber, dass der einzige Weg zurück zu Stable dann eine Neuinstallation ist! Grundsätzlich müssen Sie sich entweder für den Testing- oder für den Unstable-Zweig entscheiden. Prinzipiell ist es auch möglich, beide Zweige gleichzeitig zu nutzen. In der Praxis stiftet diese Konfiguration aber oft Probleme.
35.3 Interna, Tipps und Tricks Zur Installation des Adobe-Flash-Plugins aktivieren Sie die Backports-Paketquelle und installieren das Paket flashplugin-nonfree. Während der Installation wird die aktuelle Version des FlashPlugins heruntergeladen und installiert. Bei 64-Bit-Versionen von Debian kommt die 64-Bit-Variante des Flash-Plugins zum Einsatz. Diese Variante war im Oktober 2009 noch im Alpha-Status, funktionierte bei meinen Tests aber zufriedenstellend. Beachten Sie, dass sich die Debian-Paketverwaltung nicht um die automatische Aktualisierung des Plugins kümmert. Wenn es eine neue Flash-Version gibt, müssen Sie selbst daran denken, das Script update-flashplugin-nonfree auszuführen!
Adobe Flash
Zur Installation des Adobe Readers richten Sie die Paketquelle debian-multimedia.org ein. Anschließend installieren Sie die Pakete acroread und mozilla-acroread.
Adobe Reader
Zur Installation der binären Treiber für ATI-Grafikkarten kompilieren Sie das fglrx-Kernelmodul mit dem module-assistant (m-a) selbst. aticonfig richtet xorg.conf korrekt ein. Anschließend starten Sie den Rechner neu. Sobald der Treiber läuft, können Sie mit dem Catalyst Control Center ((Alt)+ (F2) amdccle) die Konfiguration optimieren:
ATI/AMDGrafiktreiber
root# root# root# root#
aptitude install fglrx-driver fglrx-control m-a prepare m-a a-i fglrx aticonfig --inital
Firefox heißt in Debian Iceweasel, Thunderbird Icedove. Der Grund für diese Umbenennung besteht darin, dass die Namen Firefox und Thunderbird geschützt sind. Vereinfacht ausgedrückt darf ein Programm nur dann Firefox oder Thunderbird heißen, wenn es aus dem Originalcode kompiliert wurde. Der Code ist ja bekanntlich Open Source, und jeder kann darauf aufbauend Änderungen vornehmen – aber das resultierende Programm muss dann einen anderen Namen bekommen. Genau dazu hat man sich bei Debian entschlossen, insbesondere, um bei Bedarf Updates unabhängig von den
Firefox/ Thunderbird
1063
Kapitel 35
Debian 5
Firefox/Thunderbird-Entwicklern zu pflegen – beispielsweise dann, wenn Debian eine ältere Version pflegen möchte, die Firefox/Thunderbird-Entwickler aber nur noch eine neuere Version. Sofern Sie unter Gnome arbeiten, kommt als Webbrowser standardmäßig das Programm Epiphany zum Einsatz. Es basiert ebenfalls auf Firefox, hat aber eine leicht abweichende Benutzeroberfläche. Epiphany ist eigentlich der Standardwebbrowser des Gnome-Desktops, kommt aber bei anderen Distributionen eher selten zum Einsatz. Wenn Sie Iceweasel als Standardbrowser vorziehen, finden Sie die entsprechende Einstellung in SYSTEMjEINSTELLUNGENjBEVORZUGTE A NWENDUNGEN . Firewall
Debian richtet keine Firewall ein und installiert lediglich das iptables-Paket. Wenn Sie eine Firewall wünschen, müssen Sie die Regeln selbst formulieren oder ein entsprechendes Konfigurationsprogramm installieren, z. B. das auf Seite 891 vorgestellte Programm Firestarter.
Java
Standardmäßig sind keine Java-Pakete installiert. In den Paketquellen stehen Java-Pakete auf der Basis von OpenJDK (Main) oder Sun Java (Non-Free) zur Auswahl.
KDE
Um Ihr Debian-System nachträglich um KDE zu erweitern, installieren Sie einfach das Metapaket kde. Von diesem Paket sind rund 300 weitere KDE-Pakete abhängig, d. h., Sie erhalten ein vollständiges KDE-System.
Kernelmodule
Beim Kompilieren einiger oft benötigter Kernelmodule, die zumeist aus Lizenzgründen nicht direkt mitgeliefert werden können, hilft das Kommando m-a aus dem Paket module-assistant. Der Umgang mit m-a ist im Kernel-Kapitel auf Seite 772 beschrieben.
MP3 und Multimedia
Überraschenderweise unterstützt Debian bereits nach einer Grundinstallation das MP3-Format. Da Debian keinen kommerziellen Hintergrund hat, befürchten die Entwickler offensichtlich keine Patentprobleme. Der MP3-Encoder lame steht dagegen nur in der Paketquelle debian-multimedia.org zur Verfügung. Wenn Sie diese Paketquelle nicht verwenden möchten, müssen Sie auf die offiziellen Pakete toolame und twolame ausweichen. Damit erzeugen Sie allerdings nur Dateien im Format MPEG-1 layer 2 (statt layer 3), also MP2 statt MP3. In der Praxis ergeben sich daraus nur selten Einschränkungen, weil die meisten MP3-Player auch mit MP2-Dateien zurechtkommen. Bei den sonstigen Audio- und Video-Codecs hat Debian dieselben Probleme wie andere Distributionen. Deswegen fehlen in den offiziellen Debian-Paketarchiven aufgrund von Lizenzproblemen diverse Pakete, die zum Abspielen von DVDs, Ansehen von Videos etc. erforderlich sind. Inoffizielle Pakete mit Codecs, Multimedia-Bibliotheken und -Programmen finden Sie stattdessen in von Debian unabhängigen Paketquellen, beispielsweise hier: http://www.debian-multimedia.org/
Nautilus
1064
Unter Gnome läuft der Datei-Manager Nautilus im sogenannten spatial modus. Das bedeutet, dass für jedes Verzeichnis ein neues Datei-Manager-Fenster erscheint. Um dieses absurde Verhalten zu beenden, führen Sie BEARBEITENjEINSTELLUNGEN jVERHALTEN aus und aktivieren die Option IMMER IN B ROWSER -FENSTER ÖFFNEN . Beim nächsten Start zeigt Nautilus nun auch eine Symbolleiste und lässt sich wieder so bedienen, wie man es von einem Datei-Manager gewohnt ist.
Interna, Tipps und Tricks
Abschnitt 35.3
Um Änderungen in NTFS-Dateisystemen durchführen zu können, müssen Sie das Paket ntfs-3g (Main) installieren. Weitere Informationen zu ntfs-3g finden Sie ab Seite 655.
NTFSSchreibzugriff
Die binären Treiber für NVIDIA-Grafikkarten stehen als Non-Free-Pakete mit fertigen Kernelmodulen zur Verfügung. Nach der Installation verändern Sie mit nvidia-xconfig die Konfigurationsdatei xorg.conf:
NVIDIAGrafiktreiber
root# root#
aptitude install nvidia-glx nvidia-xconfig nvidia-xconfig
Die Datei /etc/debian_version enthält die Versionsnummer der Distribution (momentan 5.0.5).
Release-Datei
Debian-Installations-CDs bzw. -DVDs enthalten ein recht minimalistisches Rettungssystem, das Sie mit A DVANCED O PTIONSjRESCUE starten. Die ersten Schritte sind wie bei einer Installation: Sprachauswahl, Erkennung der CD-ROM, Initialisierung der Netzwerkschnittstellen etc. Anschließend ermittelt das Notfallsystem eine Liste aller Partitionen, aus der Sie eine – üblicherweise die Debian-Systempartition – als root-Partition auswählen können. Leider gibt das Rettungssystem zu diesem Zeitpunkt keinerlei Informationen über den Inhalt der Partitionen. Wenn Sie die richtige Partitionsnummer nicht kennen, müssen Sie raten. Mehr Möglichkeiten als das Rescue-System bietet in der Regel die Verwendung einer Debian-Live-CD, die es allerdings nur für die Architekturen i386 und AMD64 gibt.
Rescue-System
1065
36. Fedora 14 Fedora ist eine Variante von Red Hat Enterprise Linux (RHEL). Die Fedora-Entwicklung wird von Red Hat personell und finanziell unterstützt. Im Gegensatz zu RHEL sind sowohl Fedora an sich als auch alle Updates kostenlos verfügbar. Für Red Hat ist Fedora eine Art Testplattform, um neue Funktionen zu entwickeln und zu testen. Für viele Linux-Freaks ist Fedora hingegen die modernste verfügbare Linux-Distribution. Neue Linux-Konzepte und -Ideen finden sich oft zuerst in Fedora, bevor andere Distributionen nachziehen. Trotz der Experimentierfreudigkeit der Entwickler hat sich Fedora in den letzten Jahren zumeist als stabile Distribution herausgestellt. Hier kommt ganz offensichtlich das Know-how der RedHat-Entwickler zum Tragen. Bei der Benutzerfreundlichkeit hat Fedora in den letzten Jahren große Fortschritte gemacht: Hatte Fedora früher den Nimbus »von Freaks für Freaks«, so ist die Distribution mittlerweile ebenso einfach zu installieren und zu nutzen wie Ubuntu. Der größte Nachteil von Fedora ist die kurze Lebensdauer: Fedora-Updates werden für den Zyklus von zwei Versionen plus einem Monat gepflegt. Mit anderen Worten: Der Update-Zeitraum für Fedora 14 endet einen Monat, nachdem Fedora 16 fertiggestellt ist. Da ein Release-Zyklus von etwa sechs Monaten angepeilt wird, entspricht dies einer Update-Spanne von ca. 13 Monaten. Fedora gibt es in zwei Varianten für 32- und für 64-Bit-Prozessoren. Für beide Plattformen existiert eine DVD für eine herkömmliche Installation. Außerdem gibt es Live-CDs für Gnome und KDE. Auch von den Live-CDs kann eine Installation auf die Festplatte durchgeführt werden. Diese Installationsform ist besonders einfach, bietet aber weniger Konfigurationsmöglichkeiten als eine herkömmliche Installation. Schließlich gibt es noch sogenannte Spins. Das sind Fedora-Varianten mit einer vordefinierten Paketauswahl für einen bestimmten Verwendungszweck, z. B. mit Werkzeugen zur Sicherheitsanalyse oder mit dem Desktop LXDE. Ein neuer Spin für Fedora 14 enthält die Benutzeroberfläche Meego und eignet sich besonders für Netbooks. http://spins.fedoraproject.org/ http://fedoraproject.org/wiki/Releases/14/Spins Mit dem Programm Pungi ist es verhältnismäßig einfach, eigene Spins auf der Basis der FedoraPakete zusammenzustellen. https://fedorahosted.org/pungi/
Varianten
Kapitel 36
Fedora 14
Abbildung 36.1: Fedora-Desktop (Gnome)
RHEL und CentOS
Neue Versionen von Red Hat Enterprise Linux (RHEL) basieren grundsätzlich auf der zuletzt erschienenen Fedora-Version. Bei RHEL 5 war das Fedora 6, bei dem für Ende 2010 erwarteten RHEL 6 wird es Fedora 13 sein. Es gibt aber natürlich grundlegende Unterschiede zwischen Fedora und RHEL: In die EnterpriseVersion werden keine Funktionen eingebaut, die noch nicht vollkommen stabil und ausgereift sind. Der Support-Zeitraum für RHEL ist wesentlich länger (mindestens 5 Jahre). Und schließlich hilft das Red Hat Network (RHN) bei der zentralen Wartung mehrerer RHEL-Installationen. Davon abgesehen gilt aber: Wer einmal gelernt hat, mit Fedora umzugehen, der wird auch mit der Administration von RHEL keine Probleme haben. Und da RHEL im kommerziellen Bereich den Maßstab setzt, können Fedora-Kenntnisse durchaus die Karrierechancen erhöhen. Wenn Sie RHEL nutzen möchten, Sie sich die relativ teuren Lizenzen aber nicht leisten können oder wollen, sollten Sie einen Blick auf CentOS werfen: CentOS basiert auf dem RHEL-Quellcode, ist aber kostenlos erhältlich. Der Hauptnachteil besteht darin, dass CentOS ein Community-Projekt ohne offiziellen Support oder Update-Garantien ist – und genau das sind ja zumeist die Argumente, die für den Einsatz von RHEL sprechen.
Fedora 14
1068
Dieses Kapitel bezieht sich auf die Beta-Version von Fedora 14. Tabelle 36.1 fasst die Versionsnummern der wichtigsten Software-Pakete in Fedora 14 zusammen.
Installation
BASIS
VERSION
DESKTOP
VERSION
SERVER
VERSION
Kernel
2.6.35
Gnome
2.32
Apache
2.2
gcc
4.5
KDE
4.5
MySQL
5.1
glibc
2.13
Firefox
3.6
OpenSSH
5.5
X-Server
1.9
Gimp
2.6
PHP
5.3
OpenOffice
3.3
Samba
3.5
Abschnitt 36.1
Tabelle 36.1: SoftwareVersionen in Fedora 14
Im Vergleich zu anderen Fedora-Versionen weist Fedora 14 nur wenige fundamentale Neuerungen auf – wahrscheinlich deswegen, weil die Red-Hat-Entwickler gerade mit der Fertigstellung von RHEL 6 beschäftigt sind. Bemerkenswert ist der neue Meego-Spin, der die Nutzung von Fedora auf Netbooks besonders attraktiv macht. Perl-Programmierer werden sich über die mitgelieferte Perl-6-Umgebung Rakudo Star freuen. Und falls Sie Fedora in einer Amazon-EC2-Cloud einsetzen möchten, machen eigene EC2-Images die Installation besonders einfach. Nicht standardmäßig aktiv ist hingegen das neue Init-System systemd – wagemutige Linux-Profis, die nicht auf Fedora 15 warten möchten, können die mitgelieferten Pakete aber installieren und systemd schon jetzt ausprobieren. Weitere Informationen zu Fedora sowie ISO-Images zum Download finden Sie auf den folgenden Seiten:
Links
http://fedoraproject.org/ http://www.fedorawiki.de/ http://www.fedoraforum.de/ http://www.fedoraforum.org/ Zu Fedora gibt es außer diversen Wikis nur wenig offizielle Dokumentation. Da Fedora aber viele Ähnlichkeiten zu RHEL aufweist, helfen die RHEL-Handbücher oft weiter. http://docs.fedoraproject.org/ http://www.redhat.com/docs/manuals/enterprise/
36.1 Installation Um eine herkömmliche Fedora-Installation durchzuführen, benötigen Sie eine Installations-DVD. Nach dem Rechnerneustart erscheint nun ein englischsprachiges Menü mit den folgenden Einträgen:
Start
INSTALL OR UPGRADE AN EXISTING SYSTEM INSTALL SYSTEM WITH BASIC VIDEO DRIVER RESCUE INSTALLED SYSTEM BOOT FROM LOCAL DRIVE MEMORY TEST
1069
Kapitel 36
Fedora 14
Für eine normale Installation im Grafikmodus wählen Sie den ersten Eintrag mit (¢) aus. Wenn die Installation mit dem zweiten Menüeintrag gestartet wird, kommt der VESA-Videotreiber zum Einsatz. Das ist dann zweckmäßig, wenn die Initialisierung des Grafiksystems nicht gelingt. Anschließend können Sie überprüfen, ob die DVD fehlerfrei ist. Dieser Vorgang dauert ziemlich lange – überspringen Sie diesen Schritt einfach mit SKIP . Nur wenn es bei der Installation Probleme gibt, lohnt sich dieser Test, um auf diese Weise zumindest eine Fehlerursache auszuschließen. Bootoptionen
Wenn das Installationsprogramm Probleme mit der korrekten Erkennung Ihrer Hardware hat, wählen Sie einen Menüeintrag aus und blenden dann mit (ÿ) die dazugehörige Kommandozeile ein. Dort können Sie zusätzliche Kerneloptionen angeben. Falls Sie die Installation in ein btrfs-Dateisystem durchführen möchten, geben Sie hier den Parameter btrfs an. Leider gilt zu diesem Zeitpunkt noch das US-Tastaturlayout, was vor allem die Eingabe von Sonderzeichen erschwert (siehe Seite 65).
Anaconda
Nun startet das Installationsprogramm Anaconda im Grafikmodus. Sie wählen nun die gewünschte Sprache und das Tastaturlayout aus. Danach fragt das Installationsprogramm, ob Sie spezielle Speichergeräte verwenden. Damit meint es SAN-Geräte (Storage Area Network) gemäß der Standards FCoE, iSCSI oder zFCP, die üblicherweise nur bei großen Unternehmens-Servern zum Einsatz kommen. In aller Regel ist die Option BASIS-SPEICHERGERÄTE zutreffend. Wenn Anaconda auf Ihren Festplatten eine ältere Fedora-Version erkennt, bietet es anschließend die Möglichkeit, diese Version zu aktualisieren (wovon ich aber abrate – siehe Seite 69). Die Netzwerkkonfiguration beschränkt sich in der Regel auf die Angabe des gewünschten Hostnamens. Nur wenn Ihr Rechner nicht mit einen (ADSL- oder WLAN-)Router verbunden ist, können Sie mit dem Button N ETZWERK KONFIGURIEREN eine statische Konfiguration durchführen. Nach der Auswahl der Zeitzone, in der der Rechner läuft, müssen Sie den root-Login durch ein Passwort absichern.
Partitionierung
Bei der Partitionierung der Festplatte haben Sie die Wahl zwischen fünf Varianten: » G ESAMTEN PLATZ VERWENDEN : Das Installationsprogramm löscht sämtliche Partitionen auf allen Festplatten und erstellt dann neue Partitionen für Fedora. Vorsicht: Nach einer Rückfrage verlieren Sie sämtliche Daten auf Ihren Festplatten. » BESTEHENDES LINUX-SYSTEM ERSETZEN: Diese Variante zum obigen Punkt löscht nur vorhandene Linux-Partitionen, rührt aber Windows-Partitionen nicht an. » A KTUELLES SYSTEM VERKLEINERN : Bei dieser Variante können Sie vorhandene Linux- oder Windows-Partitionen verkleinern. Im frei werdenden Platz werden dann die neuen Partitionen für Fedora angelegt. » FREIEN PLATZ VERWENDEN : Bei dieser Variante nutzt das Installationsprogramm den freien Platz auf der Festplatte, um darin neue Partitionen anzulegen. Das funktioniert nur, wenn die Festplatte nicht partitionierte Bereiche enthält und darin genug Platz ist, um eine Boot- und eine LVM-Partition anzulegen. » MASSGESCHNEIDERTES LAYOUT ERSTELLEN: Damit können Sie die Partitionierung selbst vornehmen. Das ist meine persönliche Lieblingsvariante. Ich habe bei der Partitionierung meiner Festplatte einfach zu wenig Vertrauen in irgendwelche Automatismen.
1070
Installation
Abschnitt 36.1
Zusätzlich zu diesen Varianten gibt es noch zwei Optionen: SYSTEM VERSCHLÜSSELN verschlüsselt die Dateisysteme neuer Linux-Partitionen. A NGELEGTE PARTITIONEN PRÜFEN UND BEARBEITEN gibt die Möglichkeit, die automatische Partitionierung von Anaconda (bei den ersten vier der obigen Varianten) zu kontrollieren und gegebenenfalls zu ändern. Bereits gelöschte Partitionen anderer Betriebssysteme lassen sich zu diesem Zeitpunkt aber nicht mehr retten. Bei einer Installation in eine bisher leere Festplatte wird standardmäßig automatisch ein LVMSystem eingerichtet (siehe auch Seite 50). Dazu richtet das Installationsprogramm zuerst zwei Partitionen ein: eine kleine /boot-Partition (500 MByte, ext4-Dateisystem, z. B. /dev/sda1) und eine LVM-Partition mit dem Namen vg_hostname, die den Rest der Festplatte füllt (z. B. /dev/sda2). Innerhalb der LVM-Partition werden dann drei Logical Volumes für die Swap-, die Root- und die Home-Partition eingerichtet (lv_swap mit der doppelten RAM-Größe, lv_root mit maximal 50 GByte und lv_home). Die Root- und Home-Partitionen werden ebenfalls mit einem ext4-Dateisystem formatiert. Wenn Sie sich für die Variante M ASSGESCHNEIDERTES LAYOUT entscheiden, gelangen Sie in den Partitionseditor Disk Druid (siehe Abbildung 36.2). Sie können hier vorhandene Partitionen löschen, ändern (d. h., einen Mount-Point angeben) und neue Partitionen anlegen. Mit RÜCKSETZEN lesen Sie die Partitionstabelle neu ein. Alle durchgeführten Einstellungen gehen damit verloren, und Sie können mit der Partitionierung neu beginnen.
Manuelle Partitionierung
Abbildung 36.2: Festplatte mit dem Disk Druid einrichten
Im Dialog zum Anlegen einer neuen Partition müssen Sie drei Informationen angeben: den Einhängepunkt (d. h. den Punkt, an dem die Partition in das Dateisystem integriert wird, beispielsweise / für die Root-Partition), den Typ des Dateisystems (ext4 oder swap) und die gewünschte Größe der Partition. Falls Sie mehrere Festplatten haben, auf denen noch freier Platz ist, müssen Sie angeben, auf welcher Festplatte die neue Partition erstellt werden soll. Das Dateisystem ext4 steht nur zur Wahl, wenn Sie beim Start des Installationsprogramms die zusätzliche Option ext4 angeben.
1071
Kapitel 36
Fedora 14
Wenn es von einer früheren Linux-Installation schon Partitionen gibt, die Sie nutzen möchten, können Sie mit BEARBEITEN auch zu diesen Partitionen einen Mount-Point angeben. Boot-Loader
Standardmäßig wird der Boot-Loader GRUB in den MBR (Master Boot Record) der ersten Festplatte installiert. Wenn GRUB stattdessen in die Root-Partition installiert werden soll, klicken Sie auf den Button DATENTRÄGER WECHSELN. Im Gegensatz zu den Installationsprogrammen anderer Distributionen enthält das GRUB-Menü normalerweise nur Einträge zum Start von Fedora und (falls installiert) zum Start von Windows. Andere Linux-Installationen werden ignoriert.
Paketauswahl
Neben den Standardpaketen stellt Fedora mit S OFTWARE-ENTWICKLUNG und WEB-SERVER zwei zusätzliche Paketgruppen zur Wahl. Wenn Sie KDE statt bzw. ergänzend zu Gnome als DesktopSystem wünschen oder wenn Sie weitere Pakete zur Installation auswählen möchten, wählen Sie die Option JETZT ANPASSEN . Um auch Pakete zu installieren, die auf der DVD nicht enthalten sind, können Sie außer der DVD zusätzliche Paketquellen aus dem Internet konfigurieren.
Abbildung 36.3: Paketauswahl
Das offizielle Fedora-Paketarchiv sowie die Fedora-Updates sind bereits vorkonfiguriert und können durch das Auswählen einer Option aktiviert werden. Auch wenn Sie das nicht tun, werden diese beiden Quellen nach der Installation aktiviert, sodass nach Abschluss der Installation weitere Pakete sowie Updates installiert werden können. Mit ZUSÄTZLICHE SOFTWARE-REPOSITORIES HINZUFÜGEN können Sie außerdem weitere Paketquellen einrichten – das ist aber ein Schritt, den Sie ebenso gut nach Ende der Installation durchführen können. Nach der Auswahl der Pakete werden diese installiert, was einige Minuten dauert. Ein Protokoll aller installierten Pakete wird in die Datei /root/install.log geschrieben.
1072
Installation
Anschließend wird der Rechner neu gestartet. Es erscheint automatisch ein Konfigurationsprogramm, in dem Sie die verbleibenden Einstellungen durchführen.
Abschnitt 36.1
Abschließende Konfiguration
» LIZENZVEREINBARUNG : Ein kurzer Text weist auf die Rechte und Pflichten hin, die sich aus der GPL ergeben. » ERSTELLE BENUTZER: Hier richten Sie einen Benutzer ein, damit Sie nur in Ausnahmefällen als root arbeiten müssen. » DATUM UND UHRZEIT: In diesem Dialog zeigt das Konfigurationsprogramm die aktuelle Zeit an. Sie können die Zeit hier korrigieren bzw. NTP einrichten. In diesem Fall bezieht Fedora die aktuelle Uhrzeit aus dem Internet. » HARDWARE -PROFIL: Dieser Punkt gibt Ihnen die Möglichkeit, Daten über Ihre Hardware an die Fedora-Entwickler zu senden. Dank dieser Informationen wissen die Entwickler, welche Hardware am gebräuchlichsten ist. Wenn Sie diese Einstellungen zu einem späteren Zeitpunkt nochmals durchführen möchten, müssen Sie als root unter X die folgenden Kommandos ausführen: root# root#
rm /etc/sysconfig/firstboot firstboot
Installation aus dem Live-System Neben der herkömmlichen Installation bietet Fedora auch eine Live-Installation an. Dazu starten Sie den Rechner mit einer Live-CD. Vor dem Login in das Grafiksystem wählen Sie die gewünschte Sprache und das Tastaturlayout aus. Das Installationsprogramm ist nahezu identisch mit dem der Installations-DVD, es bietet aber keine Upgrade-Möglichkeit für vorhandene Fedora-Installationen, nur ganz wenige Konfigurationsmöglichkeiten und keine Paketauswahl. Es werden einfach alle Dateien des Live-Systems installiert. Aus diesem Grund ist die Installation nach verblüffend kurzer Zeit fertig. Die meisten Programme der offiziellen Live-CDs liegen nur in englischer Sprache vor. Lokalisierungspakete für andere Sprachen fehlen aus Platzgründen. Um die Sprachpakete nachträglich zu installieren und zu aktivieren, führen Sie die folgenden Kommandos aus: root# root# root#
yum install kde-i18n-German kde-l10n-German hunspell-de autocorr-de hyphen-de \ openoffice.org-langpack-de aspell-de system-config-language system-config-language (Sprache G ERMAN /G ERMANY einstellen) system-config-keyboard --noui de-latin1-nodeadkeys
Noch einfacher ist es, gleich eine deutsch lokalisierte Version der Live-CD einzusetzen. Derartige CDs finden Sie hier als ISO-Image zum Download: http://www.fedoraforum.de/downloads.php
1073
Kapitel 36
Fedora 14
Installation auf einen USB-Stick Mit dem Programm liveusb-creator können Sie das Fedora-Live-System direkt auf einen USBStick installieren. Das Programm kann wahlweise in einem laufenden Fedora-System (yum install liveusb-creator) oder unter Windows installiert werden: https://fedorahosted.org/liveusb-creator/ Nach dem Programmstart geben Sie an, wie viel Speicherplatz auf dem USB-Stick zur persistenten Speicherung von Einstellungen und eigenen Dateien reserviert werden soll. liveusb-creator lädt die gewünschte Fedora-Version direkt aus dem Internet herunter oder greift auf eine vorhandene Live-CD zurück. Erfahrene Benutzer können die ISO-Datei auch einfach mit dd direkt auf das Device des USB-Sticks übertragen. Bei aktuellen Fedora-Versionen sind die ISO-Images USB-bootfähig.
boot.fedoraproject.org Wenn Sie das Brennen immer neuer CDs oder DVDs zur Fedora-Installation leid sind, finden Sie auf der Website http://boot.fedoraproject.org winzige Image-Dateien für CDs, Disketten oder USBSticks. Von diesen Datenträgern aus ist es möglich, einen Rechner zu booten. In einem Menü können Sie dann auswählen, welche (aktuelle) Fedora-Version Sie installieren möchten. Die eigentlichen Installationsdaten werden aus dem Internet heruntergeladen. Die Idee ist gut, in der Praxis überzeugt das Konzept aber leider nicht. Auf einem Testrechner mit mehreren Netzwerkschnittstellen war das Installationsprogramm nicht einmal in der Lage, die richtige Schnittstelle zu finden. Auf einem zweiten Rechner funktionierte die Installation zwar prinzipiell, der Download der Installationsdaten war aber sehr langsam (möglicherweise, weil kein nahegelegener Mirror-Server verwendet wurde).
36.2 Konfiguration Werkzeuge
Bei Fedora gibt es kein zentrales Konfigurationsprogramm. Stattdessen wird eine mit jeder Version wachsende Sammlung voneinander unabhängiger Werkzeuge mitgeliefert. Die meisten Programme beginnen mit dem Namen system-xxx (beispielsweise system-config-firewall) und können über das Menü SYSTEMjA DMINISTRATION gestartet werden. Tabelle 36.2 zählt die wichtigsten Konfigurationswerkzeuge auf. Beachten Sie, dass nur ein Teil dieser Programme standardmäßig installiert ist! Die meisten Programme können nur im Grafikmodus verwendet werden. Falls es vergleichbare Texttools gibt, sind diese in Klammern angegeben. Deren Einsatz ist allerdings nur in Notfällen zu empfehlen.
3D-Desktop
1074
Fedora installiert standardmäßig die Compiz-Grundpakete, aktiviert den 3D-Desktop aus Stabilitätsgründen aber nicht. Das können Sie ganz leicht selbst erledigen: Sie starten das Programm desktop-effects und klicken auf den Button DESKTOPEFFEKTE AKTIVIEREN . Unter KDE steuern Sie die 3D-Effekte in den Systemeinstellungen im Modul A RBEITSFLÄCHEN-EFFEKTE .
Konfiguration
ZWECK
KOMMANDO
3D-Desktop
desktop-effects
Apache
system-config-httpd
Authentifizierung
system-config-authentification (authconfig)
Benutzerverwaltung
system-config-users
Bind (DNS)
system-config-bind
Datum, Zeit
system-config-date (dateconfig)
Drucker
system-config-printer
Firewall
system-config-firewall
GRUB-Konfiguration
system-config-boot
Init-V und xinetd
system-config-services (chkconfig)
LVM
system-config-lvm
Modem (inklusive ISDN)
system-config-network
Netzwerk
Network Manager, system-config-network
NFS-Server
system-config-nfs
Paketmanager
gpk-application (yum, rpm)
SELinux
system-config-selinux
Samba
system-config-samba
Sicherheits-Audit
sectool-gui (sectool)
Sprache/Lokalisierung
system-config-language
Tastatur
system-config-keyboard
Update-Manager
gpk-update-viewer (yum)
Virtualisierung (KVM)
virt-manager
Abschnitt 36.3
Tabelle 36.2: Konfigurationswerkzeuge für Fedora und Red Hat
Während der Installation wird standardmäßig eine Firewall eingerichtet, die alle von außen kommenden Verbindungsversuche sowie jeden Zugriff auf Windows-Netzwerkverzeichnisse bzw. SambaRessourcen blockiert. Abhilfe: Führen Sie SYSTEMjA DMINISTRATIONjFIREWALL aus, und definieren Sie die Schnittstelle zum lokalen Netzwerk (in der Regel eth0) als TRUSTED, oder markieren Sie SAMBA C LIENT als sicheren Dienst.
Firewall
Auf der Suche nach den besten und modernsten Werkzeugen zur SELinux-Konfiguration sind Sie bei Fedora gerade richtig. Abschnitt 30.8 ab Seite 918 beschreibt ausführlich die Grundlagen und Konfigurationswerkzeuge.
SELinux
Das Script sys-unconfig bewirkt ohne weitere Rückfragen einen sofortigen Neustart des Rechners. Beim nächsten Start muss ein neues root-Passwort angegeben und die Basiskonfiguration wiederholt werden (Netzwerk, Zeitzone etc.).
sys-unconfig
1075
Kapitel 36
Fedora 14
36.3 Paketverwaltung Die Paketverwaltung in Fedora und Red Hat basiert naturgemäß auf dem ursprünglich von Red Hat entwickelten RPM-Format. Für die Auflösung von Paketabhängigkeiten, die Durchführung von Updates etc. kommt das Kommando Yum zum Einsatz (siehe Seite 518). Die dazugehörende grafische Benutzeroberfläche stellt das Programm PackageKit zur Verfügung (siehe Seite 538). Yum und PackageKit greifen auf die in /etc/yum.repos.d/* definierten Paketquellen zurück. Wenn Sie einige dort definierte Paketquellen rasch aktivieren bzw. wieder deaktivieren möchten, können Sie dies bequem mit gpk-repo durchführen. preupgrade
Im Gegensatz zu Debian, openSUSE und Ubuntu bietet Fedora noch immer keine Möglichkeit, ein Distributions-Update auf die neueste Version im laufenden Betrieb durchzuführen. Fedora hat dafür einen anderen Weg gefunden, der zumindest die Zeit minimiert, während der der Rechner offline ist. Mit dem Kommando preupgrade aus dem gleichnamigen Paket laden Sie alle Pakete herunter, die für ein Update auf die aktuellste Fedora-Version erforderlich sind. Beim nächsten Neustart erscheint automatisch das Fedora-Installationsprogramm, mit dem Sie das Update dann durchführen können. Weitere Details sind hier beschrieben: https://fedoraproject.org/wiki/How_to_use_PreUpgrade
Zusätzliche Paketquellen
In den offiziellen Fedora-Paketen fehlen aus Lizenz- und Patentgründen eine Menge oft benötigter Pakete: Treiber für ATI- und NVIDIA-Grafikkarten, MP3-Unterstützung etc. Die größten alternativen Paketquellen, nämlich Livna, Freshrpms und Dribble, haben sich 2008 unter dem Namen RPM Fusion zusammengeschlossen. RPM Fusion ist somit die wichtigste inoffizielle Quelle für FedoraErweiterungen. Aus rechtlichen Gründen wurde ein traditionell von Livna angebotenes Paket nicht in RPM Fusion integriert. Die Livna-Paketquelle existiert deswegen weiterhin und bietet dieses eine Paket an. (Den Namen des Pakets mag ich hier – ebenfalls aus rechtlichen Gründen – nicht nennen.) Eine beliebte Alternative zu RPM Fusion und Livna ist ATrpms. Gegen ATrpms spricht, dass deren Pakete von einer einzigen Person gewartet werden und dass die Paketquelle auch offizielle FedoraPakete durch aktuellere Versionen ersetzt. Dennoch gilt auch ATrpms als sehr zuverlässig. Sie müssen sich aber für eine Variante entscheiden – entweder RPM-Fusion (plus Livna) oder ATrpms. Die parallele Verwendung beider Angebote führt unweigerlich zu Problemen. http://rpmfusion.org/ http://rpm.livna.org/ http://atrpms.net/ http://www.fedorawiki.de/index.php/Liste_der_Repositories Um eine zusätzliche Paketquelle in YUM zu integrieren, müssen Sie eine neue Datei in /etc/ yum.repos.d anlegen sowie einen Schlüssel für die Paketquelle einrichten. Die meisten Paketquellen erleichtern Ihnen diese Arbeit durch ein kleines RPM-Paket, das alle erforderlichen Dateien enthält. Dieses Paket installieren Sie mit rpm -i. Für RPM Fusion und Livna sehen die Kommandos wie folgt aus:
1076
Fedora-spezifische Besonderheiten
root# root# root#
Abschnitt 36.4
rpm -ivh http://download1.rpmfusion.org/free/fedora/ \ rpmfusion-free-release-stable.noarch.rpm rpm -ivh http://download1.rpmfusion.org/nonfree/fedora/ \ rpmfusion-nonfree-release-stable.noarch.rpm rpm -ivh http://rpm.livna.org/livna-release.rpm
RPM Fusion stellt eigentlich zwei Paketquellen zur Verfügung: free und nonfree. Der Unterschied besteht darin, dass free-Pakete Open-Source-Software enthalten, nonfree-Pakete dagegen kostenlose kommerzielle Software, etwa Grafiktreiber. Bei der ersten Installation von Paketen aus der RPM-Fusion-Paketquelle müssen Sie die Schlüssel dieser Paketquelle importieren. Nach meinen Erfahrungen funktioniert das am besten, wenn Sie die Installation mit yum durchführen (nicht mit PackageKit).
36.4 Fedora-spezifische Besonderheiten Wenn Sie als root arbeiten, erscheinen bei der Ausführung von mv und rm ständig Sicherheitsabfragen, ob Sie die Operation wirklich durchführen möchten. Diese Sicherheitsabfragen hören auf, wenn Sie die alias-Anweisungen aus /root/.bashrc entfernen.
alias-Einstellungen für root
Die programmspezifische Erweiterung von Dateinamen in der bash funktioniert nur, wenn Sie das Paket bash-completion installieren.
bash-completion
Wenn Sie das btrfs-Dateisystem (siehe auch Abschnitt 24.8) für die Systempartition verwenden möchten, müssen Sie zur Installation eine DVD verwenden (keine Live-CD) und beim Start an den Kernel den zusätzlichen Parameter brtfs übergeben. Bei der manuellen Partitionierung steht nun der Dateisystemtyp brtfs zur Auswahl. Beachten Sie, dass Sie eine eigene Bootpartition mit einem extn-Dateisystem benötigen, weil GRUB noch nicht brtfs-kompatibel ist.
brtfs
Wenn Sie zusätzlich das Paket yum-plugin-fs-snapshot installieren, erstellt YUM bei jeder Paketinstallation bzw. bei jedem Update Snapshots aller btrfs-Dateisysteme. Die Snapshots bekommen den Namen yum_datum_uhrzeit. Prinzipiell bieten diese Snapshots die Möglichkeit, nach einem missglückten Update das ursprüngliche System wiederherzustellen. In der Praxis bestehen allerdings einige Stolperfallen: » Die automatisch erzeugten Snapshots beanspruchen zunehmend mehr Festplattenkapazität. btrfs bietet leider keine Werkzeuge, um den Speicherbedarf exakt zu quantifizieren. Auf jeden Fall sollten Sie daran denken, hin und wieder alle nicht mehr benötigten Snapshots zu entfernen. Da Sie an btrfs subvolume delete immer nur einen Snapshot übergeben können, formulieren Sie am einfachsten eine kleine Schleife: root#
for i in /yum*; do btrfs subvolume delete $i; done
Falls Sie mehrere btrfs-Dateisysteme einsetzen (z. B. /home), führen Sie die obige Schleife auch für diese Dateisysteme aus.
1077
Kapitel 36
Fedora 14
» Wenn sich wirklich irgendwann die Notwendigkeit ergibt, dass Sie Ihr gesamtes System in einen alten Zustand zurückversetzen möchten, müssen Sie die erforderlichen Schritte selbst durchführen. In der Regel werden Sie mit dem folgenden Kommando einen Snapshot als neues Default-Volume für btrfs festsetzen und den Rechner neu starten: root# btrfs subvolume set-default /yum_20101231235959 root#
reboot
Beachten Sie, dass damit nicht nur die Paketinstallation rückgängig gemacht wird, sondern jede Änderung, die Sie seither durchgeführt haben. Das gilt auch für Ihr Heimatverzeichnis (es sei denn, Sie verwenden eine eigene Home-Partition)! Der zum Zeitpunkt x durchgeführte Snapshot gilt jetzt als neue Systempartition. Leider besteht momentan keine Möglichkeit, das ursprüngliche Default-Volume des btrfs-Dateisystems zu löschen. Der von diesem Volume beanspruchte Speicherplatz ist somit verloren. Dracut
Die für den Systemstart erforderliche Initrd-Datei (siehe Seite 711) wird ab Fedora 12 durch das Kommando dracut erzeugt (siehe Seite 712), nicht mehr durch mkinitrd.
Exec Shield
Neben SELinux implementieren aktuelle Fedora- und Red-Hat-Versionen auch das Exec-ShieldVerfahren. Diese Kernelerweiterung mindert das Risiko sogenannter Buffer-Overflow-Angriffe. Dabei wird ein Überlauffehler ausgenutzt, um Code in den Stack einzuschleusen und dort auszuführen. Technische Details sowie Kritik an der offiziellen Dokumentation von Red Hat finden Sie hier: http://www.noncombatant.org/trove/drepper-redhat-security-enhancements.pdf http://www.redhat.com/magazine/009jul05/features/execshield/ http://www.redhat.com/f/pdf/rhel/WHP0006US_Execshield.pdf http://lists.immunityinc.com/pipermail/dailydave/2007-May/004340.html
Kernel
Der mit Fedora ausgelieferte Kernel enthält weniger Änderungen (Patches) als bei anderen Distributionen. Für Kernelentwickler ist das praktisch, weil die Installation eines eigenen Kernels zumeist problemlos gelingt. Aus Anwendersicht ist dieser puristische Ansatz aber weniger toll, weil die Hardware-Unterstützung schlechter ist als bei der Konkurrenz. Das betrifft beispielsweise diverse WLAN-Treiber, die noch nicht offiziell in den Kernel integriert sind, von anderen Distributionen (etwa Ubuntu) aber bereits ausgeliefert werden. Bei den meisten Distributionen beheben die automatischen Updates nur bekannte Fehler im Kernel, lassen die Kernelversion aber unverändert. Fedora verhält sich auch in dieser Hinsicht anders: Während des Wartungszeitraums der Distribution wird bisweilen die Kernelversion aktualisiert. Das kann dazu führen, dass sich die Hardware-Unterstützung mit der Zeit verbessert.
Mail-Server
Fedora zählt zu den wenigen Distributionen, die standardmäßig einen Mail-Server installieren. Dafür kommt das »Urgestein« Sendmail zum Einsatz. Das Programm wird unter anderem dazu verwendet, um lokale Benachrichtigungen an den Systemadministrator zu versenden. Zum Lesen dieser Nachrichten verwenden Sie am besten den textbasierten E-Mail-Client mutt (siehe Seite 186).
Plymouth
Die Fedora-Entwickler bemühen sich im Rahmen des Projekts Plymouth, den Bootprozess möglichst elegant zu gestalten. Plymouth ersetzt das aus früheren Fedora-Versionen bekannte Paket rhgb. Die Kerneloption rhgb existiert aus Kompatibilitätsgründen weiterhin und aktiviert Plymouth.
1078
Fedora-spezifische Besonderheiten
Abschnitt 36.5
Ein Ziel von Plymouth besteht darin, den von anderen Distributionen vertrauten Mehrfachstart des Grafiksystems und das damit verbundene Bildschirmflackern zu vermeiden. Das funktioniert bei allen Grafikkarten, deren Grafikmodus vom Kernel gesteuert werden kann (Kernel Mode Setting, kurz KMS). Bootmeldungen werden standardmäßig nicht angezeigt, es sei denn, Sie drücken (Esc). Sollten während des Bootprozesses Fehler auftreten, können Sie die Fehlermeldungen über ein Icon im Login-Bildschirm lesen. Eine Nebenwirkung des neuen Bootprozesses besteht darin, dass X in der Konsole 1 läuft (anstatt, wie sonst üblich, in Konsole 7). Die Datei /etc/fedora-release enthält den Namen und die Versionsnummer der Distribution (z. B. Fedora release 14 (Laughlin)). Aus Kompatibilitätsgründen zu Red Hat verweist der Link /etc/ redhat-release ebenfalls auf fedora-release.
ReleaseInformationen
Auf der herkömmlichen Installations-DVD (aber nicht auf den Live-CDs/DVDs) befindet sich ein sogenanntes Rescue-System. Dabei handelt es sich um ein minimales, autonomes Linux-System, mit dem Sie beispielsweise Reparaturarbeiten durchführen können. Das setzt freilich voraus, dass Sie sich mit Linux gut auskennen.
Rescue-System
Bei Fedora starten Sie das Rescue-System mit dem Menükommando S TART RESCUE SYSTEM direkt von der DVD. Bei RHEL 5 müssen Sie das Kommando linux rescue eingeben. Nach einigen Sekunden wählen Sie die gewünschte Sprache und das Tastaturlayout aus. Wenn Sie möchten, können Sie eine Netzwerkverbindung herstellen. Das Rescue-System versucht nun, Ihre Systempartition unter dem Verzeichnis /mnt/sysimage zu mounten. Außerdem wird die Umgebungsvariable PATH so eingestellt, dass Sie Programme der meisten /bin-Verzeichnisse der Systempartition direkt starten können. Anschließend gelangen Sie in eine Shell, in der Sie beispielsweise einzelne Dateien verändern können. Als Editoren stehen vi, jmacs und joe zur Auswahl. Gegebenenfalls können Sie durch das Kommando chroot /mnt/sysimage die ausgewählte Partition als Root-Partition einbinden. Das erleichtert das Neuerstellen des Boot-Loaders durch GRUB oder LILO (siehe auch ab Seite 715). Wenn Sie fertig sind, können Sie das Rescue-System mit exit verlassen und Ihren Rechner anschließend neu starten. Der System Security Services Daemon (SSSD) ist in erster Linie ein Offline-Caching-System für die LDAP- oder Kerberos-Authentifizierung. SSSD ermöglicht einen Login auch dann, wenn der sonst zur Authentifizierung eingesetzte LDAP- oder Kerberos-Server nicht verfügbar ist (z. B. unterwegs auf einem Notebook). Zahlreiche weitere SSSD-Funktionen können Sie hier nachlesen:
SSSD
http://fedoraproject.org/wiki/Features/SSSD http://fedoraproject.org/wiki/SSSD_in_Fedora_13 SSSD ist standardmäßig installiert, aber nicht aktiv. Die Konfiguration durch das Kommando authconfig und die Aktivierung sind nur zweckmäßig, wenn der Rechner als Client in einem Netzwerk läuft, in dem die Authentifizierung mittels LDAP oder Kerberos 5 erfolgt! Zwecks Kompatibilität zu älteren Versionen werden neuen Fedora-Benutzern UIDs und GUIs ab 500 zugewiesen. Bei den meisten anderen Distributionen sind mittlerweile Werte ab 1000 üblich.
UIDs/GIDs
1079
Kapitel 36
Fedora 14
36.5 Tipps und Tricks Adobe Flash
Für das Flash-Plugin finden Sie auf der Adobe-Website sogar eine Yum-Paketquelle, die Sie durch die Installation eines winzigen RPM-Pakets einrichten. Das hat den Vorteil, dass neue Versionen vom Update-System automatisch berücksichtigt werden. root# rpm -Uvh http://linuxdownload.adobe.com/adobe-release/ \ adobe-release-i386-1.0-1.noarch.rpm root# yum install flash-plugin.i386 Wenn Sie die 64-Bit-Version von Fedora verwenden, ist die Konfiguration des Flash-Plugins mit etwas Arbeit verbunden. Sie müssen auch den nspluginwrapper und das Plugin explizit konfigurieren: root#
root#
yum install flash-plugin nspluginwrapper.i686 \ nspluginwrapper.x86_64 pulseaudio-libs.i386 \ alsa-plugins-pulseaudio.i386 libcurl.i386 mozilla-plugin-config -i -g -v
Entscheidend ist, dass Sie sowohl die 32- als auch die 64-Bit-Versionen des nspluginwrappers installieren. Von der 32-Bit-Version sind unzählige 32-Bit-Bibliotheken abhängig, die dann ebenfalls installiert werden. Adobe Reader
Zur Installation des Adobe Readers laden Sie das RPM-Paket von der Adobe-Download-Seite http://get.adobe.com/de/reader herunter und installieren es mit dem folgenden Kommando: root#
yum localinstall --nogpgcheck AdbeRdrn.rpm
Wenn Sie mit einer 64-Bit-Version von Fedora arbeiten, installiert yum dabei auch unzählige abhängige 32-Bit-Bibliotheken. Falls Sie den Adobe Reader außerdem als Browser-Plugin nutzen möchten (und nicht nur als eigenständiges Programm), müssen Sie wie bei der Flash-Installation die 32- und 64-Bit-Version des nspluginwrappers installieren und das Kommando mozilla-plugin-config -i -g -v ausführen. Grafiktreiber
Auf Rechnern mit NVIDIA-Grafikkarten kommt in Fedora standardmäßig der Nouveau-Grafiktreiber zum Einsatz. Dieser funktioniert für 2D-Grafik mittlerweile ausgezeichnet, die 3D-Funktionen sind aber noch experimentell und führen bei vielen NVIDIA-Grafikkarten zu Darstellungsfehlern oder zu Abstürzen des Grafiksystems! Wenn Sie dennoch damit experimentieren möchten, installieren Sie das Paket mesa-dri-drivers-experimental und starten X dann neu. Meine schon etwas betagte GeForce-7600-GS-Grafikkarte hat sich als Nouveau-kompatibel herausgestellt: Der NouveauTreiber war zumindest für die Darstellung der 3D-Desktop-Effekte von Compiz ausreichend (nicht aber für die Gnome-Shell von Gnome 3.0). Wenn Sie auf die binären Grafiktreiber von AMD oder NVIDIA angewiesen sind, treffen Sie mit Fedora keine gute Wahl. Etliche Xorg-Entwickler sind bei Red Hat angestellt und nutzen Fedora als Testplattform und Spielwiese. Fedora enthält grundsätzlich die allerneuesten Versionen des X-Servers, oft lange bevor deren Entwicklung ausgereift oder gar abgeschlossen ist. Das hat zur Folge, dass die Treiber von ATI/AMD bzw. NVIDIA häufig noch inkompatibel zum X-System sind.
1080
Tipps und Tricks
Abschnitt 36.5
Wenn es bereits geeignete Treiber gibt, finden Sie diese in der RPM-Fusion-Paketquelle. Nachdem Sie diese Paketquelle eingerichtet haben, können Sie die Treiber wie folgt installieren: root# root#
yum install kmod-fglrx yum install kmod-nvidia
(Herstellertreiber für ATI/AMD) (für NVIDA)
Die Treiberkonfiguration können Sie jederzeit mit livna-config-display verändern. Sie können damit beispielsweise wieder den Open-Source-Treiber für Ihre Grafikkarte aktivieren (siehe livnaconfig-display -h). Weitere Informationen finden Sie hier: http://rpmfusion.org/RPMFusionSwitcher Unter Fedora sind standardmäßig Java-Pakete auf der Basis des Projekts OpenJDK für die JavaVersion 6 installiert. Offizielle Pakete mit Sun-Java gibt es nicht. Wenn Sie Sun Java einsetzen möchten, müssen Sie das entsprechende RPM-Paket der Sun-Website installieren.
Java
Um KDE nachträglich zu installieren, führen Sie die folgenden Kommandos aus (ca. 200 Pakete, ca. 350 MByte Download-Volumen):
KDE nachträglich installieren
root# root#
yum groupinstall 'KDE-Softwarezusammenstellung' yum install kde-l10n-German
Ab dem nächsten Login können Sie in einem Listenfeld am unteren Bildschirmrand auswählen, ob Sie mit KDE oder Gnome arbeiten möchten. Unter Fedora stehen standardmäßig keine MP3-Decoder und -Encoder zur Verfügung, und auch sonst ist die Multimedia-Unterstützung mager. Abhilfe schaffen die Audio- und Video-Pakete aus der RPM-Fusion-Paketquelle. Das folgende Kommando zeigt, wie Sie die wichtigsten Audio- und Video-Codecs für Gnome sowie einen MP3-Encoder installieren: root#
MP3 und Multimedia
yum install gstreamer-plugins-ugly gstreamer-plugins-bad lame gstreamer-ffmpeg
1081
37. openSUSE 11.3 openSUSE zählt zu den im deutschen Sprachraum am weitesten verbreiteten Linux-Distributionen. Seit Novell die Firma SUSE übernommen hat und den Entwicklungsprozess durch das openSUSE-Projekt transparenter gestaltet, hat openSUSE auch international stark an Bedeutung gewonnen. Das wesentliche Unterscheidungsmerkmal der diversen Novell- und SUSEDistributionen gegenüber der Konkurrenz ist das allumfassende Konfigurations- und Administrationswerkzeug YaST (Yet another Setup Tool). Ein weiterer Pluspunkt ist die Dokumentation: openSUSE zählt zu den wenigen kostenlosen Distributionen, zu denen es noch richtige (ebenfalls kostenlose) Handbücher gibt. Irritierend ist dagegen der Umstand, dass die Novell-Entwickler oft eigene Wege gehen: Das führt manchmal dazu, dass nahezu alle Linux-Distributionen zur Realisierung einer Funktion Variante A wählen, openSUSE aber Variante B. Selbst wenn Variante B technisch überlegen ist, leiden die SUSE-spezifischen Lösungen oft an mangelnder Dokumentation und Akzeptanz. Wenn etwas nicht funktioniert, ist es bei SUSE ungleich schwieriger als bei anderen Distributionen, das Problem zu beheben. Die Abkürzung SUSE stand ursprünglich für Gesellschaft für Software und Systementwicklung. 2003 hat Novell SUSE gekauft. SUSE ist seither Teil der Firma Novell, auch wenn der Markenname SUSE erhalten blieb. Ähnlich bewegt wie die Firmengeschichte ist die offizielle Schreibweise: ursprünglich S.u.S.E., dann SuSE, dann SUSE. Und wer heute von SUSE spricht, meint in Wirklichkeit oft openSUSE. Das gilt auch für dieses Buch!
Der Name SUSE
Im Sommer 2005 hat Novell das openSUSE-Projekt initiiert, um die Linux-Gemeinde stärker in die Weiterentwicklung von SUSE Linux einzubinden (durch öffentliche Beta-Tests, Mailing-Listen, eine Bug-Datenbank etc.). Der Releasezyklus, der bisher rund sechs Monate betrug, hat sich mit der Öffnung des Entwicklungsprozesses verlängert und beträgt nun rund acht Monate. Wer die Entwicklung von Red Hat und Fedora verfolgt hat, wird viele Parallelen zum openSUSE-Projekt feststellen. Der einzige wesentliche Unterschied besteht darin, dass openSUSE weiterhin ein kommerziell gewartetes Produkt ist, das samt DVDs, Handbuch und Support gekauft werden kann.
openSUSE
Wenn in diesem Buch von SUSE Linux die Rede ist, meine ich damit die zurzeit populärste SUSE-Linux-Variante, nämlich openSUSE. Auf der Novell-Website finden Sie diverse andere LinuxDistributionen, beispielsweise den SUSE Linux Enterprise Server. Diese Varianten richten sich (auch bei der Preisgestaltung) an kommerzielle Anwender, denen maximale Stabilität, lange SupportZeiträume sowie die Unterstützung zusätzlicher CPU-Plattformen wichtiger sind als die jeweils neueste Kernel-, KDE- bzw. Gnome-Version.
Versionen
Kapitel 37
openSUSE 11.3
Abbildung 37.1: KDE-Desktop in openSUSE 11.3
Installationsmedien
Zur Installation von openSUSE 11.3 können Sie zwischen verschiedenen Medien wählen: » einer zweilagigen DVD für (Dual Layer) 32- und 64-Bit-Installationen. Diese DVD ist in der von open-slx vertriebenen openSUSE-Box sowie in diesem Buch enthalten. » je einer einfachen DVD für die gewünschte Architektur (32- oder 64-Bit). » Live-CDs, um openSUSE direkt auszuprobieren. Die Live-CDs können auch zur Installation verwendet werden, unterstützen aber vorerst nur wenige Sprachen (darunter Englisch, Deutsch und Französisch). Weitere Sprachpakete sowie alle anderen Pakete, die nicht Bestandteil der Live-CD sind, müssen nachträglich aus dem Internet installiert werden. Es gibt vier Live-CDs für Gnome und KDE 4, jeweils in einer 32- und einer 64-Bit-Version. » einer CD für eine Netzwerkinstallation. Die CD enthält nur das Installationsprogramm, alle Pakete werden aus dem Internet oder Netzwerk heruntergeladen. Mit Ausnahme der zweilagigen DVD stehen alle Installationsmedien zum kostenlosen Download zur Verfügung: http://software.opensuse.org/ Ganz egal, welches Installationsmedium Sie verwenden: Auf jeden Fall sollte Ihr Rechner mit zumindest 1 GByte RAM ausgestattet sein. Andernfalls zeigt das Installationsprogramm eine Warnung an, dass die Installation möglicherweise scheitern wird. Ganz ernst müssen Sie das Limit aber nicht nehmen: In der Regel bereitet openSUSE 11.3 auch mit 512 MByte RAM keine Probleme, weder während der Installation noch im Betrieb.
1084
openSUSE 11.3
Die ISO-Images können nicht nur auf CDs bzw. DVDs gebrannt werden, sondern auch auf einen USBStick kopiert werden. Wenn Sie Zugang zu einem laufenden Linux-System haben, verwenden Sie dazu das Kommando dd. Dabei müssen Sie /dev/sdc durch das Device Ihres USB-Sticks ersetzen. root#
Abschnitt 37.1
Installation vom USB-Stick
dd if=datei.iso of=/dev/sdc
Dieses Kapitel bezieht sich auf openSUSE 11.3. Tabelle 37.1 fasst die Versionsnummern der wichtigsten Software-Pakete in openSUSE 11.2 zusammen. BASIS
VERSION
DESKTOP
VERSION
SERVER
VERSION
Kernel
2.6.34
Gnome
2.30
Apache
2.2
gcc
4.5
KDE
4.4
MySQL
5.1
glibc
2.12
Firefox
3.6
OpenSSH
5.4
X-Server
1.8
Gimp
2.6
PHP
5.3
GRUB
0.97
OpenOffice
3.2
Samba
3.5
Neu in openSUSE 11.3
Tabelle 37.1: SoftwareVersionen in openSUSE 11.3
Im Vergleich zu openSUSE 11.2 bietet die aktuelle Version wenig spektakuläre Neuerungen. Sowohl das Installationsprogramm als auch die mitgelieferten Partitionierwerkzeuge sind kompatibel zu neuen Festplatten mit 4-kByte-Sektoren. Auf älteren Rechnern, die sowohl für KDE als auch für Gnome zu langsam sind, können Sie nun als Desktop auch LXDE installieren, also das Lightweight X11 Desktop Environment. openSUSE verwendet für den Systemstart nach wie vor GRUB 0.97 und das Init-V-System (während Fedora und Ubuntu bereits modernere Init-Systeme verwenden und Ubuntu außerdem GRUB 2 einsetzt). Experimentierfreudige openSUSE-Profis können GRUB 2 und Upstart ebenfalls ausprobieren: Entsprechende Pakete sind vorhanden, werden aber standardmäßig nicht installiert. Apropos experimentierfreudig: openSUSE 11.3 ist die erste große Distribution, die ohne irgendwelche Hacks oder Boot-Parameter die Installation in ein brtfs-Dateisystem erlaubt. Denken Sie aber daran, dass das neue Dateisystem brtfs noch nicht ausgereift ist und dass Sie eine ext2/3/4Bootpartition brauchen! Ausführliche Informationen zu openSUSE und Novell finden Sie unter:
Links
http://www.opensuse.org http://www.novell.com/ Umfassende englischsprachige Handbücher zu openSUSE im HTML- und PDF-Format finden Sie auf der folgenden Seite. Lesenswert ist vor allem der Reference Guide. http://www.novell.com/documentation/opensuse113/ Natürlich existieren im Internet zahlreiche Novell- bzw. SUSE-unabhängige Foren, Wikis, FAQs etc. Hilfreich sind beispielsweise die folgenden Websites: http://forums.opensuse.org/ http://opensuse-community.org/
1085
Kapitel 37
openSUSE 11.3
37.1 Installation Installationseinstellungen
Dieser Abschnitt beschreibt die Standardinstallation von einer DVD. Auf der Begrüßungsseite stellen Sie mit (F2) die gewünschte Sprache ein. Falls notwendig, können Sie mit (F3) die Auflösung des Grafiksystems während der Installation ändern. Falls das Grafiksystem Probleme bereitet, wählen Sie hier TEXTMODUS. Mit (F4) geben Sie an, aus welcher Quelle das Installationsprogramm die Pakete beziehen soll: standardmäßig natürlich von der Installations-DVD, alternativ besteht aber auch die Möglichkeit, die Pakete via HTTP/FTP/NFS/SMB oder SLP von einem Server herunterzuladen. (F5) steuert, welche Optionen an den Kernel übergeben werden. Von den Standardeinstellungen
sollten Sie nur abweichen, wenn während des Kernelstarts Probleme auftreten. Mögliche Optionen sind K EIN ACPI, K EIN LOKALES APIC sowie SICHERE EINSTELLUNGEN , wodurch neben ACPI und APIC weitere Kernelfunktionen deaktiviert werden. (ACPI steht für Advanced Configuration and Power Interface, siehe auch Seite 499. APIC steht für Advanced Programmable Interrupt Controller und bezeichnet ein Schema, um Hardware-Interrupts an die CPUs weiterzuleiten.) Unabhängig von den durch (F5) gewählten (aber leider nicht angezeigten) Kerneloptionen können Sie in der Zeile Bootoptionen zusätzliche Kernelparameter eingeben (siehe auch Seite 785). Vorher sollten Sie mit (F2) das deutsche Tastaturlayout aktivieren. Falls während der Installation eine Update-Diskette, -CD oder -Datei berücksichtigt werden soll, drücken Sie schließlich noch auf (F6). Wenn Sie als Installationsmedium eine doppellagige DVD verwenden (DVD9), die sowohl 32- als auch 64-Bit-Pakete enthält, wird auf Rechnern mit einer 64-Bit-CPU standardmäßig die 64-Bit-Version von openSUSE installiert. Wenn Sie die 32-Bit-Version vorziehen, müssen Sie mit (F7) explizit die Installation der 32-Bit-Version einstellen. Installationsmenü
Nach diesen Voreinstellungen wählen Sie einen Eintrag aus dem im Folgenden beschriebenen Menü aus. Wenn Sie 10 Sekunden lang keine Cursortaste drücken, wird automatisch der erste Menüpunkt ausgewählt. Zur Installation ist aber normalerweise der zweite Punkt erforderlich! » VON FESTPLATTE BOOTEN : Damit wird die Auto-Run-Funktion der CD beendet und stattdessen das momentan auf der Festplatte installierte Betriebssystem gestartet. Diese Variante gilt standardmäßig. Das ist dann praktisch, wenn Sie die CD oder DVD versehentlich im Laufwerk lassen. In diesem Fall wird bei einem Rechnerneustart nicht das SUSE-Installationsprogramm, sondern ganz normal das vorhandene Betriebssystem gestartet (sei es nun Windows, SUSE oder ein anderes Linux-System). » INSTALLATION: Damit beginnt die normale Installation mit YaST. » RETTUNGSSYSTEM : Im Rettungssystem können Sie versuchen, vorhandene Linux-Installationen zu reparieren (siehe Seite 1099). » INSTALLATIONSMEDIUM ÜBERPRÜFEN : Damit kontrollieren Sie, ob die DVD frei von Fehlern ist. » FIRMWARE TEST: Dieser Menüpunkt startet ein von Intel entwickeltes Programm, das das BIOS auf seine Linux-Tauglichkeit überprüft. Dieses Programm kann bei aktueller Hardware Fehlermeldungen liefern, obwohl Linux sehr wohl läuft. Weitere Informationen finden Sie hier: http://www.linuxfirmwarekit.org/
1086
Installation
Abschnitt 37.1
» SPEICHERTEST : Damit überprüfen Sie, ob Ihr RAM zuverlässig funktioniert. Von nun an nehme ich an, dass Sie eine gewöhnliche Installation im Grafikmodus durchführen. Im ersten Dialog stellen Sie die Sprache und Tastaturbelegung ein. Nach einer kurzen Systemanalyse können Sie sich anschließend entscheiden, ob Sie SUSE neu installieren möchten oder ob Sie ein vorhandenes SUSE-System aktualisieren oder reparieren möchten. Dieser Dialog enthält die standardmäßig aktivierte Option AUTOMATISCHE KONFIGURATION . Sie bewirkt, dass das Installationsprogramm die Hardware-Konfiguration selbstständig vornimmt. Das betrifft unter anderem die Netzwerkschnittstellen, das Audio- und das Grafiksystem. Linux-Einsteiger sollten die Option aktiviert lassen. Nur wenn Probleme auftreten bzw. wenn Sie ganz spezifische Konfigurationswünsche haben, deaktivieren Sie die Option.
Installation starten
Bei einer Neuinstallation bestätigen Sie als Nächstes Datum und Uhrzeit sowie Ihre Zeitzone. Dann wählen Sie, ob Sie als Benutzeroberfläche Gnome oder KDE nutzen möchten. Es ist zu diesem Zeitpunkt nicht möglich, beide Systeme auszuwählen. Sie können aber später im Punkt SOFTWAREA USWAHL die jeweils andere Benutzeroberfläche zusätzlich zur Installation markieren und in der Folge beim Login den gewünschten Desktop auswählen. Das Installationsprogramm macht nun einen Vorschlag für die Partitionierung der Festplatte: Standardmäßig richtet das Programm eine Swap-Partition mit ca. der eineinhalbfachen RAM-Größe ein, außerdem eine Root-Partition und eine /home-Partition. Zudem werden alle Windows-Partitionen in das Dateisystem eingebunden. Wenn Sie mit dem Vorschlag einverstanden sind, klicken Sie einfach auf WEITER. Wenn Sie die Partitionierung dagegen selbst vornehmen möchten, wählen Sie PARTITIONSAUFBAU ERSTELLEN und anschließend B ENUTZERDEFINIERTE PARTITIONIERUNG (FÜR E XPERTEN ).
Partitionierung
Abbildung 37.2: Partitionseditor
1087
Kapitel 37
openSUSE 11.3
Damit gelangen Sie in den Partitionseditor (siehe Abbildung 37.2). Dieser Programmteil ermöglicht es Ihnen, neue Partitionen auf allen Festplatten anzulegen. Vorhandene Windows-Partitionen können mit dem Button G RÖSSE ÄNDERN verkleinert werden. Sie können auch Partitionen löschen oder bereits vorhandene Partitionen nutzen. Klicken Sie dazu auf den Button BEARBEITEN, und geben Sie den gewünschten Mount-Punkt an (z. B. /). Wahlweise können Sie die Partition auch formatieren – damit gehen alle darin enthaltenen Daten verloren. YaST unterstützt die Linux-Dateisysteme ext2, ext3, ext4, btrfs, jfs, reiserfs und xfs. Für Linux-Profis bietet der Partitionseditor einige Besonderheiten: So ist es möglich, eine bereits vorhandene /etc/fstab-Datei zu nutzen oder ein LVM- bzw. ein RAID-System einzurichten. Hintergrundinformationen zu LVM und RAID finden Sie auf den Seiten 675 und 667. Verschlüsselung
Es ist möglich, einzelne Datenpartitionen mit der Option G ERÄTE-VERSCHLÜSSELUNG zu verschlüsseln. Zur Nutzung dieser Partitionen muss dann während des Startprozesses das Verschlüsselungspasswort angegeben werden. Es ist auf diese Weise allerdings unmöglich, die Systempartition, die Bootpartition sowie die Partitionen für die Verzeichnisse /usr und /var zu verschlüsseln. Wenn Sie die gesamte Installation gegen eine unbefugte Nutzung absichern möchten, ist es am besten, LVM einzusetzen und die gesamte Volume Group zu verschlüsseln. Das Installationsprogramm bietet hierfür eine eigene Option an (neu in openSUSE 11.3).
Benutzereinstellungen
Im nächsten Dialogblatt geben Sie in der Regel Ihren vollständigen Namen, den gewünschten Login-Namen sowie das Passwort an. Optional ist es auch möglich, mit Ä NDERN eine externe Authentifizierungsmethode auszuwählen (LDAP, NIS, Windows-Domäne oder Kerberos). Etwas bedenklich ist der Umstand, dass das Benutzerpasswort standardmäßig auch für root gilt. Nur wenn Sie die diesbezügliche Option deaktivieren, haben Sie die Möglichkeit, im nächsten Dialog ein eigenes root-Passwort anzugeben. Die openSUSE-Entwickler begründen ihre Vorgehensweise damit, dass ohnedies mehr als 75 Prozent aller Benutzer für root dasselbe Passwort verwenden wie für den ersten Benutzeraccount. Das mag sein, aber vom Sicherheitsstandpunkt aus betrachtet ist das natürlich nicht ganz optimal ...
Zusammenfassung
Das Installationsprogramm zeigt nun eine Zusammenfassung aller Einstellungen an (siehe Abbildung 37.3). Wenn Sie damit einverstanden sind, klicken Sie einfach auf INSTALLIEREN , und los geht’s. Sie sollten sich aber die Mühe machen, den Installationsvorschlag vorher in Ruhe durchzulesen! Oft ist es sinnvoll bzw. notwendig, Details zu verändern. Zur Änderung wählen Sie einfach den entsprechenden Punkt in der Zusammenfassung mit der Maus bzw. mit (ÿ) aus.
SoftwareAuswahl
Wenn Sie sich für ein KDE-Standardsystem entschieden haben, beansprucht dieses bei einem ext4Dateisystem ca. 3 GByte in der Systempartition. Optional können Sie nun ganze Software-Gruppen oder auch nur einzelne Pakete hinzufügen: Gnome, Server-Komponenten, Entwicklerwerkzeuge etc. YaST zeigt dabei an, wie viel Platz die Installation auf Ihrer Festplatte ungefähr beanspruchen wird. Wenn Sie ein bestimmtes Programm nicht finden, klicken Sie auf DETAILS und verwenden dann die Suchfunktion (FILTER SUCHE).
1088
Installation
Abschnitt 37.1
Abbildung 37.3: Installationseinstellungen
Standardmäßig sieht YaST im GRUB-Menü Einträge für die meisten auf der Festplatte vorgesehenen Betriebssysteme vor. (Ausgenommen ist allerdings Ubuntu – vermutlich, weil Ubuntu GRUB 2 verwendet, openSUSE aber noch GRUB 0.97! Probleme bereitet bisweilen auch die Erkennung anderer Distributionen, wenn diese in ein Logical Volume installiert sind.)
Systemstart
Im Gegensatz zu den meisten anderen Distributionen installiert openSUSE GRUB normalerweise nicht in den Master Boot Record der ersten Festplatte. Wenn es eine erweiterte Partition gibt, schlägt YaST vor, GRUB in deren Bootsektor zu installieren, andernfalls in den Bootsektor der System- oder Bootpartition. YaST markiert außerdem die Partition, in deren Bootsektor GRUB installiert wird, als aktive Partition (also als die Partition, von der gebootet werden soll). Schließlich überschreibt YaST den MBR mit einem Code, um den Bootloader der aktiven Partition zu laden. Diese relativ komplizierte Vorgehensweise funktioniert fast immer und sichert ein möglichst konfliktfreies Zusammenspiel mit Windows. Es gibt keine andere Distribution, bei der die Bootloader-Konfiguration so kompliziert und unübersichtlich ist wie bei openSUSE! Nur wenn auf Ihrem Rechner keine anderen Betriebssysteme installiert sind, können Sie die zahllosen Optionen bedenkenlos so lassen, wie sie sind. Ansonsten sollten Sie unbedingt einen genauen Blick auf sämtliche Bootloader-Optionen werfen. Achtung
Wenn Sie GRUB nur in die Systempartition installieren möchten (weil es bereits eine vorhandene GRUB-Installation gibt, die Sie beibehalten möchten), aktivieren Sie im Dialogblatt B OOTLOADERINSTALLATION die Option A US ROOT-PARTITION STARTEN und deaktivieren alle anderen Optionen. Außerdem klicken Sie den Button B OOTLOADER-OPTIONEN an und deaktivieren dann die Option GENERISCHEN B OOTCODE IN MBR SCHREIBEN! (Bevor ich diese Option entdeckte, habe ich mir mit openSUSE mehrfach ungeplant den MBR der Festplatte überschrieben. Das ist mir in den letzten Jahren mit keiner anderen Distribution passiert.)
1089
Kapitel 37
openSUSE 11.3
Installation durchführen
Sobald Sie mit allen Einstellungen einverstanden sind, klicken Sie den Button INSTALLIEREN an. Die Installation dauert einige Minuten. Sie können sich während dieser Wartezeit eine Diashow ansehen oder die Release-Notes lesen. Anschließend wird der Rechner neu gestartet.
Installation von einer Live-CD
Für openSUSE gibt es Live-CDs, die ein direktes Ausprobieren der Distribution ermöglichen. Die Live-CDs enthalten ebenfalls ein Installationsprogramm, das den Inhalt der CD in eine Festplattenpartition installiert. Die Bedienung des Installationsprogramms ist ganz ähnlich wie bei einer herkömmlichen Installation, es bestehen aber weniger Einstellmöglichkeiten. Insbesondere kann die Paketauswahl nicht verändert werden. Vielmehr wird einfach das ganze Live-System installiert – das dafür ausgesprochen schnell. Nach ein paar Minuten ist alles erledigt! Die einzige Voraussetzung besteht darin, dass Ihr Rechner zumindest 1 GByte RAM besitzt.
37.2 Konfiguration (YaST) SUSE bietet ein einzigartiges Konfigurationsprogramm, dessen Wirkungsbereich beinahe allumfassend ist und mit jeder Version noch größer wird: YaST (Yet another Setup Tool, siehe Abbildung 37.4). Die YaST-Module dienen zur Drucker-, Benutzer- und Paketverwaltung, zur Einrichtung der ADSLVerbindung, der Soundkarte und des Boot-Loaders, zur Spracheinstellung, zur Auswahl der Zeitzone etc. Manche YaST-Dialoge werden Ihnen bereits von der Installation her vertraut sein.
Abbildung 37.4: Die Module des Konfigurationsprogramms YaST
YaST wird in KDE mit RECHNERjYA ST bzw. in Gnome mit C OMPUTERjYA ST gestartet. In einer Konsole starten Sie yast im Textmodus bzw. yast2 im Grafikmodus. YaST speichert die SUSE-spezifischen Konfigurationsdateien im Verzeichnis /etc/sysconfig/*. Beim Verlassen des Programms werden diese Dateien mit den restlichen Konfigurationsdateien des Systems durch den Aufruf von SuSEconfig synchronisiert.
1090
Konfiguration (YaST)
YaST läuft je nach Desktop als KDE- oder als Gnome-Version. Die meisten Dialoge sehen bis auf optische Details gleich aus. Einige YaST-Module wurden für Gnome allerdings neu implementiert, unter anderem die Module S OFTWAREjSOFTWARE INSTALLIEREN und SOFTAREjO NLINE-A KTUALISIERUNG. Dieses Buch beschreibt YaST grundsätzlich in der KDE-Variante.
Abschnitt 37.2
KDE- versus Gnome-YaST
Normalerweise verwendet YaST die zum aktuellen Desktop passenden Module. Wenn Sie unter KDE explizit die Gnome-Module wünschen (oder umgekehrt), ändern Sie in /etc/sysconfig/yast2 die Variable WANTED_GUI. Zulässige Einstellungen sind auto, qt (KDE), gtk (Gnome) und ncurses (Textmodus). Eine alternative Vorgehensweise besteht darin, YaST als root mit einem der beiden folgenden Kommandos zu starten: yast2 --gtk oder yast2 --qt. openSUSE fährt bei der Netzwerkkonfiguration zweigleisig: Auf Desktop-PCs kümmern sich YaST und dessen Scripts (ifup) um die Netzwerkkonfiguration, bei Notebooks hingegen der NetworkManager und dessen KDE- bzw. Gnome-Benutzeroberflächen. Um zwischen den beiden Methoden umzuschalten, starten Sie das YaST-Modul N ETZWERKGERÄTEjN ETZWERKEINSTELLUNGEN und wählen im Dialogblatt G LOBALE O PTIONEN die Option TRADITIONELLE METHODE MIT IFUP oder BENUTZERGESTEUERT MITHILFE VON N ETWORK M ANAGER .
Hinweis
Beachten Sie, dass der mit openSUSE 11.3 ausgelieferte NetworkManager aufgrund eines schweren Fehlers bei der Interpretation der DHCP-Daten in vielen Fällen (je nach Router) erst nach einem Update funktioniert! Um dieses erste Update durchzuführen, müssen Sie den Netzwerkzugang mit der Option TRADITIONELLE METHODE MIT IFUP konfigurieren!
Netzwerk
Während der Installation besteht keine Möglichkeit, den Hostnamen einzustellen. openSUSE verwendet stattdessen eine Zufallszeichenkette wie linux-q2uf. Abhilfe: Starten Sie das YaST-Modul N ETZWERKGERÄTEjN ETZWERKEINSTELLUNGEN , wechseln Sie in das Dialogblatt H OSTNAME, und geben Sie dort den gewünschten Hostnamen an. Damit alle KDE- und Gnome-Programme diese Änderung nachvollziehen, müssen Sie sich ab- und neu anmelden.
Hostname einstellen
Unter openSUSE ist standardmäßig eine Firewall installiert und auch aktiv. Damit wird nahezu der gesamte nach außen gehende Netzwerkverkehr blockiert. Unter anderem ist es deswegen unmöglich, auf Windows- oder Samba-Netzwerkfreigaben zuzugreifen.
Firewall
Die Konfiguration erfolgt durch das YaST-Modul S ICHERHEITjFIREWALL (siehe auch Seite 890). Wenn sich Ihr Rechner in einem (sicheren) lokalen Netz befindet, sollten Sie die Netzwerkschnittstelle der INTERNEN Z ONE zuordnen. Auch das Sicherheitssystem AppArmor ist standardmäßig aktiv. Die Konfiguration erfolgt durch die Module der Gruppe N OVELL A PPA RMOR. Eine Beschreibung der AppArmor-Grundlagen und -Konfigurationswerkzeuge finden Sie in Abschnitt 30.9 ab Seite 924.
AppArmor und SELinux
Der mitgelieferte Kernel enthält seit openSUSE 11.2 auch SELinux-Funktionen, die aber standardmäßig nicht aktiv sind. Auch nach Konfigurationswerkzeugen werden Sie vergeblich suchen. Immerhin es ist nun einfacher als bisher, SELinux unter openSUSE einzusetzen. Ob das ein erster Schritt weg von AppArmor und hin zu SELinux ist, lässt sich noch nicht abschätzen.
1091
Kapitel 37
Drucker
openSUSE 11.3
Das YaST-Modul HARDWAREjDRUCKER versucht, den Drucker automatisch zu erkennen. Das funktioniert aber nicht immer und auf jeden Fall nur, wenn der Drucker angeschlossen und eingeschaltet ist. Wählen Sie das Modell gegebenenfalls selbst aus, wählen Sie das gewünschte Papierformat, und führen Sie einen Testdruck durch. Bei manchen Druckern stehen unterschiedliche Druckertreiber zur Auswahl, je nachdem, ob Sie einen hochauflösenden Fotodruck, einen schnellen Schwarz-Weiß-Ausdruck etc. durchführen möchten. Um den Treiber nachträglich zu ändern, wählen Sie den Drucker aus und öffnen mit BEARBEITEN wieder den Konfigurationsdialog. Achten Sie auch darauf, dass Sie das richtige Papierformat einstellen – oft ist das Standardpapierformat des Druckertreibers Letter und nicht A4. Nach jeder Änderung der Druckerkonfiguration erscheint für 30 Sekunden ein Countdown-Dialog. Dieser Dialog kann zwar mit OK vorzeitig geschlossen werden, dann ist aber nicht sichergestellt, dass der im Hintergrund laufende Aktualisierungsprozess tatsächlich schon abgeschlossen ist. Wenn Sie möchten, dass andere Anwender im lokalen Netzwerk den an Ihren Computer angeschlossenen Drucker nutzen können, aktivieren Sie im Dialogblatt DRUCKER FREIGEBEN die Option ENTFERNTEN Z UGRIFF ERLAUBEN . Das funktioniert allerdings nur, wenn Sie im Firewall-Modul die LAN-Netzwerkschnittstelle der internen Zone zuordnen oder explizit den TCP-Port 631 freigeben.
3D-Desktop
Unter Gnome aktivieren Sie die 3D-Effekte im Kontrollzentrum durch das Modul ARBEITSFLÄCHEN EFFEKTE (Programmname simple-ccsm). Wenn Sie unter KDE arbeiten, werden 3D-Desktop-Effekte durch den KDE-Windows-Manager realisiert. Dessen Einstellungen finden Sie in den Systemeinstellungen unter A RBEITSFLÄCHEjA RBEITSFLÄCHEN-EFFEKTE.
37.3 Paketverwaltung Vorweg ein kurzer Überblick: Die Paketverwaltung von SUSE basiert auf dem RPM-Format, wobei die RPM-Dateien mit dem LZMA-Verfahren komprimiert sind. Für die eigentliche Installation, die Verwaltung der Paketquellen, die Auflösung der Paketabhängigkeiten etc. sind die libzypp-Bibliothek sowie diverse zypp-Kommandos zuständig. Sowohl die YaST-Werkzeuge zur Paketverwaltung als auch das für Online-Updates zuständige Programm PackageKit greifen auf libzypp zurück.
YaST-Module YaST stellt in der Gruppe S OFTWARE sechs Module mit Paketverwaltungsfunktionen zur Auswahl. Gerade SUSE-Einsteigern fällt es manchmal schwer, unter den ähnlich lautenden Einträgen den richtigen zu finden. Der folgende Überblick gibt eine erste Orientierungshilfe. Die wichtigsten Module werden im Anschluss genauer vorgestellt. » MEDIEN-ÜBERPRÜFUNG testet, ob eine Installations-CD oder -DVD frei von Fehlern ist. » O NLINE-A KTUALISIERUNG startet YOU (YaST Online Update), um aktualisierte Pakete oder Sicherheits-Updates herunterzuladen. Neben YOU gibt es noch zwei weitere Update-Programme: kupdateapplet (KDE) bzw. gpk-update-icon (Gnome) kümmern sich darum, auf dem Desktop
1092
Paketverwaltung
Abschnitt 37.3
einen Hinweis auf verfügbare Updates anzuzeigen. Ein Klick auf das Benachrichtigungs-Icon startet dann das Update-Programm kupdateapplet (KDE) bzw. gpk-update-viewer (Gnome). » PAKETSUCHE ermöglicht es, im Internet in bekannten openSUSE-Paketquellen nach Paketen zu suchen. Bei meinen Tests funktionierte dieses Modul allerdings nicht. Abhilfe: Verwenden Sie die Website http://packages.opensuse-community.org/, die eine vergleichbare Suchfunktion zur Verfügung stellt. » SOFTWARE INSTALLIEREN UND LÖSCHEN führt zum zentralen Paketverwaltungsmodul, mit dem Sie neue SUSE-Pakete installieren, vorhandene entfernen oder aktualisieren können etc. Dieses Modul werden Sie vermutlich am häufigsten einsetzen. Je nach aktivem Desktop kommt die traditionelle KDE- oder die neue Gnome-Implementierung zum Einsatz. Die beiden Versionen sehen vollkommen unterschiedlich aus. Die KDE-Variante bietet etwas mehr Funktionen. » SOFTWARE REPOSITORIES hilft bei der Verwaltung der Paketquellen. Mit HINZUFÜGENjC OMMUNITY/ G EMEINSCHAFTS-REPOSITORIES können Sie einige populäre Paketquellen mit wenigen Mausklicks einrichten. » Z USATZ-PRODUKTE ermöglicht die Installation zumeist kommerzieller Programme, die auf einer SUSE-kompatiblen CD oder in SUSE-Paketquellen im Internet angeboten werden. Dieses Modul ist nicht dazu gedacht, um gewöhnliche, zu SUSE gehörende Pakete zu installieren – dazu verwenden Sie SOFTWARE INSTALLIEREN ! Neben den YaST-Werkzeugen zur Paketinstallation bzw. zur Durchführung von Updates ist standardmäßig auch das Programm PackageKit installiert (siehe auch Seite 1076). PackageKit kommt momentan allerdings nur zum Einsatz, um unter KDE oder Gnome aus dem jeweiligen Update-Icon heraus Updates durchzuführen. Wenn Sie möchten, können Sie PackageKit unter Gnome auch zur Installation oder Deinstallation von Paketen verwenden. Dazu starten Sie das Programm mit dem Kommando gpk-application.
PackageKit
Um alle Lokalisierungspakete für eine bestimmte Sprache zu installieren, starten Sie das YaSTModul SYSTEMjSPRACHE und wählen dort die gewünschte(n) Sprache(n) aus.
Sprachpakete
Paketmanager (KDE) Den YaST-Paketmanager starten Sie mit dem YaST-Modul SOFTWAREjSOFTWARE INSTALLIEREN UND LÖSCHEN . Es existieren zwei grundverschiedene Implementierungen dieses Moduls: Die KDEVariante entspricht dem, was SUSE-Anwender seit vielen Jahren gewöhnt sind (siehe Abbildung 37.5). Die neu entwickelte Gnome-Variante ist für Linux-Einsteiger etwas einfacher zu bedienen (siehe Abbildung 37.6). Im Folgenden beschränke ich mich auf die Beschreibung der KDE-Version. Im Hauptfenster können Sie zwischen verschiedenen Ansichten (Dialogblättern) wechseln: » SUCHEN : In dieser Ansicht können Sie nach Paketen suchen, deren Namen oder deren Funktion Sie kennen. » RPM-G RUPPEN : Hier werden die Pakete in einer baumartigen Gruppenstruktur dargestellt (z. B. alle Pakete der Gruppe ENTWICKLUNGjWERKZEUGEjBUILDING ). Die Orientierung in dem verzweigten Baum ist allerdings schwierig.
1093
Kapitel 37
openSUSE 11.3
» INSTALLATIONSÜBERBLICK : In dieser Ansicht sehen Sie, welche Pakete momentan zur Installation, zum Update oder zum Entfernen markiert sind. » PAKETGRUPPEN : In dieser Ansicht werden Pakete angezeigt, die inhaltlich zusammenpassen, z. B. alle Spiele. » PATTERN (SCHEMATA ): In dieser Ansicht werden Pakete angezeigt, die funktionell zusammengehören, z. B. alle Pakete zum Einrichten eines Webservers (siehe Abbildung 37.5). Damit können Sie rasch und bequem alle Pakete zur Erfüllung einer bestimmten Aufgabe zur Installation auswählen. Im Prinzip verfolgen PATTERNS und PAKETGRUPPEN dieselbe Idee, einzig die Gruppierungslogik ist anders. » SPRACHEN: Diese Ansicht zeigt alle Lokalisierungspakete für eine bestimmte Sprache. » INSTALLATIONSQUELLEN: Diese Ansicht zeigt alle Pakete einer ausgewählten Paketquelle. Optional kann die oft sehr lange Paketliste mit einem zweiten Filter reduziert werden. Der Paketmanager überprüft bei jeder Installation die Paketabhängigkeiten und aktiviert gegebenenfalls weitere Pakete zur automatischen Installation bzw. zum Update. Falls Abhängigkeitskonflikte auftreten, zeigt YaST verschiedene Vorschläge an, wie das Problem zu beheben ist. Der Status von Paketen wird durch Symbole ausgedrückt. Der Zustand kann per Maus (verwenden Sie gegebenenfalls das Kontextmenü mit der rechten Maustaste!) oder per Tastatur verändert werden. Eine vollständige Beschreibung aller Symbole erhalten Sie mit HILFEjSYMBOLE.
Abbildung 37.5: Installation von SoftwarePaketen mit YaST unter KDE
1094
Paketverwaltung
Abschnitt 37.3
Abbildung 37.6: Installation von SoftwarePaketen mit YaST unter Gnome
Hinter der YaST-Kulisse basiert die Paketverwaltung von openSUSE auf dem RPM-Format. Für die eigentliche Installation, die Verwaltung der Paketquellen, die Auflösung der Paketabhängigkeiten etc. sind die libzypp-Bibliothek und das zypper-Kommando zuständig (siehe Abschnitt 39).
Hinweis
Wenn Sie das erste Mal neue Pakete installieren, werden automatisch auch Adobe-Farbprofile sowie das MP3-Plugin von Fluendo heruntergeladen und eingerichtet. (Es ist aus Lizenzgründen unmöglich, diese Pakete auf einer CD oder DVD weiterzugeben.)
Updates Während der openSUSE-Installation wird standardmäßig eine Update-Paketquelle eingerichtet. Sollte das aus irgendeinem Grund nicht funktioniert haben, führen Sie das YaST-Modul S OFTWAREREPOSITORIES aus, führen HINZUFÜGENjC OMMUNITY /G EMEINSCHAFTS-REPOSITORIES aus und aktivieren das HAUPTAKTUALISIERUNGS-REPOSITORY. SUSE stellt Updates in Form sogenannter Delta-RPMs zur Verfügung (siehe Seite 515), was den Download-Umfang der Updates im Vergleich zu anderen Distributionen etwas mindert.
Online-Updates konfigurieren
openSUSE leistet sich den Luxus, zwei Update-Manager mitzuliefern: PackageKit und das YaSTModul YOU. PackageKit ist dafür zuständig, aus dem jeweiligen Desktop-System heraus Updates durchzuführen. YOU (Yast Online Update) ist hingegen ein Relikt aus früheren SUSE-Zeiten. Sein Einsatz empfiehlt sich nur, wenn die KDE- oder Gnome-Update-Werkzeuge Probleme bereiten oder Sie einen KDE- und Gnome-freien Desktop nutzen.
1095
Kapitel 37
openSUSE 11.3
Für das Zusammenspiel mit PackageKit und zur Benachrichtigung über verfügbare Updates sind je nach Desktop verschiedene Programme zuständig: unter Gnome das zum PackageKit gehörende Programm gpk-update-icon, unter KDE kupdateapplet. Um ohne diese Applets zu überprüfen, ob es Updates gibt, starten Sie gpk-update-viewer oder das YaST-Modul O NLINE-A KTUALISIERUNG manuell. Installation von Zusatzprogrammen
Im Rahmen des ersten Updates werden automatisch das Flash-Plugin von Adobe sowie (optional) diverse kostenlos verfügbare Microsoft-Fonts installiert. Für den Automatismus sind winzige, vorinstallierte Trigger-Pakete verantwortlich, deren Namen mit pullin beginnen (z. B. pullin-flashplayer). Eine Liste dieser Pakete erstellt rpm -qa j grep pullin. Erst das Update der pullin-Pakete initiiert die Installation der eigentlichen Pakete.
DistributionsUpdates
Bei SUSE war es bisher üblich, ein Distributions-Update ähnlich wie eine Neuinstallation durchzuführen: Rechnerneustart mit der Installations-DVD, Auswahl der Option AKTUALISIERUNG EINES VORHANDENEN SYSTEMS etc. Diese Vorgehensweise ist gut ausgereift und wird weiterhin unterstützt, sie hat aber einen großen Nachteil: Das System ist während des Updates, das zwischen 15 und 30 Minuten dauert, offline. Neu seit openSUSE 11.2 ist die Möglichkeit, das Update im laufenden Betrieb durchzuführen: Dazu müssen Sie zuerst die vorhandenen Repositories löschen und durch neue Repositories für die gerade aktuelle openSUSE-Version ersetzen. Anschließend führen Sie in einer Konsole zypper dup aus. Der Update-Prozess dauert zwar eher noch ein wenig länger als bei einer herkömmlichen Aktualisierung, aber immerhin läuft Ihr System während dieser Zeit weiter. Anschließend ist ein Neustart erforderlich. Ich bin allerdings kein Freund von Distributions-Updates: Die Wahrscheinlichkeit, dass dabei Probleme auftreten, grenzt ganz nahe an 100 Prozent. Führen Sie nach Möglichkeit eine Neuinstallation durch!
Paketquellen verwalten Als Datengrundlage für den YaST-Paketmanager dienen in der Regel die Installations-DVD sowie Paketquellen aus dem Internet. Beim Einrichten weiterer Paketquellen hilft das YaST-Modul SOFTWARE REPOSITORIES. Für populäre Paketquellen aus dem Internet führt HINZUFÜGENjC OMMUNITY /G EMEINSCHAFT -R EPOSITORIES am schnellsten zum Ziel. Nur wenn Sie Paketquellen einrichten oder entfernen möchten, die nicht im Modul C OMMUNITY REPOSITORIES vorgesehen sind, müssen Sie deren Adresse exakt angeben. Damit Paketquellen akzeptiert werden, müssen sie YaST- oder YUM-Verwaltungsinformationen zur Verfügung stellen (erkennbar an den Verzeichnissen media.1 bzw. repodata). Beim Einrichten neuer Paketquellen müssen Sie in der Regel auch eine Schlüsseldatei einrichten, die zur Kontrolle der signierten Pakete dient. Die entsprechende Rückfrage bestätigen Sie mit IMPORTIEREN .
1096
Paketverwaltung
Die folgende Aufzählung beschreibt die wichtigsten SUSE-Paketquellen in der Nomenklatur des Moduls S OFTWARE REPOSITORIES.
Abschnitt 37.3
Wichtige Paketquellen
» HAUPT-REPOSITORY: Diese Paketquellen enthalten alle offiziellen Pakete der Distribution: OSS: Open-Source-Programme N ON -OSS: diverse Programme ohne Open-Source-Lizenz (Adobe Reader etc.) Ein gemeinsames Merkmal der HAUPT-REPOSITORIES besteht darin, dass sich der Inhalt dieser Paketquellen während der Lebensdauer der Distribution nicht mehr ändert. Updates werden ausschließlich über eine eigene Paketquelle zur Verfügung gestellt (siehe den nächsten Punkt). » HAUPTAKTUALISIERUNGS-REPOSITORY: Diese Paketquelle enthält Aktualisierungen zu den offiziellen openSUSE-Paketen. Diese Paketquelle wird in der Regel durch das YaST-Modul KONFIGU RATION FÜR O NLINE -A KTUALISIERUNG unter dem Namen openSUSE-11.1-Updates eingerichtet. »
OPEN SUSE B UILDS ERVICE : Diese Paketquellen enthalten – geordnet nach Gruppen – neuere Versionen wichtiger Programme (sogenannte backports) bzw. Zusatzpakete. Die Pakete sind kein offizieller Bestandteil der Distribution! Sie sind weniger gründlich getestet und laufen daher nicht immer stabil. Die Paketquellen sind für erfahrene Linux-Anwender sowie für Entwickler interessant, die die gerade aktuellste Version eines bestimmten Programms ausprobieren können, ohne gleich eine neue Distribution zu installieren. Beachten Sie aber, dass bei der Installation bisweilen Paketabhängigkeiten zu Problemen führen können. Die BuildService-Pakete werden in der Regel nur bis zur Fertigstellung der nächsten openSUSE-Version aktiv gewartet. Wenn Sie weiter auf dem aktuellen Stand bleiben möchten, sollten Sie spätestens jetzt die neue openSUSEVersion installieren. Weitere Informationen zum BuildService finden Sie hier: http://de.opensuse.org/Build_Service
» ATI UND NVIDIA REPOSITORIES: Diese beiden Paketquellen enthalten die binären Grafiktreiber der Firmen AMD/ATI und NVIDIA. Sie ermöglichen eine besonders komfortable Installation dieser oft benötigten Treiber. Nach openSUSE-Kernel-Updates enthalten diese Quellen aktualisierte Versionen der Treiber, um sicherzustellen, dass die Grafiktreiber weiterhin funktionieren. » PACKMAN und VIDEOLAN: Diese beiden Paketquellen sind die beliebtesten inoffiziellen Paketquellen für openSUSE. Sie enthalten Pakete, die openSUSE offiziell nicht anbieten kann oder will, unter anderem Multimedia-Programme und -Bibliotheken (inklusive Codecs). Die Pakete werden von der Community, also von freiwilligen Entwicklern zusammengestellt. Teilweise ersetzen Packman-Pakete die originalen SUSE-Pakete (z. B. Amarok). Wenn Sie die Packman-Quelle einrichten, können Sie also aktuellere bzw. anders kompilierte Versionen von bereits verfügbaren Paketen installieren. Zur Umstellung auf die Packman-Pakete müssen Sie im YaST-Modul SOFTWARE INSTALLIEREN beim gewünschten Paket explizit die Packman-Version auswählen (Dialogblatt V ERSIONEN ) bzw. das Paket zum A KTUALISIEREN vormerken. Wenn YaST in der Folge Konflikte zwischen originalen openSUSE-Paketen und Packman-Paketen meldet, wählen Sie im Konfliktdialog die Option XXX INSTALLIEREN (MIT A NBIETERWECHSEL) aus. Leider gibt es keine einfache Möglichkeit, alle Originalpakete durch deren Packman-Varianten zu ersetzen. Weitere Hintergrundinformationen zu beiden Paketquellen finden Sie hier: http://packman.links2linux.de/ http://www.videolan.org/
1097
Kapitel 37
openSUSE 11.3
Für die Paketquellen B UILDSERVICE, NVIDIA, PACKMAN und VIDEOLAN gibt es keine eigene UpdatePaketquelle. Bei Updates werden in der Paketquelle einfach neue Versionen der jeweiligen Pakete zur Verfügung gestellt. Die SUSE-Update-Programme berücksichtigen derartige Updates automatisch.
One-Click-Install (*.ymp-Dateien) Das Verfahren One-Click-Install ermöglicht es, dass ein Klick im Webbrowser auf eine YMP-Datei die angeführten Paketquellen bleibend einrichtet und alle angegebenen Pakete installiert. Hinter den Kulissen kümmert sich ein neues YaST-Modul um diese Arbeiten. Vor dem Beginn der Installation müssen Sie natürlich das root-Passwort angeben. Bei den YMP-Dateien handelt es sich um einfache XML-Dateien, die alle erforderlichen Informationen (Paketquellen, Paketnamen etc.) enthalten. YMP steht dabei für Yast Meta Package. One-Click-Links lassen sich von root auch durch das Kommando OCICLI installieren:
Achtung
root#
OCICLI "http://opensuse-community.org/codecs-kde.ymp"
Naturgemäß bieten YMP-Dateien ein erhebliches Missbrauchspotenzial – beispielsweise zur Installation eines Root-Kits per Mausklick. Installieren Sie keine Pakete, deren Herkunft unklar ist bzw. die aus dubiosen Quellen stammen! Diese Empfehlung gilt natürlich unabhängig vom Installationsverfahren. Aber die Bequemlichkeit von YMP-Dateien birgt natürlich ein besonderes Risiko in sich. Bisher war zumindest ein minimales Linux-Wissen erforderlich, um neue Paketquellen einzurichten. Jetzt reicht ein Mausklick ...
37.4 SUSE-spezifische Besonderheiten Auto-Login
SUSE sieht eigene Konfigurationsdateien für den Auto-Login von KDE und Gnome vor. Direkte Veränderungen in KDE oder Gnome sind nicht zu empfehlen, weil SuSEconfig die Änderungen bei der nächsten Gelegenheit wieder überschreibt. Stattdessen tragen Sie in die Datei /etc/sysconfig/ displaymanager die gewünschte Konfiguration ein. Um den Auto-Login zu deaktivieren, verwenden Sie eine leere Zeichenkette zur Initialisierung der AUTOLOGIN-Variablen. Die Änderungen werden erst gültig, wenn Sie anschließend das Kommando SuSEconfig ausführen. # /etc/sysconfig/displaymanager ... DISPLAYMANAGER_AUTOLOGIN="benutzername"
groupadd, -del, -mod, useradd, -del, -mod
1098
SUSE verwendet eine eigene Implementierung der Kommandos groupadd, -del, -mod sowie useradd, -del und -mod. Zwar sind viele Optionen kompatibel zu den gleichnamigen Kommandos anderer Distributionen, aber eben nicht alle. Lassen Sie daher Vorsicht walten, wenn Sie ein distributionsunabhängiges Script entwickeln möchten, das Benutzer und Gruppen verändert.
SUSE-spezifische Besonderheiten
Init-V-Scripts, die nicht voneinander abhängig sind, werden parallel statt hintereinander ausgeführt. Die Details des Bootprozesses werden durch /etc/sysconfig/boot gesteuert.
Abschnitt 37.4
Init-V-System
Wenn während des Systemstarts Probleme auftreten, können Sie den Init-V-Prozess auch interaktiv ausführen. Dazu übergeben Sie beim Start durch GRUB den Bootparameter confirm. Vor der Ausführung jedes Init-V-Scripts erscheint nun eine Rückfrage. Sie haben nun bei jedem Script fünf Sekunden Zeit, um seinen Start durch (N) zu verhindern. Die Datei /etc/SuSE-release enthält die Versionsnummer der Distribution:
ReleaseInformationen
openSUSE 11.3 (X86-64) VERSION = 11.3 Als momentan einzige große Linux-Distribution stellt openSUSE neben den offiziellen MySQLPaketen auch MariaDB zur Wahl. MariaDB ist ein Fork von MySQL und beinhaltet neue bzw. verbesserte Tabellentreiber. MariaDB ist zu MySQL weitestgehend kompatibel und kann MySQL ohne größere Änderungen an der Datenbankanwendung ersetzen.
MySQL
http://askmonty.org/wiki/MariaDB Sie können die Installations-DVD auch dazu verwenden, um ein sogenanntes Rescue-System zu starten. Dabei handelt es sich um ein minimales, autonomes Linux-System, mit dem Sie selbst Reparaturarbeiten durchführen können. Zum Start stellen Sie im Startbildschirm der InstallationsDVD zuerst mit (F2) die Sprache ein und wählen dann den Menüeintrag RETTUNGSSYSTEM .
Rescue-System
Nach dem Bootprozess können Sie sich in einer Linux-Konsole als root ohne Passwort einloggen. Sie können nun mit mount die Partition Ihres defekten Linux-Systems in das Dateisystem einbinden und gegebenenfalls einzelne Dateien verändern. Das mount-Verzeichnis müssen Sie innerhalb von /tmp erstellen, der Rest des Dateisystems ist read-only. Als Editoren stehen vi, joe oder jmacs (Emacs-Klon) zur Auswahl. Um das Rescue-System zu verlassen, drücken Sie (Strg)+(Alt)+(Entf) oder geben das folgende Kommando ein: root#
shutdown -r now
SpiderOak ist eigentlich kein openSUSE-spezifisches Programm. Vielmehr handelt es sich dabei um einen Client zum SpiderOak-Backup-Service (siehe http://spideroak.com), der auch mit anderen Linux-Distributionen sowie unter Windows und Mac OS X genutzt werden kann. openSUSE ist aber die erste Distribution, die den SpiderOak-Client als fertiges Paket anbietet und in der openSUSE11.3-Ankündigung bewirbt (in erster Linie vermutlich, um dem ähnlich ausgerichteten Ubuntu-OneAngebot von Canonical etwas entgegenzusetzen).
SpiderOak
SpiderOak kann bis zu einem Datenvolumen von zwei GByte kostenlos genutzt werden. Wenn Sie mehr Daten speichern möchten, kosten 100 GByte Speicherplatz 10 $ monatlich bzw. 100 $ jährlich. (Wenn Sie bei der Anmeldung opensuse als PROMOTION C ODE angeben, erhalten Sie momentan 15 Prozent Rabatt.) Anders als bei Ubuntu One werden alle bei SpiderOak gespeicherten Daten verschlüsselt (sogar die Dateinamen). Ohne Ihr Passwort kann niemand Ihre Dateien lesen, nicht einmal die Mitarbeiter von SpiderOak.
1099
Kapitel 37
openSUSE 11.3
Abbildung 37.7: SpiderOak
SpiderOak präsentiert sich auf seiner Website zwar Open-Source-freundlich, der kostenlose SpiderOak-Client ist aber kein Open-Source-Programm. (Immerhin gibt es diesbezügliche Pläne, die aber noch recht vage klingen.) Wenn Sie SpiderOak ausprobieren möchten, installieren Sie das Paket spideroak sowie die zahlreichen davon abhängigen Python-Pakete. Nach der Installation starten Sie das Programm unter KDE mit PROGRAMMEjINTERNET jSECURE BACKUP AND FILE SHARING. Beim ersten Start müssen Sie einen SpiderOak-Account einrichten, wobei Sie außer Ihrem Namen und Ihrer E-Mail-Adresse auch einen Login-Namen und ein Passwort angeben müssen. Zahlungsinformationen sind nur erforderlich, wenn Sie mehr als zwei GByte Daten speichern möchten. In der Benutzeroberfläche von SpiderOak können Sie nun im Dialogblatt B ACKUP angeben, welche Ihrer Verzeichnisse bei SpiderOak gespeichert werden sollen. Für eine differenzierte Einstellung der Verzeichnisse müssen Sie den Link A DVANCED anklicken. Sie gelangen dann in Dialog aus Abbildung 37.7. Sobald Sie die Einstellungen mit S AVE bestätigen, beginnt der Daten-Upload. Auf Ihre bei SpiderOak gespeicherten Daten können Sie über das Dialogblatt V IEW zugreifen, und Sie können diese bei Bedarf mit dem D OWNLOAD MANAGER wieder herunterladen. SpiderOak bietet außerdem einige Zusatzfunktionen, z. B. die Synchronisation von Verzeichnissen zwischen verschiedenen Client-Rechnern oder den Datenaustausch mit anderen SpiderOak-Benutzern.
1100
Tipps und Tricks
Abschnitt 37.5
Bei meinen Tests hat SpiderOak problemlos funktioniert. Aber natürlich kann heute niemand sagen, wie lange es die Firma SpiderOak geben wird und wie lange Sie Ihre dort gesicherten Daten tatsächlich abrufen können. Insofern ist SpiderOak ein praktisches Hilfsmittel zur Dateisynchronisation sowie für Zweit-Backups, kann aber ein lokales Backup nicht ersetzen. Normalerweise verwenden Sie die verschiedenen YaST-Module zur Veränderung der SUSE-spezifischen Konfigurationsdateien in /etc/sysconfig. YaST stellt dann sicher, dass die restlichen Konfigurationsdateien des Rechners damit synchronisiert werden. Wenn Sie Dateien aus /etc/sysconfig dagegen mit einem Editor verändern, sollten Sie anschließend unbedingt das Programm SuSEconfig ausführen, um eine Synchronisierung sicherzustellen. SuSEconfig startet unter anderem alle Script-Dateien aus dem Verzeichnis /sbin/conf.d.
SuSEconfig
Bei den meisten Distributionen können Sie X mit der Tastenkombination (Strg)+(Alt)+(Backspace) neu starten. Um zu vermeiden, dass das versehentlich passiert, müssen Sie diese Tastenkombination bei openSUSE gleich zweimal drücken.
X neu starten
37.5 Tipps und Tricks Das Adobe-Flash-Plugin befindet sich im Paket flash-plugin in der Non-OSS-Paketquelle und wird beim ersten Update automatisch installiert (siehe auch Seite 1096).
Adobe Flash
Auch der Adobe Reader steht als fertiges Paket acroread in der Non-OSS-Paketquelle zur Verfügung. Dieses Paket müssen Sie allerdings selbst installieren.
Adobe Reader
Zur Installation des ATI/AMD-Treibers gibt es auf der Website opensuse-community.org/ einen Link auf eine YMP-Datei, die eine komfortable Installation aus dem Webbrowser heraus ermöglicht. Alternativ können Sie auch das folgende Kommando ausführen:
ATI/AMDGrafiktreiber
root#
OCICLI "http://opensuse-community.org/ati.ymp"
Dabei wird die neue Paketquelle www2.ati.com/suse/11.3 eingerichtet und das Paket x11-videofglxG01 installiert. Tipps zur manuellen Installation des Treibers finden Sie hier: http://kofler.info/blog/132/126/ Unter openSUSE 11.3 ist standardmäßig eine Open-Source-Variante von Java 6 auf der Basis der Projekte OpenJDK und IcedTea installiert. Wenn Sie lieber das Original-Java von Sun bzw. nunmehr Oracle einsetzen möchten, ist das auch kein Problem: Installieren Sie einfach mit YaST das Paket java-1_6_0-sun-plugin, und deinstallieren Sie das Paket java-1_6_0-openjdk-plugin.
Java
Standardmäßig stehen unter openSUSE nur wenige Codecs zur Verfügung. Bei Gnome-Systemen wird im Rahmen der ersten Paketinstallation der MP3-Codec von Fluendo installiert. Auf KDESystemen ist nicht einmal die Wiedergabe von MP3s möglich. Abhilfe: Aktivieren Sie mit YaST die Paketquellen PACKMAN und V IDEOLAN, oder (noch einfacher) verwenden Sie die entsprechenden One-Click-Links dieser Website:
MP3 und Multimedia
http://opensuse-community.org/1-click-collection
1101
Kapitel 37
openSUSE 11.3
KDE
openSUSE 11.3 enthält standardmäßig KDE 4.4 mit einigen rückportierten Zusatzfunktionen aus KDE 4.5. Der Desktop ist so konfiguriert, dass die Desktop-Suche Strigi und die darauf aufbauenden Nepomuk-Funktionen standardmäßig nicht aktiv sind (wohl um deren hohen Speicherbedarf zu vermeiden). Wenn Sie Strigi und Nepomuk nutzen möchten, aktivieren Sie den bereits installierten Nepomuk/Strigi-Server in den Systemeinstellungen im Modul E RWEITERTE BENUTZEREIN STELLUNGEN jDESKTOPSUCHE .
KDE 4.5 installieren
Es ist relativ einfach, openSUSE 11.3 auf KDE 4.5 umzustellen. Dazu richten Sie die Factory-Paketquellen KDE45 und KDE-Extra ein und führen dann zypper dist-upgrade aus. Die Details habe in einem Blog-Beitrag beschrieben, den Sie hier finden: http://kofler.info/blog/135/126/
NVIDIAGrafiktreiber
Wenn Ihr Rechner eine NVIDIA-Grafikkarte enthält, kommt nun auch unter openSUSE standardmäßig der nouveau-Treiber zum Einsatz. Der Treiber funktioniert mit nahezu allen Modellen gut, bietet aber (noch) keine 3D-Unterstützung. Zum Glück ist die Installation des proprietären NVIDIA-Treibers ganz einfach: Klicken Sie einfach den Link NVIDIA C URRENT auf der folgenden Website an: http://opensuse-community.org/1-click-collection Während der Installation des Treibers wird eine eigene NVIDIA-Paketquelle eingerichtet, die die passenden Treibermodule zum gerade aktuellen openSUSE-Kernel enthält. Falls Probleme beim Einrichten des NVIDIA-Treibers auftreten sollten oder wenn Sie die aktuellste Version des Treibers manuell installieren möchten, finden Sie hier weitere Informationen: http://de.opensuse.org/Proprietäre_NVIDIA-Grafiktreiber http://www.suse.de/~sndirsch/nvidia-installer-HOWTO.html http://kofler.info/blog/127/126/
Sprache für root
SUSE verwendet unabhängig von den sonstigen Spracheinstellungen für root die Sprache Englisch. Das ist in den meisten Fällen zweckmäßig. Wenn Sie auch als root deutschsprachige Fehlermeldungen, YaST-Menüs etc. wünschen, öffnen Sie das YaST-Modul SYSTEMjSPRACHE, öffnen den Dialog DETAILS und stellen LOCALE-EINSTELLUNGEN FÜR ROOT auf JA . Die geänderten Einstellungen werden erst beim nächsten root-Login wirksam.
WindowsNetzwerkverzeichnisse
Bevor Sie auf Windows-Netzwerkverzeichnisse zugreifen können, müssen Sie die Firewall entsprechend konfigurieren (YaST-Modul SICHERHEITjFIREWALL). Standardmäßig ist die Netzwerkschnittstelle der externen (also unsicheren) Zone zugeordnet. Wenn Sie sich in einem LAN befinden, können Sie die Netzwerkschnittstelle der internen Zone zuordnen, andernfalls müssen Sie S AMBA C LIENT zu den erlaubten Diensten hinzufügen. Wenn Sie aber selbst Netzwerkverzeichnisse freigeben möchten, müssen Sie vorher eine SambaGrundkonfiguration im YaST-Modul N ETZWERKDIENSTEjSAMBA -SERVER durchführen. Beim ersten Start dieses YaST-Moduls geben Sie den gewünschten Server-Typ an (in der Regel K EIN DOMAIN C ONTROLLER).
1102
Tipps und Tricks
Abschnitt 37.5
Im Dialogblatt START wählen Sie nun die Option B EIM SYSTEMSTART, um den Samba-Server in Zukunft automatisch zu starten. Damit andere Rechner im lokalen Netzwerk auf die Netzwerkverzeichnisse zugreifen können, müssen Sie außerdem die Option FIREWALL-PORT ÖFFNEN aktivieren. Das Dialogblatt FREIGABEN listet alle momentan definierten Netzwerkverzeichnisse auf. Sie können diese Freigaben nun bearbeiten. Einfacher ist es aber in der Regel, Netzwerkverzeichnisse direkt im Dateimanager freizugeben. Unter KDE funktioniert das ohne weitere Vorbereitungsarbeiten, unter Gnome nur dann, wenn Sie die Option B ENUTZERN DIE FREIGABE IHRER VERZEICHNISSE ERLAUBEN aktivieren. Unter Gnome können Sie nun Netzwerkverzeichnisse in Nautilus mit dem Kontextmenükommando FREIGABEOPTIONEN einrichten. Bei meinen Tests funktionierte das aber nur für den GASTZUGRIFF , also ohne Passwortabsicherung. Wird diese Option nicht aktiviert, scheitert der Verzeichniszugriff daran, dass Samba das Benutzerpasswort nicht kennt. Abhilfe: Sie müssen als root das Kommando smbpasswd -a loginname ausführen und so das Samba-Passwort für den aktuellen Benutzer angeben. Unter KDE klicken Sie in Dolphin eine beliebige Datei oder ein Verzeichnis mit der rechten Maustaste an und führen E IGENSCHAFTENjFREIGABEjDATEIFREIGABE EINRICHTEN aus. Nach der Eingabe des root-Passworts setzen Sie ein Häkchen bei der Option DATEIFREIGABE FÜR DAS LOKALE N ETZWERK AKTIVIEREN , wählen zunächst die Option E INFACHE FREIGABE und dann das neue Netzwerkverzeichnis mit HINZUFÜGEN aus. Der DATEIFREIGABE-Dialog bezieht sich leider nicht automatisch auf das Verzeichnis des EIGENSCHAFTEN-Dialogs. Wie unter Gnome müssen Sie bei durch ein Passwort abgesicherten Verzeichnissen das Samba-Passwort mit smbpasswd -a loginname manuell einstellen.
1103
38. Ubuntu 10.10 Ubuntu ist momentan die populärste und im Privatbereich am weitesten verbreitete Distribution. Persönlich hat mich das Konzept von Ubuntu derart überzeugt, dass ich 2005 das weltweit erste Buch zu Ubuntu verfasst habe. (Im Frühjahr 2010 ist bereits die zehnte Auflage dieses Buchs erschienen.) Das Motto von Ubuntu lautet Linux for human beings – also gewissermaßen das menschliche Linux. Das Zulu-Wort ubuntu steht denn auch für Menschlichkeit gegenüber anderen oder achtsames Miteinander oder auch I am what I am because of who we all are. Ubuntu Linux ist also nicht nur eine Menge Software-Technik, sondern eine ganze Philosophie. Die menschliche Komponente erklärt sich aus dem Bemühen, Ubuntu so zu konfigurieren, dass es möglichst einfach zu bedienen ist (auch für behinderte Personen), dass es in möglichst vielen Sprachen genutzt werden kann und dass es absolut kostenlos und frei verfügbar ist. Das geht so weit, dass auf Wunsch sogar kostenlos und portofrei Ubuntu-CDs versandt werden. Hinter Ubuntu steht die Firma Canonical Ltd. des südafrikanischen Millionärs Mark Shuttleworth – ehemals Eigentümer von Thawte Consulting. In dieser Firma sind zahlreiche namhafte LinuxEntwickler angestellt, um die Arbeit an Ubuntu voranzubringen. Im Vergleich zu Red Hat oder Novell ist Canonical allerdings noch sehr viel kleiner und hat wesentlich weniger Mitarbeiter. Ein plausibles Geschäftsmodell hinter Ubuntu ist nicht zu erkennen. Die Ubuntu-Website betont: Ubuntu will always be free of charge. Nun zu den technischen Details: Das Basissystem, das Installationsprogramm und die Paketverwaltung hat Ubuntu von Debian übernommen. Nach einer Standardinstallation ist Ubuntu ein ausgesprochen schlankes System, das lediglich aus Gnome, Firefox, OpenOffice, Evolution und einigen weiteren Programmen besteht. Deswegen passt die gesamte Distribution auf eine CD! Punkten kann Ubuntu auch bei der Hardware-Unterstützung: Bei wenigen Distributionen funktionieren derart viele WLAN-Adapter auf Anhieb. Für die binären Treiber für ATI/AMD- und NVIDIAGrafikkarten gibt es fertige Pakete, die komfortabel aus dem Internet installiert werden können. Damit wird auch die Zielgruppe von Ubuntu klar: nicht Freaks, sondern Linux-Einsteiger und Büroanwender. Fortgeschrittene Linux-Anwender werden durch dieses schlanke Konzept aber keineswegs eingeschränkt: Im Internet stehen Tausende von Zusatzpaketen zum Download zur Auswahl, die rasch und mühelos nachinstalliert werden können.
Kapitel 38
Ubuntu 10.10
Abbildung 38.1: Der UbuntuDesktop
Nachteile/Kritik
Ubuntu ist zwar sehr populär, hat aber wie jede andere Distribution auch seine Schwächen: » Das pünktliche, halbjährliche Erscheinen neuer Ubuntu-Versionen geht bisweilen auf Kosten der Stabilität. » Standardmäßig richtet Ubuntu keine Firewall ein. » Einige Open-Source-Entwickler kritisieren, dass sich Ubuntu zwar großzügig im Open-SourceSupermarkt bedient, aber vergleichsweise wenig eigenen Code zurückgibt. Mark Shuttleworth hat diese Argumentation in einem langen Blog-Beitrag als einseitig zurückgewiesen und auf darauf verwiesen, dass Ubuntu einen nennenswerten Beitrag zur größeren Verbreitung von Linux leistet, gerade weil es sich auf andere Dinge konzentriert (einfache Bedienung, schönes Layout etc.): http://www.markshuttleworth.com/archives/517
38.1 Versionen und Varianten Ubuntu hat einen halbjährlichen Release-Zyklus. Aus der Release-Version gehen das Jahr und der Monat hervor, d. h., 10.10 entspricht 2010-Oktober. Neue Versionen erschienen jeweils im April und im Oktober. Nur einmal, bei Ubuntu 6.06 Dapper Drake, wurde der Entwicklungszeitraum um zwei Monate verlängert, um eine noch höhere Stabilität zu erzielen. Jede Ubuntu-Version hat einen meist schwer auszusprechenden Namen (siehe Tabelle 38.1), der vor allem von den Entwicklern verwen-
1106
Versionen und Varianten
Abschnitt 38.1
det wird und ideal für Suchanfragen geeignet ist: Eine Suche nach maverick nvidia wird wesentlich spezifischere Ergebnisse liefern als eine Suche nach ubuntu nvidia oder gar nach linux nvidia. JAHR
VERSION
NAME
2004
VERSION
NAME
4.10
Warty Warthog
2005
5.04
Hoary Hedgehog
5.10
Breezy Badger
2006
6.06
Dapper Drake (LTS)
6.10
Edgy Eft
2007
7.04
Feisty Fawn
7.10
Gutsy Gibbon
2008
8.04
Hardy Heron (LTS)
8.10
Intrepid Ibex
2009
9.04
Jaunty Jackalope
9.10
Karmic Koala
2010
10.04
Lucid Lynx (LTS)
10.10
Maverick Meerkat
2011
11.04
Natty Narwhal
Tabelle 38.1: UbuntuVersionen
Zu jeder Ubuntu-Version gibt es zumindest 18 Monate lang Sicherheits-Updates. Eine Sonderstellung nehmen die sogenannten LTS-Versionen ein (Long Term Support), deren Desktop-Pakete für 3 Jahre, die Server-Pakete sogar für 5 Jahre gewartet werden. LTS-Versionen richten sich damit besonders an kommerzielle Anwender, denen ständige Neuinstallationen ein Dorn im Auge sind. Dieses Kapitel bezieht sich auf die seit Oktober 2010 verfügbare Ubuntu-Version 10.10, wobei ich die meisten Tests mit der 64-Bit-Version durchgeführt habe. Tabelle 38.2 fasst die Versionsnummern der wichtigsten Software-Pakete zusammen. Beachten Sie, dass Ubuntu 10.10 zwar auf Gnome 2.32 basiert, aber aus Stabilitätsgründen die nicht ganz aktuelle Evolution-Version 2.30 enthält. BASIS
VERSION
DESKTOP
VERSION
SERVER
VERSION
Kernel
2.6.35
Gnome
2.32
Apache
2.2
gcc
4.5
KDE
4.5
MySQL
5.1
glibc
2.12
Firefox
3.6
OpenSSH
5.5
X-Server
1.9
Gimp
2.6
PHP
5.3
OpenOffice
3.2
Samba
3.5
Tabelle 38.2: SoftwareVersionen in Ubuntu 10.10
Die folgende Aufzählung listet die wichtigsten Neuerungen gegenüber der Vorgängerversion 10.04 auf: » Das Installationsprogramm wurde optisch modernisiert und ein wenig vereinfacht. » Ubuntu hat nun einen eigenen Font, der ebenfalls Ubuntu heißt. » Als Fotoverwaltungsprogramm kommt nun standardmäßig Shotwell zum Einsatz (nicht mehr F-Spot). » Ein neues Audio-Menü im Panel (der sogenannte Sound Indicator) erleichtert die Steuerung von Programmen, die Audio- und Video-Dateien abspielen.
1107
Kapitel 38
Ubuntu 10.10
» Der Desktop der Ubuntu Netbook Edition wurde total überarbeitet (Projektname »Unity«) und zeichnet sich nun durch eine neue Launch-Bar am linken Bildschirmrand und ein Zentralmenü aus. Ziel der Veränderungen war es, den Platz zu maximieren, der dem gerade ausgeführten Programm zur Verfügung steht. Evolution wird standardmäßig im Express-Modus ausgeführt (siehe Seite 182). » In Kubuntu kommt Rekonq als Webbrowser zum Einsatz. Außerdem kommt nun auch in Kubuntu (wie in den meisten anderen Ubuntu-Varianten) Pulseaudio als Audio-System zum Einsatz. UbuntuVarianten
Tabelle 38.3: UbuntuVarianten Installationsformen
Die Palette der von Ubuntu abgeleiteten Distributionen wird von Jahr zu Jahr unübersichtlicher. Tabelle 38.3 fasst die wichtigsten offiziellen (also von der Firma Canonical unterstützten) und inoffiziellen Varianten zusammen. Alle offiziellen Varianten greifen auf dieselben Paketquellen zurück und lassen sich daher beliebig erweitern. Sie können also auch zuerst Xubuntu installieren und später die Gnome-Pakete von Ubuntu hinzufügen. Der Unterschied besteht nur darin, welche Paketauswahl auf dem Datenträger mitgeliefert und erstmalig installiert wird. VARIANTE
BESCHREIBUNG
Kubuntu
Ubuntu minus Gnome plus KDE
Xubuntu
Ubuntu minus Gnome plus Xfce
Lubuntu
Ubuntu minus Gnome plus LXDE (inoffiziell)
Edubuntu
Ubuntu-Variante für Schule und Unterricht
Ubuntu Server
Ubuntu für den Server-Einsatz (ohne X)
Ubuntu Server UEC/EC2
Ubuntu Server für Cloud-Installationen
Ubuntu Netbook Edition
Ubuntu für Netbooks
Kubuntu Netbook Edition
Kubuntu für Netbooks
Ubuntu Studio
Ubuntu für Multimedia-Anwender
Mythbuntu
Ubuntu als Media-Center mit Myth TV
Linux Mint
besonders benutzerfreundliche Ubuntu-Variante (inoffiziell)
Easy Peasy
Ubuntu für Netbooks (inoffiziell)
Zentyal (ehemals eBox)
kommerzielle Ubuntu-Server-Variante mit webbasierten Konfigurationswerkzeugen (inoffiziell)
Bei der Installation von Ubuntu haben Sie die Wahl zwischen einer 32- und einer 64-Bit-Variante für Intel-Pentium-kompatible Prozessoren. PowerPC-CPUs werden nur noch inoffiziell unterstützt. Außerdem können Sie zwischen drei Installationsmedien wählen: » Desktop-CD: Diese CD enthält ein Live-System, aus dem heraus auch die Installation mit einem grafischen Installationsprogramm durchgeführt werden kann. Gleichzeitig kann die Desktop-CD auch als Grundlage für eine WUBI-Installation verwendet werden. WUBI steht für Windows-based Ubuntu Installation ist eine besonders einfache Installationsform, die auf Seite 1112 genauer beschrieben wird.
1108
Standardinstallation im Grafikmodus (Desktop-CD)
Abschnitt 38.2
» Alternate-CD: Diese CD enthält ein Installationsprogramm für den Textmodus. Dieser Installationsform sollten Sie den Vorzug geben, wenn die Desktop-CD wegen Hardware-Problemen nicht funktioniert oder wenn Sie spezielle Installationsanforderungen haben (z. B. eine LVM- oder RAID-Installation). » DVD: Die DVD vereint die Installationsformen für den Grafik- und den Textmodus. Die DVD enthält außerdem wesentlich mehr Pakete. Wer über keinen schnellen Internetzugang verfügt, erspart sich damit bei nachträglichen Paketinstallationen eine Menge Download-Wartezeit. Die DVD ist allerdings nicht als Datenquelle für eine WUBI-Installation geeignet. Weitere Informationen sowie ISO-Images zum Download finden Sie auf den folgenden Seiten:
Links
http://www.ubuntu.com/ http://www.kubuntu.org/ http://www.ubuntuusers.de/ https://shipit.ubuntu.com/ http://cdimages.ubuntu.com/
38.2 Standardinstallation im Grafikmodus (Desktop-CD) Um eine Standardinstallation durchzuführen, legen Sie die Desktop-CD oder die Ubuntu-DVD ein und starten den Rechner neu. Bei den meisten Systemen startet das System direkt (ohne Wahlmöglichkeiten) von der CD. Nach ca. einer halben Minute erscheint der Ubuntu-Desktop. Dort können Sie die Sprache auswählen und anschließend wahlweise Ubuntu ausprobieren oder direkt installieren. Im ersten Schritt des Installationsprogramms wählen Sie die gewünschte Sprache aus. Anschließend haben Sie die Wahl, ob während der Installation Updates heruntergeladen werden sollen (das verlängert die Installationsdauer, stellt aber sicher, dass Sie vom ersten Start an ein aktuelles System haben) und ob Pakete von Drittanbietern installiert werden sollen. Das betrifft z. B. diverse WLAN-Treiber, das Adobe-Flash-Plugin, ein Java-Plugin sowie grundlegende Audio- und Video-Codecs. Diese Programme sind zwar kostenlos verfügbar, unterliegen aber nicht alle einer Open-Source-Lizenz.
Grundeinstellungen
Je nachdem, wie die Festplatte momentan partitioniert ist, können Sie zwischen bis zu drei Optionen wählen:
Partitionierung der Festplatte
» N EBEN ANDEREN BETRIEBSSYSTEMEN INSTALLIEREN : Bei dieser Variante können Sie im nächsten Dialog eine vorhandene (Windows-)Partition verkleinern und den freien Platz für die UbuntuInstallation nutzen (siehe Abbildung 38.2). Mit dem Schieberegler zwischen den beiden Bereichen bestimmen Sie, wie viel Platz für die bisherige Partition und wie viel für Linux reserviert werden soll. Die Verkleinerung beansprucht geraume Zeit (je nach Größe der Windows-Partition durchaus mehrere Minuten!). Haben Sie Geduld! » LÖSCHEN UND DAS GESAMTE MEDIUM VERWENDEN: Das Installationsprogramm löscht die gesamte Festplatte und nutzt sie für Ubuntu. » PARTITIONEN selbst durch.
MANUELL FESTLEGEN (FORTGESCHRITTEN ):
Hiermit führen Sie die Partitionierung
1109
Kapitel 38
Ubuntu 10.10
Abbildung 38.2: Platz machen für Ubuntu
Bei den ersten beiden Varianten erstellt das Installationsprogramm die Partitionen selbstständig. Wenn Sie die Größe der Partitionen selbst einstellen möchten, eine eigene /home-Partition wünschen etc., wählen Sie die manuelle Partitionierung (siehe Abbildung 38.3). Um eine neue Partition zu erzeugen, klicken Sie zuerst den Eintrag FREIER SPEICHERPLATZ und dann den Button N EUE PARTITION an. Im nun erscheinenden Dialog geben Sie den Typ der Partition (zumeist LOGISCH ), die Größe in MByte und das Dateisystem an. Falls es auf Ihrer Festplatte bereits eine geeignete Partition gibt, in die Sie Ubuntu installieren möchten, wählen Sie diese Partition aus, ändern mit PARTITION BEARBEITEN den E INHÄNGEPUNKT und aktivieren das Auswahlhäkchen zur Neuformatierung der Partition.
Abbildung 38.3: Manuelle Partitionierung
Sie beenden die Partitionierung mit dem Button JETZT INSTALLIEREN . Das Installationsprogramm beginnt jetzt sofort mit der Installation. Vorsicht: Sie können die Installation nun nicht mehr stoppen! Der Bootloader GRUB wird im Verlauf der Installation ohne weitere Rückfrage in den Bootsektor (MBR) der ersten Festplatte installiert.
1110
USB-Stick-Installation (Desktop-CD)
Abschnitt 38.3
Diverse noch ausständige Einstellungen können Sie parallel zur Installation erledigen. Diese neue Abfolge der Installationsschritte spart Zeit. Als Erstes geben Sie die Zeitzone an, in der Sie sich befinden. Das Installationsprogramm nimmt an, dass die Uhr Ihres Rechners auf die lokale Uhrzeit eingestellt ist. Wenn das nicht der Fall ist, müssen Sie die Uhrzeit nach dem Ende der Installation korrigieren.
Zeitzone
Als Nächstes stellen Sie das Tastaturlayout ein. Damit sich die Tastatur so verhält, wie Sie es von Windows gewöhnt sind, müssen Sie das Layout G ERMANY – O HNE G RAVE- UND ACUTE-A KZENTZEICHEN wählen. Das bedeutet, dass das Zeichen ~ direkt eingegeben werden kann, die Zeichen ` und ´ aber zur Komposition von Buchstaben aus Fremdsprachen dienen. (´), (e) ergibt daher é.
Tastatur
Im nächsten Schritt geben Sie den Benutzernamen und das Passwort für den ersten Ubuntu-Nutzer an. Weitere Nutzer können Sie bei Bedarf später im laufenden Betrieb einrichten. (Im Gegensatz zu anderen Linux-Installationsprogrammen müssen Sie kein root-Passwort angeben: Administrative Arbeiten werden unter Ubuntu von einem gewöhnlichen Benutzer mit sudo durchgeführt.)
Benutzerdaten
Sie haben an dieser Stelle die Wahl zwischen drei Sicherheitsoptionen: AUTOMATISCH ANMELDEN bewirkt, dass Sie beim Rechnerstart automatisch eingeloggt werden. Das ist bequem, aber natürlich ein Sicherheitsmangel. PASSWORT ZUM A NMELDEN ABFRAGEN ist die Standardeinstellung und erfordert nach dem Rechnerstart einen gewöhnlichen Login. Noch sicherer ist MEINE PERSÖNLICHEN DATEIEN VERSCHLÜSSELN . Damit wird Ihr gesamtes persönliches Verzeichnis verschlüsselt. Ein Zugriff auf die Daten ist nur nach einem Login möglich. Diese Verschlüsselung ist aber auch mit Nachteilen verbunden! Lesen Sie unbedingt die Anmerkungen auf Seite 1126, bevor Sie diese Option wählen! Anschließend versucht das Installationsprogramm, Benutzerdaten aus den auf dem Rechner bereits installierten Windows- oder Linux-Systemen zu importieren. Das hat bei meinen Tests allerdings nie zufriedenstellend funktioniert. Auf der CD fehlen aus Platzgründen deutsche Sprachpakete. Sofern es dem Installationsprogramm gelingt, eine Internetverbindung herzustellen, lädt es die fehlenden Pakete nun aus dem Internet herunter und installiert sie.
Sprachpakete
38.3 USB-Stick-Installation (Desktop-CD) Grundsätzlich bestehen zwei Möglichkeiten, Ubuntu auf einen USB-Stick oder auf eine externe Festplatte zu installieren: Entweder führen Sie eine gewöhnliche Installation in eine Partition eines USB-Datenträgers durch, oder Sie verwenden das hier beschriebene Programm SYSTEMj SYSTEMVERWALTUNG|USB-STARTMEDIENERSTELLER (kurz usb-creator). Dieses Programm muss auf die Installations-CD oder eine entsprechende ISO-Datei zugreifen können. Der externe Datenträger muss mindestens 2 GByte groß sein und muss in der Regel neu formatiert werden. Sie verlieren also alle darauf enthaltenen Daten! Sie können auf dem Datenträger einen reservierten Bereich vorsehen, um darin Systemeinstellungen und persönliche Daten zu speichern. Wenn Sie das nicht wollen, wählen Sie die Option B EIM HERUNTERFAHREN VERWERFEN .
1111
Kapitel 38
Ubuntu 10.10
Damit Sie vom USB-Stick starten können, müssen Sie das BIOS so einstellen, dass der USB-Stick als Boot-Medium akzeptiert wird. Sehr alte BIOS-Versionen sehen diese Möglichkeit leider nicht vor. Beim Start verhält sich das System genau so, als würden Sie es von einer Live-CD starten. Sie müssen daher bei jedem Start die gewünschte Sprache neuerlich angeben. usb-create führt keine echte Installation durch, sondern kopiert lediglich den Inhalt der Live-CD auf den USB-Stick. Im Vergleich zu einer richtigen Installation ist das Live-System nur bedingt modifizierbar und läuft etwas langsamer. Es eignet sich als »Ubuntu zum Mitnehmen« oder zur Durchführung einer richtigen Ubuntu-Installation auf einem Computer ohne CD/DVD-Laufwerk, aber nicht für den Dauerbetrieb.
38.4 WUBI (Desktop-CD) WUBI steht für Windows-based Ubuntu Installation. Das Installationsprogramm wubi.exe wird direkt unter Windows gestartet. Genau genommen führt das Programm lediglich diverse Vorbereitungsarbeiten aus. Die eigentliche Installation erfolgt erst nach einem Neustart des Rechners. Auch zum Start von Ubuntu müssen Sie Windows verlassen – WUBI bietet also keine Möglichkeit, Ubuntu parallel zu Windows auszuführen. WUBI funktioniert laut Informationen auf wubi-installer.org unter den Windows-Versionen 98, 2000, XP und Vista und 7 (aber nicht unter Windows ME). Meine Tests habe ich mit einer 64-BitVersion von Windows 7 durchgeführt. Weitere Informationen zu WUBI finden Sie auf den folgenden Websites: http://www.wubi-installer.org/ https://wiki.ubuntu.com/WubiGuide Vorteile
Zu den Vorteilen von WUBI zählen neben der extrem einfachen Bedienung die Installation von Ubuntu in das Windows-Verzeichnis ubuntu und der Start von Ubuntu durch den Windows-Boot-Loader. Die zwei größten Installationsprobleme für Linux-Einsteiger entfallen somit: die Neupartitionierung der Festplatte und die Installation des Linux-Bootloaders in den Bootsektor der Festplatte.
Nachteile
WUBI ist leider auch mit Nachteilen verbunden: Ein mit WUBI installiertes Linux hat keine eigene Festplattenpartition. Stattdessen befindet sich das Dateisystem in einer bzw. mehreren WindowsDateien. Die Folge: Zum einen ist der Dateizugriff etwas langsamer als sonst, was die DesktopNutzung kaum beeinträchtigt, den Einsatz festplattenintensiver Anwendungen aber spürbar bremst. Zum anderen reagiert das Dateisystem wesentlich empfindlicher auf Abstürze bzw. Stromausfälle. Während bei einer gewöhnlichen Linux-Installation – wenn überhaupt – höchstens ein paar offene Dateien verloren gehen, kann bei einer WUBI-Installation das gesamte Dateisystem inkonsistent werden! Außerdem ist es unmöglich, ein durch WUBI installiertes System in den Ruhezustand oder Bereitschaftsmodus zu versetzen; Sie müssen Ubuntu jedes Mal vollständig herunterfahren.
Installation
Zur Installation starten Sie unter Windows das Programm wubi.exe. Das Programm befindet sich auf der Desktop-CD, aber leider nicht auf der beiliegenden Ubuntu-DVD. Sie können das Programm auch von wubi-installer.org herunterladen (ca. 1 MByte). Nachdem Sie die elementaren Installationseinstellungen durchgeführt haben (siehe Abbildung 38.4), überprüft das Programm, ob die
1112
WUBI (Desktop-CD)
Abschnitt 38.4
CD die zur Installation erforderlichen Daten enthält. Ist das der Fall, bildet WUBI daraus eine ISOImage-Datei und speichert diese im Verzeichnis ubuntu. Dieser Vorgang beansprucht inklusive der Berechnung einer Prüfsumme mehrere Minuten. Wenn wubi.exe nicht von einer Ubuntu-DesktopCD gestartet wurde bzw. wenn eine andere Installationsvariante ausgewählt wurde (z. B. Kubuntu), lädt WUBI das erforderliche ISO-Image aus dem Internet herunter (ca. 700 MByte).
Abbildung 38.4: WUBIInstallationseinstellungen unter Windows 7
Noch eine Anmerkung zur Installationsgröße, die Sie in GByte angeben: Dieser Platz geht unter Windows sofort zur Gänze verloren, auch wenn Sie unter Linux anfänglich nur einen Teil davon nutzen. Zu sparsam sollten Sie den Speicherplatz aber nicht bemessen, denn eine nachträgliche Änderung ist nicht möglich. Nachdem WUBI das virtuelle Dateisystem und die Installationsdateien vorbereitet hat, ergänzt es das Windows-Boot-Menü um einen Eintrag zum Start von Ubuntu. Um Ubuntu nun tatsächlich zu installieren, müssen Sie den Rechner neu starten und den Eintrag UBUNTU auswählen. Die eigentliche Installation erfolgt ohne weitere Eingriffe und dauert ca. 10 Minuten. Falls es dem Installationsprogramm gelingt, eine Verbindung zum Internet herzustellen, lädt es die Pakete für die deutsche Sprachunterstützung automatisch herunter und installiert sie. Falls Sie Ubuntu später wieder entfernen möchten, starten Sie den Rechner unter Windows, wählen in der SYSTEMSTEUERUNG den Punkt PROGRAMME UND FUNKTIONEN und deinstallieren dort Ubuntu. Das dauert nicht einmal eine Minute!
Deinstallation
In der Anwendung verhält sich ein mit WUBI installiertes Ubuntu genauso wie ein auf herkömmliche Weise installiertes Linux-System. Der einzige Unterschied: Über das Verzeichnis /host können Sie direkt auf die Windows-Partition zugreifen, in die die Ubuntu-Installation erfolgt ist. Hinter den Kulissen gibt es aber natürlich einige Unterschiede, die den Zugriff auf das virtuelle Dateisystem und den Start von Linux betreffen.
Interna
Das gesamte Linux-Dateisystem befindet sich in der Datei /host/ubuntu/disks/root.disk. (Da bei VFAT-Partitionen die Dateigröße limitiert ist, wird das Dateisystem in diesem Fall auf mehrere Dateien verteilt.) Linux »sieht« diese Datei wie ein gewöhnliches Linux-Dateisystem im Format ext4. Der
1113
Kapitel 38
Ubuntu 10.10
Zugriff auf root.disk erfolgt durch das Loopback-Device. Die Datei wird so behandelt, als würde es sich um eine Festplattenpartition bzw. um ein Block Device handeln. Das ist aber nicht der Fall – root.disk ist ja wiederum eine ganz gewöhnliche Windows-Datei. Deswegen läuft hinter den Kulissen auch ein NTFS- oder VFAT-Treiber, der alle Änderungen an dieser Datei im Windows-Dateisystem speichert. Genau dieser Punkt ist auch die sprichwörtliche Achillesferse der WUBI-Installation: Zwei Dateisystemtreiber, einer für Linux und einer für Windows, sind auf unterschiedlichen Ebenen dafür verantwortlich, dass alle Änderungen physikalisch auf der Festplatte gespeichert werden. Das kostet nicht nur Rechenzeit, sondern führt auch relativ leicht zu einem beschädigten Dateisystem, falls Linux abstürzt oder der Rechner einfach ausgeschaltet wird bzw. der Strom ausfällt. Systemstart
Der Start von Ubuntu geht vom Windows-Bootmenü aus. Wenn Sie dort UBUNTU auswählen, führt der Windows-Boot-Loader die Datei ubuntu/winboot/wubild.mbr aus. Dieses WUBI-spezifische Programm sucht auf derselben Festplatte nach der Image-Datei ubuntu/disks/root.disk, lädt diese als Loopback-Device, liest darin die Konfigurationsdatei /boot/grub/grub.cfg und startet dann GRUB. Die einzige Besonderheit der WUBI-GRUB-Konfigurationsdatei ist die Angabe der Systempartition (Root-Partition): Während in grub.cfg normalerweise der Parameter root=devicename oder root=uuid an den Kernel übergeben wird, kommt bei einer WUBI-Installation loop=/ubuntu/disks/ root.disk hinzu. Das bedeutet, dass sich die Systempartition in dieser Datei befindet.
38.5 Installation im Textmodus (Alternate-CD) Eine Installation im Textmodus ist dann erforderlich, wenn Sie LVM oder ein Software-RAID einrichten möchten oder wenn Sie Ubuntu Server installieren wollen. Für die Installation benötigen Sie entweder eine Ubuntu-Alternate-CD oder eine Ubuntu-DVD. Im Installationsmenü stellen Sie die Sprache auf DEUTSCH um. Anschließend starten Sie die Installation mit dem Menüpunkt INSTALLIERE IM T EXTMODUS . Falls Ubuntu Probleme mit der richtigen Hardware-Erkennung hat, führt (F1) zu einigen Hilfeseiten. Sie beschreiben unter anderem, wie Sie durch die zusätzliche Angabe von Optionen HardwareProbleme umgehen können. Wenn Ubuntu beispielsweise Ihren SCSI-Controller nicht erkennt, müssen Sie eine entsprechende Option angeben. Um die Installation mit solchen Optionen zu starten, geben Sie ein Kommando wie im folgenden Beispiel an: linux noapic nolapic In den ersten Dialogen des Installationsprogramms wählen Sie die Sprache und Ihr Land oder Gebiet aus. Diese Information wird zur Auswahl des nächstgelegenen Mirror-Servers verwendet. Das Installationsprogramm kann das Tastaturlayout selbst erkennen. Wesentlich schneller ist es aber, das gewünschte Layout manuell einzustellen (wählen Sie DEUTSCHLAND – O HNE G RAVE- UND ACUTE-A KZENTZEICHEN ).
1114
Installation im Textmodus (Alternate-CD)
Abschnitt 38.5
Nach der Hardware-Erkennung versucht das Installationsprogramm, das Netzwerk automatisch zu konfigurieren. Das gelingt nur, wenn sich im lokalen Netzwerk ein Router bzw. DHCP-Server befindet. Andernfalls haben Sie die Wahl, auf die Netzwerkkonfiguration vorerst zu verzichten oder die wichtigsten Parameter manuell einzugeben. Dazu müssen Sie wissen, welche IP-Adresse Ihr Rechner haben soll und welche Netzwerkmaske gelten soll. Außerdem müssen Sie die IP-Adressen des Internet-Gateways und des DNS-Servers angeben. (Ein Netzwerkglossar finden Sie auf Seite 799.) Die verschachtelten Dialoge zur Partitionierung der Festplatten sind leider sehr unübersichtlich. Im ersten Dialog stellt das Installationsprogramm verschiedene Kommandos zur Auswahl. Je nachdem, wie viele Festplatten Ihr Rechner hat und welche Partitionen sich darauf bereits befinden, kann das Auswahlmenü zusätzliche Kommandos aufweisen.
Partitionierung der Festplatte
» G EFÜHRT – VERKLEINERE PARTITION n UND NUTZE DEN FREIGEGEBENEN SPEICHER: Diese Option erscheint nur, wenn Windows-Partitionen auf der Festplatte existieren. Mit dem Kommando können Sie deren Größe reduzieren, um so Platz für Linux-Partitionen zu machen. » G EFÜHRT – VERWENDE VOLLSTÄNDIGE FESTPLATTE : Das Installationsprogramm erstellt einen Vorschlag, wie die gesamte Festplatte für Linux-Partitionen genutzt werden kann. Diesen Vorschlag können Sie bestätigen (PARTITIONIERUNG BEENDEN UND Ä NDERUNGEN SPEICHERN ) oder abbrechen (Ä NDERUNGEN RÜCKGÄNGIG MACHEN). Vorsicht: Wenn Sie diese Option wählen und den Vorschlag bestätigen, verlieren Sie alle bisher auf der Festplatte gespeicherten Daten! Die Variante ist somit nur zweckmäßig, wenn Sie die bisher auf der Festplatte installierten Betriebssysteme (z. B. Windows) nicht mehr brauchen oder wenn die Festplatte noch vollkommen leer (noch nicht initialisiert) ist. » G EFÜHRT – DEN GRÖSSTEN FREIEN SPEICHERBEREICH BENUTZEN: Das Installationsprogramm erstellt einen Vorschlag, wie der freie Platz auf der Festplatte für Linux-Partitionen genutzt werden soll. Sie müssen diesen Vorschlag anschließend bestätigen. Wenn Sie das nicht tun (Antwort N EIN ), gelangen Sie in einen Dialog mit der Partitionstabelle (siehe Abbildung 38.5). Dort können Sie die Partitionen manuell verändern oder alle Ä NDERUNGEN RÜCKGÄNGIG MACHEN. Die Option ist nur sinnvoll, wenn es auf der Festplatte partitionsfreien Platz gibt. » G EFÜHRT – GESAMTE PLATTE VERWENDEN UND LVM EINRICHTEN : Auch mit dieser Option werden alle vorhandenen Daten der Festplatte gelöscht. Anschließend richtet das Installationsprogramm ein LVM-System ein (Logical Volume Manager, siehe Seite 675). » G EFÜHRT – GESAMTE PLATTE MIT VERSCHLÜSSELTEM LVM: Wie oben, allerdings wird das gesamte Dateisystem zusätzlich verschlüsselt. Das ist beispielsweise bei Notebooks zweckmäßig, um auszuschließen, dass ein verlorenes oder gestohlenes Notebook private Daten preisgibt. Für den Server-Einsatz ist diese Option ungeeignet, weil das Verschlüsselungspasswort bei jedem Start manuell eingegeben werden muss und die Verschlüsselung den Festplattenzugriff spürbar verlangsamt. » MANUELL: Mit diesem Punkt können Sie neue Linux-Partitionen für die Ubuntu-Installation manuell anlegen.
1115
Kapitel 38
Automatische Partitionierung
Ubuntu 10.10
Bei allen Partitionierungsvarianten, deren Menüpunkt mit G EFÜHRT beginnt, überlassen Sie die Partitionierung dem Installationsprogramm. Dieses erzeugt eine kleine Swap-Partition und eine Systempartition, die den Rest der Festplatte füllt. Das ist allerdings nicht optimal: » Erstens ist es sinnvoll, neben der Systempartition auch eine Datenpartition (Verzeichnis /home) einzurichten: Falls Sie später Ubuntu neu installieren oder eine andere Linux-Distribution ausprobieren möchten, sind Ihre eigenen Dateien in der Datenpartition gut aufgehoben. » Zweitens ist es bei großen Festplatten oft zweckmäßig, die Linux-Partitionen nicht zu groß zu wählen. Damit bleibt ein Teil der Festplatte unpartitioniert und kann später nach Bedarf für weitere Partitionen genutzt werden (sowohl für Windows als auch für Linux).
Manuelle Partitionierung
Das Menükommando MANUELL führt in einen neuen Dialog, der einige Menükommandos sowie eine Liste aller vorhandenen Festplatten bzw. Festplattenpartitionen enthält (siehe Abbildung 38.5).
Abbildung 38.5: Die Partitionstabelle
In der Partitionstabelle wählen Sie den Eintrag FREIER SPEICHER aus. (Wenn es keinen freien Speicher gibt, müssen Sie eine vorhandene Partition löschen oder ändern.) Im nächsten Dialog entscheiden Sie sich für die Option E INE NEUE PARTITION ERSTELLEN. Anschließend geben Sie die gewünschte Partitionsgröße an und wählen den Partitionstyp. (Die erste Partition der Festplatte muss eine primäre Partition sein. Oft befindet sich darin Windows. Für alle weiteren Partitionen wählen Sie LOGISCH .) Das Installationsprogramm zeigt nun eine Zusammenfassung der Einstellungen für diese Partition an (siehe Abbildung 38.6). Für die Systempartition können Sie zumeist alle Einstellungen beibehalten und müssen diese nur noch durch A NLEGEN DER PARTITION BEENDEN bestätigen. Damit gelangen Sie zurück in die Partitionstabelle, die nun eine weitere Partition enthält. Beim Anlegen der Swap-Partition müssen Sie in den Partitionseinstellungen eine Änderung vornehmen: Den Punkt BENUTZEN ALS stellen Sie auf A USLAGERUNGSDATEI (SWAP ). Auch beim Anlegen zusätzlicher Partitionen (/home, /tmp etc.) müssen Sie die Partitionseinstellungen ändern: Diesmal
1116
Installation im Textmodus (Alternate-CD)
Abschnitt 38.5
Abbildung 38.6: Die Einstellungen für die neue Partition
wählen Sie den Punkt EINHÄNGEPUNKT aus und stellen dann den gewünschten Verzeichnisnamen für die Partition ein. Nach der Definition aller Partitionen führen Sie in der Partitionstabelle das Kommando PARTITIONIERUNG BEENDEN UND Ä NDERUNGEN ÜBERNEHMEN aus. Nach einer weiteren Rückfrage werden die Änderungen an der Festplatte tatsächlich durchgeführt. Anschließend kopiert das Installationsprogramm unzählige Dateien in die soeben angelegte Systempartition. Das dauert einige Minuten.
Achtung
Das Ubuntu-Installationsprogramm minimiert ebenso wie seine Debian-Variante die Größe der erweiterten Partition. Das erschwert später die Installation anderer Distributionen. Abhilfe: Legen Sie eine zusätzliche logische Partition in maximaler Größe als Platzhalter an. Diese Partition bleibt vorerst unbenutzt. Wenn Sie später eine andere Linux-Distribution installieren, löschen Sie zuerst die Platzhalterpartition und legen in dem nun freien Platz neue Partitionen an. Im Detail ist die Problematik auf Seite 1057 beschrieben. Nach dem Abschluss der Partitionierung werden nun zahllose Pakete auf die Festplatte installiert. Anschließend müssen Sie nun den Namen und das Passwort eines Ubuntu-Benutzers angeben. Weitere Benutzer können Sie später im laufenden Betrieb hinzufügen.
Benutzerdaten
Das Installationsprogramm fragt nun, ob es Ihr persönliches Verzeichnis verschlüsseln soll. Wenn Sie sich dafür entscheiden, erzeugt das Installationsprogramm selbst ein sicheres Passwort, das über Ihr Login-Passwort freigeschaltet wird. (Die Sicherheit Ihres Systems hängt also ganz von der Qualität Ihres Login-Passworts ab. Details und Interna zum Umgang mit dem verschlüsselten Verzeichnis finden Sie ab Seite 1126.)
Persönliches Verzeichnis verschlüsseln
Einige Pakete zur deutschen Sprachunterstützung fehlen auf der CD. Das Installationsprogramm versucht, die Dateien aus dem Internet nachzuladen. Gelingt das nicht, können Sie die fehlenden Sprachpakete später mit SYSTEMjSYSTEMVERWALTUNGjSPRACHUNTERSTÜTZUNG installieren.
Deutsche Sprachunterstützung
Anschließend fragt das Installationsprogramm, ob die Uhrzeit Ihres Computers auf die Universal Coordinated Time (UTC) eingestellt ist. Diese Zeit ist auch unter dem Namen Greenwich Mean Time
Hardware-Uhr
1117
Kapitel 38
Ubuntu 10.10
(GMT) bekannt. Wenn die Hardware-Uhr die lokale Zeit enthält bzw. wenn Sie Ubuntu in einer virtuellen Maschine ausführen, antworten Sie mit N EIN. Bootloader
Zuletzt erscheint der Installationsdialog für den Bootloader (es sei denn, Ubuntu ist das einzige Betriebssystem auf der Festplatte). Das Installationsprogramm versucht, alle auf dem Rechner installierten Betriebssysteme zu erkennen und in das Bootmenü einzutragen. Normalerweise bestätigen Sie die Betriebssystemliste durch (¢) und installieren damit den Bootloader in den Startsektor der ersten Festplatte (MBR).
38.6 Konfiguration Ubuntu ist mit weniger Konfigurationswerkzeugen ausgestattet als Fedora, Mandriva, SUSE und Co. Die Werkzeuge sind überwiegend Gnome-Programme. Anstelle eines einheitlichen Kontrollzentrums gibt es bei Ubuntu nur das Menü SYSTEMjSYSTEMVERWALTUNG. Benutzerverwaltung
Standardmäßig gibt es unter Ubuntu nur einen Benutzer, der während der Installation eingerichtet wurde. Zur Definition weiterer Benutzer starten Sie SYSTEMjSYSTEMVERWALTUNGjBENUTZER UND G RUPPEN . Bei jedem Benutzer haben Sie die Wahl zwischen zwei Benutzerprofilen: » Für die tägliche Arbeit ist das Profil DESKTOP-BENUTZER geeignet. Damit kann der Benutzer alle Ressourcen des Rechners nutzen, aber keine administrativen Aufgaben erledigen. » A DMINISTRATOR gibt dem neuen Benutzer neben allen Desktop-Rechten die Möglichkeit, mit sudo in den root-Modus zu wechseln. Der Benutzer hat somit dieselben Rechte wie der während der Installation eingerichtete Ubuntu-Standardbenutzer. Wenn Sie möchten, können Sie auch abweichend von diesen beiden Profilen im Dialogblatt ERWEITERTE E INSTELLUNGEN jB ENUTZERRECHTE eigene Einstellungen vornehmen.
Firewall
Unbegreiflicherweise ist bei Ubuntu standardmäßig noch immer keine Firewall eingerichtet. Die offizielle Begründung lautet, dass unter Ubuntu ohnedies kaum potenziell gefährdete Netzwerkprogramme laufen. Das stimmt allerdings nur mit Einschränkungen und auch nur, solange Sie nicht selbst z. B. einen Samba- oder NFS-Server einrichten. Generell ist es eine gute Idee, per Firewall jede Netzwerkverbindung zu verbieten, die nicht benötigt wird. Statt grafischer Konfigurationswerkzeuge gibt es das Ubuntu-spezifische Kommando ufw (Uncomplicated Firewall). Es ermöglicht die Definition von Firewall-Regeln in einer wesentlich einfacheren Syntax als iptables (siehe Seite 890). Wenn Sie ufw einsetzen möchten, können Sie in sehr einfachen Fällen das grafische Konfigurationswerkzeug Gufw verwenden. Im Vergleich zu den Firewall-Werkzeugen von Fedora oder openSUSE bietet Gufw allerdings nur ganz rudimentäre Einstellmöglichkeiten. ufw hat bislang keine weite Verbreitung gefunden, nicht einmal innerhalb von Ubuntu, geschweige denn darüber hinaus. Besser ist es, Sie setzen zur Firewall-Konfiguration eine nicht Ubuntuspezifische Benutzeroberfläche ein, z. B. Firestarter (siehe Seite 891).
1118
Paketverwaltung
Zur Veränderung der Bildschirmauflösung starten Sie mit SYSTEMjEINSTELLUNGENjA NZEIGE das Programm gnome-display-properties (siehe Seite 587). Tipps zur Konfiguration der binären Grafiktreiber für ATI/AMD- bzw. NVIDIA-Grafikkarten finden Sie auf den Seiten 1128 bzw. 1129.
Abschnitt 38.7
Grafiksystem und 3D-Desktop
Ubuntu aktiviert den 3D-Desktop auf der Basis von Compiz standardmäßig, sofern eine geeignete Grafikkarte vorliegt und ein passender Treiber installiert ist. Die Konfiguration der 3D-Effekte erfolgt durch SYSTEMjEINSTELLUNGEN jERSCHEINUNGSBILDjVISUELLE EFFEKTE in den drei Stufen K EINE , N ORMAL und E XTRA . Um die 3D-Effekte exakter zu steuern, installieren Sie wahlweise das Paket simple-ccsm oder compizconfig-settings-manager. Zur LAN- und WLAN-Konfiguration setzt Ubuntu ganz auf den Network Manager (siehe auch Seite 791). Eher trist ist die Lage, wenn Sie den Internetzugang direkt über ein Analog- oder ADSL-Modem einrichten möchten. Zum Betrieb von Analogmodems installieren Sie am besten das Programm gnome-ppp. Den ADSL-Zugang über das in Deutschland weit verbreitete Protokoll PPPoE richten Sie mit dem Textkommando pppoeconf ein (siehe Seite 797).
Netzwerk
38.7 Paketverwaltung Ubuntu verwendet das auf Seite 528 beschriebene Debian-Paketverwaltungssystem. Ubuntu greift allerdings nicht auf Debians Paketarchive zurück, sondern verwendet eigene Paketarchive. Das ist deswegen notwendig, weil Ubuntu vielfach aktuellere Software-Versionen nutzt als Debian. Die Paketverwaltung zählt aus zwei Gründen zu den größten Stärken von Ubuntu. Zum einen funktioniert sie problemlos und schnell (das ist eigentlich ein Verdienst der Debian-Entwickler), und zum anderen gibt es derart viele Ubuntu-Mirrors, dass deren Erreichbarkeit und die DownloadGeschwindigkeiten trotz der Größe der Ubuntu-Anwendergemeinde hervorragend sind.
Paketquellen Es gibt vier »offizielle« Ubuntu-Paketgruppen: » Uneingeschränkt unterstützt (main): Diese Pakete sind Bestandteil von Ubuntu, sind frei verfügbar und können ohne Lizenzprobleme frei weitergegeben werden. main-Pakete werden vom Ubuntu-Team gewartet. In einer Zeitspanne von 18 Monaten stellt Ubuntu Sicherheits-Updates für diese Pakete zur Verfügung. Bei LTS-Versionen gibt es sogar drei bzw. fünf Jahre lang Updates für Desktop- bzw. Server-Pakete. » Eingeschränktes Copyright (restricted): restricted-Pakete enthalten Programme, die für die Funktion von Ubuntu Linux wichtig sind, die aber nicht als Open-Source-Software vorliegen. Dabei handelt es sich insbesondere um Hardware-Treiber für Grafik- und WLAN-Karten. Auch die restricted-Pakete werden offiziell von Ubuntu unterstützt und gewartet. Bei SicherheitsUpdates ist das Ubuntu-Team allerdings auf die Unterstützung der Firmen angewiesen, die die jeweiligen Programme zur Verfügung stellen.
1119
Kapitel 38
Ubuntu 10.10
» Von der Gemeinschaft verwaltet (universe): universe-Pakete enthalten Open-Source-Programme, die nicht vom Ubuntu-Team gewartet werden. Stattdessen kümmern sich Mitglieder der Ubuntu-Community um diese Pakete. Gerade fortgeschrittene Linux-Anwender werden dort viele Programme finden, die aus Platzgründen nicht zum Ubuntu-Standardsystem gehören. » Unfrei (multiverse): multiverse-Pakete enthalten Programme oder Daten, die nicht unter einer Open-Source-Lizenz stehen bzw. die nicht den Debian-Regeln für eine freie Verbreitung entsprechen. Es liegt in Ihrer Verantwortung, sicherzustellen, dass Sie die Programme rechtmäßig und entsprechend der jeweiligen Lizenz verwenden. Die Pakete werden wie universe-Pakete nicht von Ubuntu gewartet. Ubuntu-Installations-CDs bzw. -DVDs enthalten aus Platzgründen lediglich eine Auswahl der mainund restricted-Pakete. Weitere Paketquellen
Neben den offiziellen Ubuntu-Paketquellen gibt es im Internet eine Menge weiterer Paketarchive mit weiteren Programmen oder aktuelleren Versionen: » Partner-Pakete: Die partner-Paketquelle (ehemals commercial) wird von der Firma Canonical gewartet, also von dem finanziellen Partner von Ubuntu. Sie enthält kommerzielle Programme, die kostenlos weitergegeben werden dürfen. Zuletzt war das Angebot der verfügbaren Programme aber sehr bescheiden (eine englische Version von Adobe Reader, ansonsten nur einige eher exotische Programme). In der Vergangenheit wurden die Pakete zudem nicht gewartet, d. h., im Laufe der Zeit waren die wenigen verfügbaren Pakete auch noch veraltet. Weitere Informationen finden Sie hier: https://help.ubuntu.com/community/Repositories/Ubuntu http://archive.canonical.com/ubuntu/dists/maverick/partner/ » Rückportierte Pakete (backport): Als Backport bezeichnet man die Portierung eines neuen Programms für eine ältere Ubuntu-Version. Wenn Sie also die neueste Version des Programms xy ausprobieren möchten, die offiziellen Pakete für Ihre Ubuntu-Version aber nur eine ältere (und zumeist stabilere) Version enthalten, können Sie auf backport-Pakete zurückgreifen. Dieses Angebot ist primär für fortgeschrittene Ubuntu-Anwender interessant. Vorsicht: Wenn Sie diese Paketquelle einrichten, werden standardmäßig alle installierten Pakete durch backport-Versionen aktualisiert (soweit verfügbar). Aus Stabilitätsgründen ist das nicht immer wünschenswert. Das kann durch sogenanntes Pinning vermieden werden. Details verrät die folgende Seite: https://help.ubuntu.com/community/UbuntuBackports Meine persönlichen Erfahrungen mit backport-Paketen waren überwiegend positiv. Die wirklich interessanten Pakete für den Desktop-Einsatz, also z. B. aktuelle Versionen von Firefox, OpenOffice, Gimp oder Amarok, habe ich dort aber selten gefunden. » PPAs: PPA steht für Personal Package Archive und ist eine Möglichkeit für Ubuntu-Entwickler, aktuelle Versionen von diversen Programmen zur Verfügung zu stellen, ohne diese offiziell in die Ubuntu-Paketquellen zu integrieren. PPAs bieten oft den schnellsten Weg, um neue (Test-)Versionen von X-Treibern, OpenOffice, Firefox etc. relativ gefahrlos in Ubuntu zu integrieren. Weitere Informationen über PPAs finden Sie hier: https://launchpad.net/ubuntu/+ppas
1120
Paketverwaltung
Abschnitt 38.7
Um eine PPA-Paketquelle einzurichten, führen Sie einfach das folgende Kommando aus: user$
sudo add-apt-repository ppa:name
» Sonstige Paketquellen: Es gibt auch Paketquellen, die vollkommen unabhängig von Ubuntu/Canonical gewartet werden. Sie enthalten zumeist Programme, die der Debian- bzw. UbuntuPhilosophie widersprechen, bei denen die rechtliche Situation unklar ist (z. B. wegen SoftwarePatenten) oder deren Weitergabe in einigen Ländern grundsätzlich nicht zulässig ist (z. B. die Bibliothek zum Lesen verschlüsselter DVDs). Die populärste derartige Paketquelle ist Medibuntu. Dort finden Sie Pakete, um die Multimedia-Fähigkeiten von Ubuntu zu verbessern, sowie diverse kostenlose kommerzielle Programme (Adobe Reader etc.). http://medibuntu.org/ Die Paketquellen sind in /etc/apt/sources.list bzw. in /etc/apt/sources.list.d/* definiert. Standardmäßig sind Paketquellen für alle verfügbaren main-, restricted-, multiverse- und universe-Pakete sowie deren Updates eingerichtet. # Datei /etc/apt/sources.list für Ubuntu deb http://de.archive.ubuntu.com/ubuntu/ deb http://de.archive.ubuntu.com/ubuntu/ deb http://de.archive.ubuntu.com/ubuntu/
Konfiguration der Paketquellen
10.10 maverick main restricted universe multiverse maverick-updates main restricted universe multiverse maverick-security main restricted universe multiverse
Damit stehen Ihnen über 32.000 Pakete zur Auswahl! Wenn Sie auch partner- oder backportsPakete installieren möchten, ergänzen Sie sources.list wie folgt: deb http://de.archive.ubuntu.com/ubuntu/ maverick-backports main restricted universe multiverse deb http://archive.canonical.com/ubuntu/ maverick partner
Entwickler, die auch die Quellcodepakete brauchen, müssen wie im folgenden Beispiel zusätzlich äquivalente deb-src-Zeilen angeben: deb-src http://de.archive.ubuntu.com/ubuntu/ maverick main restricted universe multiverse
Paketinstallation Fortgeschrittene Ubuntu-Anwender setzen zur Installation von Paketen apt-get oder Synaptic ein (siehe Kapitel 21). Einsteiger können stattdessen das »Software-Center« verwenden und darin besonders komfortabel nach Programmen suchen und diese installieren (siehe Abbildung 38.7). Dazu führen Sie A NWENDUNGEN jSOFTWARE -CENTER aus, wählen eine Kategorie aus und blättern dann durch die angezeigten Programme. In Zukunft soll es auch möglich sein, über das SoftwareCenter Programme zu kaufen. Aktuell enthält der Bereich Z UM K AUF aber nur ein Testpaket.
Software-Center
Während die nachträgliche Installation von Sprachpaketen bei vielen Distributionen eine Geduldsprobe ist, glänzt Ubuntu hier durch ein eigenes Programm: Mit SYSTEMjSYSTEMVERWALTUNGjSPRACH UNTERSTÜTZUNG können Sie Sprachpakete für die aktuelle oder für eine weitere Sprache installieren bzw. vervollständigen und die Standardsprache einstellen. Die Änderung der Standardsprache wird beim nächsten Login wirksam. Das Programm S PRACHUNTERSTÜTZUNG kümmert sich allerdings nur um direkt zu Ubuntu gehörige Programme. Wenn Sie außerdem auch KDE-Programme installiert haben (z. B. Amarok), müssen Sie für dessen Lokalisierung das Paket kde-l10n-de installieren.
Sprachpakete
1121
Kapitel 38
Ubuntu 10.10
Abbildung 38.7: Programmsuche im Software-Center
Updates Ubuntu verwendet ebenso wie Debian den update-manager, um Updates durchzuführen. Anders als bei Debian wird dieses Programm einen Tag nach der Verfügbarkeit von Sicherheits-Updates bzw. eine Woche nach der Verfügbarkeit sonstiger Updates automatisch gestartet, wobei das Fenster aber minimiert bleibt. Es taucht also plötzlich das Icon des Update-Managers in der Fensterliste auf. Dieses neue Verhalten, das in Ubuntu 9.04 eingeführt wurde, hat unter vielen Ubuntu-Anwendern einen Sturm der Entrüstung ausgelöst. Der ensprechende Bug-Bericht (332945) hat mehrere Hundert Einträge, und selbst Mark Shuttleworth hat sich persönlich in die Diskussion eingeschaltet – wenn auch nur mit der Feststellung, dass das neue Verhalten erwünscht sei und vorläufig nicht geändert wird. Wenn Ihnen die Update-Benachrichtigung per Icon lieber ist, können Sie mit dem folgenden Kommando das alte Verhalten wiederherstellen: user$
gconftool -s --type bool /apps/update-notifier/auto_launch false
Bei den Updates fallen erhebliche Download-Mengen an. Jedes Paket muss komplett heruntergeladen werden. Anders als Fedora und SUSE kennt Ubuntu leider noch keine Delta-Pakete, die nur die notwendigen Änderungen enthalten. Offline-Updates
Wenn Sie einen Ubuntu-Rechner ohne schnelle Internet-Verbindung aktualisieren möchten, können Sie die Werkzeuge des Kerxy-Projekts zu Hilfe nehmen: http://keryxproject.org/
DistributionsUpdate
Durch das Ubuntu-Update-System werden Programme nur aktualisiert, um offensichtliche Probleme zu beheben. Das Update-System bewirkt aber nicht, dass Ihr System bei der Veröffentlichung der nächsten Ubuntu-Version automatisch auf diese Version aktualisiert wird. Wenn Sie das möchten, müssen Sie ein Distributions-Update durchführen. Beim Einlegen einer aktuellen Ubuntu-Alternate-CD oder einer Ubuntu-DVD erscheint automatisch eine Abfrage, ob Sie ein Update durchführen möchten. Wenn Sie das bejahen, wird das Update
1122
Ubuntu-spezifische Besonderheiten
Abschnitt 38.8
mit Synaptic durchgeführt. Alternativ können Sie den Update-Prozess auch manuell initiieren. Dazu laden Sie die Datei /etc/apt/sources.list mit einem Editor, löschen alle Zeilen, die mit deb cdrom: beginnen, und ersetzen maverick durch natty bzw. den Namen der dann aktuellen Ubuntu-Version. Falls Sie eine aktuelle Ubuntu-DVD oder Alternate-CD besitzen, führen Sie anschließend das folgende Kommando aus: user$
sudo apt-cdrom add
Sie erreichen damit, dass die auf der DVD verfügbaren Pakete nicht aus dem Internet heruntergeladen werden müssen. Das eigentliche Update führen Sie mit den beiden folgenden Kommandos durch: user$ user$
sudo apt-get update sudo apt-get dist-update
38.8 Ubuntu-spezifische Besonderheiten Grundsätzlich ist Ubuntu von Debian abgeleitet. Die meisten Debian-Besonderheiten gelten daher auch für Ubuntu (siehe Seite 1053). Das Programm apport wird bei Programmabstürzen gestartet und kann das Problem (nach einer Rückfrage) bei der Ubuntu-Entwicklungsplattform Launchpad melden – eigentlich also eine nützliche Sache. Wenn die apport-Rückfragen Sie irritieren, deinstallieren Sie einfach das gleichnamige Paket.
apport
Keine andere aktuelle Distribution verändert die Gnome-Konfiguration so stark wie Ubuntu. Als Erstes fällt das in Ubuntu 10.04 eingeführte neue Standardthema Ambiance auf. Es zeichnet sich durch dunkle Menüs und Fensterleisten mit bunten, runden Fensterbuttons aus. Wenn Sie dezentere Grautöne vorziehen, können Sie stattdessen das Thema Radiance aktivieren.
Gnome
Die zweite Auffälligkeit sind die Fenster-Buttons, die Ubuntu-Entwickler links statt rechts platziert haben – angeblich, um den nun freien Platz im rechten Bereich des Fenstertitels in Zukunft zur Anzeige von Statusinformationen zu nutzen. Viele Freunde haben sich die Ubuntu-Entwickler mit dieser Entscheidung nicht gemacht. Immerhin ist dieses Ärgernis leicht zu beheben: Entweder wählen Sie mit SYSTEMjEINSTELLUNGEN jERSCHEINUNGSBILD ein Thema aus, in dem die Fenster-Buttons rechts platziert sind (das ist bei allen Themen außer Ambiance, Dust und Radiance der Fall), oder Sie verändern die Button-Position durch das folgende Kommando: user$
gconftool-2 --set /apps/metacity/general/button_layout \ --type string "menu:minimize,maximize,close"
Die dritte Ubuntu-Besonderheit sind die sogenannten Indikatoren bzw. Indikator-Menüs, die rechts oben im Panel dargestellt werden (siehe Abbildung 38.8). Dabei handelt es sich um Ubuntuspezifische Programme, die gegenüber den Gnome-Originalen diverse Zusatzfunktionen implementieren. Zurzeit setzen sich die Indikator-Menüs aus den folgenden Programmen bzw. Paketen zusammen:
1123
Kapitel 38
Ubuntu 10.10
Abbildung 38.8: Die UbuntuIndikator-Menüs
» indicator-applet (Benachrichtigungsanzeige): Das ist ein Container, in dem diverse andere Indikator-Programme ausgeführt und angezeigt werden. Beginnend mit Ubuntu 11.04 soll dieses Programm das Gnome-Benachrichtigungsfeld (Paket notification-area-applet) ganz ersetzen. Ob bis dahin wirklich alle Programme zur BENACHRICHTIGUNGSANZEIGE kompatibel sind, muss sich aber erst erweisen. Die Überlegungen der Ubuntu-Entwickler zum Umgang mit Benachrichtigungen und Status-Icons können Sie hier nachlesen: http://design.canonical.com/2010/04/notification-area/ » indicator-session: Mit diesem Programm können Sie sich ausloggen, den Rechner herunterfahren und einen Benutzerwechsel durchführen. » indicator-me (Me-Menü für Social Networking): Dieses Miniprogramm hat das Aussehen einer kleinen Sprechblase. Sie können damit den Status des Chat-Programms Empathy steuern und direkt Kurznachrichten via Gwibber versenden. Wenn Sie keinen Bedarf für das Me-Menü haben, können Sie es übrigens nicht einfach per Kontextmenü A US DEM PANEL ENTFERNEN . Unbegreiflicherweise wird dann auch gleich das Applet indicator-applet-session beendet. Abhilfe: Deinstallieren Sie das Paket indicator-me. » indicator-messages (Messaging-Menü): Dieses Miniprogramm informiert über eintreffende E-Mails (das funktioniert aber momentan aber nur im Zusammenspiel mit Evolution) und ermöglicht einen Start des Micro-Blogging-Clients Gwibber. Für die Integration von Thunderbird in das Messaging-Menü gibt es ein Add-in (siehe Seite 1130). » indicator-sound: Dieses Miniprogramm ist in Ubuntu 10.10 neu dazukommen. Es ermöglicht nicht nur die Einstellung der Lautstärke, sondern auch die Bedienung indikator-kompatibler Audio-Player (was die Auswahl momentan auf das von Ubuntu favorisierte Rhythmbox reduziert). » indicator-application: Dieses Miniprogramm zeigt die Menüs von Gnome-Programmen im Panel in Form eines Zentralmenüs an (wie bei Mac OS X). Das Programm kommt in der Ubuntu Netbook Edition zum Einsatz. Weitere Informationen zum Umbau der Panel-Programme können Sie hier nachlesen: https://wiki.ubuntu.com/Ayatana https://wiki.ubuntu.com/MeMenu https://wiki.ubuntu.com/MessagingMenu http://www.markshuttleworth.com/archives/347
1124
Ubuntu-spezifische Besonderheiten
Abschnitt 38.8
Wie Ubuntu seine Indikatoren in Gnome 3.0 integrieren wird bzw. wann es überhaupt Gnome 3.0 standardmäßig auszuliefern plant, ist momentan nicht bekannt.
Tipp
Wenn Sie unter Gnome häufig die Bildschirmauflösung verändern, kommt regelmäßig die Reihenfolge der Panel-Applets und -Indikatoren durcheinander. Um die Applets wieder in die richtige Reihenfolge zu bringen, deaktivieren Sie zuerst mit der rechten Maustaste die Option A UF DEM PANEL SPERREN . Anschließend können Sie dem Applet mit dem Kontextmenükommando VERSCHIEBEN eine neue Position geben. Als einzige große Distribution setzt Ubuntu schon seit Version 9.10 standardmäßig auf GRUB 2. Die Bedienung von GRUB verändert sich dadurch nicht, wohl aber die Konfiguration. Alle Details sind in Abschnitt 25.7 beschrieben.
GRUB 2
Die Datei /etc/lsb-release enthält den Namen und die Versionsnummer der Distribution:
ReleaseInformationen
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=10.10 DISTRIB_CODENAME=maverick DISTRIB_DESCRIPTION="Ubuntu 10.10" Im Gegensatz zu den meisten anderen Linux-Distributionen ist unter Ubuntu der root-Login komplett gesperrt. Aus diesem Grund mussten Sie während der Installation auch kein root-Passwort angeben. Sämtliche Administrationsaufgaben erledigen Sie, indem Sie mit sudo in den root-Modus wechseln (siehe auch Seite 358). Aus Sicherheitsgründen müssen Sie dabei nochmals Ihr eigenes Passwort angeben. Üblicherweise sieht ein Kommandoaufruf so aus:
root-Login, sudo
user$ sudo gedit /etc/fstab Password: ******* Wenn Sie mehrere Kommandos als root ausführen möchten, wechseln Sie am besten mit sudo -s in den root-Modus. (Strg)+(D) beendet diesen Modus wieder. Die Datei /etc/sudoers gibt an, welche Benutzer root-Rechte erlangen dürfen. Bei Ubuntu Linux ist die Regel ganz einfach: Alle Benutzer, die Mitglied der Gruppe admin sind, dürfen sudo nutzen. Ubuntu One ist ein von Canonical entwickelter Dienst, um Daten von Ubuntu-Rechnern auf einem zentralen Server zu speichern und mit anderen Ubuntu-Rechnern auszutauschen bzw. zu synchronisieren. Sie können Ubuntu One zur Speicherung der Dateien im Verzeichnis ~/Ubuntu One sowie von Tomboy-Notizen, Firefox-Lesezeichen und Evolution-Kontakten verwenden. Die Datenübertragung zwischen Ihrem Rechner und Ubuntu One erfolgt verschlüsselt, auf Ubuntu One werden Ihre Daten aber unverschlüsselt gespeichert. Für vertrauliche Daten ist Ubuntu One also ungeeignet.
Ubuntu One
Die Nutzung von Ubuntu One ist bis zu einem Speichervolumen von 2 GByte kostenlos, erfordert aber eine Registrierung bzw. einen Account auf http://launchpad.net. Wenn Sie mehr Speicherplatz wünschen, kosten je 20 weitere GByte ca. 15 EUR pro Jahr (Stand Herbst 2010). Vor der ersten Nutzung von Ubuntu One führen Sie E INSTELLUNGENjINTERNET jUBUNTU O NE aus. Sie können nun entweder einen neuen Account einrichten (dazu sind lediglich eine E-Mail-Adresse und ein Passwort erforderlich) oder sich bei einem vorhandenen Account anmelden. Von nun an werden
1125
Kapitel 38
Ubuntu 10.10
alle Dateien im Verzeichnis ~/Ubuntu One automatisch synchronisiert. Ein kleines, wolkenförmiges Icon im Panel gibt den Synchronisationsstatus an. Ich habe bisher mit Ubuntu One überwiegend negative Erfahrungen gemacht: Die Synchronisierung ist langsam, diverse Ubuntu-One-Clients (z. B. die Kontaktverwaltung für Evolution oder der als Rhythmbox-Plugin realisierte Ubuntu One Music Shop (U1MS) funktionieren nur sehr unzuverlässig. Vor einem Jahr habe ich das auf die damals ganz neue Implementierung zurückgeführt – aber dass Ubuntu One auch im nunmehr dritten Aufguss derart miserabel funktioniert, ist unbegreiflich. Immerhin soll Ubuntu One ganz offensichtlich Teil des Geschäftsmodells von Canonical werden. Aber sicher nicht in dieser Form! Weitere Tipps und Anleitungen zur Nutzung von Ubuntu One finden Sie auf der folgenden Website: https://wiki.ubuntu.com/UbuntuOne/Tutorials/ Verschlüsseltes Heimatverzeichnis
In Ubuntu 8.10 und 9.04 konnten Sie innerhalb Ihres persönlichen Verzeichnisses ein verschlüsseltes Unterverzeichnis Private anlegen. Seit Ubuntu 9.10 ist diese Funktion dahingehend verbessert worden, dass nun auf Wunsch das gesamte Heimatverzeichnis und die Swap-Partition verschlüsselt wird (nicht aber das restliche Dateisystem). Das stellt sicher, dass bei einem Verlust oder Diebstahl Ihres Computers bzw. Notebooks keine vertraulichen Daten in fremde Hände geraten können. Der Finder bzw. Dieb kann ohne Ihr Passwort die Dateien in /home/name nicht lesen, ja er kann nicht einmal feststellen, welche Dateinamen Sie verwendet haben. Die Entscheidung, ob das Verzeichnis verschlüsselt werden soll oder nicht, muss während der Installation getroffen werden, und sie ist unwiderruflich. Es gibt momentan keine Werkzeuge, um ein nicht verschlüsseltes Heimatverzeichnis später zu verschlüsseln oder um die vorhandene Verschlüsselung wieder zu deaktivieren. Des Weiteren ist es unmöglich, mit SYSTEMjSYSTEMVERWALTUNGj BENUTZER UND G RUPPEN einen weiteren Benutzer mit einem verschlüsselten Heimatverzeichnis einzurichten. Das gelingt aber immerhin mit dem Kommando adduser, wenn Sie die zusätzliche Option --encrypt-home angeben. Beachten Sie auch, dass die Verschlüsselung inkompatibel mit der Auto-Login-Funktion von GDM ist. Wenn Sie ein verschlüsseltes Heimatverzeichnis haben, dürfen Sie nicht mit SYSTEMj SYSTEMVERWALTUNGjA NMELDEBILDSCHIRM eine automatische Anmeldung aktivieren. Hinter den Kulissen sind für die Verschlüsselung diverse Kommandos des Pakets ecryptfs-utils zuständig. Alle Dateien werden physikalisch in verschlüsselter Form im Verzeichnis /home/loginname/.Pxsrivate gespeichert, wobei auch der Dateiname selbst verschlüsselt ist. Werfen Sie einen Blick in dieses Verzeichnis! Dieses Verzeichnis wird am Ort /home/loginname in den Verzeichnisbaum integriert: user$ mount ... /home/kofler/.Private on /home/kofler type ecryptfs (ecryptfs_sig=...) Wenn jemand unbefugt Ihren Computer in Betrieb nimmt, kann er sich ohne Ihr Passwort nicht einloggen. Wenn er den Rechner mit einem Live-System startet oder Ihre Festplatte ausbaut und an seinen eigenen Computer anschließt, kann er zwar auf das Verzeichnis /home/loginname/.Private zugreifen, die darin enthaltenen Dateien sind aber verschlüsselt und damit unlesbar. Das restliche
1126
Tipps und Tricks
Abschnitt 38.9
Verzeichnis /home/loginname ist nahezu leer: Sein Inhalt, so wie Sie ihn bei Ihrer Arbeit sehen, steht nur zur Verfügung, wenn das verschlüsselte Verzeichnis /home/loginname/.Private in das Dateisystem eingebunden ist. Ihre Daten sind also sicher. Damit das verschlüsselte Heimatverzeichnis bei einem Login automatisch in das Dateisystem eingebunden werden kann, enthält das Verzeichnis ~/.ecryptfs das Verschlüsselungspasswort wiederum in verschlüsselter Form (wobei zur Verschlüsselung das gewöhnliche Login-Passwort verwendet wurde). Bei einem Logout wird das verschlüsselte Verzeichnis wieder aus dem Verzeichnisbaum gelöst. Für diesen Automatismus ist das PAM-Modul ecryptfs verantwortlich (siehe die Konfigurationsdateien /etc/pam.d/common-*). Die Verschlüsselung des Heimatverzeichnisses erfolgt durch ein Passwort, das beim Einrichten des Verzeichnisses generiert wurde. Notieren Sie sich dieses Passwort unbedingt an einem sicheren Ort! Um das Passwort herauszufinden, führen Sie in einer Konsole ecryptfs-unwrap-passphrase aus: user$ ecryptfs-unwrap-passphrase Passphrase: ******** 9e340c5fadc97dcfd085603d53d538e2
(Hier geben Sie Ihr Login-Passwort an.) (Das ist das Verschlüsselungspasswort.)
Allerdings ist es auch mit dem Verschlüsselungspasswort schwierig, von einem Live- oder RescueSystem aus auf Ihre Daten zuzugreifen. Eine Anleitung finden Sie hier: http://blog.dustinkirkland.com/2009/03/mounting-your-encrypted-home-from.html
Hinweis
Persönlich erscheint mir das Konzept verschlüsselter Heimatverzeichnisse zu handgestrickt und Ubuntu-spezifisch. Es ist unklar, wie lange Ubuntu dieses System pflegen wird und wie kompatibel es mit zukünftigen Ubuntu-Versionen ist. Es besteht die Gefahr, dass Sie sich für eine Insellösung entscheiden. Außerdem ist es in einem Notfall (Ubuntu startet nicht mehr etc.) extrem schwierig, Ihre eigenen Daten zu retten – selbst wenn Sie das Verschlüsselungspasswort aufgeschrieben haben. Wenn Sie Ihre Daten wirklich verschlüsseln wollen, ist es sicherer, gleich das gesamte Dateisystem auf der Basis von LUKS zu verschlüsseln (siehe auch Seite 683), wie dies bei vielen anderen Distributionen üblich ist. Dazu führen Sie die Ubuntu-Installation mit einer Alternate-CD durch und entscheiden sich bei der Partitionierung für die Variante VERSCHLÜSSELTES LVM-SYSTEM .
38.9 Tipps und Tricks Wenn Sie das Adobe-Flash-Plugin einsetzen möchten, installieren Sie das Paket flashplugininstaller. Das Paket enthält ein Script, das Flash von der Adobe-Website herunterlädt und installiert. Bei 64-Bit-Installationen wird die 32-Bit-Version des Flash-Plugins installiert. Die Kompatibilität zum 64-Bit-Browser stellt der nspluginwrapper her, der automatisch mitinstalliert wird.
Adobe Flash
Die partner-Paketquelle enthält das Paket adobereader-deu mit einer deutschen Version des Adobe Readers. Alternativ können Sie den Adobe Reader auch von http://get.adobe.com als DebianPaket herunterladen und mit dpkg oder gdebi-gtk installieren. Wenn Sie eine 64-Bit-Installation von
Adobe Reader
1127
Kapitel 38
Ubuntu 10.10
Ubuntu verwenden, müssen Sie die dpkg-Option --force-architecture verwenden und zusätzlich ia32-libs installieren. (Es gibt noch keine 64-Bit-Version des Adobe Readers.) root# root#
apt-get install ia32-libs dpkg -i --force-architecture AdbeRdrn_i386linux_deu.deb
ATI/AMDGrafiktreiber
Zur Installation der binären Treiber für ATI-Grafikkarten starten Sie SYSTEMjSYSTEMVERWALTUNGj HARDWARE-TREIBER, wählen den Treiber aus, installieren ihn und starten den Rechner dann neu. Mit dem Programm HARDWARE-TREIBER können Sie auch andere zu Ihrer Hardware passende Binärtreiber aktivieren bzw. wieder deaktivieren, beispielsweise für bestimmte WLAN-Karten.
Firefox-PPA
Wenn Sie an den neuesten Firefox- und Thunderbird-Versionen interessiert sind und beispielsweise Firefox 4 testen möchten, bevor es hierfür ein offizielles Ubuntu-Update gibt, finden Sie in der folgenden PPA-Paketquelle die entsprechenden Pakete: https://launchpad.net/~ubuntu-mozilla-daily/+archive/ppa
Java
Standardmäßig ist unter Ubuntu kein Java installiert. Wenn Sie Java benötigen, haben Sie die Wahl zwischen zwei Implementierungen: » Open-Source Java, bestehend aus GCJ, OpenJDK und dem IcedTea-Browser-Plugin (Paket icedtea6-plugin) » Original Sun Java 6 (Paket sun-java6-plugin aus der partner-Paketquelle)
KDE
Ubuntu-CDs bzw. -DVDs enthalten nur Gnome-, aber keine KDE-Pakete. Eine nachträgliche KDEInstallation ist aber problemlos möglich. user$ user$
sudo apt-get update sudo apt-get install kubuntu-kde4-desktop kde-l10n-de
Während der Installation erscheint ein Konfigurationsdialog für den KDE-Display-Manager KDM. Dieses Programm ist für den Login verantwortlich und kann statt des Gnome-Display-Managers GDM verwendet werden. Beide Display-Manager sind in der Lage, sowohl KDE als auch Gnome zu starten, es kann aber nur ein Display-Manager aktiv sein. Ab dem nächsten Login können Sie auswählen, ob Sie unter KDE oder Gnome arbeiten möchten. Falls Sie sich für KDM als Display-Manager entschieden haben, wählen Sie die gewünschte Benutzeroberfläche durch einen Klick auf S ESSION TYPE aus. Wenn Sie bei GDM geblieben sind, klicken Sie stattdessen auf den Link SITZUNG. Um den Display-Manager später zu wechseln (also von KDM zu GDM oder umgekehrt), führen Sie das folgende Kommando aus: user$ LibreOffice
sudo dpkg-reconfigure kdm
Ubuntu enthält zwar noch OpenOffice 3.2, künftige Ubuntu-Versionen werden aber voraussichtlich LibreOffice als Office-Paket verwenden. (LibreOffice ist ein Fork des OpenOffice-Projekts, um das Office-Paket unabhängig von Oracle weiterentwickeln zu können.) Wenn Sie LibreOffice schon jetzt ausprobieren möchten, finden Sie hier eine Anleitung: http://www.omgubuntu.co.uk/2010/10/install-libreoffice-ppa-ubuntu/
1128
Tipps und Tricks
Wenn Sie nicht am Beginn der Installation die Option DRITTANBIETER-SOFTWARE INSTALLIEREN aktiviert haben, stehen unter Ubuntu keine MP3-Decoder und -Encoder zur Verfügung. Abhilfe schafft die Installation des Meta-Pakets ubuntu-restricted-extras. Damit werden nicht nur diverse Multimedia-Pakete installiert, sondern auch Java, das Flash-Plugin von Adobe etc. Wenn Sie ausschließlich an den MP3-Funktionen interessiert sind, installieren Sie nur die folgenden Pakete:
Abschnitt 38.9
MP3 und Multimedia
gstreamer0.10-plugins-ugly und gstreamer0.10-plugins-ugly-multiverse Freilich wirkt auch ubuntu-restricted-extras keine Wunder: Aufgrund von Lizenz- und Patentproblemen kann Ubuntu für viele Multimedia-Funktionen keine offiziellen Pakete zur Verfügung stellen. Abhilfe schaffen in vielen Fällen die Pakete der inoffiziellen medibuntu-Paketquelle. Weitere Informationen finden Sie hier: http://www.medibuntu.org/ https://help.ubuntu.com/community/RestrictedFormats Bevor Sie NFS-Verzeichnisse in das Dateisystem einbinden können (Details siehe Seite 661), müssen Sie das Paket nfs-common installieren.
NFS-Zugriff
Ubuntu stellt fertige Pakete für den NVIDIA-Grafiktreiber zur Verfügung. Die Installation führen Sie am bequemsten mit SYSTEMjSYSTEMVERWALTUNGjHARDWARE-TREIBER durch. Zur Aktivierung ist ein Neustart des Rechners erforderlich (wegen der notwendigen Kernelmodule).
NVIDIAGrafiktreiber
Wenn Sie den NVIDIA-Treiber verwenden und SYSTEMjEINSTELLUNGEN jA NZEIGE ausführen, startet Ubuntu nach einer Rückfrage das Programm nvidia-settings. Das ist an sich richtig, allerdings wird das Programm ohne root-Rechte gestartet. Außerdem existiert auf Ubuntu-Installationen anfänglich gar keine Datei xorg.conf, was nvidia-settings irritiert. Es wird Ihnen daher auf diesem Weg nicht gelingen, grundlegende Parameter der Grafikkonfiguration zu ändern (z. B. für eine DualScreen-Konfiguration). Dieses Problem ist seit Jahren bekannt, und es ist mir ein Rätsel, warum sich die Ubuntu-Entwickler derart hartnäckig weigern, es zu lösen. Wie auch immer, die Konfiguration gelingt problemlos, wenn Sie in einer Konsole die beiden folgenden Kommandos ausführen: user$ user$
sudo nvidia-xconfig sudo nvidia-settings
(richtet xorg.conf erstmalig ein) (grafische Benutzeroberfläche zur Konfiguration)
Manche Konfigurationsänderungen werden erst nach einem Logout wirksam. nvidia-xconfig muss nur beim ersten Mal ausgeführt werden, für weitere Änderungen an der Konfiguration reicht nvidiasettings aus. Ubuntu führt eine relativ strikte Qualitätskontrolle für Passwörter durch. Während der Installation wird ein unsicheres Passwort nach Rückfrage noch akzeptiert, aber im laufenden Betrieb ist es nicht mehr möglich, ein Passwort zu setzen, das PAM als unsicher betrachtet. Wenn Ihnen diese an sich vernünftige Qualitätskontrolle für Passwörter lästig ist, entfernen Sie in der Datei /etc/pam.d/ common-password das Schlüsselwort obscure aus der folgenden Zeile: % in /etc/pam.d/common-password % in dieser Zeile 'obscure' löschen: password [success=1 default=ignore]
Passwort zu einfach
pam_unix.so obscure sha512
1129
Kapitel 38
Ubuntu 10.10
Thunderbird
Gnome verwendet standardmäßig den E-Mail-Client Evolution. Selbstverständlich können Sie stattdessen auch Thunderbird installieren. Allerdings integriert sich Thunderbird nicht so gut wie Evolution in das Messaging-Menü. Abhilfe schafft die Installation des folgenden Indikator-Add-ons: https://addons.mozilla.org/en-US/thunderbird/addon/223374/
X-Updates
Ubuntu stellt üblicherweise im Rahmen des normalen Update-Prozesses nur kleinere Fehlerkorrekturen an X zur Verfügung, aber keine grundlegend neuen Versionen. Wenn Ihre Grafikkarte zickt oder wenn Sie aus einem anderen Grund einen aktuelleren X-Treiber wünschen, finden Sie diese in der folgenden PPA-Paketquelle. Naturgemäß ist die Nutzung dieser Paketquelle nur fortgeschrittenen Ubuntu-Anwendern zu empfehlen, die ihr System zur Not auch im Textmodus reparieren können! https://edge.launchpad.net/~ubuntu-x-swat/+archive/x-updates
1130
Teil 7 Referenz
39. Alphabetische Kommandoreferenz Dieses Kapitel enthält eine alphabetische Referenz der wichtigsten Linux-Kommandos. Probleme bereitet dabei der Begriff »Kommando«. Linux kennt keine Unterscheidung zwischen Kommandos, wie sie in diesem Kapitel beschrieben werden, und Programmen wie OpenOffice oder Gimp, die in diesem Buch jeweils in eigenen Kapiteln vorgestellt werden. »Kommando« meint hier Programme ohne grafische Benutzeroberfläche, die in der Regel in einem Terminalfenster ausgeführt werden. Ich beschreibe in diesem Kapitel auch einige Kommandos, die gar keine echten Programme sind, sondern nur Befehle der gerade aktiven Shell (zumeist der bash, siehe Kapitel 19). Ein typisches Beispiel dafür ist das oft eingesetzte Kommando cd zum Wechseln des aktuellen Verzeichnisses. Derartige Kommandos sind in der Referenz mit dem Hinweis (bash) gekennzeichnet. Die meisten in diesem Kapitel beschriebenen Kommandos werden durch Optionen gesteuert. Die Angabe der Optionen erfolgt vor allen weiteren Parametern. Bei vielen Kommandos gibt es zwei Schreibweisen, -x für kurze Optionen (ein Buchstabe) und --xyz für lange Optionen (mehrere Buchstaben). Die beiden folgenden ls-Kommandos sind gleichwertig und zeigen jeweils alle Dateien und Verzeichnisse im /usr-Verzeichnis an, wobei (mit Ausnahme von . und ..) auch alle Dateien berücksichtigt werden, die mit dem Zeichen . beginnen. (Eine genaue Beschreibung des Kommandos und seiner Optionen finden Sie auf Seite 1177.) user$ user$
ls -l -A /usr ls --format=long --almost-all /usr
Bei manchen Kommandos können mehrere Optionen als Gruppe angegeben werden (also -ab statt -a -b). Manche Kommandos kommen auch mit Optionen zurecht, die hinter dem oder den eigentlichen Parametern angegeben werden. Das sollte Sie aber nicht zu dem Schluss verleiten, dass das für alle Kommandos gilt! user$ user$
ls -lA /usr ls /root -lA
Bei einigen wenigen Kommandos hat auch die Reihenfolge der Parameter einen Einfluss darauf, wie das Kommando ausgeführt wird. Wenn Optionen angegeben werden, die einander gegenseitig logisch ausschließen, gilt in der Regel die letzte angegebene Option.
Optionen
Kapitel 39
Alphabetische Kommandoreferenz
man, info und help
Um das Kapitel nicht unnötig aufzublähen, wurden nur die wichtigsten Optionen beschrieben. Eine vollständige Übersicht aller Optionen liefert bei den meisten Kommandos kommandoname --help. Ausführlichere Informationen sind zumeist in den Manual-Seiten enthalten, die mit man name bzw. mit man 1 name angezeigt werden können. Bei manchen Kommandos enthalten die man-Seiten lediglich einen Verweis auf die info-Texte, die entsprechend mit info name angezeigt werden.
Hinweis
Bei Kommandos, die direkt in die bash integriert sind (z. B. cd), führt man name zur man-Seite der bash. Dort ist das Kommando zwar tatsächlich beschrieben, aber die Suche in der sehr langen Dokumentation ist mühsam. Hilfreicher ist hier help name. Eine erweiterte Fassung dieser Kommandoreferenz gibt es auch als eigenständiges Taschenbuch. Es enthält noch mehr Kommandos, Optionen und Beispiele und ist leichter zu halten als dieses 1200-seitige Buch. Weitere Informationen finden Sie hier: http://kofler.info/buecher/li-ref/
acpi [optionen] acpi liefert Informationen zur Energieversorgung des Rechners. -a
zeigt an, ob der Rechner an das Stromnetz angeschlossen ist.
-b
zeigt den Batteriezustand an.
-t
zeigt die Temperatur des Akkus an.
-V
zeigt alle verfügbaren Informationen an.
add-apt-repository ppa:name Das Ubuntu-spezifische Kommando add-apt-repository richtet eine neue Paketquelle für ein Personal Package Archive (PPA) ein. PPAs sind nichtoffizielle Paketquellen von Ubuntu-Entwicklern, in denen oft besonders aktuelle Versionen populärer Programme zu finden sind.
addgroup [optionen] name addgroup richtet auf Debian-Systemen eine neue Gruppe ein und berücksichtigt dabei die Einstellungen aus /etc/adduser.conf. Bei Fedora und Red Hat ist addgroup ein Link auf das Kommando groupadd, dessen Syntax auf Seite 1164 beschrieben ist. --gid n weist der Gruppe die angegebene GID-Nummer zu (Group Identification).
adduser [optionen] name adduser name group adduser richtet auf Debian-Systemen einen neuen Benutzer ein und berücksichtigt dabei die Einstellungen aus /etc/adduser.conf. Insbesondere wird für jeden Benutzer auch eine gleichnamige
1134
Alphabetische Kommandoreferenz
Gruppe erzeugt und dem neuen Benutzer zugeordnet. In der zweiten Syntaxvariante fügt adduser den bereits vorhandenen Benutzer einer zusätzlichen Gruppe hinzu. Bei Fedora und Red Hat ist adduser ein Link auf das Kommando useradd, dessen Syntax auf Seite 1230 beschrieben ist. --disabled-login verzichtet auf die Passwort-Frage. Ein Login ist unmöglich, bis das Passwort eingestellt wird. --gecos ’vollständiger Name’ verzichtet auf die Fragen nach dem vollständigen Namen, dem (Büro-)Raum, den Telefonnummern und anderen Informationen. --group richtet nur eine neue Gruppe ein (keinen Benutzer). adduser --group entspricht addgroup. --system richtet einen System-Benutzer ein. Dabei wird die UID aus dem Bereich für System-Benutzer gewählt (in der Regel 100–999) und der Login blockiert (Shell /bin/false). Es kann kein Passwort angegeben werden. --uid n weist dem Benutzer die angegebene UID-Nummer zu (User Identification).
alias abkürzung=’kommando’
(bash)
alias definiert eine neue Abkürzung bzw. zeigt eine vorhandene Abkürzung an. Wenn alias ohne weitere Parameter verwendet wird, werden alle definierten Abkürzungen angezeigt. alias wird auf Seite 440 ausführlicher behandelt.
alternatives [optionen] kommando alternatives ist die Red-Hat- bzw. Fedora-Variante von update-alternatives. Die Syntax der beiden Kommandos ist weitgehend identisch und ist auf Seite 1228 beschrieben.
apropos thema apropos liefert eine Liste aller man-Texte, die Informationen zum angegebenen Thema enthalten. Wenn apropos nicht funktioniert, fehlen wahrscheinlich die zugrunde liegenden Datenbanken, die mit mandb bzw. mit makewhatis erzeugt werden können.
apt-cache kommando apt-cache liefert Informationen über verfügbare bzw. bereits installierte Debian-Pakete. show paketname liefert eine kurze Paketbeschreibung. Das funktioniert auch für nicht installierte Pakete, sofern sich die Paketbeschreibung im Cache befindet.
1135
Kapitel 39
Alphabetische Kommandoreferenz
showpkg paketname zeigt die Abhängigkeitsinformationen für das Paket an. search muster liefert eine Liste aller verfügbaren Pakete (egal, ob sie bereits installiert sind oder nicht), in deren Paketnamen oder Paketkurzbeschreibung der Suchtext muster vorkommt. Die zusätzliche Option --names-only schränkt die Suche auf den Paketnamen ein. stats liefert eine Statistik über die Anzahl der installierten und verfügbaren Pakete. apt-cache ist nicht in der Lage, Informationen über den genauen Inhalt eines Pakets zu geben bzw. eine Zuordnung zwischen einer Datei und dem dazugehörenden Paket herzustellen. Wenn Sie an diesen Informationen interessiert sind, müssen Sie dpkg einsetzen (siehe Seite 1150).
apt-get [optionen] kommando apt-get installiert, aktualisiert und entfernt Debian-Pakete. apt-get lädt dabei die Pakete von den in /etc/apt/sources.list definierten Paketquellen herunter. Hintergrundinformationen zum Paketverwaltungssystem APT und zur Konfiguration von APT-Paketquellen sowie Anwendungsbeispiele finden Sie ab Seite 528. Sämtliche Paketverwaltungsfunktionen werden in Form von Kommandos durchgeführt (z. B. apt-get install paketname). Die folgende Aufzählung beschreibt die wichtigsten Kommandos: update aktualisiert die Paketlisten der in sources.list angegebenen Archive. Dabei werden nur die Metadaten der Paketquellen gelesen und in APT-Cache-Dateien eingetragen. Es werden aber keine Pakete heruntergeladen oder aktualisiert! Der einzige Zweck dieses Kommandos ist, dass apt-get weiß, welche Pakete im Internet zur Verfügung stehen. Das Kommando sollte vor jedem anderen apt-Kommando ausgeführt werden. upgrade aktualisiert alle installierten Pakete, soweit in den Paketquellen neuere Versionen zur Verfügung stehen. dist-upgrade funktioniert ähnlich wie upgrade, installiert bei Bedarf aber auch neue Pakete. install name1 name2 ... sucht die Pakete name1, name2 etc. auf allen APT-Paketquellen, lädt sie herunter und installiert sie. Gegebenenfalls werden auch weitere Pakete geladen und installiert oder aktualisiert, um Paketabhängigkeiten zu erfüllen. Bei name1, name2 etc. darf es sich auch um lokale Debian-Dateien handeln. Damit werden diese Pakete installiert, wobei zur Auflösung der Paketabhängigkeiten weiterhin alle APT-Paketquellen genutzt werden. remove name1 name 2 ... deinstalliert die angegebenen Pakete. autoremove deinstalliert alle nicht mehr benötigten Pakete, die aufgrund von Abhängigkeiten installiert wurden.
1136
Alphabetische Kommandoreferenz
source name installiert den Quellcode des Pakets in das aktuelle Verzeichnis. check aktualisiert den Cache aller installierten Pakete und stellt eventuell vorhandene Paketkonflikte und ungelöste Abhängigkeiten fest. Das ist nur erforderlich, wenn Pakete ohne APT (de)installiert wurden und in der Folge Konflikte aufgetreten sind. clean entfernt alle heruntergeladenen Pakete aus dem Paket-Cache. autoclean entfernt nur solche Pakete aus dem Paket-Cache, zu denen bereits eine neuere Version verfügbar ist. Das genaue Verhalten bei der Ausführung der Kommandos wird durch Optionen gesteuert: -d bzw. --download-only lädt die Pakete nur in das Verzeichnis /var/cache/apt/archives herunter, installiert sie aber nicht. --no-install-recommends verzichtet auf die Installation empfohlener Pakete. -s bzw. --simulate simuliert die Installation, führt aber keine tatsächlichen Veränderungen durch. -y bzw. --assume-yes beantwortet alle Fragen mit yes und ermöglicht so die Verwendung des Kommandos in einem Script.
apt-key kommando apt-key verwaltet die öffentlichen Schlüssel von APT-Paketquellen. apt-key kennt die folgenden Kommandos: add schlüsseldatei.gpg fügt den Schlüssel aus der angegebenen Datei zur Liste der APT-Schlüssel hinzu. del id löscht den anhand der ID-Nummer spezifizierten Schlüssel aus der Liste der APT-Schlüssel. list liefert eine Liste aller dem APT-System bekannten Schlüssel.
aptitude [optionen] kommando aptitude installiert, aktualisiert und entfernt Debian-Pakete und greift dabei auf APT zurück (siehe Seite 528). Der Vorteil im Vergleich zu apt-get besteht darin, dass sich aptitude bei der Installation abhängige Pakete merkt und diese bei der Deinstallation automatisch wieder entfernt. Ein Anwendungsbeispiel finden Sie ab Seite 531.
1137
Kapitel 39
Alphabetische Kommandoreferenz
Sämtliche Paketverwaltungsfunktionen werden in Form von Kommandos durchgeführt (z. B. aptitude install paketname). Die elementaren Kommandos stimmen mit denen von apt-get überein und sind auf Seite 1136 beschrieben. Die Kommandos check und autoremove sind in aptitude allerdings nicht verfügbar. Dafür bietet aptitude eine besonders komfortable Paketsuche: aptitude search name liefert eine Liste aller installierten und verfügbaren Pakete, die den Suchbegriff im Paketnamen enthalten.
bg [prozess]
(bash)
bg setzt einen unterbrochenen Prozess im Hintergrund fort. Wenn keine Prozessnummer angegeben wird, gilt bg für den zuletzt (meist mit (Strg)+(Z)) unterbrochenen Prozess. Andernfalls muss der Prozess durch seinen Namen oder durch die bash-interne Jobnummer (nicht PID) angegeben werden.
blkid devicename blkid liefert Informationen über die durch den Device-Namen angegebene Partition: den Dateisystemtyp, die UUID und den Namen (Label) des Dateisystems.
btrfs kommando btrfs ist das zentrale Adminstrationskommando für btrfs-Dateisysteme. Es ersetzt die Kommandos btrfsctl, btrfs-show und btrfs-vol, die zwecks Kompatibilität zu älteren btrfs-Versionen weiter zur Verfügung stehen. Soweit keine Doppeldeutigkeiten auftreten, können Sie die im Folgenden beschriebenen Kommandos abkürzen und damit eine Menge Tipparbeit sparen. btrfs fi sh entspricht also btrfs filesystem show. filesystem defragment datei/verzeichnis defragmentiert die angegebene Datei bzw. das angegebene Verzeichnis mit seinem gesamten Inhalt. Wird das mount-Verzeichnis angegeben, defragmentiert btrfs das gesamte Dateisystem. Das Kommando entspricht btrfsctl -d. filesystem balance mountverzeichnis verteilt die Daten gleichmäßig über alle Devices des Dateisystems. Dieser Vorgang dauert sehr lange. Er kann auch mit btrfs-vol -b initiiert werden. filesystem resize [+/-]size mountverzeichnis vergrößert oder verkleinert das Dateisystem im laufenden Betrieb. Die neue Größe kann wahlweise absolut oder relativ angegeben werden. Dabei sind die Kürzel k, m und g für kByte, MByte und GByte erlaubt. Als Größenangabe ist auch max zulässig – dann nutzt das Dateisystem in Zukunft die gesamte Größe des zugrunde liegenden Devices. Denken Sie daran, dass Sie die Größe des zugrunde liegenden Devices (in der Regel ein Logical Volume) vor der Vergrößerung des Dateisystems, aber nach einer Verkleinerung anpassen müssen! btrfs filesystem resize ist gleichwertig mit btrfsctl -r.
1138
Alphabetische Kommandoreferenz
filesystem df mountverzeichnis zeigt detaillierte Informationen darüber an, wiev iel Platz für Daten, Metadaten und Systemdaten reserviert ist und wie viel Platz davon bereits genutzt ist. Das Kommando liefert in der aktuellen Version (Stand: Oktober 2010) allerdings keine Informationen darüber, wie viel nicht reservierter Speicherplatz noch zur Verfügung steht. Hinweise zur richtigen Interpretation der Ergebnisse finden Sie auf Seite 650. filesystem show [device] sucht auf allen angeschlossenen Datenträgern bzw. am angegebenen Device nach btrfsDateisystemen und zeigt deren Eckdaten an. Das Kommando entspricht btrfs-show. filesystem sync verzeichnis synchronisiert den Inhalt des Dateisystems bzw. eines seiner Verzeichnisse. Das Kommando entspricht btrfsctl -c. subvolume list mountverzeichnis listet alle Subvolumes und Snapshots auf. Als Verzeichnis wird das mount-Verzeichnis des Dateisystems angegeben. subvolume create verzeichnis/name erzeugt das Subvolume name. Als Verzeichnis muss das mount-Verzeichnis oder ein Verzeichnis innerhalb des btrfs-Dateisystems angegeben werden. Wenn kein Verzeichnis angegeben wird, verwendet btrfs das aktuelle Verzeichnis. Das Kommando entspricht btrfsctl -S. subvolume snapshot quellverzeichnis zielverzeichnis/name erzeugt den Snapshot name. Als Quellverzeichnis muss das mount-Verzeichnis des Dateisystems oder das Verzeichnis eines vorhandenen Subvolumes oder Snapshots angegeben werden. Das Zielverzeichnis muss sich innerhalb des btrfs-Dateisystems befinden. Das Kommando entspricht btrfsctl -s. subvolume delete verzeichnis/name löscht das angegebene Subvolume oder den angegebenen Snapshot. Der belegte Speicher wird allerdings erst allmählich vom Hintergrundprozess btrfs-cleaner freigegeben. subvolume set-default id mountverzeichnis bestimmt, welches Subvolume bzw. welcher Snapshot in Zukunft standardmäßig von mount verwendet wird. Die Volume-ID können Sie mit btrfs subvolume list ermitteln. device scan analysiert alle Festplattenpartitionen und Logical Volumes und stellt fest, ob sich darin btrfsDateisysteme befinden. Das ist erforderlich, damit btrfs-RAID-Verbunde korrekt erkannt werden. Deswegen muss btrfs device scan unmittelbar nach dem Rechnerstart ausgeführt werden (noch bevor die Dateisysteme eingebunden werden). Das Kommando entspricht btrfsctl -a. device add devicename mountverzeichnis fügt einem aktiven btrfs-Dateisystem ein weiteres Device hinzu und vergrößert so dessen Datenpool. Das Kommando entspricht btrfs-vol -a.
1139
Kapitel 39
Alphabetische Kommandoreferenz
device delete devicename mountverzeichnis entfernt ein Device aus dem Datenpool eines btrfs-Dateisystems. Die auf dem Device enthaltenen Daten werden dabei auf andere Devices des Dateisystems übertragen, was bei großen Dateisystemen natürlich lange dauert. Wenn Sie ein defektes (nicht mehr verfügbares) Device entfernen möchten, geben Sie als Device-Namen missing an. Bei RAID-1-Systemen müssen Sie vorher ein Ersatz-Device hinzufügen und btrfs filesystem balance ausführen! Das Kommando entspricht btrfs-vol -d.
btrfsck device btrfsck überprüft die Konsistenz eines btrfs-Dateisystems. Das Kommando kann allerdings keine Reparaturen ausführen. Korrekturen am Dateisystem werden (soweit möglich) während des mountVorgangs sowie im laufenden Betrieb erledigt.
btrfs-convert [-r] devicename btrfs-convert wandelt ein ext3/ext4-Dateisystem in ein btrfs-Dateisystem um. Diese Operation kann mit btrfs-convert -r rückgängig gemacht werden, solange der bei der Konversion automatisch erzeugte Snapshot /ext2_saved/image nicht gelöscht wurde.
bunzip2 datei.bz2 bunzip2 dekomprimiert eine zuvor mit bzip2 komprimierte Datei. Dabei wird automatisch die Kennung .bz2 im Dateinamen entfernt.
bzip2 datei bzip2 komprimiert die angegebenen Dateien. Das Kommando liefert im Regelfall um 20 bis 30 Prozent kleinere Dateien als gzip (Seite 1166). Allerdings ist die zum Komprimieren erforderliche Rechenzeit deutlich größer. -c bzw. --stdout oder --to-stdout lässt die zu (de)komprimierende Datei unverändert und leitet das Ergebnis auf die Standardausgabe (in der Regel auf den Bildschirm) um. Von dort kann es mit > in eine beliebige Datei umgeleitet werden. -d bzw. --decompress oder --uncompress dekomprimiert die angegebene Datei, anstatt sie zu komprimieren (entspricht bunzip2). -1 bis -9 gibt an, wie viel Speicherplatz (RAM) der Komprimieralgorithmus nutzen darf. Die Grundeinstellung lautet -9 und liefert die besten Ergebnisse. Wenn nur wenig RAM zur Verfügung steht, sollten Sie einen kleineren Wert wählen; allerdings wird dann auch die Komprimierung etwas schlechter.
1140
Alphabetische Kommandoreferenz
cat dateien cat zeigt den Inhalt der angegebenen Textdatei an. Bei längeren Texten sollten Sie statt cat das Kommando less verwenden; damit können Sie zeilen- bzw. seitenweise durch den Text blättern. cat wird häufig auch dazu verwendet, mehrere Dateien zu einer größeren Datei zusammenzusetzen. Dazu muss die Standardausgabe mit > in eine Datei umgeleitet werden (siehe Beispiel). Zu cat existiert auch die Variante tac. Dieses Kommando gibt die Zeilen der Textdatei in umgekehrter Reihenfolge aus (die letzte Zeile zuerst). -s
reduziert mehrere leere Zeilen auf eine einzige leere Zeile.
-T
zeigt Tabulatorzeichen in der Form ^I an.
-v
zeigt nicht druckbare Zeichen in der ^xxx-Schreibweise an.
cd [verzeichnis]
(bash)
cd wechselt in das angegebene (Unter-)Verzeichnis. Wenn kein Verzeichnis angegeben wird, wechselt cd in das Heimatverzeichnis. Wenn als Verzeichnis - angegeben wird, wechselt cd in das zuletzt gültige Verzeichnis. Das gerade aktuelle Verzeichnis kann mit pwd angezeigt werden.
chattr [optionen] +-=[ASacDdIijsTtu] dateien In den Dateisystemen ext2, ext3 und ext4 können mit jeder Datei neben den Benutzerinformationen (siehe chmod und chown) einige zusätzliche Attribute gespeichert werden. Diese Attribute können beispielsweise Informationen über den Journaling-Status oder über eine eventuelle Komprimierung der Datei enthalten. (Eine kurze Beschreibung der Attribute finden Sie in der Manual-Seite.) Allerdings werden momentan nur wenige der vorgesehenen Attribute tatsächlich genutzt.
chgrp [optionen] gruppe dateien chgrp ändert die Gruppenzugehörigkeit von Dateien. Der Besitzer einer Datei kann diese Datei nur seinen eigenen Gruppen zuordnen. root kann beliebige Zuordnungen treffen. -R bzw. --recursive verändert auch die Gruppenzuordnung von Dateien in allen Unterverzeichnissen. Die Option ist nur dann sinnvoll, wenn die Dateien durch Jokerzeichen beschrieben werden (etwa *.tex).
chkconfig optionen chkconfig ist ein Red-Hat- bzw. Fedora-spezifisches Kommando zum Einrichten bzw. Löschen von Init-V-Runlevel-Links. Sofern xined installiert ist, können auch dessen Dienste mit chkconfig gesteuert werden. Das Kommando steht aus Kompatibilitätsgründen vereinzelt auch für andere Distributionen in gleicher oder ähnlicher Syntax zur Verfügung. (Werfen Sie aber unbedingt einen Blick in die man-Seiten!)
1141
Kapitel 39
Alphabetische Kommandoreferenz
--list liefert eine Liste aller installierten Init-V-Scripts sowie Informationen darüber, in welchen Runleveln die Scripts gestartet werden. --add name richtet Links auf das Init-V-Script in den dafür vorgesehenen Standard-Runleveln ein. (Diese Information stammt aus den Kommentarzeilen am Beginn des Scripts.) Die neuen Links werden erst beim nächsten Runlevel-Wechsel bzw. Neustart berücksichtigt. Das Init-V-Script wird also nicht gestartet. --del name entfernt alle Init-V-Links für das Script. --level n name on|off richtet Init-V-Links nur für die angegebenen Runlevel ein bzw. entfernt sie. Beispiel
Das folgende Kommando richtet Start-Links für den Webserver Apache (Dämon httpd) in den Runleveln 3 und 5 ein: root#
chkconfig --level 35 httpd on
Dabei werden diese zwei Links erzeugt: /etc/rc3.d/S85httpd -> ../init.d/httpd /etc/rc5.d/S85httpd -> ../init.d/httpd
chmod [optionen] änderungen dateien chmod ändert die neun Zugriffsbits von Dateien. Zusammen mit jeder Datei wird gespeichert, ob der Besitzer, die Gruppenmitglieder und andere Benutzer die Datei lesen, schreiben und ausführen dürfen. Die Änderung der Zugriffsbits erfolgt durch die Zeichenkombination Gruppe +/- Zugriffstyp, also beispielsweise g+w, um allen Gruppenmitgliedern eine Schreiberlaubnis zu geben. Die Gruppe geben Sie durch u (User), g (Group), o (Others) oder a (All) an, den Zugriffstyp durch r (Read), w (Write) oder x (Execute). Mit chmod können auch die Spezialbits setuid, setgid und sticky gesetzt werden (siehe Seite 335). Die erforderlichen Zeichenkombinationen sehen so aus: setuid: u+s setgid: g+s sticky: +t Damit setuid wirkt, muss auch das x-Bit für den Besitzer gesetzt sein (u+x). Damit setgid wirkt, muss auch das x-Bit für die Gruppe gesetzt sein (g+x). Statt mit Buchstaben kann der Zugriffstyp auch durch eine maximal vierstellige Oktalzahl angegeben werden. Bei den Zugriffsbits ist u, g und o jeweils eine Ziffer zugeordnet. Jede Ziffer ist aus den Werten 4, 2 und 1 für r, w und x zusammengesetzt. 660 bedeutet daher rw-rw----, 777 steht für rwxrwxrwx. Die drei Spezialbits setuid, setgid und sticky haben die Oktalwerte 4000, 2000 und 1000.
1142
Alphabetische Kommandoreferenz
-R bzw. --recursive verändert auch die Zugriffsrechte von Dateien in allen Unterverzeichnissen. Die Datei sichere kann nun von allen Benutzern ausgeführt werden. sichere kann etwa ein ShellScript zur Erstellung eines Backups sein. user$
Beispiele
chmod a+rx sichere
Das folgende Kommando entzieht allen Benutzern außerhalb der eigenen Gruppe die Lese- und Schreiberlaubnis für alle *.doc-Dateien im aktuellen Verzeichnis: user$
chmod o-rw *.doc
chown [optionen] user[:gruppe] dateien chown ändert den Besitzer und (optional) auch die Gruppenzugehörigkeit einer Datei. Der Besitzer einer Datei kann nur von root verändert werden, während die Gruppe auch von anderen Benutzern eingestellt werden kann (siehe chgrp). -R bzw. --recursive verändert auch die Gruppenzuordnung von Dateien in allen Unterverzeichnissen.
chroot verzeichnis [kommando] Ohne weitere Parameter startet chroot eine neue Shell, die das angegebene Verzeichnis als Wurzelverzeichnis / verwendet. In dieser Shell können Sie interaktiv arbeiten. exit führt zurück in die ursprüngliche Shell. Wenn Sie optional ein Kommando angeben, wird dieses Kommando statt der Shell gestartet. Während der Ausführung des Kommandos gilt abermals das angegebene Verzeichnis als Wurzelverzeichnis.
chsh [user] shell chsh verändert die Standard-Shell, die automatisch nach dem Einloggen aufgerufen wird. Zur Auswahl stehen alle in /etc/shells eingetragenen Shells, normalerweise /bin/bash, /bin/csh und /bin/ksh. Das Kommando chsh verändert die Datei /etc/passwd und trägt dort die neue Shell ein. Die Shell eines anderen Anwenders kann nur von root verändert werden (während jeder Anwender seine eigene Shell nach Belieben verändern kann). Die neue Shell muss mit dem vollständigen Verzeichnis angegeben werden.
cksum datei cksum ermittelt die Prüfsumme und die Länge der Datei in Bytes. Die Prüfsumme kann verwendet werden, um rasch festzustellen, ob zwei Dateien identisch sind. cksum liefert zuverlässigere Ergebnisse als das verwandte Kommando sum. Mathematisch noch sicherer sind md5sum oder sha512sum.
1143
Kapitel 39
Alphabetische Kommandoreferenz
cmp [optionen] datei1 datei2 cmp vergleicht zwei Dateien Byte für Byte und liefert die Position der ersten Abweichung. Wenn die Dateien identisch sind, zeigt das Kommando überhaupt keine Meldung an (siehe auch diff auf Seite 1150). -c bzw. --show-chars zeigt das jeweils erste Textzeichen an, bei dem sich die Dateien voneinander unterscheiden. -l bzw. --verbose liefert eine Liste aller Abweichungen.
convert [optionen] bildalt bildneu convert aus dem Image-Magick-Paket konvertiert Bilddateien von einem Format in ein anderes. In der einfachsten Form wird es in der Art convert name.tif name.jpg aufgerufen, um die angegebene TIF-Datei in eine JPEG-Datei zu konvertieren. Die ursprüngliche Datei bleibt dabei erhalten. Mit über 100 Optionen können gleichzeitig diverse Bildparameter verändert werden. Die folgende Liste ist daher nur eine Auswahl. -blur radius verwischt das Bild. -colors n reduziert die Anzahl der RGB-Farben auf n. -colorspace CMYK|GRAY|RGB|Transparent|YUV gibt das gewünschte Farbmodell an (wobei zahlreiche weitere Modelle zur Auswahl stehen). -compress None|BZip|Fax|Group4|JPEG|JPEG2000|Lossless|LZW|RLE|Zip gibt das gewünschte Kompressionsformat an. Welche Formate tatsächlich zur Auswahl stehen, hängt allerdings vom Bildformat ab. -contrast bzw. +contrast verringert bzw. vergrößert den Kontrast des Bilds. -crop geometry schneidet den gewünschten Teil des Bilds aus. Beispielsweise beschreibt -crop 50x50+100+100 ein 50 mal 50 Pixel großes Gebiet, das an der Koordinatenposition (100, 100) beginnt. -filter Point|Box|Triangle|Hermite|Hanning|Hamming ... wendet den gewünschten Filter auf das Bild an. -gaussian radius verwischt den Filter mit dem Gauß-Operator. -normalize normalisiert die Farbverteilung im Bild. -quality n gibt die gewünschte Kompressionsqualität an. Die zulässigen Werte für n hängen vom Bildformat ab (z. B. 0 bis 100 bei JPEG).
1144
Alphabetische Kommandoreferenz
-resize NxN bzw. -resize n% verändert die Auflösung des Bildes. -rotate winkel dreht das Bild im Uhrzeigersinn um den angegebenen Winkel in Grad. -trim schneidet einfarbige Bildränder ab, wenn sie dieselbe Farbe wie die Eckpunkte des Bilds haben.
cp [optionen] quelle ziel cp [optionen] dateien zielverzeichnis cp kopiert Dateien und Verzeichnisse. Einzelne Dateien können beim Kopieren umbenannt werden. Bei der Bearbeitung mehrerer Dateien (z. B. durch die Angabe von Jokerzeichen) können diese lediglich in ein anderes Verzeichnis kopiert, nicht aber umbenannt werden. Mit cp vergleichbare Kommandos sind mv zum Verschieben und Umbenennen von Dateien sowie ln zur Herstellung von Links. cp unterstützt unter anderem folgende Optionen: -a bzw. --archive behält möglichst alle Attribute der Dateien bei. -a ist eine Abkürzung für -dpR. -b bzw. --backup benennt bereits vorhandene Dateien in Backup-Dateien um (Dateiname plus ~), anstatt sie zu überschreiben. -d bzw. --dereference kopiert bei Links nur den Verweis, nicht aber die Datei, auf die der Link zeigt. -i bzw. --interactive fragt, bevor vorhandene Dateien überschrieben werden. -l bzw. --link erstellt feste Links (Hard Links), anstatt die Dateien zu kopieren. Wenn cp mit dieser Option verwendet wird, hat es dieselbe Funktionalität wie ln (siehe Seite 1175). -p bzw. --preserve lässt die Informationen über den Besitzer, die Gruppenzugehörigkeit, die Zugriffsrechte und den Zeitpunkt der letzten Änderung unverändert. Ohne diese Option gehört die Kopie demjenigen, der cp ausführt (Benutzer und Gruppe), und die Zeitangabe wird auf die aktuelle Zeit gesetzt. -r bzw. -R bzw. --recursive kopiert auch Unterverzeichnisse und die darin enthaltenen Dateien (inklusive versteckter Dateien). -s bzw. --symbolic-link erstellt symbolische Links, anstatt die Dateien oder Verzeichnisse zu kopieren. cp hat damit die Funktionalität von ln -s (siehe Seite 1175). -u bzw. --update kopiert Dateien nur dann, wenn dabei keine gleichnamige Datei mit neuerem Datum überschrieben wird.
1145
Kapitel 39
Alphabetische Kommandoreferenz
cp ist nicht in der Lage, mehrere Dateien beim Kopieren umzubenennen. cp *.xxx *.yyy funktioniert also nicht. Um solche Operationen durchzuführen, müssen Sie for oder sed zu Hilfe nehmen. Entsprechende Beispiele finden Sie auf Seite 304). Verzeichnisse kopieren
Um ganze Verzeichnisse zu kopieren, verwenden Sie cp -a quelle ziel oder cp -r quelle ziel, je nachdem, ob beim Kopieren die Zugriffsrechte und -zeiten erhalten bleiben sollen oder nicht. Wenn es das Zielverzeichnis bereits gibt, wird darin das neue Unterverzeichnis quelle erzeugt und der gesamte Inhalt des Quellverzeichnisses dorthin kopiert. Wenn es das Zielverzeichnis hingegen noch nicht gibt, wird es erzeugt; in diesem Fall wird nur der Inhalt des Quellverzeichnisses in das neu erzeugte Zielverzeichnis kopiert, nicht aber das Quellverzeichnis selbst. (Zwei Beispiele, die diesen feinen Unterschied verdeutlichen, finden Sie auf Seite 301.) Zum Kopieren ganzer Verzeichnisbäume eignen sich auch rsync und tar (siehe Seite 1209 bzw. 1221).
cpio kommando [optionen] [muster] cpio fasst mehrere Dateien zu einem Archiv zusammen und kopiert sie auf einen anderen Datenträger (z. B. auf einen Streamer) oder in ein anderes Verzeichnis. Analog kann das Kommando auch zum Wiedereinlesen solcher Daten verwendet werden. Unter Linux ist cpio eher ungebräuchlich, stattdessen wird zumeist tar verwendet. Die drei zentralen cpio-Kommandos sind: -o
zum Speichern von Daten (Output). Die Dateien werden zu einem Archiv zusammengefasst und an die Standardausgabe geschrieben.
-i
zum Einlesen archivierter Daten (Input).
-p
zur Übertragung von Archiven zwischen verschiedenen Verzeichnissen (Pass Through).
Diese drei Hauptkommandos können durch verschiedene Optionen gesteuert werden. Details dazu finden Sie in den man-Seiten.
curl [optionen] [url] curl hilft bei der Übertragung von Dateien von oder zu einem Server, wobei alle erdenklichen Protokolle unterstützt werden (HTTP, HTTPS, FTP, SFTP, SCP etc.). Die externe Datei bzw. das externe Verzeichnis wird durch eine URL-Zeichenkette (Uniform Resource Locator) angegeben, die mit dem Protokollnamen beginnt (z. B. http://server.de/datei). --limit-rate n limitiert die Übertragungsgeschwindigkeit auf die angegebene Byteanzahl pro Sekunde. n kann der Buchstabe k oder m hintangestellt werden, um die Übertragungsrate auf n kByte oder MByte pro Sekunde zu limitieren. -o datei speichert die heruntergeladenen Daten in der angegebenen Datei, anstatt sie an die Standardausgabe weiterzuleiten.
1146
Alphabetische Kommandoreferenz
-r n1-n2 überträgt den angegebenen Bytebereich der Datei. -T datei überträgt die angegebene Datei zum Server (Upload). Statt des Dateinamens kann auch das Zeichen - angegeben werden, um Daten aus der Standardeingabe zu verarbeiten. -u name:password gibt den Login-Namen und das Passwort an.
cut [optionen] datei cut extrahiert aus jeder Zeile eines Textes die durch Optionen angegebenen Spalten. -b liste bzw. --bytes liste extrahiert die in einer Liste angegebenen Zeichen. Einzelne Einträge dürfen durch Kommata (aber nicht durch Leerzeichen) getrennt werden. Statt einzelner Zeichen dürfen auch ganze Bereiche angegeben werden, etwa -b 3-6,9,11-15. -f liste bzw. --fields liste wie oben, aber jetzt für Felder (Datensätze), die durch Tabulatorzeichen getrennt sein müssen. -d zeichen bzw. --delimiter zeichen gibt das Trennzeichen für -f an, das statt des Tabulatorzeichens verwendet werden soll. -s bzw. --only-delimited eliminiert alle Zeilen, die keine Daten enthalten, die der Option -f entsprechen. Kann nicht zusammen mit -b verwendet werden.
date [optionen] [+format] date zeigt das aktuelle Datum und die Uhrzeit an bzw. verändert diese Daten. (Eine Veränderung darf nur von root vorgenommen werden.) date kann die Zeit in den verschiedensten Formaten anzeigen (siehe man-Texte). -s neuezeit verändert das Datum und/oder die Uhrzeit (anstatt diese Informationen nur anzuzeigen).
dd [optionen] dd überträgt Daten zwischen verschiedenen Speichermedien (Festplatte, USB-Stick etc.) und führt dabei auf Wunsch eine Konvertierung der Daten durch. Das Kommando kann unter anderem dazu eingesetzt werden, Daten zwischen verschiedenen Rechnerarchitekturen auszutauschen. dd kann nicht nur einzelne Dateien kopieren, sondern auch direkt auf Devices zugreifen. Damit können ganze Festplatten(partitionen) kopiert, der Bootsektor der Festplatte verändert werden etc. Auf dem Datenträger muss kein Dateisystem eingerichtet werden. Wenn dd ohne Optionen verwendet wird, liest es die Daten aus der Standardeingabe (Tastatur, Ende mit (Strg)+(Z)) und schreibt in die Standardausgabe (in die aktuelle Konsole). Beachten Sie, dass die Optionen von dd ohne vorangehende Minus-Zeichen angegeben werden!
1147
Kapitel 39
Alphabetische Kommandoreferenz
conv=modus konvertiert die Daten während des Kopierens. Für modus sind verschiedene Einstellungen erlaubt, unter anderem lcase (Großbuchstaben in Kleinbuchstaben umwandeln), ucase (Kleinin Großbuchstaben umwandeln), swab (jeweils zwei Byte vertauschen) etc. bs=n bestimmt die Blockgröße für die Ein- und Ausgabedatei. (Die Blockgröße gibt an, wie viele Bytes jeweils in einem Durchgang gelesen bzw. geschrieben werden.) count=n kopiert nur n Blöcke (und nicht die gesamten Daten). ibs=n bestimmt die Blockgröße der Quelldatei. if=quelldatei gibt die Quelldatei (statt der Standardeingabe) an. obs=n bestimmt die Blockgröße der Zieldatei. of=zieldatei gibt die Zieldatei (statt der Standardausgabe) an. seek=n überspringt n Blöcke, bevor die Ausgabe gestartet wird. skip=n überspringt n Blöcke, bevor mit dem Lesen begonnen wird. Beispiel
Durch das folgende Kommando wird die Image-Datei ubuntu.img direkt auf den Datenträger mit dem Device /dev/sdc übertragen (also beispielsweise auf einen USB-Stick). Beachten Sie, dass dabei alle bisher gespeicherten Daten auf diesem Datenträger verloren gehen! Stellen Sie sicher, dass Sie den richtigen Device-Namen angeben! user$
dd if=ubuntu.img of=/dev/sdc bs=512
delgroup [optionen] name delgroup löscht auf Debian-Systemen die angegebene Gruppe und befolgt dabei die Regeln aus /etc/deluser.conf. Bei Fedora und Red Hat ist delgroup ein Link auf das Kommando groupdel, dessen Syntax auf Seite 1164 beschrieben ist. --only-if-empty löscht die Gruppe nur, wenn ihr keine Benutzer zugeordnet sind. --system löscht die Gruppe nur, wenn es sich um eine Systemgruppe handelt.
1148
Alphabetische Kommandoreferenz
deluser [optionen] name deluser löscht auf Debian-Systemen den angegebenen Benutzer und befolgt dabei die Regeln aus /etc/deluser.conf. Demzufolge wird das Heimatverzeichnis normalerweise nicht gelöscht. Bei Fedora und Red Hat ist deluser ein Link auf das Kommando userdel, dessen Syntax auf Seite 1230 beschrieben ist. --remove-home löscht auch das Heimatverzeichnis des Benutzers. --remove-all-files löscht das Heimatverzeichnis sowie alle anderen Dateien des Benutzers (z. B. diverse Spoolund Mail-Dateien). --system löscht den Benutzer nur, wenn es sich um einen Systembenutzer handelt.
depmod [optionen] depmod erzeugt die Modulabhängigkeitsdatei modules.dep sowie diverse *.map-Dateien im Verzeichnis /lib/modules/kernelversion/. Die *-map-Dateien geben an, bei welcher Hardware-Komponente welches Kernelmodul geladen werden soll. -A bzw. --quick testet zuerst, ob bereits existierende *.dep- und *.map-Dateien noch aktuell sind. In diesem Fall verzichtet depmod darauf, die Dateien neu zu generieren. -b verzeichnis bzw. --basedir verzeichnis gibt an, für welches Verzeichnis die *.dep- und *.map-Dateien erzeugt werden sollen. (Standardmäßig aktualisiert das Kommando die Dateien für den laufenden Kernel.)
df [optionen] [verzeichnis] df gibt Auskunft darüber, an welcher Stelle im Dateibaum Festplatten(partitionen) oder andere Laufwerke eingebunden sind und wie viel Speicherplatz darauf verfügbar ist. Normalerweise liefert df eine Liste aller aktiven Partitionen. Wenn Sie an das Kommando ein Verzeichnis übergeben, zeigt es hingegen nur die Daten der Partition an, in der sich dieses Verzeichnis physikalisch befindet. Bei Systemen mit vielen Partitionen können Sie auf diese Weise einfach feststellen, in welcher Partition ein bestimmtes Verzeichnis gespeichert wird. -i bzw. --inodes gibt Informationen über die verfügbaren Inodes an (statt des freien Speicherplatzes in kByte). -h
gibt den Speicherplatz in leicht lesbarer Form in MByte oder GByte an.
-T
gibt für jede Partition bzw. für jeden Datenträger das Dateisystem an.
Beachten Sie, dass df bei btrfs-Dateisystemen irreführende Ergebnisse liefert (insbesondere im Zusammenspiel mit RAID). Verwenden Sie gegebenenfalls btrfs filesystem show und btrfs filesystem df, um die Nutzung von btrfs-RAID-Systemen korrekt zu ermitteln.
1149
Kapitel 39
Alphabetische Kommandoreferenz
diff [optionen] datei1 datei2 diff vergleicht zwei Textdateien. Das Ergebnis ist eine Liste aller Zeilen, die voneinander abweichen. Das Kommando ist relativ »intelligent«, d. h., wenn in einer Datei gegenüber der anderen einige Zeilen eingefügt sind, so wird nur diese Abweichung gemeldet. Weitere Zeilen werden wieder als identisch erkannt, obwohl jetzt unterschiedliche Zeilennummern vorliegen. Das Kommando kann also dazu verwendet werden, die Abweichungen zwischen zwei Versionen eines Programmlistings rasch zu dokumentieren. -b
betrachtet mehrfache Leerzeichen und -zeilen wie einfache Leerzeichen bzw. -zeilen.
-w
ignoriert Leerzeichen und Leerzeilen ganz.
dmesg [optionen] dmesg gibt die im Pufferspeicher enthaltenen Kernelmeldungen aus. -c
löscht nach der Ausgabe den Pufferspeicher für die Kernelmeldungen.
dpkg optionen [dateiname/paketname] dpkg erledigt die Low-Level-Paketverwaltung für Debian, Ubuntu und alle anderen Distributionen, die Debian-Pakete nutzen. Der Benutzer verwendet aber in der Regel nicht dpkg zur Paketinstallation, sondern ein darauf aufbauendes Kommando (z. B. apt-get, siehe Seite 1136). Grundlageninformationen zur Debian-Paketverwaltung sowie Beispiele zur Anwendung von dpkg finden Sie auf Seite 526. --install dateiname.deb installiert die angegebene Paketdatei(en). Wenn bereits eine ältere Version installiert ist, wird diese deinstalliert und durch die neue Version ersetzt. Während der Installation werden auch die im Paket vorgesehenen Konfigurations-Scripts ausgeführt. Vor der Installation wird sichergestellt, dass alle Paketabhängigkeiten erfüllt sind. Wenn das nicht der Fall ist, geht aus der Fehlermeldung zumeist hervor, welche Pakete fehlen. dpkg lässt normalerweise nur die Installation von Paketen in der zur Distribution passenden Architektur zu. Wenn Sie mit einer 64-Bit-Linux-Distribution arbeiten, ein Programm aber nur als 32-Bit-Paket verfügbar ist, können Sie die Installation mit --force-architecture erzwingen. (Ob das Programm dann tatsächlich funktioniert, ist eine andere Frage. Auf jeden Fall müssen Sie auch die entsprechenden 32-Bit-Bibliotheken installieren.) --configure paketname führt die Konfigurations-Scripts des angegebenen Pakets aus. Normalerweise geschieht das bereits während der Installation; in manchen Fällen kann es aber notwendig sein, diesen Schritt explizit auszuführen.
1150
Alphabetische Kommandoreferenz
Bei manchen Paketen gibt es zusätzlich zu den automatischen Konfigurations-Scripts interaktive Setup-Programme. Wenn Sie ein derartiges Setup-Programm später nochmals benötigen, müssen Sie dpkg-reconfigure paketname ausführen. --remove paketname entfernt das angegebene Paket. --purge paketname entfernt das angegebene Paket inklusive aller Paketdateien (auch wenn diese von Ihnen verändert wurden). --list liefert eine Liste aller installierten Pakete. --list ’muster’ liefert eine Liste der installierten und verfügbaren Pakete (laut /var/lib/dpkg/available). Bei der Paketliste wird in der ersten Spalte ein Code aus zwei Buchstaben angegeben. Der erste Buchstabe gibt den gewünschten Status des Pakets an (i = installieren, n = nicht installieren, r/p = entfernen, h = halten), der zweite Buchstabe den tatsächlichen Status (i = installiert, n = nicht installiert, c = konfiguriert, u = entpackt, aber noch nicht konfiguriert, f = fehlgeschlagen). Die Informationen stammen aus der Debian-Paketdatenbank, einer Sammlung von Dateien im Verzeichnis /var/lib/dpkg. Dort werden Meta-Informationen über alle installierten und verfügbaren Pakete gespeichert. --listfiles paketname liefert eine Liste aller Dateien des angegebenen Pakets. Das funktioniert nur für bereits installierte Pakete. Den Inhalt nichtinstallierter Pakete ermitteln Sie mit dem Kommando dpkg-deb --contents dateiname. --search dateiname ermittelt das Paket, aus dem die angegebene Datei stammt.
dracut [optionen] initrd-datei kernelversion dracut ist ab Fedora 12 bzw. ab RHEL 6 für das Erzeugen einer Initrd-Datei zuständig. (Bei älteren Fedora- und RHEL-Versionen kommt mkinitrd zum Einsatz, siehe Seite 1186.) Wenn dracut ohne weitere Parameter ausgeführt wird, erzeugt es für den neuesten Kernel im Verzeichnis /boot eine Initrd-Datei mit dem Namen /boot/initrd-kernelversion. dracut berücksichtigt die Einstellungen in /etc/dracut.conf sowie zahllose Optionen, die in man dracut beschrieben sind. Hier sind nur die beiden wichtigsten Optionen zusammengefasst: -d a,b,c baut die Kernelmodule a, b und c in die Initrd-Datei ein. Normalerweise ist diese Option nicht erforderlich. dracut erkennt selbstständig, welche Module für den Startprozess erforderlich sind. -f
überschreibt eine vorhandene Initrd-Datei.
1151
Kapitel 39
Alphabetische Kommandoreferenz
du [optionen] [verzeichnis] du gibt Informationen über den Speicherbedarf von Dateien bzw. von Verzeichnissen aus. Wenn im Verzeichnisparameter eine Dateispezifikation angegeben wird (etwa * oder *.tex), dann liefert du eine Liste mit der Größe aller Dateien. Wird dagegen nur ein Verzeichnis angegeben, ermittelt du den Speicherbedarf für alle untergeordneten Verzeichnisse. Die Speicherangaben umfassen auch den Speicherbedarf aller untergeordneten Verzeichnisse. Der letzte Zahlenwert gibt den Gesamtspeicherbedarf aller Dateien und Unterverzeichnisse ab dem angegebenen Verzeichnis an. Alle Angaben erfolgen in kByte. -b bzw. --bytes zeigt die Größenangaben in Byte (statt in kByte) an. -c bzw. --total zeigt als abschließenden Wert die Endsumme an. Diese Option ist nur notwendig, wenn du auf Dateien (und nicht auf Verzeichnisse) angewandt wird. Mit dieser Option kann relativ einfach festgestellt werden, wie viel Speicher alle Dateien mit einer bestimmten Kennung (z. B. *.tex) beanspruchen. -h bzw. --human-readable zeigt die Größenangaben in einer gut lesbaren Form an. K, M und G gelten als Abkürzungen für kByte, MByte oder GByte. -s bzw. --summarize zeigt nur die Endsumme an. Diese Option ist nur dann sinnvoll, wenn der Speicherbedarf von Verzeichnissen angezeigt wird. -S bzw. --dereference zeigt nur den Speicherbedarf unmittelbar im Verzeichnis an. Der Speicherbedarf in Unterverzeichnissen wird nicht berücksichtigt.
echo [optionen] zeichenkette
(bash)
echo gibt die angegebene Zeichenkette aus. Wenn die Zeichenkette Leer- oder Sonderzeichen enthält, muss sie in doppelte oder einfache Apostrophe eingeschlossen werden, je nachdem, ob Shell-Variablen ausgegeben werden sollen oder nicht. -e
interpretiert diverse Backslash-Zeichenkombinationen (z. B. \a (Beep), \n (Zeilenende) und \t (Tabulator), siehe auch help echo). echo -e "\a" gibt also einen Warnton aus.
-n
wechselt beim Ende der Ausgabe nicht in eine neue Zeile. Die Ausgabe kann durch eine weitere echo-Anweisung fortgesetzt werden.
eject [name] eject ohne Parameter wirft normalerweise die eingelegte CD oder DVD aus. Falls die CD/DVD in das Dateisystem eingebunden war, führt eject vorher umount aus. Falls es im Rechner mehrere Datenträger gibt, die ausgeworfen werden können, werden diese Möglichkeiten der Reihe nach
1152
Alphabetische Kommandoreferenz
getestet; der erste gefundene Datenträger wird ausgeworfen. Optional kann der Datenträger durch den Device-Namen oder das Mount-Verzeichnis angegeben werden.
eval $var
(bash)
eval interpretiert den Inhalt der Variablen als Kommandozeile, wertet diese Zeile aus (mit allen bekannten Substitutionsmechanismen) und führt das Kommando schließlich aus. eval ist immer dann erforderlich, wenn ein in einer Variable gespeichertes Kommando ausgeführt werden soll und dieses Kommando diverse Sonderzeichen der Shell enthält. Erst mit der Verwendung von eval kann das in der Variablen kom gespeicherte Kommando ausgeführt werden. Der erste Versuch, das Kommando auszuführen, scheitert, weil die bash das Pipe-Zeichen | nicht mehr auswertet, nachdem sie $kom durch seinen Inhalt ersetzt hat.
Beispiel
user$ kom="ls | more" user$ $kom ls: |: No such file or directory ls: more: No such file or directory user$ eval $kom
exec kommando
(bash)
exec startet das angegebene Kommando als Ersatz zur laufenden bash. Das Kommando kann beispielsweise dazu verwendet werden, eine andere Shell zu starten. Die laufende Shell wird dadurch auf jeden Fall beendet. (Bei einem normalen Kommandostart bleibt die bash im Hintergrund aktiv, bis das Kommando beendet ist.)
exit [rückgabewert]
(bash)
exit beendet ein Shell-Programm. Wenn kein Rückgabewert angegeben wird, gibt das Programm 0 (ok) zurück.
expr ausdruck expr zeichenkette : muster expr wertet den angegebenen Ausdruck arithmetisch aus oder führt einen Mustervergleich für Zeichenketten aus. Zwischen den angegebenen Variablen, Zahlen und Operatoren müssen jeweils Leerzeichen angegeben werden! Eine kurze Beschreibung aller zulässigen Operatoren finden Sie in den man-Seiten zu expr. Beachten Sie, dass viele Operatorzeichen in der Shell durch das Zeichen \ vor der unmittelbaren Auswertung geschützt werden müssen. Wenn Sie die bash als Shell verwenden, können Sie darin auch ohne expr rechnen: Arithmetische Ausdrücke können dort in der Form $[ausdruck] angegeben werden. Im Muster können die bei grep beschriebenen Jokerzeichen verwendet werden (siehe Seite 1162). Das Muster muss normalerweise in Apostrophe gestellt werden, um eine Auswertung der Sonderzeichen durch die Shell zu vermeiden.
1153
Kapitel 39
Beispiele
Alphabetische Kommandoreferenz
Das erste expr-Kommando führt eine einfache Berechnung durch. Das zweite Kommando liefert die Anzahl der Zeichen, die dem Musterausdruck maximal entsprechen. Das dritte Kommando extrahiert den geklammerten Teil des Musters aus einer Zeichenkette. user$ 136 user$ 7 user$ efg
expr 3 + 7 \* 19 expr abcdefghi : 'a.*g' expr abc_efg_hij : '.*_\(.*\)_.*'
fc-list [muster] fc-list listet unter X alle skalierbaren Schriftarten auf, die dem (optionalen) Suchmuster entsprechen. Das Ergebnis kann mit j sort sortiert werden.
fdisk [optionen] [device] fdisk ist ein interaktives Programm zur Partitionierung von Festplatten. Wenn beim Start keine Device-Datei angegeben wird, bezieht sich fdisk automatisch auf die erste Festplatte. Die interaktive Bedienung von fdisk wird ausführlich auf Seite 615 beschrieben. -c
deaktiviert den DOS-Kompatibilitätsmodus. Das Manual empfiehlt generell, diese Option zu verwenden. Die Option ist unbedingt erforderlich, wenn Sie eine neue Festplatte mit 4-kByteSektoren partitionieren!
-l
listet alle Partitionen aller Festplatten auf und beendet fdisk anschließend.
-s device liefert die Größe der angegebenen Partitionen in Blöcken und beendet fdisk anschließend. -u
verwendet für Größenangaben Sektoren (in der Regel zu 512 Byte) anstatt von Zylindern. Das ist insofern zweckmäßig, als die von Festplatten gelieferten Zylinderangaben schon lange nicht mehr dem realen Aufbau von Festplatten entsprechen.
fg [prozess]
(bash)
fg setzt einen mit (Strg)+(Z) unterbrochenen Prozess im Vordergrund fort. Wenn kein Prozess angegeben wird, gilt fg für den zuletzt unterbrochenen bzw. für den zuletzt im Hintergrund gestarteten Prozess. Andernfalls muss der Prozess durch seinen Namen oder durch die bash-interne Jobnummer (nicht PID) angegeben werden. Das Kommando kann auch in der Kurzschreibweise %prozess verwendet werden.
file [optionen] datei file versucht festzustellen, welchen Dateityp die angegebene Datei hat. Als Ergebnis liefert file eine Zeichenkette mit dem Dateinamen und dem Typ der Datei (z. B. test.ps: PostScript text conforming).
1154
Alphabetische Kommandoreferenz
-z
versucht, den Datentyp einer komprimierten Datei zu erkennen. Dabei wird die Datei /etc/ magic ausgewertet.
find [pfadangabe] [suchoptionen] find hilft bei der Suche nach Dateien. Dabei können verschiedene Suchkriterien (Muster für den Dateinamen, Dateigröße, Datum der Erstellung oder des letzten Zugriffs etc.) bei der Suche berücksichtigt werden. Es besteht sogar die Möglichkeit, auf alle Dateien, die diese Bedingungen erfüllen, mit einem anderen Programm (etwa grep) weitere Selektionskriterien anzuwenden. Auf diese Weise könnten beispielsweise alle *.tex-Dateien gefunden werden, die in den letzten drei Tagen bearbeitet wurden und die den Text »Grafikprogrammierung« enthalten. Aufgrund der großen Anzahl möglicher Suchkriterien liefert man find eine viele Seite lange Beschreibung des Kommandos. Bevor Sie die Details nachlesen, sollten Sie sich auf Seite 311 einige find-Beispiele ansehen. Einen Überblick über andere Dateisuchkommandos finden Sie auf Seite 309. Die folgende Syntaxbeschreibung bezieht sich explizit auf die unter Linux gebräuchliche GNUfind-Implementierung. Sie zeichnet sich durch einige kleinere Syntaxunterschiede gegenüber den find-Varianten anderer Unix-Systeme aus: Dort muss eine Pfadangabe erfolgen, während GNUfind das aktuelle Verzeichnis als Startverzeichnis verwendet. Außerdem verlangen die meisten find-Implementierungen den Einsatz der Option -print zur Anzeige der Suchergebnisse, was bei GNU-find nicht erforderlich ist. Im Gegensatz zu den meisten anderen Kommandos durchsucht find automatisch alle Unterverzeichnisse. Wenn das nicht erwünscht ist, muss die Anzahl der Unterverzeichnisse durch -maxdepth eingeschränkt werden.
Allgemeine Optionen
-depth bearbeitet zuerst das aktuelle Verzeichnis und erst dann die Unterverzeichnisse. (Je nachdem, wo Sie die gesuchte Datei vermuten, kann diese Vorgehensweise erheblich schneller sein.) -follow bearbeitet auch Verzeichnisse, die durch symbolische Links erfasst werden. -maxdepth n schränkt die Suche auf n Verzeichnisebenen ein. Mit -maxdepth 1 werden überhaupt keine Unterverzeichnisse berücksichtigt. Es können mehrere Suchkriterien gleichzeitig genannt werden. Diese Kriterien werden logisch mit UND verknüpft. Die Suche wird abgebrochen, sobald das erste Kriterium nicht erfüllt ist – die Reihenfolge der Kriterien kann also Einfluss auf die Geschwindigkeit des Kommandos haben. Kriterien können mit \( und \) gruppiert, mit ! negiert und mit -o logisch ODER-verknüpft werden.
Suchkriterien
-ctime n findet Dateien, die zuletzt vor genau n Tagen verändert wurden. Wenn vor der Zahl ein + angegeben wird, dann werden alle Dateien erfasst, die älter als n Tage sind. Ein vorangestelltes liefert Dateien, die jünger als n Tage sind.
1155
Kapitel 39
Alphabetische Kommandoreferenz
-cmin n funktioniert wie ctime, allerdings erfolgt die Zeitangabe in Minuten. -group gruppenname oder -nogroup gruppenname findet Dateien, die der angegebenen Gruppe angehören (bzw. die ihr nicht angehören). -name suchmuster findet Dateien, die dem angegebenen Suchmuster entsprechen. Wenn das Suchmuster Jokerzeichen enthält, muss es in Apostrophe gestellt werden. Wenn find nicht zwischen Groß- und Kleinschreibung unterscheiden soll, verwenden Sie statt -name die Option -iname. -path suchmuster findet Dateien, die dem angegebenen Suchmuster entsprechen. Die Option geht über -name hinaus, weil das Suchmuster jetzt nicht nur den Dateinamen, sondern auch den Pfad dorthin betrifft. Diese Option ist flexibler als die direkte Pfadangabe im ersten Argument von find, weil hier die Jokerzeichen auch das Zeichen / erfassen. -perm zugriffsbits findet Dateien, deren Zugriffsbits genau dem angegebenen Oktalwert (siehe chmod) entsprechen. Wenn dem Oktalwert ein - vorangestellt wird, dann reicht es, wenn die Datei mindestens eines dieser Zugriffsbits enthält. Wenn ein + vorangestellt wird, darf die Datei auch darüber hinausgehende Zugriffsrechte haben. -size dateigröße gibt die gewünschte Dateigröße vor. Die Angabe erfolgt standardmäßig in Vielfachen von 512. 3 bezeichnet also Dateien zwischen 1024 und 1536 Bytes. Durch die zusätzlichen Zeichen c oder k kann die Größe in Byte oder kByte angegeben werden. Ein vorangestelltes + erfasst alle größeren Dateien, ein vorangestelltes - alle kleineren Dateien. -size +10k liefert daher alle Dateien, die größer als 10 kByte sind. -type zeichen schränkt die Suche auf bestimmte Dateitypen ein. Die wichtigsten Zeichen sind f für reguläre Dateien, d für Verzeichnisse (Directories) und l für symbolische Links. -user username oder -nouser username findet Dateien, die dem angegebenen Benutzer gehören (bzw. die ihm nicht gehören). Aktion beim Finden einer Datei
1156
Die folgenden Optionen bestimmen, was find unternimmt, wenn es eine Datei findet: -exec kommando [optionen] {} \; ruft das angegebene Kommando auf und übergibt den Dateinamen der gefundenen Datei, die alle bisher verarbeiteten Kriterien erfüllt hat. Das Kommando kann nun einen Test durchführen, ob die Datei weiteren Kriterien entspricht. Ein typisches Programm, das durch -exec aufgerufen wird, ist grep. {} steht als Platzhalter für den Dateinamen. ; schließt den Kommandoaufruf ab, d. h., dahinter können weitere find-Optionen angegeben werden. \ ist innerhalb der Shell erforderlich, um die Interpretation von ; als Sonderzeichen zu verhindern.
Alphabetische Kommandoreferenz
-print gibt die gefundenen Dateinamen auf dem Bildschirm aus. Diese Option ist die Standardeinstellung, sofern nicht -exec verwendet wird. -printf format gibt die gefundenen Dateinamen und andere Informationen auf dem Bildschirm aus. In der Formatzeichenkette kann angegeben werden, in welcher Form die Ausgabe erfolgt und welche Zusatzinformationen mit ausgegeben werden (etwa die Dateigröße, das Datum der letzten Änderung etc.). Die Syntax für die Formatzeichenkette ist in den man-Seiten beschrieben.
fold [optionen] datei fold umbricht Textzeilen bei einer Länge von 80 Zeichen und zeigt das Ergebnis auf dem Bildschirm an. -w n bzw. --width n stellt eine maximale Textbreite von n Zeichen ein. -s bzw. --spaces versucht, den Umbruch an der Stelle eines Leerzeichens (also zwischen zwei Wörtern) durchzuführen. Die Zeilen werden damit kürzer oder gleich n Zeichen.
free [optionen] free zeigt an, wie der verfügbare Speicherplatz (RAM und Swap-Speicher) genutzt ist. Als Einheit werden normalerweise kByte verwendet. Mit der Option -m rechnet free in MByte.
fsck [optionen] device fsck überprüft die Konsistenz des Dateisystems und führt gegebenenfalls Reparaturen durch. Es darf nur von root ausgeführt werden. Je nach Typ des Dateisystems ruft fsck die Programme fsck.ext3, fsck.ext4 etc. auf. fsck ist also nur die Oberfläche zu weiteren Programmen. Lesen Sie vor der Ausführung von fsck unbedingt die man-Seiten dieses und des dateisystemspezifischen Kommandos! Vor der Überprüfung eines Dateisystems müssen Sie umount ausführen. (Zur Überprüfung des root-Dateisystems führen Sie zuerst touch /forcefsck aus und starten dann den Rechner neu.) Fehlerhafte Dateien bzw. Dateifragmente werden im Verzeichnis lost+found gespeichert. -A
überprüft alle in /etc/fstab genannten Dateisysteme.
-t typ gibt den Typ des Dateisystems an (etwa ext3, xfs).
1157
Kapitel 39
Alphabetische Kommandoreferenz
fsck.ext2 [optionen] device fsck.ext3 [optionen] device fsck.ext4 [optionen] device fsck.ext2/3/4 bzw. e2fsck überprüft die Konsistenz eines ext-Dateisystems und führt gegebenenfalls Reparaturen durch. Das Kommando kann auch via fsck gestartet werden. -b n liest den alternativen Superblock n. -n
beantwortet alle Rückfragen mit n (nein), führt also keine Änderungen durch.
-p
führt Reparaturen (Änderungen) im Dateisystem ohne Rückfrage durch.
-y
beantwortet alle Rückfragen mit y (ja), führt Änderungen durch.
ftp [optionen] ftpserver ftp stellt eine Verbindung zum angegebenen FTP-Server her. Nach dem Login können Sie interaktiv Dateien zwischen dem lokalen Rechner und dem FTP-Server übertragen. Ein Beispiel zur Anwendung von ftp sowie eine Referenz der interaktiven Kommandos finden Sie ab Seite 389.
fuser dateiname fuser ermittelt das Programm, das auf eine Datei bzw. ein Device zugreift und diese bzw. dieses möglicherweise für andere Programme blockiert. fuser liefert normalerweise nur die Prozessnummer (PID) des Programms. Wenn Sie auch wissen möchten, wer das Programm ausführt, geben Sie zusätzlich die Option -v an.
genisoimage [optionen] verzeichnis1 verzeichnis2 genisoimage (ehemals mkisofs) erzeugt ein ISO-Image, das anschließend auf eine CD oder DVD gebrannt werden kann (z. B. mit wodim). Grundsätzlich werden an genisoimage alle Verzeichnisse übergeben, deren Inhalt in das Wurzelverzeichnis des ISO-9660-Dateisystems eingefügt werden soll. Die Verzeichnisse selbst werden nicht Teil des ISO-Dateisystems! Wenn Sie das möchten, müssen Sie die Option -graft-points verwenden und die Verzeichnisse in der Form verz1=verz1 verz2=verz2 angeben. genisoimage schreibt die resultierende ISO-Datei in die Standardausgabe. Oft wird die Ausgabe mit -o dateiname in eine Datei umgeleitet. Daneben gibt es zahllose weitere Optionen, von denen hier nur die wichtigsten erwähnt sind. Anwendungsbeispiele zu genisoimage finden Sie ab Seite 328. -apple nutzt die Apple-Extension, sodass die resultierende CD auch auf Apple-Rechnern gelesen werden kann. (Alternativ können Sie auch die Option -hfs einsetzen – siehe unten.)
1158
Alphabetische Kommandoreferenz
-b datei nutzt die angegebene Datei als Boot-Image. Beim Rechnerstart wird diese Datei automatisch ausgeführt (sofern das BIOS entsprechend konfiguriert ist). Normalerweise erwartet genisoimage ein Disketten-Image (1,2, 1,44 oder 2,88 MByte). Wenn die Boot-Datei eine andere Größe bzw. ein anderes Format hat, müssen Sie zusätzlich die Option -hard-disk-boot oder -noemul-boot angeben. Die Dateiangabe erfolgt relativ zum Dateisystem der zu brennenden CD (nicht relativ zum aktuellen Dateisystem auf der Festplatte!). -boot-info-table integriert einen 56 Byte langen Informationsblock (die sogenannte El Torito Boot Info Table) in die Boot-Image-Datei. Die Option ist nur in Kombination mit -b sinnvoll. Vorsicht: Dadurch wird die Boot-Image-Datei auf der Festplatte verändert! Erstellen Sie gegebenenfalls vorher eine Sicherheitskopie. -boot-load-size n gibt an, wie viele 512-Byte-Sektoren des Boot-Images gelesen werden sollen. Die Option ist nur in Kombination mit -b und -no-emul-boot zweckmäßig. Normalerweise wird dann die gesamte Boot-Datei gelesen. Manche BIOS-Versionen verlangen, dass n ein Vielfaches von 4 ist. -c name gibt an, unter welchem Dateinamen der sogenannte Bootkatalog auf der CD gespeichert werden soll. Der Katalog wird von genisoimage erzeugt. Sie müssen bei der Angabe des Namens lediglich darauf achten, dass es keinen Konflikt mit einer vorhandenen Datei gibt. (Der man-Text rät dazu, den Namen boot.catalog zu verwenden.) -D
erlaubt mehr als acht Verzeichnisebenen. Das widerspricht dem ISO-Standard und kann auf manchen Systemen, die eine exakte Einhaltung des ISO-Standards verlangen, zu Problemen führen. Ohne diese Option hält sich genisoimage an den Standard und verändert gegebenenfalls die Verzeichnishierarchie und die Namen der betroffenen Dateien.
-dvd-video berücksichtigt die Regeln für Video-DVDs (UDF-Unterstützung, korrekte Sortierung der Dateien etc.). Achten Sie darauf, dass die Dateinamen der Video-Dateien in Großbuchstaben angegeben werden müssen! -f
verfolgt symbolische Links. Der Inhalt der so angegebenen Dateien oder Unterverzeichnisse wird in das ISO-Image mit aufgenommen. (Ohne diese Option wird nur der Link an sich im ISOImage gespeichert. Symbolische Links können allerdings nur auf CDs mit Rockridge-Extension abgebildet werden.)
-graft-points erlaubt Verzeichnisangaben in der Form iso=real. Das bedeutet, dass das Verzeichnis real im ISO-Image den Namen iso bekommt. Sie können mit diesem Mechanismus auch den Pfad von Verzeichnissen ändern oder einzelne Dateien umbenennen. Beispielsweise erreichen Sie mit der folgenden Option, dass der Inhalt des Verzeichnisses /data/fotos/2010/2010-01-diverse auf der CD oder DVD im Verzeichnis 2010-01 gespeichert wird: -graft-points 2010-01=/data/fotos/2010/2010-01-diverse
1159
Kapitel 39
Alphabetische Kommandoreferenz
Oft wird die Option nur deswegen verwendet, um zu erreichen, dass das zu speichernde Verzeichnis an sich (und nicht nur sein Inhalt) in das ISO-Image aufgenommen wird. In diesem Fall stimmen der ISO-Name und der reale Name überein (verz1=verz1 verz2=verz2). -hard-disk-boot gibt an, dass das mit -b angegebene Boot-Image ein Festplatten-Image ist. Die Image-Datei muss mit einem MBR (Master Boot Record) beginnen und eine Partition enthalten. -hfs erzeugt eine Hybrid-CD, die sowohl das ISO-9660- als auch das unter Mac OS X übliche HFS-Dateisystem verwendet. Die eigentlichen Dateien werden aber nur einmal gespeichert. Durch diverse weitere Optionen können Sie diverse HFS-Details einstellen. Eine umfassende Beschreibung aller HFS-Optionen gibt man genisoimage. -input-charset name gibt an, welchen Zeichensatz die Dateinamen im vorhandenen Dateisystem nutzen. Normalerweise verändert genisoimage die Zeichensatzcodierung für das Standard-ISO-Format und für die Rockridge-Extension nicht. Eine Liste der möglichen Zeichensätze liefert genisoimage -input-charset help. -J
nutzt die Joliet-Extension (Microsoft), um Informationen über lange Dateinamen zu speichern. Dateinamen werden in Unicode (UTF-16) codiert. Die Option kann auch in Kombination mit -R verwendet werden – dann ist das Ergebnis eine Hybrid-CD, bei der lange Dateinamen sowohl unter Unix als auch unter Windows sichtbar sind.
-joliet-long erlaubt bis zu 103 Zeichen in Dateinamen. (Die Joliet-Extension beschränkt Dateinamen normalerweise auf 64 Zeichen.) -nobak ignoriert alle Dateien, die die Zeichen # oder ~ enthalten oder mit .bak enden. -no-emul-boot gibt an, dass das Boot-Image (Option -b) ein sogenanntes No Emulation Image ist. Die Datei wird beim Booten direkt von der CD/DVD gelesen, ohne dabei eine Diskette oder eine Festplatte zu emulieren. -o datei speichert das ISO-Image in der angegebenen Datei. -output-charset name gibt an, welchen Zeichensatz die Dateinamen im ISO-Image nutzen sollen. Die Einstellung gilt nur für das Standard-ISO-Format und die Rockridge-Extension. Normalerweise belässt genisoimage die Zeichencodierung so, wie sie ist. Die Option hat keine Konsequenzen für die Joliet-Extension – dort kommt immer Unicode zum Einsatz. -R
1160
nutzt die Rockridge-Extension (Unix), um Informationen über lange Dateinamen zu speichern. Die Option kann auch in Kombination mit -J verwendet werden – dann ist das Ergebnis eine Hybrid-CD.
Alphabetische Kommandoreferenz
-r
hat dieselbe Wirkung wie -R, setzt aber für alle Dateien die UID und GID auf 0 (entspricht root). Gleichzeitig werden alle R-Zugriffsbits gesetzt, außerdem alle X-Zugriffsbits, wenn in der ursprünglichen Datei zumindest ein X-Bit gesetzt war (siehe auch chmod auf Seite 1142). Das Ergebnis: Jeder darf alle Dateien und Verzeichnisse lesen und Programme ausführen. Wenn Sie die Zugriffsrechte exakter steuern möchten, können Sie dies mit den Optionen -uid, -gid, -dir-mode, -file-mode und -new-file-mode tun (siehe man genisoimage).
-V name gibt den Namen der CD/DVD an (die sogenannte »Volume-ID«).
getfacl [optionen] dateiname getfacl ermittelt die erweiterten Zugriffsrechte der angegebenen Dateien bzw. Verzeichnisse. Das funktioniert nur, wenn das Dateisystem ACLs (Access Control Lists) unterstützt (siehe auch Seite 338). -d
zeigt die Standard-ACLs an.
--skip-base liefert keine Ergebnisse bei Dateien, für die nur die gewöhnlichen Unix-Zugriffsrechte gelten (aber keine ACL-Regeln). -R
zeigt die ACLs aller Dateien in allen Unterverzeichnissen an.
--tabular zeigt die ACLs in Tabellenform an.
getfattr [optionen] dateiname getfattr ermittelt die erweiterten Attribute der angegebenen Dateien bzw. Verzeichnisse. Das funktioniert nur, wenn das Dateisystem EAs (Extended Attributes) unterstützt (siehe auch Seite 338). -d
liefert eine Liste aller Benutzer-Attribute und ihrer Einstellungen. Als Standardmuster für den Attributnamen gilt »user.«.
-m attributmuster liefert die Attribute, deren Namen dem angegebenen Muster entsprechen. -n attributname liefert den Wert des angegebenen Attributs. Es muss der vollständige Attributname angegeben werden, beispielsweise user.attrname. -R
zeigt die EAs aller Dateien in allen Unterverzeichnissen an.
gpg [optionen/kommandos] gpg verschlüsselt, entschlüsselt oder signiert Dateien und verwaltet Schlüssel. gpg wird durch unzählige Optionen gesteuert und ist für den manuellen Einsatz nur bedingt geeignet. Das Kommando wird unter anderem von E-Mail-Clients zur Verschlüsselung und Signierung von Nachrichten
1161
Kapitel 39
Alphabetische Kommandoreferenz
sowie von Paketverwaltungswerkzeugen zur Verifizierung der Integrität von Paketen und Paketquellen eingesetzt. An dieser Stelle sind deswegen nur die Optionen zur symmetrischen Verschlüsselung bzw. Entschlüsselung einer Datei beschrieben. -c datei bzw. --symmetric datei fordert zur Eingabe eines Passworts auf, verschlüsselt dann die angegebene Datei und speichert das Ergebnis unter dem Namen datei.gpg. -d datei.gpg bzw. --decrypt datei.gpg fordert zur Eingabe eines Passworts auf, entschlüsselt dann die angegebene Datei und schreibt das Ergebnis in die Standardausgabe. --version zeigt die Version von gpg und liefert eine Liste aller unterstützten Verschlüsselungs- und HashAlgorithmen.
grep [optionen] suchmuster datei grep durchsucht die angegebene Textdatei nach einem Suchmuster. Je nach Einstellung der Optionen zeigt das Kommando anschließend die gefundenen Textpassagen an oder gibt einfach nur an, in wie vielen Zeilen das Suchmuster gefunden wurde. grep kann mit find kombiniert werden, um alle Dateien, die bestimmten Bedingungen entsprechen, nach Texten zu durchsuchen. -n
zeigt nicht nur die Zeile mit dem gefundenen Text an, sondern zusätzlich die n unmittelbar vorangehenden und nachfolgenden Zeilen.
-c
gibt nur die Anzahl der Zeilen an, in denen das Suchmuster gefunden wurde, nicht aber die Zeilen selbst.
--color=auto kennzeichnet die Übereinstimmungen bei der Ausgabe farbig. Das funktioniert nur, wenn Sie das grep-Ergebnis direkt in einer Konsole anzeigen, nicht aber, wenn Sie das Ergebnis mit einem anderen Kommando weiterverarbeiten (z. B. mit sort oder less). -f Dateiname liest die hier aufgezählten Optionen der angegebenen Datei (für komplexe oder häufig benötigte Suchmuster).
1162
-i
unterscheidet nicht zwischen Groß- und Kleinschreibung.
-l
zeigt nur die Dateinamen an, in denen das Suchmuster gefunden wurde.
-n
gibt bei der Ausgabe jeder Zeile auch deren Zeilennummer an.
-P
interpretiert das reguläre Muster gemäß Perl-Regeln.
-q
liefert keine Bildschirmausgaben und gibt lediglich den Rückgabewert 0 (Suchtext gefunden) oder 1 (nicht gefunden) zurück. Diese Option ist sinnvoll, wenn grep von anderen Programmen aufgerufen wird (siehe das Beispiel bei find ab Seite 1155).
Alphabetische Kommandoreferenz
-v
inverse Wirkung. grep liefert alle Zeilen, die dem Suchmuster nicht entsprechen. grep -v '^#' datei | cat -s liefert alle Zeilen der Datei, die nicht mit # beginnen (wobei cat -s mehrere Leerzeilen auf eine einzige reduziert).
-w
findet nur ganze Wörter. Wenn diese Option angegeben ist, wird das Suchmuster »die« im Wort »dieser« nicht mehr erkannt.
Das Suchmuster besteht aus zwei Komponenten: aus der Angabe, wonach gesucht wird, und aus der Angabe, wie oft der Suchausdruck auftreten darf. Tabelle 39.1 fasst die Bedeutung der wichtigsten Zeichen zusammen. Wenn Sonderzeichen wie ? * + [ ] ( ) # oder ! im Suchmuster verwendet werden sollen, muss \ vorangestellt werden. Für manche Zeichengruppen sind bereits Muster vordefiniert, etwa [:digit:] für Ziffern oder [:space:] für White Space (also Leer- und Tabulatorzeichen, siehe man-Seite). ZEICHEN
BEDEUTUNG
abc
die Zeichenkette »abc«
[abc]
eines der Zeichen a, b oder c
[^abc]
keines der Zeichen a, b oder c (also ein beliebiges anderes Zeichen)
[a-z]
eines der Zeichen zwischen a und z
.
ein beliebiges Zeichen
?
Das vorangegangene Zeichen darf gar nicht oder einmal auftreten.
*
Das Zeichen darf beliebig oft (auch gar nicht) auftreten.
+
Das Zeichen darf beliebig oft, muss aber mindestens einmal auftreten.
{n}
Das Zeichen muss genau n-mal auftreten.
{,n}
Das Zeichen darf höchstens n-mal auftreten.
{n,}
Das Zeichen muss mindestens n-mal auftreten.
{n,m}
Das Zeichen muss mindestens n- und höchstens m-mal auftreten.
^
Zeilenanfang
$
Zeilenende
Aufbau des Suchmusters
Tabelle 39.1: Aufbau von grepSuchmustern
Abschließend einige Beispiele: 'abc' sucht nach genau dieser Zeichenkette. '[a-z][0-9]+' sucht nach Zeichenketten, die mit einem Kleinbuchstaben beginnen und in denen eine oder mehrere Ziffern folgen. '\(.*\)' sucht nach beliebigen Zeichenketten, die in zwei runde Klammern eingeschlossen sind. grep wendet das Suchmuster nur zeilenweise an. Textpassagen, die durch einen Zeilenumbruch unterbrochen sind, können nicht erkannt werden. grep ist naturgemäß nicht in der Lage, Zeichenketten in komprimierten Dateien zu finden! Sie können dazu aber das Kommando zgrep einsetzen (siehe die entsprechende man-Seite).
1163
Kapitel 39
Varianten zu grep
Alphabetische Kommandoreferenz
Zum Kommando grep gibt es einige Varianten: egrep entspricht grep -E und unterstützt eine erweiterte Syntax für das Suchmuster. Beispielsweise liefert egrep ’muster1jmuster2’ datei alle Zeilen der angegebenen Datei, die eines der beiden Muster enthält. fgrep entspricht grep -F und liest die Suchmuster zeilenweise aus einer angegebenen Datei. grepmail hilft dabei, E-Mail-Archive im mbox-Format nach Zeichenketten zu durchsuchen. Der Vorteil gegenüber grep besteht darin, dass nicht eine einzelne Zeile, sondern die gesamte E-Mail aus der Datei extrahiert wird.
groupadd name groupadd richtet eine neue Gruppe ein. -g n verwendet n als neue GID-Nummer (Group Identification).
groupdel name groupdel löscht die angegebene Gruppe.
groupmod [optionen] name groupmod verändert die GID-Nummer und den Gruppennamen der Gruppe. -A user fügt den angegebenen Benutzer der Gruppe hinzu (nur bei SUSE). -g n bestimmt die neue GID-Nummer (Group Identification). -n name bestimmt den neuen Gruppennamen. (Diese Option steht bei SUSE nicht zur Verfügung.)
groups [benutzername] groups zeigt eine Liste aller Gruppen an, denen der aktuelle bzw. der angegebene Benutzer angehört. Dabei handelt es sich um die in /etc/passwd angegebene Hauptgruppe sowie um die optional in /etc/group angegebenen Gruppen.
growisofs [optionen] verzeichnis1 verzeichnis2 ... growisofs [optionen] -Z device=iso-datei growisofs speichert die angegebenen Verzeichnisse bzw. die ISO-Datei auf einer DVD oder einer Blu-Ray-Disc. Das Kommando greift auf genisoimage zurück und nutzt bis auf wenige Ausnahmen dieselben Optionen (siehe Seite 1158). Es gibt nur wenige neue Optionen: -Z device gibt das DVD-Device an.
1164
Alphabetische Kommandoreferenz
-M device gibt ebenfalls das DVD-Device an. Bei Multi-Session-DVDs verwenden Sie bei der ersten Session -Z, bei allen weiteren Sessions -M. growisofs kümmert sich selbstständig darum, dass genisoimage die Session an der korrekten Position beginnt. Achten Sie darauf, dass Sie bei Multi-Sessions immer dieselben genisoimage-Optionen angeben. Das gilt insbesondere für alle Optionen, die einen Einfluss auf das ISO-Dateisystem haben (Joliet- und Rockridge-Erweiterungen etc.). -dry-run führt einen Probelauf durch, ohne tatsächlich Daten zu schreiben. -dvd-compat erhöht die Kompatibilität zu DVD-ROM-Laufwerken. DVD-Rs bzw. DVD+Rs werden abgeschlossen (und können daher nicht durch weitere Sessions erweitert werden). Bei DVD+RWs wird nach den Daten der (an sich optionale) Lead-Out-Bereich geschrieben. -speed=n gibt die gewünschte Schreibgeschwindigkeit an. Das ist normalerweise nicht notwendig – das Laufwerk bestimmt selbst die korrekte Geschwindigkeit. Sie können aber durch -speed=1 ein langsameres Brennen erzwingen.
grub Das Kommando grub steht bei Distributionen zur Verfügung, die GRUB 0.9n als Bootloader verwenden. Es startet eine interaktive GRUB-Shell. Darin führen Sie Kommandos zur Installation von GRUB aus. Alternativ können Sie GRUB auch in der Form grub < commandfile starten, um alle in commandfile enthaltenen GRUB-Kommandos auszuführen. Die wichtigsten GRUB-Kommandos sowie der Aufbau der GRUB-Konfigurationsdatei sind ab Seite 689 ausführlich beschrieben. Beim Start von grub können Sie diverse Optionen übergeben, von denen hier aber nur die allerwichtigsten aufgezählt sind: --config-file=name gibt den Namen der GRUB-Konfigurationsdatei an (normalerweise /boot/grub/menu.lst, bei Fedora und Red Hat /boot/grub/grub.conf). --no-floppy verzichtet auf die Suche nach einem Diskettenlaufwerk. --read-only startet GRUB im Testmodus. GRUB führt keinerlei Schreiboperationen aus.
grub-install device grub-install steht erst ab GRUB-Version 1.9n zur Verfügung. Es installiert den Boot-Loader in den Bootsektor des angegebenen Festplatten-Devices. grub-install setzt voraus, dass zuvor die GRUB-Konfigurationsdatei /boot/grub/grub.cfg eingerichtet wurde, in der Regel durch den Aufruf von update-grub.
1165
Kapitel 39
Alphabetische Kommandoreferenz
gunzip datei Dekomprimiert die angegebene Datei, unabhängig davon, ob sie mit gzip oder mit compress komprimiert wurde. Dabei wird automatisch die Kennung .gz bzw. .Z im Dateinamen entfernt. gunzip ist ein Link auf gzip, wobei automatisch die Option -d aktiviert ist.
gzip [optionen] datei gzip komprimiert bzw. dekomprimiert die angegebene Datei. Komprimierten Dateien wird automatisch die Kennung .gz angehängt. gzip eignet sich nur zur Komprimierung einzelner Dateien. Wenn Sie mehrere Dateien (oder ganze Verzeichnisse) in einer komprimierten Datei speichern möchten, müssen Sie zusätzlich das Kommando tar verwenden (siehe Seite 1221). -c bzw. --stdout oder --to-stdout lässt die zu (de)komprimierende Datei unverändert und leitet das Ergebnis auf die Standardausgabe (in der Regel auf den Bildschirm) um. Von dort kann es mit > in eine beliebige Datei umgeleitet werden (siehe Beispiel unten). -d bzw. --decompress oder --uncompress dekomprimiert die angegebene Datei, anstatt sie zu komprimieren (entspricht gunzip). -r bzw. --recursive (de)komprimiert auch Dateien in allen Unterverzeichnissen. -n, --fast, --best steuert die Geschwindigkeit und Qualität der Kompression. -1 entspricht --fast und bewirkt eine schnelle Kompression, aber etwas größere Dateien. -9 entspricht --best und führt zu höheren Rechenzeiten, aber kleineren Dateien. Die Grundeinstellung ist -6.
halt [optionen] halt beendet alle laufenden Prozesse und fährt den Rechner dann herunter (entspricht shutdown -h now).
head [optionen] datei head gibt die ersten zehn Zeilen einer Textdatei auf dem Bildschirm aus. -n zeilen gibt die angegebene Anzahl von Zeilen aus.
help name
(bash)
help zeigt eine kurze Beschreibung des angegebenen bash-Kommandos an. help funktioniert nur für Kommandos, die in der bash integriert sind, beispielsweise alias, cd oder type.
1166
Alphabetische Kommandoreferenz
host [optionen] name/ip-adresse host liefert die IP-Adresse zum angegebenen Netzwerknamen bzw. den Netzwerknamen zur angegebenen IP-Adresse. Das Kommando muss je nach Distribution extra installiert werden (Paketname bind-utils, bind9-host etc.). -a
liefert zusätzliche Informationen, die eventuell helfen, Fehler in der Nameserver-Konfiguration zu finden.
hostname [name] hostname liefert den aktuellen Netzwerknamen des Systems bzw. verändert ihn. Mit der Option -d liefert das Kommando stattdessen den Domainnamen.
iconv -f zeichensatz1 -t zeichensatz2 quelldatei > zieldatei iconv führt eine Zeichensatzkonvertierung von Zeichensatz 1 nach Zeichensatz 2 durch. iconv --list liefert eine umfangreiche Liste aller unterstützten Zeichensätze.
id id gibt den Namen und die ID-Nummer des Benutzers, seiner primären Gruppe und der weiteren zugeordneten Gruppen an.
ifconfig [-a] ifconfig schnittstelle ifconfig schnittstelle [optionen] [ip-adresse] In der ersten Syntaxvariante liefert ifconfig Informationen über alle Netzwerkschnittstellen (ohne -a nur für aktive Schnittstellen, mit -a auch für noch nicht aktive Schnittstellen). In der zweiten Syntaxvariante zeigt ifconfig Informationen über die angegebene Netzwerkschnittstelle an. In der dritten Syntaxvariante richtet das Kommando eine neue Schnittstelle ein bzw. entfernt diese wieder. Beispiele für die Anwendung von ifconfig finden Sie auf den Seiten 382 und 813. Die folgenden Optionen gelten nur für die dritte Syntaxvariante. (Eine Menge weiterer Optionen beschreibt man ifconfig.) up/down aktiviert bzw. deaktiviert die Schnittstelle. mtu n stellt den Parameter Maximum Transfer Unit ein. netmask n gibt die Netzwerkmaske an. Das ist nur notwendig, wenn die Maske von der Standardmaske für die gewählte Adresse abweicht.
1167
Kapitel 39
Alphabetische Kommandoreferenz
ifup schnittstelle ifdown schnittstelle ifup aktiviert die angegebene Schnittstelle, ifdown deaktiviert sie wieder. Die Kommandos werden von den Init-V- oder Upstart-Scripts zur Netzwerkinitialisierung aufgerufen und greifen auf die distributionsspezifischen Konfigurationsdateien zurück. Daher variiert die Implementierung der Kommandos je nach Distribution; auch die verfügbaren Optionen und deren Bedeutung hängen von der Distribution ab (siehe man ifup/ifdown).
info [kommandoname] info startet das gleichnamige Online-Hilfesystem. Darin sind diverse GNU-Tools dokumentiert. Mehr Lesequalität erzielen Sie, wenn Sie pinfo aus dem gleichnamigen Paket oder den Editor Emacs zum Lesen verwenden. Außerdem können Sie info-Texte in den Hilfesystemen von Gnome und KDE lesen. Die Bedienung des info-Systems ist auf Seite 296 beschrieben. -f datei lädt die angegebene Datei statt einer Datei aus /usr/share/info. Wenn der info-Text auf mehrere Dateien verteilt ist, muss die erste Datei angegeben werden (etwa elisp-1.gz).
init [optionen] [n] init aktiviert den durch n angegebenen Runlevel. Das funktioniert sowohl bei Distributionen, die das traditionelle Init-V-System einsetzen, als auch bei Linux-Versionen, die auf Upstart setzen (z. B. Fedora oder Ubuntu).
initcl [optionen] kommando initctl steuert das Upstart-System, generiert Upstart-Ereignisse etc. emit name erzeugt ein Ereignis mit dem angegebenen Namen. list liefert Statusinformationen zu allen Upstart-Jobs. start name startet den angegebenen Upstart-Job. status name liefert Statusinformationen zum angegebenen Upstart-Job. stop name stoppt den angegebenen Upstart-Job.
1168
Alphabetische Kommandoreferenz
insmod [optionen] moduldatei [parameter=wert ...] insmod lädt das angegebene Kernelmodul. Dabei muss der vollständige Dateiname übergeben werden. Zusätzlich können Parameter (Optionen) an das Modul übergeben werden. Falls Sie hexadezimale Werte angeben möchten, müssen Sie 0x voranstellen, also etwa option=0xff. Die zur Auswahl stehenden Parameter des Moduls können Sie mit modinfo ermitteln. -f
versucht, das Modul selbst dann zu laden, wenn es nicht für die laufende Kernelversion kompiliert wurde. Ob das tatsächlich funktioniert, hängt davon ab, ob es zwischen der Kernelund der Modulversion irgendwelche Inkompatibilitäten gibt. Die Option ist vor allem dann sinnvoll, wenn Hardware-Hersteller ein Modul nur als Binärversion (ohne Quellcode) zur Verfügung stellen. Die Option ist aber natürlich keine Garantie dafür, dass das Modul tatsächlich kompatibel zu Ihrer Kernelversion ist.
insserv kommando insserv ist ein SUSE-spezifisches Kommando zum Einrichten bzw. Löschen von Init-V-RunlevelLinks. Das Kommando setzt voraus, dass im Kommentarblock am Beginn jedes Init-V-Scripts Informationen über abhängige Dienste enthalten sind (siehe Seite 757). Jedes Mal, wenn Links für einen zusätzlichen Init-V-Dienst eingerichtet bzw. Links entfernt werden, nummeriert insserv sämtliche Scripts neu und erzeugt die Dateien .depend.*, die für die parallele Ausführung der Scripts erforderlich sind. Aus diesem Grund muss bei SUSE jede Veränderung der Init-V-Runlevel-Links mit insserv erfolgen. Eine direkte Manipulation der Links ist nicht empfehlenswert. name richtet Links auf das angegebene Init-V-Script in den dafür vorgesehenen Standard-Runleveln ein. Auch diese Information geht aus dem Kommentarblock im Script hervor. -r bzw. --remove name entfernt alle Links für das angegebene Init-V-Script.
invoke.rc name kommando invoke.rc führt auf Debian-basierten Systemen ein Init-V-Script aus. invoke.rc samba start entspricht /etc/init.d/samba start.
iptables [optionen] iptables konfiguriert den Filter für Netzwerkpakete (kurz Netfilter) des Linux-Kernels. Die iptables-Optionen folgen einem einfachen Schema: Eine Option in Großbuchstaben gibt die durchzuführende Aktion an (beispielsweise -P zur Einstellung des Standardverhaltens). Weitere Optionen in Kleinbuchstaben steuern die Details dieser Aktion. Diese Syntaxzusammenfassung ist nach Aktionen gegliedert.
1169
Kapitel 39
(policy)
Alphabetische Kommandoreferenz
iptables -P chain policy [-t table] iptables -P (Policy) definiert das Standardverhalten für die angegebene Regelkette. Mögliche Verhalten sind: ACCEPT: DROP: RETURN: QUEUE:
Paket weiterleiten (Grundeinstellung) Paket löschen Paket zurücksenden (selten) Paket an ein Programm außerhalb des Kernels weiterleiten (selten)
Standardmäßig gilt das Kommando für Filter-Regelketten oder für selbst definierte Regelketten. Falls eine NAT- oder Mangle-Regelkette verändert werden soll, muss der Tabellenname mit der Option -t angegeben werden (z. B. iptables -P POSTROUTING ACCEPT -t nat). Es ist nicht möglich, ein Standardverhalten für selbst definierte Regelketten zu definieren. Sie können das Standardverhalten aber bei Bedarf durch die letzte Regel definieren, z. B. durch iptables -A mychain -j DROP. (add)
iptables -A chain [-t table] options iptables -A (Add) fügt der angegebenen Regelkette eine neue Regel hinzu. Generell gilt eine Regel für alle möglichen Fälle (d. h. für alle IP-Protokolle, für alle Ports, für alle Absender- und Zieladressen, für alle Interfaces etc.). Durch Optionen kann die Gültigkeit eingeschränkt werden. Die meisten Optionen können mit einem Ausrufezeichen auch verneint eingesetzt werden. Mit -p udp gilt eine Regel also beispielsweise nur für UDP-Pakete. Mit -p ! udp gilt sie hingegen für alle Pakete außer für UDP-Pakete. Nicht alle möglichen Kombinationen der Optionen sind zulässig. Beispielsweise dürfen die Optionen -d und -s nur für tcp-Pakete verwendet werden (also in Kombination mit -p tcp). -p protocol bestimmt das Protokoll (z. B. tcp, udp oder icmp). -d ipadresse gibt die Zieladresse an (Destination). Adressbereiche können in der Form 192.168.0.0/24 oder 192.168.0.0/255.255.255.0 angegeben werden. In beiden Fällen sind alle IP-Nummern 192.168.0.* gemeint. --dport port[:port] gibt den Port oder Port-Bereich (z. B. 0:1023) der Zieladresse an. -s ipadresse gibt die Absenderadresse an (Source). --sport port[:port] gibt den Port oder Port-Bereich für den Absender an.
1170
Alphabetische Kommandoreferenz
--syn gibt an, dass die Regel nur für solche TCP-Pakete gelten soll, bei denen das SYN-Bit gesetzt ist. Derartige Pakete werden verwendet, um eine Verbindung zu initiieren (etwa für alle TCPWrapper-Funktionen, für HTTP etc.). -i interface gibt das Interface an, aus dem das IP-Paket kommt (nur für Input-, Forward- und PreroutingRegelketten). Beim Interface-Namen ist das Sonderzeichen + als Platzhalter für alle InterfaceNummern erlaubt, also ppp+ für ppp0, ppp1 etc. -o interface gibt das Interface an, zu dem das IP-Paket unterwegs ist (nur für Output-, Forward- und Postrouting-Regelketten). -j ACCEPT/DROP/mychain/.. gibt an, was mit dem Paket geschehen soll (Jump). Hier wird meistens eines der vorgegebenen Verfahren (ACCEPT, DROP etc.) angegeben. iptables sieht aber auch einige Zusatzfunktionen wie REDIRECT oder MASQUERADE für Spezialanwendungen vor. Statt einem der vordefinierten Schlüsselwörter kann auch eine selbst definierte Regelkette angegeben werden. In diesem Fall werden alle Regeln dieser Kette angewandt. Falls keine Regel der selbst definierten Regelkette zutrifft, kommt die nächste Regel der ursprünglichen Regelkette zur Anwendung. (In der prozeduralen Programmierung würde das einem Unterprogrammaufruf entsprechen.) -m module gibt an, dass ein Zusatzmodul verwendet werden soll. In der Folge dürfen spezielle Optionen verwendet werden, die durch dieses Zusatzmodul definiert sind. Ein besonders wichtiges Zusatzmodul ist state. Damit können Pakete nach ihrem Verbindungsstatus ausgewählt werden. Beispielsweise gilt eine Regel mit -m state --state NEW nur für IP-Pakete, die neue Verbindungen initiieren. Mit --state können folgende Statusschlüsselwörter angegeben werden: NEW: ESTABLISHED: RELATED: INVALID:
Das Paket initiiert eine neue Verbindung. Das Paket gehört zu einer schon existierenden Verbindung. Das Paket initiiert eine neue Verbindung, gehört aber zu einer schon existierenden Verbindung. Das Paket gehört zu keiner vorhandenen Verbindung und initiiert auch keine neue Verbindung.
iptables bietet die Möglichkeit, die Wirksamkeit einzelner Regeln durch syslogd zu protokollieren. Dazu geben Sie bei der Regel als Aktion LOG an. Damit eine Regel sowohl wirksam ist als auch protokolliert wird, muss sie zweimal angegeben werden: einmal mit -j LOG und ein zweites Mal mit -j ACCEPT bzw. -J DROP! Beachten Sie, dass durch Logging-Regeln sehr rasch riesige Protokolldateien entstehen können. Protokollieren Sie nur, was notwendig ist!
1171
Kapitel 39
(new)
Alphabetische Kommandoreferenz
iptables -N mychain iptables -N (New) erzeugt eine neue Regelkette mit dem Namen mychain.
(list)
iptables -L [chain] [-t table] [-v] iptables -L (List) liefert ohne weitere Optionen eine Liste aller Regeln für die drei Regelketten der Filter-Tabelle sowie für alle selbst definierten Regelketten. Mit den weiteren Optionen können Sie die gewünschte Regelkette genau spezifizieren (z. B. iptables -L mychain oder iptables -L POSTROUTING -t nat). Die Zusatzoption -v bewirkt detailliertere Informationen. -n führt dazu, dass bei der Ausgabe IP- und Port-Nummern angezeigt werden (statt Netzwerk- bzw. Port-Namen).
(delete)
iptables -D chain [-t table] options iptables -D (Delete) löscht die Regel aus der Regelkette. Es müssen exakt dieselben Optionen wie bei iptables -A angegeben werden.
(flush)
iptables -F chain [-t table] iptables -F (Flush) löscht alle Regeln aus der angegebenen Regelkette.
(delete)
iptables -X [mychain] iptables -X löscht die angegebene eigene Regelkette. Wenn keine Regelkette angegeben wird, werden alle selbst definierten Regelketten gelöscht.
iwconfig [schnittstelle] iwconfig schnittstelle [optionen] In der ersten Syntaxvariante liefert iwconfig Informationen über alle WLAN-Schnittstellen bzw. über die angegebene Schnittstelle. In der zweiten Syntaxvariante stellt das Kommando die Parameter der WLAN-Schnittstelle ein (z. B. den Netzwerknamen, den WEP-Schlüssel etc.). iwconfig ist Teil der Wireless-Tools. Die eigentliche Aktivierung der Schnittstelle erfolgt anschließend wie bei LAN-Schnittstellen durch ifconfig. Grundlagen zur Initialisierung einer WLAN-Schnittstelle sowie iwconfig-Beispiele finden Sie ab Seite 815. channel n wählt den gewünschten Frequenzkanal aus. In der Einstellung auto sucht der WLAN-Controller selbst einen geeigneten Kanal. Eine Kanalliste liefert iwlist channel. essid name gibt den Namen des WLAN-Netzes an. Oft funktioniert auch die Einstellung any. key schlüssel stellt den aktuellen WEP-Schlüssel ein. Der Schlüssel wird normalerweise als hexadezimale Zahl ohne vorangestelltes 0x angegeben. Mit key [n] wählen Sie den gerade aktuellen Schlüssel, wobei n zwischen 1 und 4 liegt. ifconfig key ist ungeeignet, um WPA-Schlüssel einzustellen! Der WPA-Schlüsselaustausch erfolgt durch das Hintergrundprogramm wpa_supplicant, das separat konfiguriert wird (siehe Seite 817).
1172
Alphabetische Kommandoreferenz
mode modus bestimmt den Netzwerkmodus. Zur Auswahl stehen je nach Hardware Managed, Ad-Hoc, Master, Repeater, Secondary, Monitor oder Auto. Wenn Sie mit Ihrem WLAN-Controller auf einen WLAN-Router oder -Access-Point zugreifen möchten, lautet die richtige Einstellung Managed.
iwlist [schnittstelle] modus iwlist liefert für alle bzw. für die angegebene WLAN-Schnittstelle die möglichen Frequenzkanäle, die zulässigen Verschlüsselungsverfahren etc. Die wichtigsten Schlüsselwörter für modus sind: channel frequency key rate scan
Frequenzkanäle Frequenzen zulässige Verschlüsselungsverfahren und eingestellte Schlüssel unterstützte Bruttoübertragungsraten des WLAN-Controllers Liste der erreichbaren Netze mit ESSID, Qualität, Frequenz etc.
kill [-s signal] prozessnr kill versendet Signale an einen laufenden Prozess. Wenn kill ohne die -s-Option verwendet wird, wird das SIGTERM-Signal (15) gesendet, um den Prozess zu beenden (daher auch der Name des Kommandos). Bei besonders hartnäckigen Fällen hilft -9 bzw. -s SIGKILL oder kürzer -KILL. Der Prozess hat dann allerdings keine Chance, noch irgendwelche Aufräumarbeiten zu erledigen. kill kann aber auch zum Versenden harmloserer Signale verwendet werden. Recht häufig wird -1 bzw. -s SIGHUP bzw. -HUP verwendet, um einen Dämon dazu aufzufordern, seine Konfigurationsdateien neu einzulesen. Auf diese Weise können Sie bei manchen Programmen eine neue Konfiguration aktivieren, ohne den Dämon vollständig stoppen und neu starten zu müssen. Die erforderliche Prozessnummer (PID) wird am einfachsten mit dem Kommando ps ermittelt (siehe Seite 1203). Unter X gibt es mit xkill eine bequeme Variante zu kill: Das Programm, das beendet werden soll, kann damit einfach per Maus »abgeschossen« werden.
killall [-signal] prozessname killall funktioniert wie das oben beschriebene kill-Kommando. Der Unterschied besteht darin, dass nicht die Prozessnummer (PID), sondern der Name des Prozesses angegeben wird. Wenn es mehrere Prozesse dieses Namens gibt, erhalten alle das angegebene Signal (standardmäßig wieder SIGTERM). Das gewünschte Signal wird entweder als Nummer -n oder mit einem Namen wie -HUP angegeben, und zwar im Gegensatz zu kill ohne vorangestelltes SIG. Eine Liste aller Signalnamen erhalten Sie mit killall -l.
ldconfig ldconfig aktualisiert die Links zu allen Bibliotheken und erstellt die Cache-Datei /etc/ld.so.cache, die bei der effizienten Suche nach Bibliotheken hilft. ldconfig wertet die Konfigurationsdatei
1173
Kapitel 39
Alphabetische Kommandoreferenz
/etc/ld.so.conf aus. Das Kommando muss nach der manuellen Installation von Bibliotheken ausgeführt werden.
ldd programm ldd liefert eine Liste aller Bibliotheken, die zur Ausführung des angegebenen Programms erforderlich sind. Mit dem Kommando stellen Sie auch fest, ob auf dem Rechner alle notwendigen Bibliotheken verfügbar sind.
less [optionen] datei less zeigt die angegebene Textdatei seitenweise an. Das Kommando wird häufig als Filter verwendet (beispielsweise ls -l | less zur seitenweisen Anzeige einer langen Dateiliste). -m
zeigt in der Statuszeile die aktuelle Textposition in Prozent an.
-M
zeigt in der Statuszeile den Dateinamen und die Textposition in Zeilen an.
-p suchtext zeigt die erste Zeile an, in der der zu suchende Text gefunden wurde. -s
reduziert mehrere Leerzeilen zu einer Zeile.
Die wichtigsten Kommandos während der Verwendung von less sind: (h) zur Anzeige eines kurzen Hilfetextes, die Cursortasten zum Bewegen im Text, (¢), um eine Zeile nach unten zu scrollen, (Leertaste), um eine Seite nach unten zu scrollen, (b), um eine Seite zurückzuscrollen, (_ ), um zum Anfang bzw. Ende des Texts zu springen, (/) zur Eingabe eines Suchtextes sowie (q) zum Beenden von less.
lftp [optionen] [site] lftp ist ein interaktiver FTP-Client. lftp kann aber auch in Scripts eingesetzt werden und durch Kommandos gesteuert werden. -c "kommando" führt die in einer Zeichenkette angegebenen und durch Strichpunkte getrennten FTP-Kommandos aus (z. B.˙lftp -c "open -u user,passw server; mirror -R verz). -f datei liest die auszuführenden Kommandos zeilenweise aus einer Datei.
lilo [optionen] Wenn lilo ohne Parameter ausgeführt wird, wertet das Kommando /etc/lilo.conf aus und installiert LILO an den dort angegebenen Ort (üblicherweise den Startsektor der ersten Festplatte). lilo muss nach jeder Änderung an den Kerneldateien neu ausgeführt werden. Hintergrundinformationen zum Systemstart mit LILO finden Sie ab Seite 728.
1174
Alphabetische Kommandoreferenz
Es existieren eine Menge lilo-Optionen, von denen viele den Schlüsselwörtern in lilo.conf entsprechen. In der Regel ist es übersichtlicher, LILO-Einstellungen in lilo.conf durchzuführen, anstatt die entsprechende Option zu übergeben. Im Folgenden werden nur die wichtigsten Optionen aufgezählt, die Spezialfunktionen von lilo steuern. -A device [n] ermittelt die aktive Partition der angegebenen Festplatte bzw. legt sie fest. -C dateiname verwendet die angegebene Datei (statt /etc/lilo.conf) als Konfigurationsdatei. -s dateiname speichert eine Sicherheitskopie des Bootsektors in die angegebene Datei. Ohne diese Option wird die Sicherheitskopie in /boot/boot.n gespeichert, sofern diese Datei noch nicht existiert, wobei n die interne Device-Nummer ist (Major- und Minor-Code). -t
startet lilo im Testmodus. Es werden keine Schreiboperationen vorgenommen.
-u
deinstalliert LILO. Das funktioniert nur, wenn lilo eine Sicherheitskopie des Bootsektors findet (/boot/boot.n). In diesem Fall wird der LILO-Installationsort (z. B. der Startsektor der Festplatte) mit den Daten aus der Sicherheitskopie dieses Sektors überschrieben.
ln [optionen] quelle [ziel] ln [optionen] dateien zielverzeichnis ln richtet feste oder symbolische Links auf Dateien und Verzeichnisse ein. (Einige Informationen dazu, was Links sind und wie sie verwendet werden, finden Sie in Kapitel 13 ab Seite 306.) Die gleiche Funktionalität wie ln hat auch das Kommando cp, wenn dort die Optionen -l oder -s angegeben werden. -b bzw. --backup benennt bereits vorhandene gleichnamige Dateien in Backup-Dateien (Name plus ~-Zeichen) um, anstatt sie zu überschreiben. -d bzw. --directory erzeugt einen festen Link für ein Verzeichnis. Diese Operation ist nur root gestattet. Alle anderen Anwender können symbolische Links auf Verzeichnisse erzeugen. -s bzw. --symbolic erzeugt symbolische Links. (Ohne diese Option liefert ln feste Links.) Das folgende Kommando erzeugt den symbolischen Link xyz auf die bereits vorhandene Datei abc. user$
Beispiel
ln -s abc xyz
1175
Kapitel 39
Alphabetische Kommandoreferenz
locate muster locate ermöglicht eine besonders schnelle Suche nach Dateien. Es durchsucht eine zumeist einmal täglich aktualisierte Dateidatenbank, in der das angegebene Muster im vollständigen Dateinamen (inklusive Pfad) vorkommt. Dateien, die nach der letzten Datenbankaktualisierung entstanden sind oder verändert wurden, können aber natürlich nicht gefunden werden. Hintergrundinformationen und Beispiele zu locate finden Sie auf Seite 310.
logname logname zeigt den Login-Namen (Benutzernamen) an.
logout logout oder noch kürzer einfach (Strg)+(D) beendet die Sitzung in einer Konsole.
lpoptions [optionen] lpoptions zeigt die Optionen von CUPS-Druckern an bzw. verändert sie. -l
liefert eine Liste der verfügbaren Optionen und deren aktueller Einstellung.
-o optionsname=wert verändert die Einstellung der angegebenen Option. -p name gibt den gewünschten Drucker an. (Ohne die Option bezieht sich lpoptions auf den Standarddrucker.)
lpq [optionen] lpq liefert eine Liste aller zwischengespeicherten Dateien bzw. Druckaufträge. Dabei werden auch die Größe der Datei sowie eine Jobnummer angegeben. Diese Jobnummer können Sie als Parameter von lprm angeben, um eine Datei aus dem Drucker-Spooler zu entfernen. -a
zeigt die Druckjobs aller Warteschlangen an.
-Pname zeigt die Druckjobs der angegebenen Warteschlange an.
lpr datei lpr druckt die angegebene Datei aus. -Pname verwendet die Warteschlange name statt des Standarddruckers. Beachten Sie, dass der Option kein Leerzeichen folgt!
1176
Alphabetische Kommandoreferenz
-l
umgeht das Filtersystem und sendet die Druckerdaten unverändert an den Drucker. Die Option ist dann sinnvoll, wenn eine Druckdatei bereits im druckerspezifischen Format vorliegt.
-o options übergibt diverse Zusatzparameter, z. B. -o media=A4 oder -o page-ranges=23-27,29,31. (Zahlreiche Beispiele finden Sie in der CUPS-Dokumentation.)
lprm [optionen] [id] lprm bricht den aktuellen bzw. den durch die ID-Nummer angegebenen Druckjob ab. -Pname gibt die Warteschlange an.
lpstat [optionen] lpstat zeigt Informationen über CUPS-Klassen, -Drucker und deren Druckjobs an. lpstat funktioniert gleichermaßen für lokale Drucker wie für Netzwerkdrucker. -a
zeigt für alle Drucker an, ob sie bereit sind, Druckaufträge entgegenzunehmen.
-c
zeigt alle Klassen an.
-d
zeigt den Standarddrucker an.
-s
zeigt eine Statusübersicht an (Standarddrucker, Liste aller Klassen und Drucker etc.).
-t
zeigt alle verfügbaren Informationen an.
-v
zeigt alle Drucker an.
ls [-optionen] [pfad] ls zeigt eine Liste aller Dateien und Verzeichnisse an. Wenn ls ohne weitere Parameter oder Optionen verwendet wird, liefert das Kommando eine mehrspaltige, nach Dateinamen sortierte Tabelle, in der alle Dateien, Links und Verzeichnisse im aktuellen Verzeichnis angezeigt werden. -a bzw. -all zeigt auch Dateien an, die mit . beginnen. Eine ganz ähnliche Wirkung hat die Option -A. Der einzige Unterschied besteht darin, dass die Dateien . und .. (Verweis auf das aktuelle und das übergeordnete Verzeichnis) nicht angezeigt werden. --color verwendet unterschiedliche Farben für unterschiedliche Dateitypen (Links, Verzeichnisse etc.). Details dazu finden Sie im man-Text. -d bzw. --directory zeigt nur den Namen des Verzeichnisses, nicht aber seinen Inhalt an. Die Option ist beispielsweise dann sinnvoll, wenn als Pfad ein Verzeichnisname angegeben wird und die Zugriffsrechte dieses Verzeichnisses überprüft werden sollen (und nicht sein Inhalt).
1177
Kapitel 39
Alphabetische Kommandoreferenz
-i bzw. --inode zeigt zusätzlich zu den restlichen Informationen auch den Inode der Datei an. (Der Inode ist eine interne Identifikationsnummer der Datei, die zur Linux-internen Dateiverwaltung benötigt wird.) Die Option kann zur Erkennung von Links eingesetzt werden. (Durch Links verknüpfte Dateien haben denselben Inode.) -I datei bzw. --ignore datei -Imuster schließt die angegebenen Dateien von der Anzeige aus. -I*ps verhindert beispielsweise, dass Dateien mit der Endung ps angezeigt werden. Wenn nach -I nicht eine einzelne Datei, sondern ein Dateimuster angegeben wird, dann darf zwischen -I und dem Muster kein Leerzeichen eingegeben werden! -l bzw. --format=long oder --format=verbose zeigt zusätzlich zum Dateinamen weitere Informationen an: die Dateigröße in Bytes, die Zugriffsrechte etc. Zur Anzeige jeder Datei wird eine eigene Zeile verwendet (statt der platzsparenden mehrspaltigen Auflistung). -L bzw. --dereference zeigt bei einem symbolischen Link auf ein Verzeichnis nicht den Pfad des Links, sondern den Inhalt des Ursprungsverzeichnisses an. -o bzw. --no-color verzichtet auf unterschiedliche Farben oder Schriftarten. -p bzw. -F hängt an die Dateinamen ein Sonderzeichen an, das den Typ der Datei kennzeichnet. Diese Option wird bei manchen Linux-Distributionen in /etc/profile durch eine alias-Abkürzung standardmäßig aktiviert. Die wichtigsten Sonderzeichen sind: / für Verzeichnisse, @ für symbolische Links, * für ausführbare Dateien und j für FIFOs (siehe Seite 441). -r bzw. --reverse dreht die Sortierreihenfolge um. Die Option wird oft in Kombination mit -t oder -S verwendet. -R bzw. --recursive erfasst auch Dateien in Unterverzeichnissen. -S bzw. --sort=size sortiert die Dateien nach ihrer Größe (die größte Datei zuerst). -t bzw. --sort=time sortiert die Dateien nach Datum und Uhrzeit der letzten Änderung (die neueste Datei zuerst). -X bzw. --sort=extension sortiert die Dateien nach ihrer Kennung (der Buchstabenkombination nach dem letzten . im Dateinamen). -Z bzw. --context zeigt die SELinux-Kontextinformationen. Mehr Informationen liefert --lcontext, weniger Informationen gibt --scontext.
1178
Alphabetische Kommandoreferenz
ls zeigt leider nicht den gesamten Speicherbedarf aller aufgelisteten Daten an. Diese Aufgabe übernimmt das Kommando du (siehe Seite 1152). Das folgende Kommando zeigt alle Dateien im /root-Verzeichnis an und sortiert sie nach dem Datum (die neueste Datei zuletzt). Weitere Beispiele sowie eine Erklärung der Ergebnisspalten von ls -l finden Sie auf Seite 299. user$
Beispiel
ls -ltr /root
ls zeigt die Liste aller Verzeichnisse (keine Dateien) des Arbeitsverzeichnisses an.
lsattr [optionen] dateien lsattr zeigt den Zustand einiger Zusatzattribute des ext2- bzw. ext3-Dateisystems an (siehe auch chattr auf Seite 1141).
lsmod lsmod liefert eine Liste aller Module, die momentan in den Kernel geladen sind.
lsof [optionen] [datei/schnittstelle] Ohne weiteren Parameter liefert lsof eine zumeist sehr lange Liste aller momentan offenen Dateien bzw. Schnittstellen und der ihnen zugeordneten Prozesse. lsof datei liefert Informationen zum Prozess, der diese Datei offen hält. -i adresse liefert Informationen zu Prozessen, die die angegebene Netzwerkadresse nutzen. Die Adresse setzt sich in der Form [46][protocol][@hostname|hostaddr][:service|port] zusammen. Beispielsweise liefert -i 4tcp Informationen zu allen Prozessen, die das Protokoll TCP in der IP-Version 4 nutzen. -n
verzichtet auf die Auflösung von Netzwerknamen.
-N
berücksichtigt auch NFS-Dateien.
-u user liefert nur Informationen zu Dateien/Schnittstellen, die vom angegebenen Benutzer genutzt werden. Es können auch mehrere Benutzer angegeben werden (Name oder UID, getrennt durch Kommas). -X
ignoriert alle offenen TCP- und UDP-Dateien.
lspci [optionen] lspci liefert Informationen über den PCI-Bus und alle daran angeschlossenen Geräte. -tv
liefert eine baumförmige Geräteliste, die deutlich macht, wie die Geräte miteinander verbunden sind.
1179
Kapitel 39
Alphabetische Kommandoreferenz
-v bzw. -vv bzw. -vvv liefert noch mehr Details.
lsscsi [optionen] lsscsi liefert Informationen über alle angeschlossenen SCSI-Geräte. -c
zeigt die Daten im selben Format wie /proc/scsi/scsi an.
-H
liefert eine Liste der SCSI-Hosts (statt der SCSI-Geräte).
-l
liefert ausführliche Informationen zu jedem Gerät.
lsusb [optionen] lsusb liefert Informationen über alle angeschlossenen USB-Geräte. -t
rückt die Ausgabe baumartig ein und verdeutlicht so, an welchem Bus welches Gerät angeschlossen ist.
-v
liefert ausführliche Informationen zu jedem Gerät.
lvcreate [optionen] name Das LVM-Kommando lvcreate erzeugt ein neues Logical Volume (LV) innerhalb der durch name angegebenen Volume Group (VG). -i n verteilt das LV gleichmäßig über die angegebene Anzahl von Physical Volumes (PVs). Das setzt voraus, dass die VG aus zumindest so vielen PVs besteht. Sofern sich die PVs auf unterschiedlichen Festplatten befinden, erzielen Sie damit einen ähnlichen Effekt wie mit RAID-0 (Striping). -L size gibt die gewünschte Größe an. Die Größenangabe erfolgt in kByte, MByte, GByte oder TByte, je nachdem, welcher Buchstabe hintangestellt wird (z. B. -L 2G). -n lvname gibt den LV-Namen an. Wenn diese Option fehlt, verwendet das Kommando den Namen lvoln. -s
erzeugt einen Snapshot, also eine statische Kopie eines vorhandenen LVs. name gibt in diesem Fall nicht die VG, sondern das zugrunde liegende LV an. Die Größenangabe -L gibt den Speicher an, der für kopierte Sektoren benötigt wird, wenn sich das zugrunde liegende LV ändert. Ist dieser Speicher erschöpft, endet die Lebensdauer des Snapshots.
Eine Zusammenfassung der LVM-Nomenklatur finden Sie ab Seite 50, Tipps zur Administration ab Seite 675.
1180
Alphabetische Kommandoreferenz
lvdisplay [optionen] lvname lvdisplay zeigt Detailinformationen zu einem LV an.
lvextend [optionen] lvname [pvname] lvextend vergrößert den Speicher für das angegebene LV-Device. Den neuen Gesamtspeicher geben Sie mit der Option -L an (siehe lvcreate). Alternativ können Sie die Schreibweise -L +size verwenden, um die gewünschte Änderung anzugeben. Der benötigte Speicher wird innerhalb derselben VG reserviert, in der sich das LV befindet. Wenn die VG aus mehreren PVs zusammengesetzt ist, können Sie durch die optionale Angabe von pvname auswählen, welches PV den Speicher zur Verfügung stellt.
lvreduce [optionen] lvname lvreduce verkleinert den Speicherplatz des angegebenen LV. Wenn das LV ein Dateisystem enthält, muss dieses vorher verkleinert werden, andernfalls kommt es zu Datenverlusten! Sie können wahlweise die neue Gesamtgröße in der Form -L size angeben oder die gewünschte Änderung in der Form -L -size.
lvrename oldlvname newlvname lvrename gibt dem LV einen neuen Namen.
lvremove [optionen] lvname lvremove löscht das angegebene LV.
lvscan [optionen] lvsvan listet alle LVs auf.
man [gruppe] [optionen] name man zeigt Online-Informationen zum angegebenen Kommando bzw. zur angegebenen Datei an. Durch die Angabe einer Gruppe kann die Suche eingeschränkt werden. Wichtige Gruppen sind 1 (Benutzerkommandos), 5 (Konfigurationsdateien) und 8 (Kommandos zur Systemadministration). Bei den meisten Distributionen werden die man-Texte durch less angezeigt, d. h., es gelten die auf Seite 1174 zusammengefassten Tastenkürzel zum Blättern bzw. Suchen im Hilfetext. -a
zeigt der Reihe nach alle gleichnamigen man-Seiten an. Ohne diese Option wird gewöhnlich nur die erste von mehreren gleichnamigen Dateien aus unterschiedlichen Themengebieten angezeigt. Bei manchen Linux-Distributionen gilt -a als Standardeinstellung.
1181
Kapitel 39
Alphabetische Kommandoreferenz
-f schlüsselwort zeigt die Bedeutung eines Schlüsselworts an (einen einzeiligen Text). Mit dieser Option entspricht man dem Kommando whatis thema. -k schlüsselwort zeigt eine Liste aller vorhandenen man-Texte an, in denen das Schlüsselwort vorkommt. Dabei wird allerdings keine Volltextsuche durchgeführt. Vielmehr werden nur die Schlüsselwörter jedes man-Textes analysiert. Mit dieser Option entspricht man dem Kommando apropos thema.
md5sum dateien md5sum berechnet Prüfsummen zu allen angegebenen Dateien. Prüfsummen des Message-Digest Algorithm 5 werden oft dazu verwendet, um nach der Übertragung einer Datei sicherzustellen, dass die Datei unverändert ist.
mdadm [optionen] mdadm hilft bei der Verwaltung von Software-RAID-Partitionen. Das Kommando wird durch unzählige Optionen gesteuert. Dabei gibt zumeist eine Option den Modus an (z. B. --create bzw. -C, um eine neue RAID-Partition einzurichten). Die weiteren Optionen steuern Details der gewünschten Operation. Aus Platzgründen verzichte ich hier auf eine systematische Beschreibung (siehe man mdadm) und beschreibe stattdessen nur die wichtigsten Operationen zur Administration von RAID-0 und RAID-1. Beispiele zur Anwendung von mdadm finden Sie ab Seite 670. mddevice --add device fügt dem Verbund eine Partition hinzu. --assemble mddevice device1 device2 ... devicem fügt den Verbund mddevice aus den Festplattenpartitionen device1 bis devicem neu zusammen. Das funktioniert nur, wenn device1 bis devicem vorher mit --create als Bestandteile eines RAID-Verbunds initialisiert wurden. --assemble --scan mddevice setzt die RAID-Partition mddevice aus den in mdadm.conf angegebenen Festplattenpartitionen zusammen. --create mddevice --level=n --raid-devices=m device1 device2 ... devicem erzeugt den neuen Verbund mddevice für den RAID-Level n, der aus den m Festplattenpartitionen device1 bis devicem besteht. --detail mddevice liefert Detailinformationen über die RAID-Partition. --examine device liefert Detailinformationen über die angegebene Festplattenpartition, die Bestandteil eines RAID-Verbunds sein muss. --examine --scan liefert eine Zusammenfassung über alle verfügbaren RAID-Partitionen in der Syntax von mdadm.conf.
1182
Alphabetische Kommandoreferenz
mddevice --fail device markiert die Festplattenpartition device als fehlerhaft und deaktiviert sie so. --grow mddevice --size=max vergrößert den Verbund, sodass die zugrunde liegenden Festplattenpartitionen optimal genutzt werden. Das Kommando ist in dieser Form nur nach einer Vergrößerung der Festplattenpartitionen sinnvoll. --grow mddevice --raid-devices=n vergrößert die Anzahl der in den Verbund integrierten Festplattenpartitionen (nur für die RAIDLevel 1, 5 und 6). --monitor device überwacht die aktiven RAID-Verbunde. Das Kommando wird üblicherweise beim Hochfahren des Rechners gestartet und sendet bei Problemen eine Mail an den Administrator (Option -m). --query device testet, ob die Partition eine RAID-Partition bzw. Bestandteil eines RAID-Verbunds ist. mddevice --remove device entfernt die Festplattenpartition device aus dem RAID-Verbund. device darf nicht aktiv sein und muss gegebenenfalls vorher mit --fail deaktiviert werden. --stop mddevice deaktiviert den angegebenen Verbund. Der Verbund kann nun mit --assemble neu zusammengesetzt werden. --zero-superblock device löscht die RAID-Metadaten einer Festplattenpartition.
mkdir verzeichnis mkdir erstellt ein neues Verzeichnis. Die beiden wichtigsten Optionen lauten: -m modus bzw. --mode=modus setzt die Zugriffsrechte des neuen Verzeichnisses fest (siehe chmod auf Seite 1142). -p bzw. --parents erstellt auch Zwischenverzeichnisse. Wenn Sie mkdir a/b/c ausführen und die Verzeichnisse a sowie a/b noch nicht existieren, werden auch diese Verzeichnisse erstellt.
mkfifo datei mkfifo richtet eine FIFO-Datei ein (First In First Out). FIFO-Dateien funktionieren im Prinzip wie Pipes und ermöglichen den Datenaustausch zwischen zwei Programmen. Im folgenden Beispiel richtet mkfifo eine FIFO-Datei ein. ls leitet das Inhaltsverzeichnis auf diese Datei um. more liest es von dort. ls muss mit & als Hintergrundprozess gestartet werden, weil der Prozess ls erst dann zu Ende ist, wenn more alle Daten aus fifo gelesen hat. Die Anzeige des Inhaltsverzeichnisses via more könnte natürlich viel einfacher auch ohne eine FIFO-Datei bewerkstelligt werden, nämlich durch ls -l | more.
Beispiel
1183
Kapitel 39
Alphabetische Kommandoreferenz
user$ user$ user$
mkfifo fifo ls -l > fifo & more < fifo
mkfs [optionen] device [blocks] mkfs richtet auf einer zuvor mit fdisk partitionierten Festplatte ein Dateisystem ein. mkfs kann nur von root ausgeführt werden. Das Programm verzweigt je nach angegebenem Dateisystem in das Programm mkfs.dateisystemtyp. -t dateisystemtyp gibt den Typ des Dateisystems an. Infrage kommen z. B. ext3 oder xfs. Die Option -t muss als erste Option angegeben werden! Alle weiteren Optionen werden an das Kommando weitergegeben, das das Dateisystem tatsächlich einrichtet. Sie sind vom Typ des Dateisystems abhängig.
mkfs.btrfs [optionen] device1 [device2 device3 ...] mkfs.btrfs richtet ein btrfs-Dateisystem ein. Das Kommando ist je nach Distribution Teil des Pakets btrfs-tools, btrfs-progrs oder btrfsprogs, das extra installiert werden muss. Um ein gewöhnliches btrfs-Dateisystem ohne RAID einzurichten, führen Sie einfach mkfs.btrfs device aus. Beispiele zum Umgang mit btrfs-RAID-Systemen finden Sie auf Seite 648). -A bzw. --alloc-start n lässt am Begin des Devices n Byte ungenutzt (standardmäßig gilt n=0). -d bzw. --data type gibt den gewünschten RAID-Typ für die Daten an. Erlaubte Werte sind momentan raid0, raid1, raid10 oder single (gilt standardmäßig). Wenn Sie einen btrfs-RAID-Verbund einrichten, müssen Sie entsprechend viele Devices angeben (zwei für RAID-1, vier für RAID-10). -L bzw. --label name gibt dem Dateisystem einen Namen. -m bzw. --data type gibt den gewünschten RAID-Typ für die Metadaten an. Hier gilt standardmäßig raid1, d. h., wenn Sie ein btrfs-Dateisystem ohne weitere Angabe von Optionen über mehrere Devices verteilen, werden die Daten nur einfach gespeichert, die Metadaten aus Sicherheitsgründen aber mehrfach! Beim Erstellen eines RAID-Verbunds geben Sie in der Regel mit -m den gleichen RAID-Typ wie bei der Option -d an. Wenn Ihr Dateisystem so schnell wie möglich sein soll, verwenden Sie -d raid0 -m raid0, um alle Redundanzen zu eliminieren.
1184
Alphabetische Kommandoreferenz
mke2fs [optionen] device [blocks] mkfs.ext2 [optionen] device [blocks] mkfs.ext3 [optionen] device [blocks] mkfs.ext4 [optionen] device [blocks] mke2fs bzw. mkfs.ext2, mkfs.ext3 oder mkfs.ext4 richten ein ext2-, ext3 oder ext4-Dateisystem ein. Alle vier Kommandos verweisen durch Links auf dasselbe Programm, verwenden aber unterschiedliche Standardoptionen, die in /etc/mk2efs.conf gespeichert sind. -b n bestimmt die Blockgröße (normalerweise 4096 Bytes). Für n sind die Werte 1024, 2048, 4096 etc. erlaubt (also 2n * 1024). -c
testet vor dem Einrichten des Datenträgers mit badblocks, ob defekte Blöcke existieren. Derartige Blöcke werden für das Dateisystem nicht genutzt. Der Test erfordert, dass jeder Datenblock verändert und wieder gelesen werden muss, und verlängert daher die Zeit zum Einrichten des Dateisystems erheblich.
-i n gibt an, nach jeweils wie vielen Bytes ein Inode eingerichtet wird. (Inodes sind interne Verwaltungseinheiten eines Dateisystems. In einem Inode werden alle Verwaltungsinformationen einer Datei mit Ausnahme des Namens – also Zugriffsbits, Besitzer, Datum des letzten Zugriffs etc. – gespeichert. Die Anzahl der Inodes wird beim Formatieren unveränderlich festgelegt.) Beispielsweise gibt es bei n=4096 pro MByte 1.048.576 / 4096 = 256 Inodes, d. h., es können pro MByte maximal 256 Dateien oder Verzeichnisse gespeichert werden, egal wie klein die Dateien sind. Wenn Sie sehr viele sehr kleine Dateien speichern möchten, sollten Sie n kleiner wählen. Der Minimalwert beträgt 1024 (das entspricht 2048 Dateien pro MByte). Es ist nicht sinnvoll, den Wert kleiner als die Blockgröße zu wählen, da pro Block ohnedies nur eine Datei gespeichert werden kann. Wenn Sie dagegen nur sehr wenige sehr große Dateien speichern möchten, können Sie n auch größer wählen. Sie verringern damit den Verwaltungs-Overhead. -J
ermöglicht die Übergabe zusätzlicher Parameter, etwa um die Größe der Journaling-Datei einzustellen oder um die Journaling-Datei in einem anderen Device einzurichten. Das kann unter Umständen die Geschwindigkeit des Dateisystems ein wenig verbessern, macht aber gleichzeitig die Administration und die Wiederherstellung des Dateisystems nach einem Crash komplizierter. Die zur Auswahl stehenden Optionen werden in der Manual-Seite von mke2fs ausführlich beschrieben.
-m n gibt an, wie viel Prozent des Datenträgers für Daten von root reserviert werden sollen (standardmäßig 5 Prozent). Dieser Reservespeicher ermöglicht es root selbst dann noch zu arbeiten, wenn das Dateisystem für alle anderen Benutzer bereits restlos voll ist. Es handelt sich also um eine Sicherheitsreserve. -t ext2/ext3/ext4 gibt die gewünschte ext-Version an (nur bei mke2fs erforderlich).
1185
Kapitel 39
Alphabetische Kommandoreferenz
mkfs.ntfs [optionen] device mkfs.ntfs richtet ein NTFS-Dateisystem ein, das kompatibel mit allen aktuellen Windows-Versionen ab Windows NT ist. Das Kommando ist bei vielen Distributionen Teil des Pakets ntfsprogs und muss extra installiert werden. -f
führt die Formatierung schnell durch, ohne jeden Datenblock mit 0-Bytes vollzuschreiben. Die Option beschleunigt die Formatierung um ein Vielfaches!
mkfs.vfat [optionen] device mkfs.vfat richtet ein Windows-Dateisystem ein, das kompatibel mit allen gängigen WindowsVersionen ist. -I
erlaubt die Formatierung des gesamten Datenträgers, ohne dass eine Partitionstabelle eingerichtet wird (mkfs.vfat -I /dev/sdg). Das ist mitunter bei USB-Sticks üblich ( »Superfloppy«Format).
mkfs.xfs [optionen] device mkfs.xfs richtet ein xfs-Dateisystem ein. Dieser Prozess kann durch unzählige Optionen gesteuert werden (man mkfs.xfs), von denen hier die wichtigsten herausgegriffen sind: -b size=n gibt die gewünschte Blockgröße an (standardmäßig 4096 Byte). -l size=n gibt die Größe des Bereichs für die Journaling-Daten an. Ohne diese Option wählt mkfs.xfs selbst eine geeignete Größe. -l logdev=device speichert die Journaling-Daten in einer eigenen Partition. -L label gibt dem Dateisystem den gewünschten Namen (maximal 12 Zeichen).
mkinitrd mkinitrd ist bei Fedora bis Version 11, RHEL bis Version 5.n und SUSE für das Erzeugen einer InitrdDatei zuständig. Ab Fedora 12 bzw. RHEL verwenden Sie stattdessen dracut (siehe Seite 1151), Debian und Ubuntu setzen update-initramfs ein (siehe Seite 1229). Die Initrd-Datei enthält Kernelmodule, die während des Systemstarts durch GRUB geladen werden. Hintergrundinformationen zu Initrd-Dateien finden Sie auf Seite 711. mkinitrd ist ein distributionsspezifisches Kommando, d. h., seine Syntax unterscheidet sich je nach Distribution! Hier wird zuerst die Variante von Fedora/Red Hat behandelt, anschließend folgen Informationen zur SUSE-Variante.
1186
Alphabetische Kommandoreferenz
An das mkinitrd-Kommando von Red Hat bzw. Fedora müssen zumindest der Dateiname der zu erzeugenden Initrd-Datei sowie die Kernelversionsnummer übergeben werden. Das Kommando berücksichtigt automatisch alle Module zum Zugriff auf die Systempartition (Dateisystem-, LVM- und RAID-Module). Wenn sich die Systempartition auf einer SCSI-Festplatte befindet, entnimmt mkinitrd das erforderliche SCSI-Modul der Datei /etc/modprobe.conf.
mkinitrd bei Red Hat/Fedora
--with=modul fügt der Initrd-Datei das angegebene Modul zusätzlich hinzu. (Für jedes Modul ist eine eigene --with-Option notwendig.) --omit-scsi-modules, --omit-raid-modules, --omit-lvm-modules fügt der Initrd-Datei keine Module für SCSI, RAID bzw. LVM hinzu. Bei SUSE müssen Sie an mkinitrd keinerlei Parameter übergeben. Das Kommando erzeugt damit automatisch Initrd-Dateien zu allen Kerneldateien, die es im Verzeichnis /boot findet. Die Modulliste entnimmt mkinitrd der Variablen INITRD_MODULES, die in /etc/sysconfig/kernel definiert ist.
mkinitrd bei SUSE
-a acpidatei fügt der Initrd-Datei die angegebene ACPI DSDT (Differentiated System Description Table) hinzu. Diese ACPI-Tabelle überschreibt beim Systemstart die vom BIOS vorgegebene Tabelle. Damit lassen sich Startprobleme bei fehlerhaften ACPI-Implementierungen umgehen. -f funktionen berücksichtigt die angegebenen Funktionen. Zulässige Funktionen sind iscsi, mpath, md, lvm, lvm2 und evms. Die Option ist nur erforderlich, wenn mkinitrd die zum Booten erforderlichen Funktionen nicht von sich aus erkennt. -i initdatei speichert die Initrd-Datei unter dem angegebenen Namen (statt standardmäßig als /boot/ initrd-nnn). -k version erzeugt die Initrd-Datei nur für die angegebene Kernelversion. -m module fügt die angegebenen Module in die Initrd-Datei ein.
mknod devicedatei {bc} major minor mknod richtet eine neue Device-Datei ein. Device-Dateien befinden sich im Verzeichnis /dev und ermöglichen den Zugriff auf diverse Hardware-Komponenten. Device-Dateien werden durch drei Informationen charakterisiert: major und minor geben durch zwei Zahlen den Treiber an, mit dessen Hilfe auf die Geräte zugegriffen werden kann (Major- und Minor-Device-Nummer). Die Zeichen b oder c geben an, ob das Gerät gepuffert oder ungepuffert arbeitet. Bei aktuellen Linux-Distributionen werden Device-Dateien automatisch durch das udev-System eingerichtet (siehe Seite 347). Eine Liste der wichtigsten Linux-Devices und der dazugehörenden Device-Nummern finden Sie hier: http://www.kernel.org/doc/Documentation/devices.txt
1187
Kapitel 39
Alphabetische Kommandoreferenz
mkswap device / datei mkswap richtet ein Device (z. B. eine Festplattenpartition) oder eine Datei als Swap-Bereich ein. mkswap kann nur von root ausgeführt werden. Der Swap-Bereich kann anschließend mit swapon device aktiviert werden. Damit der Swap-Bereich bei jedem Rechnerstart automatisch genutzt wird, muss er in die Datei /etc/fstab eingetragen werden.
mkudffs [optionen] device mkudffs richtet auf einem optischen Datenträger ein UDF-Dateisystem ein. Der Datenträger muss vorher mit dvd+rw-format formatiert werden. --media-type=medientyp gibt den Medientyp an. Zulässige Werte sind unter anderem hd (Festplatte), cdrw, dvd (DVDR[W], DVD+R[W]) und dvdram. --udfrev=version gibt die gewünschte UDF-Revisionsnummer an. Zulässige Werte sind 0x0102, 0x0150, 0x0200 und 0x0201 (gilt standardmäßig). --vid=name gibt den Datenträgernamen an (Volume ID).
modinfo modulname modinfo liefert Informationen über das angegebene Modul. Dazu zählen der vollständige Dateiname, der Autor, die Lizenz, abhängige Module, eine Kurzbeschreibung sowie eine Liste aller Parameter, die das Modul kennt.
modprobe [optionen] modulname [parameter=wert ...] modprobe lädt das angegebene Modul in den Kernel. Das Kommando ist eine erweiterte Variante von insmod. Es beachtet die in modules.dep definierten Modulabhängigkeiten und lädt gegebenenfalls auch Module, die vom gewünschten Modul vorausgesetzt werden. Außerdem berücksichtigt es die in modprobe.conf angegebenen Modulparameter. Hintergrundinformationen zu diesen Dateien finden Sie auf Seite 768.
1188
-c
liefert eine schier endlose Liste aller zurzeit gültigen Moduloptionen und -einstellungen. Diese Einstellungen ergeben sich sowohl aus den Einstellungen des Quelltexts des modutils-Pakets als auch aus den Einstellungen in /etc/modprobe.conf.
-f
erzwingt das Laden des Moduls selbst dann, wenn es für eine andere Kernelversion kompiliert wurde. Ob das tatsächlich funktioniert, hängt davon ab, ob es zwischen der Kernel- und der Modulversion irgendwelche Inkompatibilitäten gibt.
-r
entfernt das Modul aus dem Kernel (anstatt es zu laden).
Alphabetische Kommandoreferenz
mogrify [optionen] bilddatei mogrify verändert Parameter einer Bilddatei, beispielsweise die Auflösung oder die Anzahl der Farben. Dabei kommen dieselben Optionen wie bei convert zum Einsatz (siehe Seite 1144). Vorsicht, die ursprüngliche Datei wird durch mogrify überschrieben. Das Kommando ist Teil des Image-MagickPakets.
more datei more zeigt den Inhalt einer Textdatei seitenweise an. Nach jeder Seite wird die Anzeige unterbrochen. more wartet jetzt auf eine Tastatureingabe. Die wichtigsten Eingabemöglichkeiten sind (¢) (eine Zeile nach unten), (Leertaste) (eine Seite nach unten), (B) (eine Seite nach oben) und (Q) (Quit). Statt more wird in der Regel das leistungsfähigere Kommando less eingesetzt (siehe Seite 1174).
mount mount [optionen] device verzeichnis mount bindet einen Datenträger (Partition einer Festplatte, USB-Memorystick, Daten-DVD ...) in das Linux-Dateisystem ein. Diverse mount-Beispiele finden Sie ab Seite 628. Der Aufruf des Kommandos ohne Parameter liefert eine Liste aller momentan eingebundenen Dateisysteme inklusive des Dateisystemtyps und der mount-Optionen. Um ein Dateisystem einzubinden, müssen Sie die Device-Bezeichnung des Datenträgers (beispielsweise /dev/sdc1) und das Verzeichnis angeben, bei dem das Dateisystem in den Verzeichnisbaum eingebunden wird. Das Einbinden von Dateisystemen beim Start von Linux wird durch die Datei /etc/fstab gesteuert. Die Daten in dieser Datei entsprechen den Parametern von mount (siehe auch Seite 629). Für alle in /etc/fstab eingetragenen Laufwerke kann mount in einer Kurzform verwendet werden, bei der nur die Device-Datei oder das Mount-Verzeichnis angegeben wird. mount liest die fehlenden Daten und Optionen selbstständig aus fstab. Datenträger werden mit umount wieder aus dem Dateisystem entfernt (siehe Seite 1227). Sowohl mount als auch umount dürfen im Regelfall nur von root ausgeführt werden. Eine Ausnahme stellen Laufwerke dar, die in fstab mit der Option user oder users gekennzeichnet sind. Allgemeine mount-Optionen --move olddir newdir ändert das Verzeichnis, an dem ein Dateisystem eingebunden ist. -o optionen ermöglicht die Angabe zusätzlicher Optionen, z. B. in der Form -o acl,user_xattr. Die so angegebenen Optionen dürfen nicht durch Leerzeichen getrennt werden! Eine Referenz der Dateisystemoptionen folgt unten. -r
verhindert Schreiboperationen auf dem Datenträger (Read-Only).
1189
Kapitel 39
Alphabetische Kommandoreferenz
-t dateisystem gibt das Dateisystem an. Infrage kommen unter anderem ext2/3/4 für Linux-Partitionen, vfat und ntfs für Windows-Partitionen sowie iso9660 und udf für Daten-CDs und -DVDs. Allgemeine Dateisystemoptionen Mit -o können Sie unzählige Optionen übergeben, die das Verhalten des eingebundenen Dateisystems beeinflussen. Im Folgenden werden die Schlüsselwörter für allgemeine Optionen zusammengefasst. Dateisystemspezifische Optionen folgen etwas weiter unten. Alle Optionen für mount -o sind auch in der vierten Spalte von /etc/fstab zulässig. Die folgende Referenz gilt daher auch für /etc/fstab und wurde um einige fstab-spezifische Schlüsselwörter ergänzt, die für das Kommando mount nicht von Bedeutung sind (defaults, noauto, owner, user und users). atime / noatime / relatime /strictatime gibt an, unter welchen Umständen die Inode Access Time einer Datei aktualisiert wird: bei jedem Lesezugriff (atime bzw. strictatime ab Kernel 2.6.30, POSIX-konform), maximal einmal pro Tag (relatime) oder nie (noatime). Bei Schreibzugriffen wird die Inode Access Time in jedem Fall geändert. Die Option hat einen relativ großen Einfluss auf die Geschwindigkeit von Leseoperationen und auf die Lebensdauer von Flash-Datenspeichern. Standardmäßig gilt bis Kernel 2.6.29 atime, ab Kernel 2.6.30 aber die schnellere Einstellung relatime! Vorsicht: Das E-Mail-Programm mutt ist inkompatibel zur Einstellung noatime. (relatime verursacht hingegen keine Probleme.) defaults gibt an, dass das Dateisystem mit den Standardoptionen in den Verzeichnisbaum eingebunden werden soll. defaults wird in der vierten Spalte von /etc/fstab angegeben, wenn keine anderen Optionen verwendet werden sollen. (Die Spalte darf nicht leer bleiben.) dev / nodev bewirkt bzw. verhindert, dass Device-Dateien als solche interpretiert werden. Unter Linux können Dateien als Block- oder Character-Devices gekennzeichnet werden. Derartige Dateien werden zum Zugriff auf Hardware-Komponenten verwendet (siehe Seite 346). Die Option ist aus Sicherheitsgründen für CD/DVD-Laufwerke sowie für externe Datenträger sinnvoll. exec / noexec legt fest, ob auf dem Dateisystem befindliche Programme unter Linux ausgeführt werden dürfen oder nicht. Bei den meisten Dateisystemen gilt standardmäßig die Einstellung exec. Sicherheitsbewusste Administratoren werden für CD/DVD-Laufwerke und externe Datenträger aber die Option noexec angeben. (Wenn Sie die Option user oder users verwenden, gilt noexec. Das kann durch eine exec-Option wieder geändert werden.) noauto ist nur in /etc/fstab zweckmäßig und bewirkt dort, dass der in dieser Zeile genannte Datenträger beim Systemstart nicht automatisch eingebunden wird. Dennoch ist es sinnvoll, den Datenträger in fstab einzutragen, weil die Anwender nun bequem mount name durchführen können, ohne dabei alle weiteren mount-Optionen explizit anzugeben. noauto kommt beispielsweise für selten benötigte Datenpartitionen zum Einsatz.
1190
Alphabetische Kommandoreferenz
owner erlaubt es jedem Benutzer, das betreffende Dateisystem selbst einzubinden bzw. wieder zu lösen. Die Option ist nur in /etc/fstab zweckmäßig. Der Unterschied zu user besteht darin, dass mount bzw. umount nur dann ausgeführt werden darf, wenn der Benutzer Zugriffsrechte auf die betreffende Device-Datei hat (z. B. /dev/fd0). remount ändert die Optionen eines bereits in den Verzeichnisbaum eingebundenen Dateisystems (siehe auch Seite 628). Die Option kann nur bei einem direkten Aufruf von mount angegeben werden und ist in /etc/fstab nicht zulässig. ro / rw gibt an, dass Dateien nur gelesen bzw. auch verändert werden dürfen. Normalerweise gilt für die meisten Dateisystemtypen rw (also Read-Write). suid / nosuid erlaubt bzw. verhindert die Auswertung des sid- und gid-Zugriffsbits. Diese Zugriffsbits erlauben es gewöhnlichen Benutzern, Programme mit root-Rechten auszuführen (siehe Seite 335). Dies ist häufig ein Sicherheitsrisiko. Die Option nosuid verhindert die Auswertung derartiger Zugriffsbits und sollte für CDs, DVDs und externe Datenträger genutzt werden. sync bewirkt, dass Änderungen sofort gespeichert werden, anstatt sie für einige Sekunden im RAM zwischenzuspeichern und erst später auf den Datenträger zu übertragen. sync minimiert die Gefahr des Datenverlusts, wenn Sie einen Datenträger (USB-Memorystick) irrtümlich ohne umount entnehmen bzw. die Kabelverbindung lösen. sync hat allerdings den Nachteil, dass das Schreiben von Daten je nach Datenträger sehr viel ineffizienter erfolgt. Insbesondere bei USBMemorysticks und -Festplatten sinkt die Geschwindigkeit um den Faktor zehn und mehr! user ermöglicht es normalen Benutzern, das betreffende Dateisystem mit umount ab- und mit mount wieder anzumelden. Dazu ist ansonsten nur root in der Lage. Datenträger dürfen nur von dem Benutzer wieder aus dem Dateisystem gelöst werden, der mount veranlasst hat. Die Option ist nur in /etc/fstab zweckmäßig und vor allem für externe Datenträger gedacht. Wenn Sie user verwenden, gelten automatisch auch die Optionen noexec, nosuid und nodev. users hat dieselbe Bedeutung wie user, aber mit einem kleinen Unterschied: Jeder Benutzer darf mit users gekennzeichnete Datenträger wieder aus dem Dateisystem entfernen (umount). users erlaubt also, dass der Benutzer A mount ausführt und der Benutzer B später umount aufruft. btrfs-Optionen Viele mount-Optionen hängen vom jeweiligen Dateisystem ab. Im Folgenden sind daher die wichtigsten dateisystemspezifischen Optionen zusammengefasst, beginnend mit btrfs. compress komprimiert alle neuen bzw. veränderten Dateien mit zlib. Vorhandene Dateien bleiben unverändert, solange sie nur gelesen werden.
1191
Kapitel 39
Alphabetische Kommandoreferenz
degraded bindet das Dateisystem selbst dann ein, wenn ein Teil der RAID-Devices fehlt. (Das funktioniert nur, wenn aufgrund von RAID-Redundanzen alle Daten zur Verfügung stehen, also ein degradierter RAID-Verbund vorliegt.) noacl deaktiviert die ACL-Zugriffsverwaltung (siehe Seite 338). nobarrier deaktiviert die sogenannten Write Barriers. Eine Write Barrier blockiert weitere Schreibvorgänge, bis alle bisherigen Schreibvorgänge physikalisch abgeschlossen sind. Ohne Barriers ist das Dateisystem schneller, gleichzeitig steigt aber das Risiko eines Datenverlusts bei einem Crash, insbesondere bei Dateisystemen, die über mehrere Devices verteilt sind (RAID). Barriers funktionieren nur, wenn die Festplatte die Schreibaufforderung auch tatsächlich befolgt – was (aus Performance-Gründen) häufig nicht der Fall ist. ssd
optimiert Dateioperationen für Solid State Disks (SSDs). Die Option ist automatisch aktiv, wenn der btrfs-Treiber feststellen kann, dass es sich beim Datenträger um eine SSD handelt.
subvolume=name (oder) subvolid=n verwendet das angegebene Subvolume (und nicht das Default-Subvolume). Die Volume-ID für subvolid können Sie mit btrfs subvolume list ermitteln. CIFS-Optionen Mit dem Common Internet File System (-t cifs) können Sie Windows-Netzwerkverzeichnisse in das Dateisystem integrieren (siehe auch Seite 663). CIFS löst SMBFS (-t smbfs) ab. Damit Sie CIFS nutzen können, müssen Sie bei manchen Distributionen ein eigenes Paket installieren (z. B. smbfs bei Debian und Ubuntu). Einige Worte zu den Zugriffsrechten: Wenn die Dateien von einem gewöhnlichen Windows-PC stammen, werden sie unter Linux dem Benutzer root zugeordnet. Alle Benutzer dürfen die Dateien lesen, aber nur root darf sie verändern. Wenn die Dateien hingegen von einem Datei-Server stammen, der die CIFS-Unix-Erweiterung unterstützt (das ist der Fall, wenn Samba auf einem Linux-Rechner läuft), dann werden die UIDs, GIDs und Zugriffsbits der Dateien unverändert weitergeleitet. Die Optionen file_mode und dir_mode bleiben dann wirkungslos. uid=u,gid=g geben wie beim vfat-Treiber den Besitzer und die Gruppe der Dateien an. An die Optionen können statt der UID/GID-Nummern auch die Benutzer- bzw. Gruppennamen übergeben werden. file_mode=n (fmask bei SMBFS) gibt an, welche Zugriffsrechte für den Dateizugriff gelten. n muss mit einer Null beginnen und enthält die Rechte in der von chmod vertrauten Oktalschreibweise. file_mode=0444 gibt allen Benutzern Lese- und Schreibrechte. Die Einstellung wird ignoriert, wenn der Datei-Server die CIFS-Unix-Erweiterung unterstützt.
1192
Alphabetische Kommandoreferenz
dir_mode=n (dmask bei SMBFS) gibt an, welche Zugriffsrechte für den Zugriff auf Verzeichnisse gelten. file_mode=0770 gibt dem durch uid angegebenen Benutzer sowie allen Mitgliedern der Gruppe gid uneingeschränkte Rechte (Verzeichnis lesen, öffnen und ändern). user=name (username bei SMBFS) gibt den Benutzernamen für die Authentifizierung beim Windows- bzw. Samba-Server an. An die Option können gleichzeitig auch der Arbeitsgruppenname und das Passwort übergeben werden (user=workgroup/name%password). password=pw gibt das Passwort für die Authentifizierung beim Windows- bzw. Samba-Server an. domain=workgroup gibt die Domäne oder Arbeitsgruppe an. credentials=datei gibt eine Datei an, die den Benutzernamen und das Passwort für den Login beim Windowsbzw. Samba-Server enthält. Damit vermeiden Sie die Angabe von Passwörtern in /etc/fstab. Die Datei enthält drei Zeilen mit username=xxx (nicht user=xx!), password=xxx und bei Bedarf domain=xxx. iocharset=name gibt den gewünschten Zeichensatz an. Wenn deutsche Sonderzeichen oder andere NichtASCII-Zeichen in Dateinamen falsch angezeigt werden, hilft in der Regel iocharset=utf8. nodfs deaktiviert die DFS-Funktionen. DFS steht für Distributed Filesystem und erlaubt es, auf die Netzwerkverzeichnisse unterschiedlicher Server einheitlich zuzugreifen. Einige marktübliche NAS-Festplatten verwenden alte Samba-Versionen mit bekannten DFS-Fehlern, die insbesondere beim Einsatz des Kommandos rsync zu Problemen führen. Abhilfe schafft in solchen Fällen die nodfs-Option. ext3/ext4-Optionen Die folgenden Optionen gelten für das Linux-Standarddateisystem ext3 bzw. ext4. acl
aktiviert die ACL-Zugriffsverwaltung (siehe Seite 338).
barrier=0 (nur für ext4) deaktiviert die sogenannten Write Barriers, die sicherstellen, dass Änderungen in der richtigen Reihenfolge auf die Festplatte geschrieben werden (siehe auch die btrfs-Option nobarrier). Das erhöht die Geschwindigkeit des Dateisystems, ist aber nur sicher, wenn der FestplattenCache durch eine Batterie gegen Stromausfälle und Abstürze abgesichert ist. commit=n synchronisiert das Journal alle n Sekunden (standardmäßig alle 5 Sekunden). Das Paket laptop-mode vergrößert diese Zeitspanne bei Notebooks im Batteriebetrieb, um Energie zu sparen.
1193
Kapitel 39
Alphabetische Kommandoreferenz
Bei ext3 mit data=ordered werden gleichzeitig mit dem Journal auch alle Dateiänderungen synchronisiert. Bei ext3 mit data=writeback und bei ext4 mit Delayed Allocation gilt das commit-Intervall hingegen nur für das Journal. data=journal/ordered/writeback bestimmt den Journaling-Modus. Die verschiedenen Journaling-Modi sind auf Seite 635 beschrieben. Standardmäßig gilt für ext4 der Modus ordered. Für ext3 gilt standardmäßig für die Kernelversionen 2.6.30 bis 2.6.35 der Modus writeback, für alle Versionen davor und danach der sichere, aber etwas langsamere Modus ordered. nodelalloc (nur für ext4) deaktiviert die Delayed Allocation (siehe Seite 637). noload ignoriert die vorhandene Journaling-Datei beim mount-Kommando. Das kann zweckmäßig sein, wenn die Journaling-Datei defekt ist. sb=n verwendet Block n als Superblock (statt standardmäßig Block 1). Damit gelingt es in manchen Fällen, ein beschädigtes Dateisystem noch zu lesen. (Normalerweise erstellt mke2fs alle 8192 Blöcke eine Kopie des Superblocks. Daher empfiehlt es sich, für n die Werte 8193, 16385 etc. einzusetzen. user_xattr aktiviert die Unterstütztung für erweiterte Dateiattribute (siehe Seite 338). ISO9660-Optionen (Daten-CDs) Daten-CDs und viele DVDs verwenden das Dateisystem ISO-9660 (-t iso9660). uid=u,gid=g geben wie beim vfat-Treiber den Besitzer und die Gruppe der Dateien an (standardmäßig jeweils root). Die Zugriffsbits können nicht eingestellt werden. Sie erlauben allen Benutzern, alle Verzeichnisse und Dateien zu lesen. norock, nojoliet deaktiviert die Rock-Ridge- bzw. die Joilet-Erweiterung. (Der ISO-9660-Treiber erkennt und berücksichtigt diese Erweiterungen automatisch.) session=n gibt an, welche Session gelesen werden soll (nur bei Multi-Session-CDs). iocharset=name gibt den Zeichensatz an, mit dem Joliet-Dateinamen unter Linux verarbeitet werden sollen (standardmäßig ISO8859-1). Die Option ist nur bei CDs sinnvoll, die die Joliet-Erweiterung nutzen. utf8 verwendet Linux-seitig den Zeichensatz UTF8, um Joliet-Dateinamen zu verarbeiten. Auch diese Option ist nur bei Joliet-CDs sinnvoll.
1194
Alphabetische Kommandoreferenz
NFS-Optionen Das Dateisystem NFS (-t nfs) ist der übliche Weg zur Freigabe bzw. Nutzung von Netzwerkverzeichnissen unter Unix/Linux (siehe auch Seite 661 und 929). Beachten Sie, dass -t nfs die NFS-Versionen 2 und 3 meint. Wenn Sie NFS4 nutzen möchten, müssen Sie im mount-Kommando -t nfs4 angeben (siehe auch Seite 933). Die meisten NFS-Optionen gelten gleichermaßen für alle NFS-Versionen. Eine umfassende Zusammenfassung aller Optionen inklusive einer Differenzierung zwischen NFS2/3 und NFS4 gibt man nfs. bg
bewirkt, dass der mount-Prozess im Hintergrund fortgesetzt wird, wenn der NFS-Server nicht erreichbar ist. Diese Option ist nur für /etc/fstab relevant.
hard bewirkt, dass ein Programm, das auf eine NFS-Datei zugreift, hängen bleibt, wenn der NFSServer nicht mehr zur Verfügung steht. (Die Alternative zu hard ist soft. Sie bewirkt, dass der Kernel es nach einer Weile aufgibt, die NFS-Datei wiederzufinden. Das klingt zwar sicherer, verursacht aber in der Realität noch mehr Probleme als hard.) intr ermöglicht es, ein Programm auch dann durch kill bzw. (Strg)+(C) zu stoppen, wenn eine offene NFS-Datei nicht mehr zur Verfügung steht. Die Option ist nur in Kombination mit hard gültig. nfsvers=2/3 gibt die gewünschte NFS-Version an (nur für -t nfs). rsize=n,wsize=n gibt die Größe der Puffer für Lese- und Schreiboperationen an (in kByte). Der Standardwert lautet jeweils 4096. Die richtigen mount-Optionen entscheiden maßgeblich über die mit NFS erzielbare Geschwindigkeit! Eine hohe Geschwindigkeit erzielen Sie mit den Optionen hard,intr,rsize=8192,wsize=8192. Wenn die NFS-Geschwindigkeit dennoch unter Ihren Erwartungen liegt, stellen Sie sicher, dass /etc/ exports auf dem NFS-Server die Option async verwendet (siehe Seite 931). NTFS-Optionen Die folgenden Optionen gelten für den ntfs-3g-Treiber, der bei den meisten Distributionen für den Zugriff auf NTFS-Dateisysteme zum Einsatz kommt. uid=u,gid=g,umask=mjfmask=f,dmask=d haben dieselbe Bedeutung wie beim vfat-Treiber (siehe unten). Als Dateibesitzer gilt der Benutzer, der mount ausgeführt hat. Alle Benutzer haben Lese- und Schreibzugriff! locale=name gibt den lokalen Zeichensatz an (beispielsweise in der Form locale=de_DE.UTF-8). Die Option ist nur in /etc/fstab notwendig, wenn der Zeichensatz beim automatischen Einbinden der Dateisysteme durch den Init-V-Prozess noch nicht konfiguriert ist.
1195
Kapitel 39
Alphabetische Kommandoreferenz
show_sys_files zeigt auch NTFS-Systemdateien an. streams_interface=nonejwindowsjxattr gibt an, wie der Zugriff auf Datei-Streams erfolgen soll: In der Standardeinstellung xattr erfolgt der Zugriff über die Kommandos getfattr bzw. setfattr. windows erlaubt den Zugriff in der unter Windows üblichen Schreibweise dateiname:streamname. Die Standardeinstellung lautet none. UDF-Optionen (DVDs) Auf DVDs kommen zumeist die Dateisysteme ISO-9660 (siehe oben) oder UDF (-t udf) zum Einsatz. UDF ist auch das optimale Dateisystem für DVD-RAMs. UDF verwendet überwiegend dieselben Optionen wie ISO-9660. Im Folgenden sind deswegen nur zwei UDF-spezifische Optionen beschrieben: unhide zeigt auch Dateien, die eigentlich versteckt sind. undelete gibt Zugriff auf gelöschte Dateien. VFAT-Optionen Mit mount -t vfat binden Sie Windows-VFAT-Partitionen in allen Varianten (FAT12, FAT16, FAT32) in den Verzeichnisbaum ein. Zahlreiche Optionen steuern, wer welche Zugriffsrechte auf die Dateien hat, wie die unterschiedlichen Zeichensätze in den Dateinamen gehandhabt werden etc. uid=u,gid=g,umask=m bestimmen, wem (uid) und welcher Gruppe (gid) die Windows-Dateien »gehören«, d. h., wer die Dateien lesen bzw. verändern darf. Üblicherweise geben Sie mit uid und gid die gewünschte Benutzer- bzw. Gruppennummer an. An umask übergeben Sie einen oktalen Zahlenwert mit der Bitmaske der invertierten Zugriffsbits. umask=0 bedeutet daher, dass jeder alle Dateien lesen, schreiben und ausführen darf (rwxrwxrwx). umask=022 entspricht rwxr-xr-x: Alle dürfen alle Dateien lesen, aber nur der Besitzer darf Dateien ändern. Wenn diese Optionen nicht angegeben werden, gelten für das vfat-Dateisystem die folgenden Standardwerte: uid: UID des Benutzers, der mount ausführt. (Normalerweise darf nur root das Kommando mount ausführen, es sei denn, die entsprechende Zeile in /etc/fstab enthält die Optionen user, users oder owner.) gid: GID des Benutzers, der mount ausführt. umask: 022, d. h., alle dürfen alles lesen, aber nur der Besitzer darf Dateien bzw. Verzeichnisse verändern. Oft enthält fstab die Einstellung gid=users. Damit gilt für gid die Standardgruppe des Benutzers, der mount ausführt. Ohne diese Option ist es möglich, zuerst mit newgrp eine andere Gruppe zu aktivieren, die dann auch für mount gilt.
1196
Alphabetische Kommandoreferenz
fmask=f,dmask=d stellt die Maske für Dateien (fmask) und Verzeichnisse (dmask) getrennt ein. Das ist vor allem deswegen praktisch, weil Sie oft für Verzeichnisse das x-Zugriffsbit setzen möchten, für Dateien aber nicht. Damit kann der Benutzer in alle Verzeichnisse wechseln, aber keine Dateien bzw. Programme ausführen. Eine mögliche Einstellung ist fmask=177,dmask=077: Damit kann der Besitzer (uid) Dateien lesen und schreiben (rw-------) sowie in Verzeichnisse wechseln (rwx------). Alle anderen Benutzer haben keinerlei Zugriff auf die Dateien. Ebenfalls oft zweckmäßig ist fmask=133,dmask=022: Damit gilt für Dateien rw-r--r-- und für Verzeichnisse rwxr-xr-x, d. h., jeder darf alles lesen, aber nur der Besitzer darf etwas verändern. iocharset gibt den Zeichensatz an, mit dem Windows-Dateinamen unter Linux verarbeitet werden sollen. Die Standardeinstellung lautet iso8859-1. Die Option kommt in der Regel nur dann zum Einsatz, wenn Sie unter Linux mit einem 8-Bit-Zeichensatz arbeiten. (VFAT-intern wird für lange Dateinamen in jedem Fall der Unicode-Zeichensatz verwendet. Die Option bestimmt nur, wie die Dateinamen von Linux dargestellt werden.) Wenn Sie unter Linux mit dem Zeichensatz UTF8 arbeiten, sollten Sie statt iocharset die im Folgenden beschriebene Option utf8 verwenden! iocharset=utf8 funktioniert zwar auf den ersten Blick ebenfalls, ist aber nicht empfehlenswert: Der VFAT-Treiber beachtet dann die exakte Groß- und Kleinschreibung, was den Windows-Gepflogenheiten widerspricht. utf8 bewirkt, dass der Treiber die Dateinamen als UTF8-Zeichenketten an Linux zurückgibt. Die Option ist zur korrekten Darstellung von Nicht-ASCII-Zeichen erforderlich, wenn Sie unter Linux als Zeichensatz UTF8 verwenden. codepage=name gibt die Codeseite an (eine Art DOS-Zeichensatz), der VFAT-intern für kurze Dateinamen gilt (maximal 8+3 Zeichen). Lange Dateinamen werden auf jeden Fall im Unicode-Format gespeichert; für sie ist diese Option irrelevant. Aktuelle Windows-Versionen speichern auch kurze Dateinamen im VFAT-Format für lange Dateinamen, um so die korrekte Groß- und Kleinschreibung zu erhalten. Aus diesem Grund ist die Option zunehmend unwichtig. Der Standardwert der Option kann beim Kompilieren bestimmt werden und beträgt zumeist cp437. shortname=lower|win95|winnt|mixed gibt an, in welcher Groß- und Kleinschreibung kurze Dateinamen (maximal 8+3 Zeichen) präsentiert bzw. gespeichert werden. Das diesbezügliche Verhalten variierte unter Windows je nach Version. Unter Linux gilt standardmäßig die Einstellung lower, d. h., kurze Dateinamen werden in Kleinbuchstaben präsentiert. Bei neuen Dateien wird der Name im VFAT-Format für lange Dateinamen gespeichert (auch wenn die DOS-Grenze von 8+3-Zeichen gar nicht überschritten wird), sodass die Groß- und Kleinschreibung erhalten bleibt. Ausgenommen von dieser
1197
Kapitel 39
Alphabetische Kommandoreferenz
Regel sind nur kurze Dateinamen, die ausschließlich aus Großbuchstaben bestehen; derartige Namen werden DOS-typisch als kurze Dateinamen gespeichert. Die Einstellung hat keinerlei Einfluss auf lange Dateinamen, deren Groß- und Kleinschreibung nach dem Erzeugen der Datei auf jeden Fall erhalten bleibt. flush bewirkt, dass der Treiber sofort damit beginnt, zwischengespeicherte Daten auf dem Datenträger zu speichern. Die Option minimiert bei externen Datenträgern (z. B. einem USBMemorystick) die Zeit zum Speichern veränderter Daten. Im Gegensatz zur Option sync wartet das Dateisystem nicht auf den Abschluss der Synchronisiation. Deswegen hat flush keinen negativen Einfluss auf die Geschwindigkeit von Schreiboperationen. XFS-Optionen Die meisten Optionen für das xfs-Dateisystem betreffen selten benutzte Funktionen (siehe man mount). ACLs und Extended Attributes stehen beim xfs-Dateisystem standardmäßig zur Verfügung und werden nicht durch Optionen gesteuert. logdev=device gibt die Partition an, in der die Journaling-Daten gespeichert sind. Die Option ist nur notwendig, wenn beim Einrichten des Dateisystems eine externe Journaling-Partition angegeben wurde. norecovery verhindert die Auswertung der Journaling-Daten beim Einbinden des Dateisystems. Gleichzeitig müssen Sie die Option ro verwenden (Read-Only-Zugriff).
mv quelle ziel mv dateien zielverzeichnis mv benennt eine Datei um bzw. verschiebt (eine oder mehrere) Dateien in ein anderes Verzeichnis. -b bzw. --backup benennt bereits vorhandene gleichnamige Dateien in Backup-Dateien (Name plus ~-Zeichen) um, anstatt sie zu überschreiben. -i bzw. --interactive fragt, bevor vorhandene Dateien überschrieben werden. mv ist nicht in der Lage, mehrere Dateien umzubenennen. mv *.xxx *.yyy funktioniert also nicht. Um solche Operationen durchzuführen, müssen Sie for oder sed zu Hilfe nehmen. Entsprechende Beispiele finden Sie auf Seite 304).
netstat [optionen] netstat liefert Informationen über die Netzwerkaktivität auf dem lokalen Rechner. Wird das Kommando ohne Optionen aufgerufen, liefert es eine Liste aller offenen Internetverbindungen und Sockets.
1198
Alphabetische Kommandoreferenz
-a
berücksichtigt auch nicht-aktive Sockets, also Dienste, die auf einem Netzwerk-Port auf eine Verbindung warten (Zustand LISTEN bzw. bei deutscher Lokalisierung HÖREN).
-e
gibt bei Internetverbindungen zusätzlich den Benutzer an.
-n
liefert numerische Adressen und Port-Nummern anstatt Host- und Netzwerkdienstnamen.
-p
gibt zusätzlich die Prozessnummer (PID) und den Prozessnamen des Programms an, das für die Verbindung verantwortlich ist. netstat benötigt root-Rechte, damit es Informationen über fremde Prozesse liefern kann.
-t / -u / -w / -X schränkt die Ausgabe auf Verbindungen ein, die das Protokoll TCP, UDP, Raw oder Unix nutzen.
newgrp [gruppenname] Das Kommando newgrp bestimmt die gerade aktive Gruppe eines Benutzers, der mehreren Gruppen angehört. Die aktive Gruppe bestimmt, welcher Gruppe neu erzeugte Dateien angehören. Die zur Auswahl stehenden Gruppen können mit groups ermittelt werden. Wenn kein Gruppenname angegeben wird, wird die primäre Gruppe verwendet. Diese Gruppe gilt auch nach einem Login automatisch als aktive Gruppe.
newusers datei newusers erwartet eine Textdatei im selben Format wie /etc/passwd (siehe man 5 passwd), wobei die Passwörter unverschlüsselt angegeben werden. Es erzeugt dann für jeden angegebenen Benutzer einen neuen Account, wobei bei Bedarf auch die dazugehörenden Gruppen angelegt werden.
nice [optionen] programm nice startet das angegebene Programm mit einer verringerten oder erhöhten Priorität. Das Kommando wird in der Regel dazu eingesetzt, nicht allzu zeitkritische Programme mit kleiner Priorität zu starten, damit das restliche System nicht zu stark beeinträchtigt wird. -n +/-n gibt den nice-Wert vor. Standardmäßig (also ohne nice) werden Programme mit dem niceWert 0 gestartet. Ein Wert von -20 bedeutet höchste Priorität, ein Wert von +19 bedeutet niedrigste Priorität. Werte kleiner 0 dürfen nur von root angegeben werden, d. h., die meisten Anwender können mit nice nur Programme mit reduzierter Priorität starten. Wenn auf diese Option verzichtet wird, startet nice das Programm mit dem nice-Wert von +10.
nl [optionen] datei nl nummeriert alle nicht leeren Zeilen der angegebenen Textdatei. Durch die Einstellung der zahlreichen Optionen kann eine seitenweise Nummerierung, eine Nummerierung von Kopf- und Fußzeilen etc. erreicht werden.
1199
Kapitel 39
Alphabetische Kommandoreferenz
nmcli [optionen] conjdevjnm kommando nmcli erlaubt ab Version 0.81 die Administration des Network Managers auf Kommandoebene (siehe auch Seite 795). Die zur Auswahl stehenden Kommandos hängen davon ab, auf welches Objekt sie sich beziehen. Mit den Optionen -t, -p etc. kann die Form der nmcli-Ausgaben gesteuert werden – je nachdem, ob die Ausgabe ordentlich formatiert oder durch ein Script weiterverarbeitet werden soll (Details siehe man nmcli). con list listet alle konfigurierten Verbindungen auf, wobei zu jeder Verbindung ihr Name und ihre UUID angegeben wird. con up id name bzw. con up uuid n aktiviert die angegebene Verbindung. con down id name bzw. con down uuid n deaktiviert die angegebene Verbindung. dev list listet alle dem Network Manager bekannten Netzwerkschnittstellen auf und gibt deren Eigenschaften an. dev disconnect name beendet die Verbindung für die angegebene Schnittstelle. dev wifi list liefert eine Liste aller in Reichweite befindlichen WLAN-Netzwerke. nm [status] zeigt den Status des Network Managers an. nm sleepjwakeup versetzt den Network Manager in den Ruhemodus (deaktiviert alle Verbindungen) bzw. weckt ihn wieder auf (aktiviert die Verbindungen). nm wifi [onjoff] zeigt den Status der WLAN-Verbindungen an bzw. aktiviert oder deaktiviert WLAN. nm wwan [onjoff] zeigt den Status von Mobilfunknetzverbindungen (WWAN = Wireless Wide Area Network) an bzw. aktiviert oder deaktiviert diese Verbindungen.
nohup kommando Wenn Sie ein Kommando als Hintergrundprozess in einem Shell-Fenster starten und das Fenster dann schließen oder wenn Sie das Kommando in einer Textkonsole starten und sich dann ausloggen, wird der Hintergrundprozess automatisch beendet. Das ist im Regelfall ein sinnvolles Verhalten. Manchmal möchten Sie aber einen Prozess starten, der nach dem Ausloggen weiterläuft – und genau dazu dient nohup. Das Kommando muss mit seinem vollständigen Pfad angegeben werden. Es kann
1200
Alphabetische Kommandoreferenz
keine Textausgaben an die Standardausgabe schreiben. (Ausgaben werden gegebenenfalls in die Datei nohup.out im lokalen Verzeichnis umgeleitet.)
passwd [username] passwd ohne Parameter ermöglicht es, das Passwort des aktuellen Benutzers zu ändern. Dazu muss zuerst das alte und dann zweimal hintereinander das neue Passwort eingegeben werden. Das neue Passwort wird in verschlüsselter Form in die Datei /etc/shadow eingetragen. Allerdings muss das neue Passwort bei manchen Distributionen bestimmten Sicherheitsregeln entsprechen, damit es akzeptiert wird. root kann mit passwd name auch das Passwort anderer Benutzer verändern. Das alte Passwort muss nicht angegeben werden, d. h., root kann das Passwort auch dann verändern, wenn der Benutzer sein Passwort vergessen hat. Für root gelten die obigen Passwortrestriktionen nicht, er kann also auch ein Passwort aus nur einem einzigen Zeichen definieren. Es ist aber nicht einmal root gestattet, überhaupt kein Passwort (also einfach (¢)) anzugeben.
patch [optionen] < patchdatei patch wendet die in einer diff-Datei zusammengefassten Änderungen an. Das Kommando wird in der Regel dazu verwendet, Codeänderungen anzuwenden (beispielsweise für den Kernelcode, siehe Seite 777). -b
erzeugt Backup-Dateien für alle geänderten Dateien.
--dry-run testet den Patch, führt aber keine Änderungen aus. -pn
entfernt n Verzeichnisebenen aus allen Dateinamen in der Patchdatei. Wenn /a/b/name.c der ursprüngliche Dateiname ist, macht -p1 daraus a/b/name.c, und -p2 liefert b/name.c. Der richtige Wert n hängt davon ab, in welchem Verzeichnis patch ausgeführt wird.
-R bzw. --reverse wendet den Patch invers an. Auf diese Weise wird ein bereits angewendeter Patch wieder rückgängig gemacht.
pdf2ps quelle.pdf [ziel.ps] pdf2ps erzeugt aus einem PDF-Dokument eine PostScript-Datei. Wenn Sie auf die Angabe von ziel.ps verzichten, erhält die neue PDF-Datei den Namen quelle.pdf.
pdftk datei1.pdf datei2.pdf ... kommando pdftk manipuliert PDF-Dateien. Sie können damit Seiten extrahieren, mehrere PDF-Dokumente zusammenführen, PDF-Dokumente verschlüsseln bzw. die Verschlüsselung entfernen (wenn Sie das Passwort kennen) etc. Aus Platzgründen ist die Syntax hier vereinfacht dargestellt. Die komplette Syntax liefert man pdftk, einige Beispiele finden Sie auf Seite 379. Sie können mehrere Kommandos kombinieren, müssen dabei aber die folgende Reihenfolge einhalten:
1201
Kapitel 39
Alphabetische Kommandoreferenz
input_pw passwort gibt das Passwort zu datei1.pdf an. cat
fügt alle PDF-Dateien zusammen.
cat seitenliste extrahiert die angegebenen Seiten. Mehrere Seitenbereiche werden durch Leerzeichen getrennt, also beispielsweise 1-5 7-10. end bezeichnet die letzte Seite. Um die Seiten aus mehreren PDF-Dateien zusammenzufügen, geben Sie jeder Eingabedatei ein Kürzel und verweisen bei den Seitenangaben darauf (also beispielsweise pdftk A=datei1.pdf B=datei2.pdf cat A2-4 B5 B7). Wenn Sie nur Seiten mit geraden bzw. ungeraden Seitennummern wünschen, fügen Sie der Seitenangabe even oder odd hinzu, also etwa 1-10odd. burst erzeugt für jede Seite der PDF-Dateien eine eigene Datei mit dem Namen page_n.pdf, wobei n die Seitennummer ist. output ergebnis.pdf speichert die resultierende PDF-Datei unter dem Namen ergebnis.pdf. owner_pw passwort bzw. user_pw passwort verschlüsselt ergebnis.pdf mit dem angegebenen Passwort. Das owner_pw-Passwort gilt für den Ausdruck und andere PDF-Operationen, das user_pw-Passwort für das Öffnen der Datei.
pdftops [optionen] quelle.pdf [ziel.ps] pdftops aus der Poppler-Bibliothek erzeugt eine PostScript-Datei aus einem PDF-Dokument. Im Vergleich zu pdf2ps unterstützt es zahlreiche Optionen zur Beeinflussung der PostScript-Datei. -f n und -l n gibt die erste und letzte Seite an (First und Last). -leveln gibt den gewünschten PostScript-Level an (1 bis 3). -levelnsep führt zusätzlich eine Farbseparierung durch. Dazu werden alle Farben in das CMYK-Format umgewandelt. -eps erzeugt eine EPS-Datei. Bei mehrseitigen PDF-Dokumenten muss mit -f und -l eine Seite ausgewählt werden. -paper format gibt das gewünschte Papierformat an (A3, A4, letter oder legal). -paperw n und -paperh n gibt die Papiergröße in Punkt an. -opw passwort bzw. -upw passwort gibt das Owner- bzw. User-Passwort an, um passwortgeschützte PDF-Dokumente zu verarbeiten.
1202
Alphabetische Kommandoreferenz
pdftotext [optionen] quelle.pdf [ziel.txt] pdftotext extrahiert den Text aus einer PDF-Datei und speichert ihn in einer reinen Textdatei (standardmäßig quelle.txt). Die Formatierung sowie alle Bilder gehen dabei verloren. Auch pdftotext gehört zur Poppler-Bibliothek. Die Optionen -f, -l, -opw und -upw haben dieselbe Bedeutung wie bei pdftops (siehe oben). -layout versucht, das Seitenlayout zu erhalten. -nopgbrk verzichtet darauf, das Seitenende mit einem Sonderzeichen zu kennzeichnen.
pidof programmname pidof ermittelt die Prozessnummer(n) für ein laufendes Programm. -o
liefert auch die Prozessnummern von laufenden Scripts. (Ohne diese Option funktioniert das nicht, weil pidof sonst nur den Programmnamen der Shell berücksichtigt.)
ping [optionen] adresse ping sendet einmal pro Sekunde ein Netzwerkpaket (ECHO_REQUEST gemäß dem Protokoll ICMP) an die angegebene Adresse. Wenn die Adresse erreichbar ist und Echo-Pakete nicht durch eine Firewall blockiert werden, empfängt ping Antwortpakete und gibt an, wie lange die Kommunikation hin und zurück gedauert hat. Standardmäßig läuft ping unbeschränkt, bis es durch (Strg)+(C) beendet wird. -c n sendet nur n Pakete und endet dann. -i n gibt die Intervallzeit zwischen zwei Paketen in Sekunden an. n ist eine Fließkommazahl, d. h., auch ping -i 0.1 ist möglich.
ps [optionen] ps zeigt die Liste der laufenden Prozesse (Programme) an. Das Kommando ist insbesondere im Zusammenspiel mit kill sehr praktisch, um hängende Programme gewaltsam zu beenden (siehe Seite 1173). ps ist mit zahllosen Optionen ausgestattet, die im Online-Manual (man ps) ausführlich beschrieben sind. Dort finden Sie auch Erklärungen dazu, was die zahlreichen Informationen bedeuten, die von ps ausgegeben werden. Im Gegensatz zu anderen Kommandos gibt es bei ps Optionen mit und ohne vorangehenden Bindestrich. Diese haben teilweise sogar eine unterschiedliche Bedeutung. (ps -a und ps a sind nicht gleichwertig!) Beide Optionstypen können in Gruppen gemischt werden, z. B. ps -A ul.
1203
Kapitel 39
Alphabetische Kommandoreferenz
a
zeigt auch Prozesse anderer Benutzer an (nicht nur die eigenen).
-A
zeigt alle Prozesse an.
f
zeigt den Prozessbaum an.
-f -l zeigt diverse Zusatzinformationen (Speicherbedarf, Priorität etc.) an. u
zeigt auch den Namen der Benutzer der jeweiligen Prozesse an. Die Option kann nicht mit l kombiniert werden.
x
zeigt auch Prozesse an, denen kein Terminal zugeordnet ist. Dabei handelt es sich unter anderem um Linux-interne Prozesse zur Verwaltung des Systems (Daemons).
Z
zeigt zusätzlich den SELinux-Kontext der Prozesse an.
ps2pdf [optionen] quelle.ps [ziel.pdf] ps2pdf erzeugt aus einer beliebigen PostScript- oder EPS-Datei eine PDF-Datei. Wenn Sie auf die Angabe von ziel.pdf verzichten, bekommt die PDF-Datei denselben Namen wie die PostScript-Datei (aber die Kennung .pdf, also quelle.pdf). -rn
gibt die Auflösung für Bitmap-Fonts an (Einheit DPI, also Dots Per Inch).
-dPDFSETTINGS=/default j /screen j /printer j /prepress gibt an, ob das PDF-Dokument für eine beliebige Verwendung, für die Bildschirmdarstellung, für einen gewöhnlichen Ausdruck oder für eine Belichtung (Buchdruck etc.) optimiert werden soll. Der Preis für die höhere Qualität ist die zunehmende Dateigröße. Diese vier Voreinstellungen vermeiden die Einzeleinstellung zahlreicher Optionen. -dEncodeColorImages=false verhindert jegliches Komprimieren von Bildern. Die resultierenden PDF-Dateien werden nun sehr groß. In Kombination mit der /prepress-Einstellung liefert ps2pdf nun PDFs in optimaler Druck- bzw. Belichtungsqualität. Unzählige weitere Optionen sind hier beschrieben: http://www.cs.wisc.edu/~ghost/doc/cvs/Ps2pdf.htm
pstree [optionen] [pid] pstree gibt einen Baum mit allen Prozessen auf dem Bildschirm aus. Der Baum macht deutlich, welcher Prozess von welchem anderen Prozess gestartet wurde. Wenn eine Prozessnummer angegeben wird, beginnt der Baum an dieser Stelle (sonst bei init, also dem ersten Prozess, der beim Systemstart ausgeführt wird).
1204
Alphabetische Kommandoreferenz
pvcreate [optionen] device Das LVM-Kommando pvcreate deklariert eine Partition bzw. ein Device als Physical Device (PV) zur späteren Nutzung in einer Volume Group (VG) (siehe vgcreate, vgextend). pvcreate setzt voraus, dass die Partition bzw. das Device vorher als LVM-Partition gekennzeichnet wurde. In fdisk verwenden Sie dazu das Kommando (T) und den Code 8e. Bei parted lautet das erforderliche Kommando set partitionsnummer lvm on.
pvdisplay pvname pvdisplay zeigt Detailinformationen zum angegebenen PV an.
pvremove pvname pvremove entfernt die PV-Kennzeichnung eines ungenutzten PVs.
pvscan pvscan listet alle PVs auf.
pwd
(bash)
pwd zeigt das aktuelle Verzeichnis an.
reboot [optionen] reboot beendet alle laufenden Prozesse und startet den Rechner anschließend neu (entspricht shutdown -r now).
recode zeichensatz1..zeichensatz2 datei recode zeichensatz1..zeichensatz2 < quelle > ziel recode führt eine Zeichensatzkonvertierung von Zeichensatz 1 nach Zeichensatz 2 durch. recode -l liefert eine umfangreiche Liste aller unterstützten Zeichensätze. Anwendungsbeispiele finden Sie auf Seite 373.
renice n pid renice verändert die Priorität des Prozesses mit der angegebenen PID-Nummer. n ist wahlweise die neue Priorität (ein Wert zwischen -20 und 20) oder ein Deltawert mit positivem oder negativem Vorzeichen (z. B. +3 oder -2). Nur root darf die Priorität von Prozessen erhöhen. Die höchste Priorität ist -20, die kleinste ist 20.
1205
Kapitel 39
Alphabetische Kommandoreferenz
resize2fs [optionen] device [größe] resize2fs verändert die Größe eines ext2/ext3/ext4-Dateisystems. Für die Größenangabe sind die Schreibweisen nK, nM und nG für kByte, MByte und GByte zulässig. Wenn Sie keine Größe angeben, passt resize2fs das Dateisystem an die Größe der zugrunde liegenden Partition bzw. des Logical Volumes an (ideal für Vergrößerungen). Vergrößerungen des Dateisystems sind im laufenden Betrieb möglich. Für eine Verkleinerung müssen Sie das Dateisystem aushängen und vorher fsck ausführen.
rm [optionen] dateien rm löscht die angegebenen Dateien. Verzeichnisse werden nur gelöscht wenn die Option -r (rekursiv) verwendet wird. Zum Löschen einzelner Verzeichnisse ist das Kommando rmdir vorgesehen. Wenn Dateien mit Sonderzeichen gelöscht werden sollen, müssen die Dateinamen in einfache Apostrophe eingeschlossen werden. Die wichtigsten Optionen vom rm sind: -f
löscht ohne Rückfragen (auch Verzeichnisse). Vorsicht!
-i bzw. --interactive oder -v bzw. --verbose zeigt vor dem Löschen jeder einzelnen Datei eine Rückfrage an. -r bzw. -R bzw. --recursive löscht auch Dateien in allen Unterverzeichnissen (Vorsicht!). Wenn dabei der gesamte Inhalt des Unterverzeichnisses gelöscht wird, wird auch das Unterverzeichnis selbst eliminiert. Beispiele
Das folgende Kommando löscht alle Backup-Dateien (Dateien, die mit ~ enden) im aktuellen Verzeichnis: user$
rm *~
rm löscht die Datei oder das Verzeichnis backup. Wenn backup ein Verzeichnis ist, werden auch alle darin enthaltenen Unterverzeichnisse und Dateien gelöscht! user$
rm -r backup
rm löscht alle Dateien, die mit dem Doppelkreuz # beginnen. Die Apostrophe sind erforderlich, damit die Shell # nicht als Kommentar interpretiert. user$
rm '#'*
rmdir [optionen] verzeichnis rmdir löscht das angegebene Verzeichnis. rmdir kann nur ausgeführt werden, wenn das Verzeichnis leer ist. Eventuell vorhandene Dateien müssen vorher mit rm (eventuell mit der Option -r) gelöscht werden. Die wichtigste Option lautet: -p bzw. --parents löscht auch Unterverzeichnisse im angegebenen Verzeichnis (sofern die Verzeichnisse – mit Ausnahme von Unterverzeichnissen – leer sind).
1206
Alphabetische Kommandoreferenz
rmmod [optionen] modulname rmmod entfernt das angegebene Modul aus dem Kernel. Das funktioniert nur, wenn das Modul nicht mehr benötigt wird. -a
entfernt alle zurzeit nicht benötigten Module aus dem Kernel.
route [optionen] route add/del [-net/-host] zieladresse [optionen] route zeigt die Routing-Tabelle für das Netzwerkprotokoll IP an, fügt einen neuen Eintrag hinzu (add) bzw. entfernt einen Eintrag (del). Die Zieladresse wird wahlweise in numerischer Form oder als Netzwerkname angegeben. Als Zieladresse ist auch das Schlüsselwort default erlaubt, um eine Standardregel zu definieren (z. B. für das Gateway). Beispiele für die Verwendung von route finden Sie auf den Seiten 383 und 822. -n
zeigt nur numerische IP-Adressen an und kontaktiert keinen Nameserver zur Auflösung der zugeordneten Namen.
-net adressiert ein Netzwerk. -host adressiert einen einzelnen Rechner. netmask maske gibt die gewünschte Netzwerkmaske an (z. B. 255.255.255.0). gw routingadresse leitet die Pakete an den angegebenen Router weiter. dev schnittstelle gibt die gewünschte Netzwerkschnittstelle an (z. B. eth0). Wenn dev die letzte Option ist, kann auf das Schlüsselwort verzichtet werden (also route add -net 192.34.34.34 netmask 255.255.255.0 eth1).
rpm optionen [dateiname/paketname] rpm installiert, aktualisiert oder entfernt RPM-Pakete bzw. zeigt Informationen zu diesen Paketen an. Grundlagen zum RPM-Format sowie Beispiele zur Anwendung von rpm finden Sie ab Seite 513. -i bzw. --install installiert die angegebene(n) Paketdatei(en). Der Installationsort kann durch die zusätzliche Option --root verzeichnis verändert werden. Wenn es sich beim angegebenen Paket um ein Quellpaket handelt, werden der Programmcode und die Konfigurationsdateien in /usr/src installiert. Der Installationsort kann in diesem Fall durch eine Veränderung von /etc/rpmrc eingestellt werden. Mit der Zusatzoption --test führt rpm keine Veränderungen durch, sondern gibt nur aus, was bei einer tatsächlichen Installation passieren würde.
1207
Kapitel 39
Alphabetische Kommandoreferenz
rpm versucht, automatisch die Integrität signierter Pakete zu überprüfen. Dazu muss aber der öffentliche Schlüssel der Signatur zur Verfügung stehen (siehe die Option --import). Wenn rpm auf die Kontrolle verzichten soll, übergeben Sie die Option --nosignature. Mit der Zusatzoption --nodeps können Sie ein Paket selbst dann installieren, wenn rpm glaubt, dass diverse Abhängigkeiten nicht erfüllt sind. (Falls zwei Pakete gegenseitig voneinander abhängig sind, besteht keine Notwendigkeit, --nodeps einzusetzen. Installieren Sie einfach beide Pakete gleichzeitig!) Die Zusatzoption --ignorearch ermöglicht eine Installation auch dann, wenn rpm erkennt, dass die CPU-Architektur nicht stimmt. Das ist bisweilen erforderlich, um 32-Bit-Pakete auf einer 64-Bit-Distribution zu installieren. Die Zusatzoption --force erzwingt eine Installation in jedem Fall, selbst dann, wenn rpm glaubt, dass das Paket bereits installiert ist. Mit der Zusatzoption --noscripts verzichtet rpm auf die automatische Ausführung von Installationsprogrammen. Unter Umständen funktioniert das gerade installierte Programm dann aber nicht ordnungsgemäß. -e bzw. --erase entfernt ein vorhandenes Paket. Wenn Sie zusätzlich die Option --nodeps verwenden, wird das Paket selbst dann entfernt, wenn andere Pakete davon abhängig sind. -U bzw. --upgrade aktualisiert ein bereits vorhandenes Paket. Von den veränderten Konfigurationsdateien des bisherigen Pakets werden automatisch Backup-Dateien erzeugt, alle anderen Dateien des bisherigen Pakets werden durch die neue Version ersetzt bzw. gelöscht. Mit der zusätzlichen Option --oldpackage können Sie ein neueres Paket durch ein älteres ersetzen. Auch beim Upgrade erreichen Sie durch --nodeps, dass rpm Paketabhängigkeiten ignoriert. -V bzw. --verify überprüft, ob sich irgendwelche Dateien eines Pakets seit der Installation verändert haben. Das Kommando liefert eine Liste aller veränderten Dateien. Dokumentationsdateien werden nicht überprüft. -q bzw. --query liefert Informationen über installierte Pakete bzw. über den Inhalt einer Paketdatei. In der einfachsten Form gibt rpm -q paketname den exakten Paketnamen inklusive Versionsnummer des angegebenen Pakets aus. Mit rpm -qf datei stellen Sie fest, zu welchem Paket eine bestimmte Datei Ihres Systems gehört. Das ist besonders bei Konfigurationsdateien sehr nützlich. Beispielsweise liefert rpm -qf /sbin/hwclock den Paketnamen util-linux-n. rpm -qp paket.rpm liefert Informationen über ein noch nicht installiertes Paket. Als Parameter muss in diesem Fall der Dateiname einer *.rpm-Datei verwendet werden. rpm -q --whatprovides attribut bzw. rpm -q --whatrequires attribut sucht nach allen installierten Paketen, die das angegebene Abhängigkeitsattribut zur Verfügung stellen bzw.
1208
Alphabetische Kommandoreferenz
erfordern. Diese zwei Optionen sind nicht geeignet, um noch nicht installierte Pakete zu durchsuchen! rpm -q --provides paket bzw. rpm -q --requires erstellt eine Liste aller Attribute, die das angegebene Paket zur Verfügung stellt bzw. benötigt. Die Optionen können auch für noch nicht installierte Paketdateien (zusätzliche Option -p) eingesetzt werden. Bei allen Abfragevarianten, die als Ergebnis ein Paket liefern, steuern Sie durch Zusatzoptionen die Informationsfülle zum gefundenen Paket: -i : -l : -lv : -c : -d : --scripts:
Kurzbeschreibung des Pakets, komprimierte Größe Liste aller Dateien des Pakets wie oben, aber mit Dateigröße, Zugriffsrechten etc. Liste aller Konfigurationsdateien des Pakets Liste aller Dateien mit Online-Dokumentation zum Paket Liste aller Installationsprogramme
Wenn Sie einfach nur eine unsortierte Liste aller installierten Pakete benötigen, führen Sie rpm -qa ohne weitere Parameter aus. rpm -qa --last sortiert alle Pakete nach dem Installationsdatum (das zuletzt installierte Paket zuerst). --import installiert den angegebenen GPG-Schlüssel. rpm kann anhand dieses Schlüssels die Integrität signierter Pakete überprüfen. Die erforderlichen Schlüsseldateien finden Sie auf allen Websites, die signierte RPM-Pakete zur Verfügung stellen.
rsync [optionen] quelle rsync [optionen] quelle ziel rsync kopiert Dateien vom Quell- in das Zielverzeichnis bzw. synchronisiert die beiden Verzeichnisse. Bei der ersten Syntaxvariante (kein Zielverzeichnis) werden die Dateien in das lokale Verzeichnis kopiert. rsync überträgt die Dateien wahlweise lokal oder verschlüsselt über das Netzwerk. Die Netzwerkvariante setzt voraus, dass auf dem zweiten Rechner ein SSH- oder RSYNC-Server läuft. Bevor das Kopierkommando startet, muss das Passwort angegeben werden. Für die Angabe der Quell- und Zielverzeichnisse bestehen die folgenden Syntaxvarianten: datei1 datei2 verzeichnis host:verz user@host:verz rsync://user@host/verz rsync://user@host:port/verz
lokale Dateien lokales Verzeichnis Verzeichnis auf dem Rechner host wie oben, aber SSH-Login unter dem Namen user Kommunikation mit RSYNC-Server RSYNC-Server am angegebenen Port
-a bzw. --archive kopiert den Verzeichnisinhalt rekursiv und erhält alle Dateiinformationen. Die Option ist eine Kurzfassung für -rlptgoD.
1209
Kapitel 39
Alphabetische Kommandoreferenz
--delete löscht im Zielverzeichnis Dateien bzw. Unterverzeichnisse, die im Quellverzeichnis nicht mehr existieren (Vorsicht!). -D bzw. --devices kopiert auch Zeichen- und Block-Device-Informationen. -e kommando bzw. --rsh=kommando gibt an, welches externe Shell-Programm eingesetzt wird, um rsync auf dem Zielrechner auszuführen. In der Regel wird dies ssh sein. Wenn Sie an das Kommando zusätzliche Optionen übergeben möchten, setzen Sie es in Hochkommas (z. B. -e "ssh -p 1234"). --exclude=muster gibt ein Muster für Dateien an, die nicht kopiert werden sollen. --exclude="*.o" schließt beispielsweise *.o-Dateien aus. (Zur Formulierung komplexerer Muster siehe man rsync.) -g bzw. --group gibt den Dateien im Zielverzeichnis dieselbe Gruppenzugehörigkeit wie bei Quelldateien. -l bzw. --links dupliziert symbolische Links des Quellverzeichnisses auch im Zielverzeichnis. -o bzw. --owner gibt den Dateien im Zielverzeichnis denselben Besitzer wie den Dateien im Quellverzeichnis. -p bzw. --perms gibt den Dateien im Zielverzeichnis dieselben Zugriffsrechte wie den Quelldateien. -r bzw. --recursive kopiert rekursiv auch alle Unterverzeichnisse. -t bzw. --times gibt den Dateien im Zielverzeichnis dieselbe Änderungszeit wie den Quelldateien. Auf diese Weise kann rsync bei einem neuerlichen Aufruf eindeutig erkennen, welche Dateien sich geändert haben. -u bzw. --update ignoriert Dateien, die im Zielverzeichnis bereits existieren und neuer sind als die Quelldatei. -v bzw. --verbose liefert ausführliche Informationen darüber, was gerade passiert. -W bzw. --whole-file kopiert bei Änderungen die gesamte Datei. Bei schnellen Netzwerkverbindungen kann das die Synchronisationsgeschwindigkeit ein wenig erhöhen. (Standardmäßig überträgt rsync nur die Änderungen und minimiert so die Menge der übertragenen Daten. Die Option -W vergrößert die zu übertragende Datenmenge, reduziert aber den Aufwand zur Feststellung der Änderungen. -W gilt automatisch, wenn es sich bei den Quell- und Zielverzeichnissen um lokale Verzeichnisse handelt. In diesem Fall erreichen Sie mit --no-whole-file, dass rsync dennoch den inkrementellen Änderungsmodus nutzt.)
1210
Alphabetische Kommandoreferenz
Anwendungsbeispiele zu rsync finden Sie auf Seite 317, speziell zur Nutzung im Netzwerk auf Seite 394.
scp [optionen] quelle ziel scp kopiert eine Datei zwischen zwei Rechnern in einem Netzwerk. Die Übertragung erfolgt verschlüsselt. scp setzt voraus, dass auf dem zweiten Rechner ein SSH-Server läuft. scp-Beispiele finden Sie auf Seite 386. Für die Angabe der Quell- und Zieldatei bzw. des Zielverzeichnisses bestehen die folgenden Syntaxvarianten: datei verzeichnis host: host:datei host:verzeichnis user@host:datei user@host:verzeichnis
lokale Datei lokales Zielverzeichnis Zielrechner (kopiert Dateien in das Heimatverzeichnis) Datei auf dem angegebenen Rechner Zielverzeichnis auf dem angegebenen Rechner Datei des Nutzers user auf dem angegebenen Rechner Zielverzeichnis des Nutzers user auf dem angegebenen Rechner
-l limit beschränkt die Übertragungsgeschwindigkeit (in kByte/s).
sed [optionen] kommando [< quelle > ziel] sed ist ein sogenannter Stream-Editor. Das Kommando wird normalerweise als Textfilter verwendet, um bestimmte Zeichen oder Zeichenkombinationen im Ausgangstext zu finden und zu bearbeiten (löschen, durch andere Zeichen ersetzen etc.). Die Steuerung des sed erfolgt durch Kommandos, die entweder auf alle Zeilen des Textes angewendet werden oder nur auf solche Zeilen, die bestimmten Bedingungen entsprechen. Der Umgang mit sed ist leider nicht ganz einfach. Selbst eine Beschreibung der elementaren Syntaxoptionen würden den Rahmen dieser Referenz bei Weitem sprengen. Deswegen beschränke ich mich hier auf zwei Beispiele. Eine ausgezeichnete (englischsprachige) Einführung in den Umgang mit sed finden Sie hier: http://www.grymoire.com/Unix/Sed.html Im ersten Beispiel löscht sed die erste bis dritte Zeile der Datei test und leitet den Rest der Datei an die Standardausgabe. Dabei steht d für das sed-Kommando (Delete). 1,3 gibt den Adressbereich an, in dem dieses Kommando wirkt. user$
Beispiel
sed 1,3d < test
Im zweiten Beispiel ersetzt sed alle »a« durch »A«. Dabei steht s für das Kommando reguläres Suchen und Ersetzen. Die in / eingeschlossenen Texte sind das Suchmuster und der einzusetzende Text. Da vor dem Kommando keine Adressangabe steht, wird es auf alle Zeilen angewandt. user$
sed s/a/A/ < test
1211
Kapitel 39
Alphabetische Kommandoreferenz
service script kommando service erlaubt es, unter Fedora, openSUSE, Red Hat und Ubuntu durch das Init-System verwaltete Dienste zu starten und zu stoppen. Zu den erlaubten Kommandos zählen start, stop, restart, reload und status. service --status-all liefert eine alpabetische Liste mit dem Status aller Dienste. Beispiele
Das folgende Kommando startet unter Fedora den Webserver Apache neu: root#
service httpd restart
Unter Ubuntu ist für Apache das Upstart-Script apache2 zuständig: root#
service apache2 restart
setfacl [optionen] [aclaktion] dateiname setfacl verändert die erweiterten Zugriffsrechte der angegebenen Dateien bzw. Verzeichnisse. Das funktioniert nur, wenn das Dateisystem ACLs (Access Control Lists) unterstützt (siehe auch Seite 338). Das Kommando wird üblicherweise zur Durchführung einer der vier folgenden Aktionen eingesetzt: -m aclregel fügt den vorhandenen ACLs eine weitere Regel (eine Access Control Entity, kurz ACE) hinzu. (m steht hier für Modify.) -x aclregel löscht die angegebene ACL-Regel. -M aclregeldatei wie -m, liest die Regel aber aus einer Datei. Regeldateien müssen wie die Ausgabe von getfacl aussehen. -X aclregeldatei wie -x, liest die Regel aber aus einer Datei. Der vereinfachte Aufbau einer ACL-Regel (einer ACE) geht aus der folgenden Tabelle hervor. (Die vollständige Syntax ist in man setfacl dokumentiert. Beispiele finden Sie auf Seite 340.) [u:]uid g:gid o[:] m[:]
[:rechte] [:rechte] [:rechte] [:rechte]
ändert Rechte für einen Benutzer. ändert Rechte für eine Gruppe. ändert die Rechte für alle anderen Benutzer. stellt die ACL-Maske (Effective Right Mask) ein.
Die rechte bestehen aus bis zu drei Buchstaben: r für Read, w für Write und x für Execute. Um einem Benutzer oder einer Gruppe alle Rechte zu entziehen, geben Sie - an. Wenn Sie der gesamten Regel d: voranstellen, gilt sie für die Standard-ACLs. Statt der Buchstaben u, g, o und m können Sie auch die Schlüsselwörter user, group, other und mask verwenden. setfacl kann durch weitere Optionen gesteuert werden:
1212
Alphabetische Kommandoreferenz
-b bzw. --remove-all entfernt alle ACL-Regeln. -d
wendet die übergebene Regel auf die Standard-ACL an.
-k bzw. --remove-default entfernt die Standard-ACL-Regeln. -n
verzichtet auf die sonst bei jeder ACL-Regeländerung automatische Neuberechnung der ACLMaske.
--restore=datei wendet die in der Datei angegebenen ACL-Regeln auf die Dateien im aktuellen Verzeichnis an. Eine ACL-Backup-Datei erstellen Sie mit getfacl -R. -R
wendet die angegebene Regel rekursiv auf alle Dateien und Unterverzeichnisse an.
setfattr [optionen] dateiname setfattr ändert die erweiterten Attribute der angegebenen Dateien bzw. Verzeichnisse. Das funktioniert nur, wenn das Dateisystem EAs (Extended Attributes) unterstützt (siehe auch Seite 338). -n attributname bzw. --name=attributname gibt den Namen des zu verändernden Attributs an. Dem eigentlichen Namen muss user. vorangestellt werden (also -n user.meinattribut). -v wert bzw. --value=wert gibt den im Attribut zu speichernden Wert an. -x attributname löscht das angegebene Attribut. --restore=datei wendet die in der Datei angegebenen EA-Definitionen auf die Dateien im aktuellen Verzeichnis an. Eine EA-Backup-Datei erstellen Sie mit getfattr -R -d.
setterm [option] setterm verändert diverse Einstellungen des Terminals. Wenn das Kommando ohne die Angabe einer Option ausgeführt wird, zeigt es eine Liste aller möglichen Optionen an. Nützliche Optionen zur Shell-Programmierung sind: -blank n aktiviert nach n Minuten ohne Eingabe den Bildschirmschoner (nur für Textkonsolen). -bold on j off aktiviert bzw. deaktiviert die fette Schrift. In Textkonsolen erscheint der Text zwar nicht fett, aber immerhin in einer anderen Farbe als der sonstige Text. -clear löscht den Inhalt des Terminals.
1213
Kapitel 39
Alphabetische Kommandoreferenz
-default stellt Farben und Textattribute auf die Standardeinstellung zurück. -half-bright on j off stellt hervorgehobene Schrift ein/aus. -inversescreen on oder off invertiert die Darstellung in der Textkonsole (schwarzer Text auf weißem Hintergrund) bzw. stellt wieder den Normalzustand her. -reverse on j off stellt inverse Schrift ein/aus. -underline on j off stellt unterstrichene Schrift ein/aus.
sfdisk [optionen] sfdisk listet die Partitionen einer Festplatte auf bzw. partitioniert die Festplatten neu. -d [device] listet alle Partitionen aller Festplatten bzw. der angegebenen Festplatte auf. Das Ausgabeformat eignet sich zur Weiterverarbeitung durch sfdisk. --force führt die Partitionierung auch dann durch, wenn sfdisk glaubt, dass die Partition bzw. Festplatte verwendet wird, bzw. wenn Partitionsgrenzen nicht mit Zylindergrenzen übereinstimmen. -l [device] listet alle Partitionen aller Festplatten bzw. der angegebenen Festplatte in einer gut lesbaren Form auf. Mit der zusätzlichen Option -uS, -uB, -uC oder -uM verwendet sfdiks Sektoren (512 Byte), Blöcke (1024 Byte), Zylinder oder MByte als Maßeinheit. -s device liefert die Anzahl der Blöcke (zu je 1024 Byte) der angegebenen Festplatte oder Partition. -uS, -uB, -uC, -uM verwendet Sektoren (512 Byte), Blöcke (1024 Byte), Zylinder oder MByte als Maßeinheit. device < partionierungstabelle partitioniert die Festplatte anhand der übergebenen Tabelle neu. Die Partitionierungstabelle muss dasselbe Format wie die Ausgabe von sfdisk -d haben.
sftp [optionen] sshserver sftp [optionen] user@sshserver:dateiname sftp ist eine Alternative zum unsicheren ftp-Kommando. In der ersten Syntaxvariante stellt sftp eine Verbindung zum angegebenen SSH-Server her. Nach dem Login können Sie interaktiv Dateien zwischen dem lokalen Rechner und dem SSH-Server übertragen. In der zweiten Syntaxvariante überträgt sftp die angegebene Datei nach der Passworteingabe direkt auf den lokalen Rechner.
1214
Alphabetische Kommandoreferenz
-b batchdatei führt die in der Batch-Datei angegebenen Kommandos aus.
shansum dateien sha1sum, sha224sum, sha256sum, sha384sum und sha512sum berechnen Prüfsummen zu allen angegebenen Dateien. Die Zahl im Kommando gibt die Bitlänge der Prüfsumme an (160 Bits bei sha1sum). Die Prüfsummen werden dazu verwendet, um nach der Übertragung einer Datei sicherzustellen, dass die Datei unverändert ist.
shutdown [optionen] zeitpunkt [nachricht] shutdown fährt den Rechner herunter. Als Zeitpunkt muss entweder eine Uhrzeit (hh:mm), die Anzahl der Minuten gerechnet von der aktuellen Zeit (+m) oder das Schlüsselwort now (also sofort) angegeben werden. shutdown kann nur von root ausgeführt werden. Oft ist Linux so konfiguriert, dass Anwender ohne root-Rechte den Rechner mit (Alt)+(Strg)+(Entf) neu starten können. shutdown informiert alle anderen Benutzer darüber, dass das System in Kürze abgeschaltet wird, und lässt keine neuen Logins mehr zu. Anschließend werden alle Prozesse gewarnt, dass sie in Kürze gestoppt werden. Einige Programme (etwa emacs, vi ...) nutzen diese Warnung und speichern alle offenen Dateien in Backup-Kopien. -c
bricht einen bereits eingeleiteten shutdown-Vorgang ab (sofern das noch möglich ist).
-f
wie -r, aber schneller.
-F
bewirkt eine Überprüfung der Dateisysteme beim nächsten Neustart. shutdown erzeugt zu diesem Zweck die Datei /forcefsck. Ist sie vorhanden, wird bei den meisten Distributionen beim Neustart eine Dateisystemüberprüfung auslöst.
-h
hält das System nach dem Herunterfahren an. Der Rechner reagiert dann nicht mehr auf Eingaben. Auf dem Bildschirm erscheint die Meldung System Halted. Der Rechner kann anschließend ausgeschaltet werden. (Wenn der Kernel APM- oder ACPI-Funktionen unterstützt, wird der Rechner automatisch ausgeschaltet.)
-n
führt den Shutdown besonders schnell aus (unter Umgehung der Init-V-Prozesse).
-r
veranlasst nach dem Herunterfahren des Systems einen Neustart.
-t sekunden bestimmt, wie lange zwischen der Warnnachricht und dem Kill-Signal für die Prozesse gewartet werden soll (normalerweise 20 Sekunden).
sleep zeit sleep versetzt das laufende Programm für die angegebene Zeit in den Ruhezustand. Das Programm konsumiert in dieser Zeit praktisch keine Rechenzeit. Die Zeitangabe erfolgt normalerweise
1215
Kapitel 39
Alphabetische Kommandoreferenz
in Sekunden. Optional können die Buchstaben m, h oder d angehängt werden, um die Zeit in Minuten, Stunden oder Tagen anzugeben.
smartctl optionen device smartctl steuert die SMART-Funktionen der Festplatte. Damit können Sie mögliche Probleme der Festplatte frühzeitig erkennen. Grundlagen zu SMART sowie Anwendungsbeispiele zu smartctl finden Sie ab Seite 679. -a bzw. --all liefert alle verfügbaren SMART-Informationen. -d ata/scsi/3ware,n gibt den Festplattentyp an. Die Option ist nur erforderlich, wenn smartctl den Typ nicht selbst erkennen kann. Das gilt insbesondere für SATA-Festplatten, bei denen smartctl oft glaubt, es würde sich um SCSI-Festplatten handeln. Die Einstellung 3ware,n ermöglicht die Nutzung der SMART-Funktionen für Festplatten, die an einen 3ware-RAID-Controller angeschlossen sind (Details siehe man smartctl). -H bzw. --health gibt an, ob die Festplatte momentan in Ordnung ist und voraussichtlich die nächsten 24 Stunden noch funktionieren wird. -i bzw. --info liefert Basisinformationen zur Festplatte. -l error/selftest bzw. --log=error/selftest liefert Informationen zu den letzten fünf Fehlern bzw. zu den Ergebnissen der letzten 21 Selbsttests. -s on/off bzw. --smart=on/off aktiviert bzw. deaktiviert die SMART-Funktionen. -t short/long bzw. --test=short/long führt einen kurzen bzw. langen Selbsttest durch. Das Testergebnis sehen Sie sich später mit -l selftest an.
smbclient [optionen] smbclient verzeichnis [passwort] [optionen] smbclient ermöglicht einen interaktiven Zugriff auf Windows-Netzwerkverzeichnisse. In der ersten Syntaxvariante ermitteln Sie mit dem Programm verfügbare Windows-Ressourcen. In der zweiten Variante geben Sie das gewünschte Netzwerkverzeichnis an (z. B. //mars/data, wenn Sie das Verzeichnis data auf dem Rechner mars nutzen möchten). Nach dem Verbindungsaufbau gelangen Sie in eine Shell, in der Sie ähnlich wie bei ftp Kommandos ausführen und so beispielsweise Dateien übertragen. Anwendungsbeispiele finden Sie auf Seite 961. -L rechnername liefert die Liste der Netzwerkressourcen auf dem angegebenen Windows-Rechner bzw. Samba-Server.
1216
Alphabetische Kommandoreferenz
-N
verzichtet auf die automatische Passwortabfrage. Die Option ist nur zweckmäßig, wenn Sie wissen, dass für den Zugriff auf eine bestimmte Netzwerkressource kein Passwort erforderlich ist.
-U benutzername gibt den Benutzernamen an (nur notwendig, wenn dieser vom aktuellen Login-Namen abweicht). -W arbeitsgruppenname gibt den Namen der Windows-Workgroup an (nur notwendig, wenn diese nicht in /etc/samba/ smb.conf enthalten ist).
smbtree [optionen] smbtree liefert eine baumförmige Aufstellung aller im Netzwerk erreichbaren WindowsNetzwerkverzeichnisse bzw. Samba-Objekte. -b
durchsucht das Netzwerk mit Broadcast Requests, anstatt sich auf die Ergebnisse des lokalen Master-Browsers zu verlassen.
-D
liefert nur eine Liste der erreichbaren Domänen bzw. Arbeitsgruppen.
-N
verzichtet auf die Passwortabfrage. Das ist nur sinnvoll, wenn es Netzwerkressourcen gibt, die ohne Passwort erreichbar sind.
-S
liefert nur eine Liste der erreichbaren Server.
-U bzw. --user=name[%password] gibt den Namen (und optional das Passwort) an.
sort [optionen] datei sort sortiert die angegebene Datei und gibt das Ergebnis auf dem Bildschirm aus. Die Sortierordnung ist durch die Spracheinstellungen und speziell durch die Umgebungsvariable LC_COLLATE definiert. -c
überprüft, ob die Datei sortiert ist oder nicht.
-f
behandelt Klein- und Großbuchstaben als gleichwertig.
-k n1,n2 berücksichtigt nur die Zeichen zwischen der n1-ten und der n2-ten Spalte. Die Spaltennummerierung beginnt mit 1. Spalten werden normalerweise durch Leer- oder Tabulatorzeichen voneinander getrennt, siehe aber -t. Wenn n2 nicht angegeben wird, dann werden alle Zeichen ab n1 bis zum Zeilenende berücksichtigt. -m
fügt zwei oder mehrere vorsortierte Dateien zu einer großen sortierten Datei zusammen: Das geht schneller, als die Dateien vorher zusammenzufügen und erst dann zu sortieren.
1217
Kapitel 39
Alphabetische Kommandoreferenz
-o ergebnisdatei schreibt das Ergebnis in die angegebene Datei. Die Datei darf mit der zu sortierenden Datei übereinstimmen. -r
sortiert in umgekehrter Reihenfolge.
-tz
gibt das Trennzeichen zwischen zwei Spalten an (die Standardeinstellung ist White Space, also eine beliebige Mischung aus Leer- und Tabulatorzeichen).
split [optionen] datei [zieldatei] split zerlegt die angegebene Datei in mehrere Einzeldateien. Die Ausgangsdatei wird dabei (je nach Optionen) alle n Byte, kByte oder Zeilen getrennt. Wenn keine Zieldatei angegeben wird, liefert das Kommando die Dateien xaa, xab etc. Wenn eine Zieldatei angegeben wird, dann wird für die Ergebnisdateien dieser Dateiname zusammen mit der Zeichenkombination aa, ab etc. verwendet. -n bzw. -l n bzw. --lines=n zerlegt die Ausgangsdatei in Einzeldateien mit je n Zeilen. -b n bzw. --bytes=n trennt die Ausgangsdatei alle n Bytes. Die Größenangabe kann auch in kByte, MByte, GByte bzw. in Vielfachen von 1000 Byte angegeben werden: kB (1000 Byte), K (1024 Byte), MB (106 Byte), M (10242 Byte), GB (109 Byte oder G (10243 Byte). -C n bzw. --line-bytes=n wie -b, allerdings werden die Dateien an Zeilengrenzen zerlegt und sind daher zumeist einige Byte kleiner als n.
ssh [optionen] rechnername ssh [optionen] rechnername kommando In der ersten Syntaxvariante öffnet ssh eine Shell auf einem anderen Rechner und ermöglicht es so, auf diesem Rechner interaktiv zu arbeiten. Die zweite Syntaxvariante führt ein einzelnes Kommando auf dem zweiten Rechner aus. ssh funktioniert nur, wenn auf dem zweiten Rechner ein SSH-Server läuft. Hintergründe und Beispiele zur Anwendung von ssh finden Sie auf Seite 385, Tipps zur SSHServer-Konfiguration auf Seite 982. -l loginname verwendet auf dem zweiten Rechner den angegebenen Login-Namen statt des aktuellen Benutzernamens. Der gewünschte Login-Name kann auch in der Form ssh loginname@rechnername angegeben werden. -L localport:host:hostport bildet einen Tunnel zwischen dem lokalen Rechner (Port localport) und dem zweiten Rechner (Port hostport). -X
1218
ermöglicht die Ausführung von X-Programmen.
Alphabetische Kommandoreferenz
start/stop name start startet einen durch Upstart verwalteten Hintergrundprozess, stop beendet den Prozess. name muss mit dem Namen einer Upstart-Konfigurationsdatei übereinstimmen.
strings [optionen] datei Das Kommando zeigt die Zeichenketten innerhalb einer Binärdatei an. Das ist beispielsweise dann praktisch, wenn Sie einen Text (z. B. eine Fehlermeldung) in einer Programmdatei suchen.
su [optionen] [user] su (substitute user) ohne Optionen wechselt ohne mühseliges logoff und login, aber natürlich mit Passworteingabe, in den root-Modus. Damit ist bis zum nächsten exit-Kommando root der aktive User. Optional kann bei su statt des Standard-Users root auch ein anderer User angegeben werden. Wenn su von root ausgeführt wird, muss beim User-Wechsel nicht einmal ein Passwort angegeben werden. -c ’kommando’ führt nur das angegebene Kommando mit root-Rechten aus. -l bzw. --login beim User-Wechsel wird die neue Shell als Login-Shell gestartet. Das heißt, es werden alle Login-Dateien mit eingelesen. Das ist erforderlich, damit Umgebungsvariablen wie PATH korrekt konfiguriert werden.
sudo [optionen] kommando sudo führt ein Kommando aus, als würde es von einem anderen Benutzer (normalerweise root) ausgeführt. Damit können dank sudo gewöhnliche Benutzer administrative Aufgaben übernehmen bzw. systemkritische Kommandos ausführen, ohne dazu das root-Passwort zu kennen. Bevor sudo die Ausführung eines Programms erlaubt, muss dieses Recht für einen bestimmten Benutzer und für ein bestimmtes Programm in der Datei /etc/sudoers angegeben werden. Weitere Details zu sudo finden Sie auf Seite 358. -b
startet das angegebene Kommando im Hintergrund.
-H
trägt das Home-Verzeichnis des Benutzers, für dessen Account das Kommando ausgeführt wird, in die $HOME-Umgebungsvariable ein (also üblicherweise /root).
-K
löscht das gespeicherte Passwort. Beim nächsten Aufruf von sudo muss neuerlich das Passwort angegeben werden.
-s
startet die in $SHELL angegebene Shell. Das ermöglicht es, mehrere Kommandos in einer Shell auszuführen, ohne jedes Mal sudo voranzustellen.
1219
Kapitel 39
Alphabetische Kommandoreferenz
-u benutzer startet das Kommando für den angegebenen Benutzer (statt für root).
sync Führt alle gepufferten Schreiboperationen auf den Festplatten aus. Wenn aus irgendeinem Grund ein geordnetes Beenden von Linux nicht möglich ist – d. h., wenn die Kommandos shutdown, reboot und halt nicht ausführbar sind und der Rechner nicht auf (Alt)+(Strg)+(Entf) reagiert –, dann sollten Sie sync unmittelbar vor dem Ausschalten ausführen. Das ist aber nur eine Notlösung!
sysctl optionen sysctl liest den Zustand von Kernelparametern bzw. verändert ihren Wert im laufenden Betrieb. -a
liefert eine Liste aller verfügbaren Kernelparameter inklusive der aktuellen Einstellung.
-n parameter liefert den aktuellen Wert des angegebenen Kernelparameters. -w parameter=wert verändert den angegebenen Parameter. -p [dateiname] liest /etc/sysctl.conf bzw. die angegebene Datei und verändert die dort angegebenen Kernelparameter entsprechend.
tac datei tac gibt die angegebene Textdatei in umgekehrter Reihenfolge auf dem Bildschirm aus, d. h. die letzte Zeile zuerst (siehe auch cat auf Seite 1141).
tail [optionen] datei tail gibt die letzten zehn Zeilen einer Textdatei auf dem Bildschirm aus. -n zeilen gibt die angegebene Anzahl von Zeilen aus. -f
Beispiel
Das folgende Kommando zeigt die letzten zehn Zeilen von messages an. Wenn neue Zeilen hinzukommen, werden auch diese angezeigt (sodass nach kurzer Zeit der ganze Bildschirm genutzt wird – und nicht nur zehn Zeilen). root#
1220
liest die Datei regelmäßig aus und gibt alle neuen Zeilen aus. In dieser Form eignet sich tail vor allem zur Beobachtung von Protokolldateien.
tail -f /var/log/messages
Alphabetische Kommandoreferenz
tar aktion [optionen] dateien tar aktion [optionen] verzeichnisse tar vereint mehrere Dateien oder ganze Verzeichnisse in einem sogenannten Archiv bzw. extrahiert aus diesem Archiv wieder ihre Bestandteile. tar war ursprünglich als Tool zum Lesen und Schreiben von Daten auf einem Streamer konzipiert. tar greift deswegen standardmäßig auf den installierten Streamer (zumeist /dev/tape oder /dev/rmt0) zu. Wenn Sie ein Archiv in einer Datei anlegen möchten (beispielsweise, um diese Datei anschließend auf eine CD zu brennen), müssen Sie die Option -f datei angeben. Da tar je nach Angabe der Optionen die zu archivierenden Dateien auch komprimiert, ist es in seiner Funktion mit dem unter Windows verbreiteten Programm WinZIP zu vergleichen. Die typische Kennung für Archivdateien ist .tar. Wenn die Archivdatei komprimiert ist, lauten die Kennungen zumeist .tgz, .tar.gz oder .tar.bz2. Die Steuerung von tar erfolgt in zwei Stufen: Zum einen muss eine Aktion angegeben werden, die tar ausführen soll, und zum anderen kann diese Aktion durch eine oder mehrere Optionen gesteuert werden. Auch wenn Aktionen und Optionen formal gleich aussehen, besteht ein wesentlicher Unterschied: Es muss genau eine Aktion (nicht mehr und nicht weniger) vor allen anderen Optionen angegeben werden. Während in den nächsten Zeilen alle Aktionen kurz beschrieben sind, wurden hier nur die wichtigsten Optionen aufgezählt (siehe man tar). Auf vielen Unix-Systemen erfolgt die Steuerung von tar zwar (zumeist) mit denselben Kommandos und Optionen, die Syntax ist aber anders: Es werden alle Kommandos und Optionen als ein Block ohne die üblichen Optionsstriche angegeben, etwa tar cvf name.tar pfad. GNU-tar versteht beide Syntaxvarianten, d. h., es ist Ihnen überlassen, ob Sie Optionsstriche verwenden oder nicht. tar-Beispiele finden Sie auf Seite 316. Seite 386 zeigt, wie Sie tar mit ssh kombinieren, um einen Verzeichnisbaum sicher über ein Netzwerk zu kopieren. Aktionen -A bzw. --catenate bzw. --concatenate hängt an ein vorhandenes Archiv ein weiteres Archiv an. Diese Option ist nur für Streamer geeignet (nicht für Archivdateien). -c bzw. --create erzeugt ein neues Archiv, d. h., ein eventuell vorhandenes Archiv wird überschrieben. -d bzw. --diff bzw. --compare vergleicht die Dateien des Archivs mit den Dateien des aktuellen Verzeichnisses und stellt eventuelle Unterschiede fest. -r bzw. --append erweitert das Archiv um zusätzliche Dateien. --delete löscht Dateien aus dem Archiv. Nur für Archivdateien (nicht für Streamer) geeignet. -t bzw. --list zeigt das Inhaltsverzeichnis des Archivs an.
1221
Kapitel 39
Alphabetische Kommandoreferenz
-u bzw. --update erweitert das Archiv um neue oder geänderte Dateien. Die Option kann nicht für komprimierte Archive verwendet werden. Vorsicht: Das Archiv wird immer größer, weil bereits vorhandene Dateien nicht überschrieben werden! Die neuen Dateien werden einfach an das Ende des Archivs angehängt. -x bzw. --extract extrahiert die angegebenen Dateien aus dem Archiv und kopiert sie in das aktuelle Verzeichnis. Die Dateien werden dabei nicht aus dem Archiv gelöscht. Optionen -C verzeichnis extrahiert die Dateien in das angegebene (statt in das aktuelle) Verzeichnis. -f datei verwendet die angegebene Datei als Archiv (anstatt auf den Streamer zuzugreifen). Wenn statt eines Dateinamens ein einfacher Bindestrich angegeben wird (-f -), werden die Daten an den Standardausgabekanal weitergeleitet bzw. von der Standardeingabe gelesen. Das ist vor allem dann sinnvoll, wenn zwei tar-Kommandos durch j verknüpft werden sollen (typischerweise zum Transportieren ganzer Dateibäume). -j bzw. --bzip2 komprimiert bzw. dekomprimiert das gesamte Archiv durch bzip2 (siehe auch -z!). -J bzw. --xz komprimiert bzw. dekomprimiert das gesamte Archiv durch xz. Das setzt voraus, dass das Kommando xz zur Verfügung steht. Bei vielen Distributionen müssen Sie dazu das Paket xzutils installieren. -L n bzw. --tape-length n gibt die Kapazität des Streamers in kByte an. Wenn die Kapazität durch die Größe des Archivs überschritten wird, fordert tar zu einem Wechsel des Magnetbands auf. -N datum bzw. --after-date datum bzw. --newer datum archiviert nur Dateien, die aktueller als das angegebene Datum sind. -T datei bzw. --files-from datei archiviert bzw. extrahiert die in der Datei angegebenen Dateinamen. -v bzw. --verbose zeigt während der Arbeit alle Dateinamen auf dem Bildschirm an. Wenn -v in Kombination mit dem Kommando t verwendet wird, werden zusätzliche Informationen zu den Dateien angezeigt (Dateigröße etc.). Wenn die Option zweimal angegeben wird, werden die Informationen noch ausführlicher. -W bzw. --verify überprüft nach dem Schreiben die Korrektheit der gerade archivierten Dateien. Kann nicht für komprimierte Archive verwendet werden.
1222
Alphabetische Kommandoreferenz
-z bzw. --gzip komprimiert bzw. dekomprimiert das gesamte Archiv durch gzip. Für das Anlegen von *.tgzDateien ist diese Option sehr praktisch. Wenn dagegen tatsächlich Daten auf einem Streamer gespeichert werden, kann die Option gefährlich sein: Ein einziger Fehler auf dem Magnetband kann das gesamte Archiv unbrauchbar machen! (Ohne Kompression werden dann zwar auch Dateien zerstört, im Regelfall ist der Schaden aber deutlich geringer.) DAT-Streamer sind in der Lage, die zu verarbeitenden Daten selbst zu komprimieren (das geht schneller, ist aber nicht so effektiv wie gzip).
tasksel tasksel installiert oder deinstalliert vordefinierte Paketgruppen. Das Kommando steht nur auf Distributionen zur Verfügung, die die Debian-Paketverwaltung nutzen. install gruppenname installiert alle Pakete der angegebenen Paketgruppe. remove gruppenname entfernt alle Pakete der angegebenen Paketgruppe. Vorsicht: Bei älteren tasksel-Versionen werden die Pakete ohne Rücksicht auf Abhängigkeiten zu anderen Paketen entfernt. Das führt dazu, dass oft wesentlich mehr Pakete als beabsichtigt deinstalliert werden. --list-tasks ermittelt eine Liste aller definierten Paketgruppen. --list-tasks gruppenname listet alle Pakete der angegebenen Paketgruppe auf.
tee datei tee dupliziert die Standardeingabe, zeigt eine Kopie an und speichert die andere in einer Datei. In der Praxis ist das dann sinnvoll, wenn die Ausgabe eines Kommandos auf dem Bildschirm beobachtet, aber gleichzeitig auch in einer Datei gespeichert werden soll. Eine einfache Umleitung mit > in eine Datei hätte zur Folge, dass auf dem Bildschirm nichts zu sehen ist.
telinit n telinit wechselt in den angegebenen Runlevel. Bei Upstart-Systemen erzeugt das Kommando das Ereignis runlevel n.
test ausdruck
(bash)
test wird in bash-Scripts zur Formulierung von Bedingungen verwendet und zumeist in if-Abfragen und Schleifen eingesetzt. Je nachdem, ob die Bedingung erfüllt ist, liefert es den Wahrheitswert 0 (wahr) oder 1 (falsch). Statt test kann auch die Kurzschreibweise [ ausdruck ] verwendet werden, wobei Leerzeichen vor und nach dem Ausdruck angegeben werden müssen.
1223
Kapitel 39
Alphabetische Kommandoreferenz
Wenn test oder die Kurzschreibweise [ ausdruck ] als Bedingung in einer Verzweigung oder Schleife verwendet wird, muss die Bedingung mit einem Strichpunkt abgeschlossen werden, also z. B. if [ "$1" = "abc" ]; then ... if-Abfragen können manchmal durch die Formulierung test "$1" = "abc" && kommando ersetzt werden. In diesem Fall ist kein Strichpunkt erforderlich. Das Kommando wird nur ausgeführt, wenn die vorherige Bedingung erfüllt war. Zeichenketten [ [ [ [ [
zk ] -n zk ] -z zk ] zk1 = zk2 ] zk1 != zk2 ]
wahr, wenn die Zeichenkette nicht leer ist wahr, wenn die Zeichenkette nicht leer ist (wie [ zk ]) wahr, wenn die Zeichenkette leer ist (0 Zeichen) wahr, wenn die Zeichenketten übereinstimmen wahr, wenn die Zeichenketten voneinander abweichen
Die Zeichenketten bzw. Variablen sollten in Hochkommata gestellt werden (z. B. [ "$1" = "abc" ] oder [ "$a" = "$b" ]). Andernfalls kann es bei Zeichenketten mit mehreren Wörtern zu Fehlern kommen. Zahlen [ [ [ [ [ [
z1 z1 z1 z1 z1 z1
-eq -ne -gt -ge -lt -le
z2 z2 z2 z2 z2 z2
] ] ] ] ] ]
wahr, wenn die Zahlen gleich sind (Equal) wahr, wenn die Zahlen ungleich sind (Not Equal) wahr, wenn z1 größer z2 ist (Greater Than) wahr, wenn z1 größer gleich z2 ist (Greater Equal) wahr, wenn z1 kleiner z2 ist (Less Than) wahr, wenn z1 kleiner gleich z2 ist (Less Equal)
Dateien (auszugsweise) [ -d dat ] [ -e dat ] [ -f dat ] [ [ [ [ [ [ [
1224
-L dat ] -r dat ] -s dat ] -w dat ] -x dat ] dat1 -ef dat1 -nt
wahr, wenn es sich um ein Verzeichnis handelt (Directory) wahr, wenn die Datei existiert (Exist) wahr, wenn es sich um eine einfache Datei (und nicht um ein Device, ein Verzeichnis ...) handelt (File) wahr, wenn es sich um einen symbolischen Link handelt wahr, wenn die Datei gelesen werden darf (Read) wahr, wenn die Datei mindestens 1 Byte lang ist (Size) wahr, wenn die Datei verändert werden darf (Write) wahr, wenn die Datei ausgeführt werden darf (Execute) dat2 ] wahr, wenn beide Dateien denselben Inode haben (Equal File) dat2 ] wahr, wenn Datei 1 neuer als Datei 2 ist (Newer Than)
Alphabetische Kommandoreferenz
Verknüpfte Bedingungen [ ! bed ] [ bed1 -a bed2 ] [ bed1 -o bed2 ]
wahr, wenn die Bedingung nicht erfüllt ist wahr, wenn beide Bedingungen erfüllt sind (And) wahr, wenn mindestens eine der Bedingungen erfüllt ist (Or)
top [q] top zeigt alle fünf Sekunden die Liste aller laufenden Prozesse an, wobei die Prozesse nach ihrem Anteil an der Rechenzeit geordnet werden. Wenn beim Aufruf der optionale Parameter q angegeben wird, aktualisiert top die Liste ständig und beansprucht die gesamte freie Rechenzeit. (Q) beendet das Programm.
touch [optionen] dateien touch verändert den zusammen mit der Datei gespeicherten Zeitpunkt der letzten Änderung. Wenn das Kommando ohne Optionen verwendet wird, wird als Änderungszeit die aktuelle Zeit gespeichert. Wenn die Datei noch nicht existiert, wird eine neue, 0 Byte lange Datei erzeugt. -d zeit speichert den angegebenen Zeitpunkt (Datum plus Uhrzeit). -r datei verwendet die gespeicherte Änderungszeit der angegebenen Datei. Die beiden folgenden Kommandos gleichen die Änderungszeiten aller Dateien eines Verzeichnisses mit den Dateien eines zweiten Verzeichnisses ab. Das ist z. B. dann sinnvoll, wenn Sie bei einem größeren cp-Kommando die Option -a vergessen haben und die kopierten Dateien nun alle das aktuelle Datum aufweisen. user$ user$
Beispiel
cd zielverzeichnis find . -type f -exec touch -r /quellverzeichnis/{} {} \;
tr [optionen] zk1 [zk2] [ < quelle > ziel] tr ersetzt in der angegebenen Quelldatei alle Zeichen der Zeichenkette 1 durch die entsprechenden Zeichen der Zeichenkette 2. Die beiden Zeichenketten sollten gleich lang sein. Zeichen, die in der ersten Zeichenkette nicht vorkommen, bleiben unverändert. Es ist nicht möglich, ein einzelnes Zeichen durch mehrere Zeichen zu ersetzen (etwa ö durch "o) – dazu müssen Kommandos wie recode oder sed verwendet werden. -d
löscht die in Zeichenkette 1 angegebenen Zeichen. Zeichenkette 2 braucht nicht angegeben zu werden.
Im folgenden Beispiel ersetzt tr in text.lin alle Klein- durch Großbuchstaben: user$
Beispiel
tr a-zäöü A-ZÄÖÜ < text.lin
1225
Kapitel 39
Alphabetische Kommandoreferenz
tune2fs [optionen] device Mit tune2fs können diverse Systemparameter eines ext2-/ext3-/ext4-Dateisystems verändert werden. -c n gibt an, nach wie vielen mount-Vorgängen die Partition beim Booten auf Fehler kontrolliert werden soll. 0 bedeutet, dass nie eine Überprüfung erfolgen soll. -i n gibt an, wie oft (in Tagen) die Partition beim Booten auf Fehler kontrolliert werden soll. 0 bedeutet, dass nie eine Überprüfung erfolgen soll. -l
zeigt Informationen zum angegebenen Dateisystem an, ändert aber nichts.
-m n gibt an, wie viel Prozent des Datenträgers für Daten von root reserviert werden sollen (bei mke2fs üblicherweise 5 Prozent). -U neue-uuid bzw. -U random gibt dem Dateisystem eine neue UUID.
type kommando
(bash)
type ermittelt, ob es sich beim angegebenen Kommando um ein Shell-Kommando (beispielsweise cd), eine selbst definierte Funktion oder um eine alias-Abkürzung handelt (siehe Seite 440). Die Meldung command is hashed bedeutet, dass es sich um ein in dieser Sitzung bereits ausgeführtes Linux-Kommando handelt, dessen Pfadnamen sich die bash in einem Hash-Verzeichnis gemerkt hat.
ulimit option grenzwert
(bash)
ulimit begrenzt die Systemressourcen, die von der Shell und den aus ihr gestarteten Prozessen in Anspruch genommen werden. Größenangaben erfolgen generell in kByte. ulimit wird oft in /etc/profile voreingestellt. -c speicher beschränkt die Größe von Coredumps (also des Speicherabbilds, das bei einem Programmabsturz automatisch auf der Festplatte gespeichert wird). -d speicher beschränkt den Speicher für das Datensegment von Prozessen. -f dateigröße verhindert die Erzeugung von Dateien, die größer als der angegebene Grenzwert sind. Funktioniert nicht mit allen Dateisystemen. -s speicher beschränkt den Stack-Speicher.
1226
Alphabetische Kommandoreferenz
umount device umount verzeichnis umount entfernt einen Datenträger aus dem Linux-Dateisystem. Die Angabe des Datenträgers erfolgt entweder durch seine Device-Bezeichnung oder durch das Verzeichnis, durch das er in das Dateisystem eingebunden ist. Das Kommando kann nur von root ausgeführt werden. Es führt zu einer Fehlermeldung, wenn auf dem angegebenen Datenträger noch geöffnete Dateien existieren (siehe auch mount auf Seite 1189). -f
erzwingt den umount-Vorgang (zweckmäßig bei nicht mehr erreichbaren NFS-Verzeichnissen).
unalias abkürzung
(bash)
unalias löscht die angegebene Abkürzung. Wenn das Kommando mit der Option -a aufgerufen wird, löscht es alle bekannten Abkürzungen. Der Umgang mit Abkürzungen wird auf Seite 440 näher beschrieben.
uname [optionen] uname zeigt den Namen des Betriebssystems an (also Linux). Durch die Angabe von Optionen können auch andere Informationen angezeigt werden. -a
zeigt alle verfügbaren Informationen an, nämlich das Betriebssystem, die Versionsnummer, Datum und Uhrzeit sowie den Prozessor (z. B. i486).
-m
liefert nur die CPU-Plattform (z. B. i686).
-r
liefert nur die Kernelversion.
uncompress datei uncompress dekomprimiert eine mit compress komprimierte Datei. Dabei wird die Dateikennung .Z automatisch entfernt. uncompress ist ein Link auf compress, wobei automatisch die Option -d aktiviert wird.
uniq datei uniq gibt die Zeilen einer Textdatei auf der Standardausgabe aus, wobei unmittelbar aufeinanderfolgende gleichlautende Zeilen eliminiert werden. Bei vorsortierten Dateien eliminiert uniq alle mehrfach auftretenden Zeilen. sort sortiert die Datei test, uniq eliminiert doppelte Zeilen und speichert das Resultat in test1. user$
Beispiel
sort test | uniq > test1
1227
Kapitel 39
Alphabetische Kommandoreferenz
unset variable
(bash)
unset löscht die angegebene Variable.
unxz [optionen] dateien unxz aus dem Paket xz-utils dekomprimiert die zuvor mit xz komprimierten Dateien (siehe auch Seite 1238). Dabei wird die Dateiendung .xz entfernt.
unzip [optionen] datei.zip Das Kommando extrahiert Dateien aus einem (vor allem in der Windows-Welt sehr verbreiteten) ZIP-Archiv. Wenn Sie unter Linux selbst ZIP-Archive bilden möchten, verwenden Sie hierfür zip.
update-alternatives [optionen] kommando update-alternatives verwaltet die Links im Verzeichnis /etc/alternatives. Diese Links bestimmen die aktive Version mehrerer parallel installierter Programme mit derselben Funktion (siehe auch Seite 540). Das Kommando wird in der Regel von den (De-)Installations-Scripts der betreffenden Pakete ausgeführt, kann aber natürlich auch interaktiv verwendet werden. Unter Red Hat bzw. Fedora ist das Kommando auch unter dem Namen alternatives verfügbar. Im Folgenden werden die Kommandos von update-alternatives aufgezählt. Das Verhalten kann zudem durch einige allgemeine Optionen beeinflusst werden, die aber nur selten gebraucht werden. --display name liefert eine Liste aller installierten Alternativen zum angegebenen Kommando. --config name zeigt die zur Auswahl stehenden Alternativen zum angegebenen Kommando an. Anschließend geben Sie interaktiv an, welche Alternative in Zukunft aktiv sein soll. update-alternatives passt die Links anschließend entsprechend an und wechselt für das Kommando in den manuellen Modus. --auto name aktiviert den Automatikmodus für das Kommando. Damit ist automatisch das Kommando aktiv, das den höchsten Prioritätswert hat. --install ... bzw. --remove ... installiert bzw. entfernt eine Alternative für ein Kommando. Diese Kommandos kommen in der Regel nur im (De-)Installations-Script eines Paktes zur Anwendung.
update-grub Bei GRUB 0.9n legacy steht update-grub nur unter Debian und Ubuntu zur Verfügung. Es wertet in Kommentaren versteckte Einstellungen in /boot/grub/menu.lst aus und aktualisiert dann die GRUB-Menüeinträge in menu.lst. Die wichtigsten Schlüsselwörter für die Konfiguration sind auf Seite 700 kurz beschrieben.
1228
Alphabetische Kommandoreferenz
Ab GRUB 2.0 steht update-grub bei allen Distributionen zur Verfügung. Es führt die KonfigurationsScripts /etc/grub.d/* aus und schreibt die Ergebnisse in die GRUB-Menüdatei /boot/grub/ grub.cfg.
update-initramfs [optionen] update-initramfs ist bei Debian und Ubuntu für das Erzeugen, Aktualisieren oder Löschen von Initrd-Dateien zuständig. Die Initrd-Dateien enthalten Kernelmodule, die während des Systemstarts durch GRUB geladen werden. Hintergrundinformationen zu Initrd-Dateien finden Sie auf Seite 711. Bei Fedora, Red Hat und SUSE verwenden Sie statt update-initramfs die Kommandos dracut oder mkinitrd (siehe Seite 1151 bzw. 1186). Intern greift update-initramfs auf das Script mkinitramfs zurück, dessen direkte Verwendung aber nicht empfohlen wird. Die Konfiguration der Initrd-Dateien erfolgt durch die Dateien des Verzeichnisses /etc/initramfs-tools. -c
erzeugt eine neue Initrd-Datei für die mit -k angegebene Kernelversion.
-d
löscht die Initrd-Datei für die mit -k angegebene Kernelversion.
-k versionsname gibt die zu bearbeitende Kernelversion an. -k all bewirkt, dass update-initramfs die InitrdDateien aller installierten Kernelversionen bearbeitet. -u
aktualisiert die Initrd-Datei der aktuellsten Kernelversion bzw. der mit -k angegebenen Kernelversion.
update-rc.d kommando update-rc.d hilft unter Debian und Ubuntu bei der Verwaltung der Init-V-Links. Das Kommando ist eigentlich für die Installation und Deinstallation von Paketen gedacht, kann aber auch interaktiv ausgeführt werden. [-f] name remove entfernt alle Start- und Stopp-Links für den angegebenen Dienst. Das funktioniert nur, wenn die Script-Datei in /etc/init.d/name vorher entfernt (deinstalliert) wurde. Ist das nicht der Fall, können Sie das Löschen der Links mit -f (Force) erzwingen. name defaults [start-nr stop-nr] richtet in den Runleveln 2–5 Links zum Starten und in den Runlevel 0, 1 und 6 Links zum Stoppen des angegebenen Diensts ein. Die Link-Namen beginnen mit der durchlaufenden Zahl 20. Wenn das Script früher oder später im Start- bzw. Stopp-Prozess ausgeführt werden soll, müssen Sie die gewünschten Start- und Stopp-Werte selbst angeben. Wenn es für den Dienst bereits Links gibt, werden diese nicht verändert! (Sie müssen alle vorhandenen Links vorher mit remove löschen.)
1229
Kapitel 39
Alphabetische Kommandoreferenz
name start|stop nr runlevel1 [runlevel2 ...] . richtet für den Dienst name Start- oder Stopp-Links für die angegebenen Runlevel ein. nr gibt die gewünschte Nummer am Beginn des Link-Namens an. Im Anschluss an den letzten Runlevel muss ein Punkt angegeben werden. Es ist zulässig, mehrere start- oder stopKommandos auf einmal auszuführen. Beispiel
Die folgenden Kommandos richten die Links auf /etc/init.d/gdm neu ein: root# update-rc.d -f gdm remove root# update-rc.d gdm start 30 2 3 4 5 . stop 1 0 1 6 . /etc/rc0.d/K01gdm -> ../init.d/gdm /etc/rc1.d/K01gdm -> ../init.d/gdm /etc/rc6.d/K01gdm -> ../init.d/gdm /etc/rc2.d/S30gdm -> ../init.d/gdm /etc/rc3.d/S30gdm -> ../init.d/gdm /etc/rc4.d/S30gdm -> ../init.d/gdm /etc/rc5.d/S30gdm -> ../init.d/gdm
updatedb updatedb erstellt ein Indexverzeichnis mit einer Liste aller im gesamten Dateisystem enthaltenen Dateien. Das Kommando wird üblicherweise einmal täglich automatisch durch einen Cron-Job ausgeführt. Die Ausführung erfordert root-Rechte. Je nach Distribution wird die Dateidatenbank im Verzeichnis /var/lib, /var/lib/slocate oder /var/lib/mlocate gespeichert (siehe Seite 310).
useradd [optionen] name useradd richtet einen neuen Benutzer ein. -g gruppe gibt die Hauptgruppe (primäre Gruppe) des Benutzers an. -G gruppeA,gruppeB,gruppeC bestimmt alle Zusatzgruppen (Supplementary Groups) des Benutzers. -m
falls noch kein Heimatverzeichnis existiert (/home/name), wird es erzeugt. Alle Dateien aus /etc/skel werden dorthin kopiert.
-u n weist dem Benutzer die angegebene UID-Nummer zu (User Identification), sofern diese noch verfügbar ist.
userdel name userdel löscht den angegebenen Benutzer-Account. -r
1230
löscht auch das gesamte Heimatverzeichnis sowie die Mail-Inbox des Benutzers.
Alphabetische Kommandoreferenz
usermod [optionen] name usermod verändert diverse Eigenschaften des Benutzer-Accounts (z. B. das Heimatverzeichnis, die Gruppenzugehörigkeit, die Standard-Shell oder die UID). Die meisten Optionen sind mit denen von useradd identisch (siehe oben). Änderungen am Benutzer-Account werden erst nach einem neuerlichen Login wirksam. -a -G gruppe fügt den Benutzer der angegebenen Gruppe hinzu. (Bei SUSE steht die Option -a nicht zur Verfügung. Sie müssen mit -G alle vorhandenen Gruppen sowie die neue Gruppe angeben oder groupmod -A benutzer gruppe ausführen.) -L
blockiert den Account vorübergehend. (Vor das verschlüsselte Passwort wird das Zeichen »!« gestellt, weswegen ein Login nicht mehr möglich ist.)
-U
gibt einen durch -L blockierten Account wieder frei.
vgchange [optionen] [vgname] Das LVM-Kommando vgchange verändert die Attribute einer Volume Group (VG). Die wichtigste Anwendung besteht darin, VGs zu aktivieren bzw. zu deaktivieren. -a yjn aktiviert (y) bzw. deaktiviert (n) alle VGs bzw. die angegebene VG.
vgcreate [optionen] vgname pvname1 [pvname2 ...] vgcreate erzeugt eine neue VG aus einem oder mehreren Physical Volumes (PVs).
vgdisplay vgname vgdisplay zeigt Detailinformationen zur angegebenen VG an.
vgextend vgname pvname vgextend fügt ein PV zu einer VG hinzu.
vgmerge vgname1 vgname2 vgmerge fügt VG2 zu VG1 hinzu. Nach der erfolgreichen Ausführung des Kommandos gibt es also nur noch VG1. Sie besteht aus allen PVs, die bisher den Speicherpool für VG1 und VG2 bildeten.
vgreduce [optionen] vgname [pvname1 pvname2 ...] vgreduce entfernt die angegebenen PVs aus dem Speicherpool der VG. Das funktioniert nur, wenn die PVs ungenutzt sind. Mit der Option -a werden alle inaktiven PVs entfernt.
1231
Kapitel 39
Alphabetische Kommandoreferenz
vgrename oldvgname newvgname vgrename gibt einer VG einen neuen Namen. Statt oldvgname kann auch die UUID der VG angegeben werden.
vgscan vgscan listet alle VGs auf.
volname devicename volname liefert den Datenträgernamen (Volume Name) einer Daten-CD oder -DVD. (Beim Erzeugen eines ISO-Images für eine CD/DVD mit genisoimage stellen Sie diesen Namen mit der Option -V ein.)
wait [prozessnummer]
(bash)
wait wartet auf das Ende des angegebenen Hintergrundprozesses. Wenn keine Prozessnummer angegeben wird, wartet das Kommando auf das Ende aller laufenden, von der Shell gestarteten Hintergrundprozesse.
wc dateien wc zählt die Anzahl der Zeilen, Wörter und Zeichen in den angegebenen Dateien. Wenn durch Jokerzeichen mehrere Dateien erfasst werden, berechnet wc auch die Gesamtsumme der drei Angaben. wc ist auch gut für die Kombination mit anderen Programmen geeignet. Beispiel
Das folgende Kommando liefert die Gesamtanzahl aller Dateien im Verzeichnisbaum. (find liefert für jede reguläre Datei eine Zeile. wc zählt die Zeilen.) user$
find / -type f -print | wc
wget [optionen] url1 url2 ... wget lädt Dateien von HTTP-, HTTPS- und FTP-Servern herunter. wget kann unterbrochene Downloads wieder aufnehmen, rekursiv Links verfolgen und eignet sich zur Automatisierung von Downloads. Die zu übertragenden Dateien werden in Form von URLs (Uniform Resource Locator) angegeben, also beispielsweise als http://meinserver.de/datei.iso. wget wird durch unzählige Optionen gesteuert, von denen hier nur die wichtigsten zusammengefasst werden. Beispiele für die Anwendung von wget finden Sie auf Seite 392.
1232
-b
führt den Download als Hintergrundprozess durch und schreibt alle Statusmeldungen in die Datei wget-log.
-c
nimmt einen unterbrochenen Download wieder auf. Vorsicht: Wenn sich die Datei in der Zwischenzeit auf dem Server geändert hat, ist die heruntergeladene Datei fehlerhaft und enthält teilweise Daten aus der alten Datei und teilweise Daten aus der neuen Datei!
Alphabetische Kommandoreferenz
-q
verzichtet auf die Ausgabe von Statusmeldungen (Quiet).
-t n bzw. --tries=n unternimmt bei einem Verbindungsabbruch n Versuche (standardmäßig 20). Mit -t 0 versucht wget sein Glück so lange, bis der Download gelungen ist oder Sie das Kommando abbrechen. --retry-connrefused unternimmt auch nach dem Fehler connection refused weitere Versuche, die Datei herunterzuladen. Die Option ist nur bei unzuverlässigen Download-Servern zweckmäßig, die gelegentlich aus dem Netz verschwinden und wenig später wieder auftauchen. -i datei bzw. --input-file=datei liest die zu übertragenden Dateien (URLs) aus der angegebenen Textdatei. Wenn Sie statt einer Datei das Zeichen - übergeben, erwartet wget die URLs aus der Standardeingabe. Die Option -i akzeptiert als Parameter nur lokale Dateien, keine URLs. (-i http://server/name.html funktioniert also nicht!) --force-html interpretiert die mit -i angegebene Datei als HTML-Datei und lädt alle Dateien, auf die Links der HTML-Datei zeigen. -B url bzw. --base=url stellt allen relativen Links der durch -i datei angegebenen Datei die Basisadresse url voran. --spider testet, ob alle Links in der durch -i htmldatei --force-html angegebenen Datei noch gültig sind. Die durch Links angegebenen Dateien werden aber nicht heruntergeladen. --limit-rate=n limitiert die Download-Menge pro Sekunde. Die Buchstaben k und m bezeichnen Kilo- bzw. Megabytes (also etwa --limit-rate=0.25m). -w n bzw. --wait=n gibt an, wie viele Sekunden wget warten soll, bevor es die nächste Datei herunterlädt. Die Option verhindert, dass der Download-Server durch unzählige, nahezu gleichzeitige DownloadAnfragen zu stark belastet wird. --ftp-user=user --ftp-password=pw gibt den Benutzernamen und das Passwort für FTP-Downloads an. Diese Informationen können auch in der URL übergeben werden (ftp://user:password@server/datei.txt). Die folgenden Optionen steuern rekursive Downloads: -r
Rekursive Downloads
aktiviert rekursive Downloads. Bei HTTP-Downloads verfolgt wget alle HTTP-Links der Startseite, lädt die so angegebenen Dateien herunter, verfolgt auch deren Links etc. wget berücksichtigt dabei nur relative Links sowie Links auf Seiten der Start-Website. Bei FTP-Downloads liest wget alle Unterverzeichnisse.
-l n bzw. --level n limitiert die Rekursionsebene (standardmäßig 5). -l inf deaktiviert die Limitierung.
1233
Kapitel 39
Alphabetische Kommandoreferenz
-L bzw. --relative verfolgt nur relative Links (aber keine absoluten Links auf die Start-Website). -H bzw. --span-hosts verfolgt auch Links auf andere Websites. -p
lädt alle Dateien herunter, die zum Betrachten der Ausgangsdatei erforderlich sind (auch Bilder, CSS-Dateien und Dateien, bei denen die maximale Rekursionsebene sonst überschritten wäre).
-k bzw. --convert-links ändert in den heruntergeladenen HTML-Dateien die Links so, dass sie auf die lokalen Dateien verweisen. Das ermöglicht es später, die Seiten offline anzusehen. -E bzw. --html-extension fügt bei allen heruntergeladenen Dateien des Typs application/xhtml+xml oder text/html, deren Name nicht mit .html oder .htm endet, die Endung .html an den Dateinamen an.
whatis datei whatis gibt eine kurze Beschreibung (meist einzeilig) des angegebenen Kommandos bzw. Schlüsselworts an. whatis-Beschreibungen existieren nur zu Themen, zu denen man-Texte installiert sind. Wenn whatis nicht funktioniert, fehlen wahrscheinlich die zugrunde liegenden Datenbanken, die mit mandb bzw. mit makewhatis erzeugt werden können.
whereis datei whereis durchsucht alle üblichen Pfade für Binärdateien, man-Dateien und Quellcode nach dem angegebenen Dateinamen. whereis ist damit weniger gründlich als find, dafür aber deutlich schneller. Die man-Seite zu whereis zählt auf, welche Verzeichnisse durchsucht werden.
which kommando which durchsucht alle in PATH angegebenen Pfade nach dem Kommando. which liefert als Antwort den vollständigen Namen des Kommandos, das ausgeführt würde, wenn das Kommando ohne Pfadinformationen aufgerufen würde. Das ist vor allem dann eine Hilfe, wenn zu einem Kommando mehrere Versionen in unterschiedlichen Verzeichnissen existieren. In der bash kann statt which auch type verwendet werden (siehe Seite 1226). type hilft Ihnen dabei, herauszufinden, ob kommando in Wirklichkeit ein eingebautes Shell-Kommando, ein Alias oder eine selbst definierte Funktion ist.
who [optionen] who zeigt eine Liste aller zurzeit eingeloggten Systembenutzer an. (Auch wenn Sie allein mit Ihrem Rechner arbeiten, können Sie sich mit unterschiedlichen Namen an verschiedenen Textkonsolen einloggen.)
1234
Alphabetische Kommandoreferenz
-m
gibt den Benutzernamen der gerade aktiven Konsole an. Das Kommando who am i hat dieselbe Bedeutung.
wodim [optionen] dev=xxx isoimage wodim [optionen] dev=xxx audiofiles wodim (ehemals cdrecord) brennt Daten auf eine CD oder DVD. Bei Daten-CDs und bei DVDs müssen Sie die Daten vorher als ISO-Datei aufbereiten (siehe genisoimage auf Seite 1158). Beispiele zur Verwendung von wodim finden Sie ab Seite 330. Das Verhalten von wodim wird durch zahlreiche Optionen gesteuert, von denen hier die wichtigsten vorgestellt werden. Beachten Sie, dass es Optionen mit und solche ohne vorangestellten Bindestrich gibt! blank=all|fast löscht ein CD-RW-Medium. dev=/dev/xxx gibt den Device-Namen des CD- oder DVD-Laufwerks an, z. B. /dev/hdc oder /dev/scd0. driveropts=burnfree aktiviert einen Schutzmechanismus zur Vermeidung von Buffer-Underrun-Fehlern. fs=n gibt die Größe des FIFO-Zwischenspeichers an, der zur Pufferung der Datenübertragung zwischen Festplatte und CD dient (z. B. fs=8m). Der Standardwert beträgt 4 MByte. speed=n gibt die gewünschte Schreibgeschwindigkeit an. n ist ein Vielfaches der Standardgeschwindigkeit (150 kB/s bei CDs, 1385 kB/s bei DVDs). Wenn Sie auf die Angabe verzichten, berücksichtigt wodim die Einstellungen in /etc/wodim.conf oder nutzt die Standardgeschwindigkeit des Laufwerks. Mit speed=0 verwendet wodim die niedrigstmögliche Geschwindigkeit, die das Laufwerk und die Medien unterstützen. -audio aktiviert den Audio-CD-Modus. Es müssen nun Audio-Dateien als Parameter übergeben werden (üblicherweise *.au- oder *.wav-Dateien), nicht wie sonst üblich eine ISO-Datei. -dao aktiviert den Disk-at-Once-Modus. Das verhindert lästige Pausen zwischen den Tracks von Audio-CDs. Außerdem sind auf diese Weise hergestellte Daten-CDs als Master für die Massenproduktion geeignet. Die Option funktioniert allerdings nicht mit allen Laufwerken. Zum Schreiben von DAO-CDs können Sie statt wodim auch das Kommando cdrdao verwenden (siehe Seite 330). -dummy simuliert den Schreibprozess, ohne die CD oder DVD tatsächlich zu verändern. -eject wirft die CD nach dem Schreibprozess aus. Manche CD-Laufwerke verlangen den Auswurf, bevor die nächste CD geschrieben werden kann, selbst wenn das Schreiben zuletzt nur mit -dummy simuliert wurde.
1235
Kapitel 39
Alphabetische Kommandoreferenz
-multi gibt an, dass es sich um eine Multi-Session-CD handelt, der noch weitere Sessions hinzugefügt werden sollen. Diese Option muss bei allen Sessions mit Ausnahme der letzten Session angegeben werden. -msinfo liest vorhandene Session-Informationen von der CD. Die Option muss ab der zweiten Session angegeben werden. -pad bewirkt in Kombination mit -audio, dass die Länge von Audio-Dateien auf ein Vielfaches von 2352 Byte ergänzt wird (wenn das nicht ohnedies der Fall ist). -swab vertauscht die Byte-Reihenfolge der Daten. Verschiedene CD-Recorder erwarten eine unterschiedliche Reihenfolge der Bytes in Datenworten. wodim erkennt das selbstständig, sodass die Option im Regelfall nicht erforderlich ist.
xargs kommando xargs leitet die von der Standardeingabe kommenden Daten an das als Parameter angegebene Kommando weiter. xargs wird meist in Kombination mit einem per Pipe vorangestellten Kommando verwendet, also in der Form kommando1 j xargs kommando2. Auf diese Weise können die Resultate des ersten Kommandos mit dem zweiten Kommando verarbeitet werden. Falls die Ergebnisse der ersten Kommandos so umfangreich sind, dass sie nicht in einer Kommandozeile übergeben werden können, wird kommando2 in mehreren Schritten aufgerufen. Der Unterschied zu kommando1 j kommando2 besteht darin, dass xargs die Standardeingabe in Form von Parametern an kommando2 übergibt. xargs muss eingesetzt werden, wenn kommando2 nur die übergebenen Parameter verarbeitet. Gewöhnliche Pipes eignen sich dagegen, wenn kommando2 die Daten aus der Standardeingabe verarbeitet. --null erwartet 0-Bytes zur Trennung von Dateinamen (nicht aber Leer- und Tabulatorzeichen). Diese Option eignet sich zur Verarbeitung von find-Ergebnissen, wenn find mit der Option -print0 ausgeführt wurde. Beispiel
Das folgende Kommando durchsucht das aktuelle Verzeichnis und alle Unterverzeichnisse nach Backup-Dateien, die mit dem Zeichen ~ enden, und löscht diese. Das funktioniert auch für Dateinamen, die Leerzeichen enthalten. user$
find -name '*.~' -print0 | xargs --null rm
xkill [optionen] xkill beendet ein hängen gebliebenes oder halb abgestürztes X-Programm. Das betreffende Fenster muss nach dem Start des Kommandos mit der Maus angeklickt werden.
1236
Alphabetische Kommandoreferenz
xrandr [optionen] xrandr ändert im laufenden Betrieb die Bildschirmauflösung, die Bildfrequenz und andere Einstellungen. --left-of output name bzw. --right-of name bzw. --below name bzw. --above name aktiviert den durch --output angegebenen Signalausgang und gibt an, wie die Bildschirme relativ zueinander positioniert sind. Das funktioniert nur, wenn in xorg.conf eine ausreichend große virtuelle Auflösung eingestellt wurde, damit beide Bildschirme abgedeckt werden können. --off schaltet den mit --output angegebenen Signalausgang aus. --orientation x ändert die Bildlage. Zulässige Einstellungen sind normal, inverted, left und right. --output name gibt an, dass sich die weiteren Optionen auf einen bestimmten Signalausgang beziehen. Das ist zweckmäßig, wenn mehrere Monitore angeschlossen sind. Die Namen der aktiven Signalausgänge ermitteln Sie mit xrandr -q. -q
gibt an, welche Einstellmöglichkeiten zur Verfügung stehen. Das Ergebnis ist stark vom eingesetzten Grafiktreiber abhängig.
--rate n ändert die Bildfrequenz für die aktuelle Auflösung. n ist die gewünschte Bildfrequenz in Hertz. --size n ändert die Auflösung. n ist eine Nummer der Ergebnisliste von xrandr -q oder die gewünschte Auflösung in der Form breitexhöhe. --dpi n gibt an, wie viele Pixel pro Zoll angezeigt werden.
xset [kommando] xset verändert diverse Einstellungen des X-Servers. +dpms bzw. -dpms aktiviert bzw. deaktiviert die Energiesparfunktionen (Display Power Management Signaling). dpms n1 [n2 [n3]] gibt an, nach wie vielen Sekunden die DPMS-Modi Standby, Suspend und Off des Monitors aktiviert werden sollen. q
liefert eine Liste mit den aktuellen Einstellungen.
s n
aktiviert nach n Sekunden den Bildschirmschoner.
1237
Kapitel 39
Alphabetische Kommandoreferenz
xz [optionen] dateien xz aus dem Paket xz-utils komprimiert die angegebenen Dateien. xz ist ein relativ neues Komprimierkommando, das noch kleinere Dateien als bzip2 liefert. Dafür dauert das Komprimieren aber sehr lange. Die komprimierten Dateien erhalten standardmäßig die Endung .xz. -0 bis -9 gibt an, wie gut xz komprimieren soll. Die besten Ergebnisse (also die kleinsten Dateien) liefert -9, allerdings ist der Speicherbedarf von xz dann am höchsten. Standardmäßig gilt -6. In diesem Fall beansprucht xz beim Komprimieren maximal 100 MByte, beim Dekomprimieren maximal 10 MByte. -d bzw. --decompress dekomprimiert die angegebene Datei (entspricht unxz).
yum [optionen] kommando yum installiert, aktualisiert und entfernt RPM-Pakete. yum lädt die Pakete von den in /etc/ yum.repos.d/*.repo definierten Paketquellen herunter. Hintergrundinformationen zu yum und zur Konfiguration von Paketquellen sowie Anwendungsbeispiele finden Sie ab Seite 518. Sämtliche Paketverwaltungsfunktionen werden in Form von Kommandos durchgeführt (z. B. yum install paketname). Die folgende Aufzählung beschreibt die wichtigsten Kommandos: install name1 name2 ... sucht die Pakete name1, name2 etc. auf allen Yum-Paketquellen, lädt sie herunter und installiert sie. Gegebenenfalls werden auch weitere Pakete geladen und installiert oder aktualisiert, um Paketabhängigkeiten zu erfüllen. localinstall rpmfile1 rpmfile2 ... installiert die angegebenen lokalen RPM-Dateien. Die Yum-Paketquellen werden nur zur Auflösung von Paketabhängigkeiten genutzt. remove name1 name 2 ... deinstalliert die angegebenen Pakete. check-update testet, ob Updates zu bereits installierten Paketen zur Verfügung stehen. update aktualisiert alle installierten Pakete. update name1 name2 ... aktualisiert nur die angegebenen Pakete. upgrade hat dieselbe Wirkung wie update in Kombination mit der Option --obsoletes (siehe unten). list liefert eine zweiteilige Liste. Der erste Teil enthält (in alphabetischer) Reihenfolge alle bereits installierten Pakete, der zweite Teil alle noch nicht installierten Pakete, die in den YumPaketquellen zur Verfügung stehen. Durch einen optionalen Parameter kann das Ergebnis auf Pakete eingeschränkt werden, deren Name einem Muster entspricht (z. B. yum list xorg*).
1238
Alphabetische Kommandoreferenz
list available/updates/installed/extras/recent schränkt die Ausgabe von yum list auf bestimmte Pakete ein. Beispielsweise liefert yum list updates eine Liste aller Pakete, zu denen Updates verfügbar sind. yum list recent liefert Pakete, die kürzlich in die Paketquellen aufgenommen wurden. info name liefert Informationen zum angegebenen Paket. search suchbegriff liefert eine Liste aller Pakete, die den Suchbegriff in der Beschreibung enthalten. grouplist, groupinfo, groupinstall, groupupdate, groupremove liefert Informationen über Paketgruppen bzw. installiert, aktualisiert oder entfernt Paketgruppen. history liefert eine nummerierte Liste der zuletzt durchgeführten yum-Aktionen. yum history info n fördert Details zur Transaktion n zutage. clean packages entfernt heruntergeladene und bereits installierte Paketdateien aus dem Cache. clean metadata entfernt die Paketmetadaten aus dem Cache. Beim nächsten Start aktualisiert yum die Daten, indem es die Metadaten aller Paketquellen neu einliest. Sie können das Verhalten von yum durch einige (selten benötigte) Optionen beeinflussen: -y
beantwortet alle Fragen von yum mit yes. Damit kann yum zur Installation ohne weitere Interaktion eingesetzt werden (z. B. in einem Script).
--enablerepo=name aktiviert eine an sich deaktivierte Paketquelle. Die Option erspart es Ihnen, die *.repo-Datei zu ändern, wenn Sie nur ein einzelnes Paket einer nicht aktiven Paketquelle installieren möchten. --exclude=paket schließt das angegebene Paket von der gewählten Operation (z. B. einem Update) aus. --obsoletes bewirkt, dass yum nicht mehr benötigte Pakete nach einem Update löscht. Das ist nur bei einem Distributions-Update (Version n zu n + 1) zweckmäßig.
zcat datei.gz zless datei.gz zmore datei.gz Die drei Kommandos funktionieren wie cat, less und more. Der einzige Unterschied besteht darin, dass mit gzip komprimierte Dateien direkt (ohne vorheriges Dekomprimieren mit gunzip) gelesen werden können.
1239
Kapitel 39
Alphabetische Kommandoreferenz
Statt zless kann oft auch direkt less eingesetzt werden: Dieses Kommando ist meist so konfiguriert, dass es ohne Unterschied für komprimierte und nichtkomprimierte Dateien verwendet werden kann.
zip [optionen] datei.zip datei1 datei2 ... Das Kommando bildet das ZIP-Archiv datei.zip und fügt darin alle angegebenen Dateien ein. Das Archiv eignet sich besonders für den Datenaustausch mit Windows-Anwendern. Um die Dateien unter Linux wieder zu extrahieren, verwenden Sie unzip. -r
archiviert rekursiv den Inhalt von Verzeichnissen.
zipinfo [optionen] datei.zip Das Kommando liefert das Inhaltsverzeichnis eines ZIP-Archivs.
zypper [optionen] kommando Das SUSE-spezifische Kommando zypper hilft bei der RPM-Paketverwaltung. Es installiert und aktualisiert Pakete, richtet Paketquellen ein etc. zypper setzt die libzypp-Bibliothek voraus, die ein integraler Bestandteil aller aktuellen SUSE-Distributionen ist. Die im Folgenden beschriebenen Kommandos können abgekürzt werden, sofern die Bedeutung eindeutig ist (also z. B. zypper in name statt zypper install name). install [-y] name installiert das angegebene Paket. Statt eines Pakets darf auch der Name eines Produkts, eines Patches oder einer Sprache angegeben werden. Um alle Pakete eines vordefinierten Schemas (Patterns) zu installieren, führen Sie zypper install -t pattern name aus. Mit der zusätzlichen Option -y verzichtet zypper auf Rückfragen. remove [-y] name entfernt das angegebene Paket. Mit -y verzichtet zypper auf Rückfragen. update [-t package] [-y] aktualisiert alle Pakete, zu denen Patches verfügbar sind. Mit der Option -t package berücksichtigt zypper auch Updates (also neuere Programmversionen). Die zypper-spezifische Differenzierung zwischen Patches und Updates ist auf Seite 524 erklärt. list-updates [-t package] zeigt alle verfügbaren Patches an (mit -t package sowohl Patches als auch Updates). patches listet alle verfügbaren Patches auf. patch-check ermittelt die Anzahl aller verfügbaren Patches.
1240
Alphabetische Kommandoreferenz
patch-info [name] liefert Informationen zu allen Patches bzw. zum angegebenen Patch. dup
führt ein Distributions-Update durch, also beispielsweise von openSUSE 11.2 auf Version 11.3. Vorher müssen Sie ein reguläres Update durchführen und dann die Paketrepositories auf die neue Version umgestellen. Nach dem Update ist ein Neustart erforderlich.
info name liefert Informationen zum angegebenen Paket/Patch/Produkt etc. search [optionen] ausdruck sucht nach Paketen mit dem angegebenen Suchausdruck. Standardmäßig werden nur die Paketnamen durchsucht. Mit -d durchsucht zypper auch die Paketbeschreibung. -i schränkt die Suche auf bereits installierte Pakete ein, -u auf noch nicht installierte Pakete. Mit -t pattern ermitteln Sie eine Liste vordefinierter Paketgruppen. addrepo [optionen] uri alias richtet eine neue Paketquelle ein und gibt ihr einen Alias. uri beschreibt die Paketquelle, beispielsweise in der folgenden Form: http://download.opensuse.org/distribution/11.3/repo/oss/ Standardmäßig werden Paketquellen aktiviert (Spalte Enabled in zypper repos) und zur Aktualisierung vorgemerkt (Spalte Refresh). Die Paketquelle wird aber nicht erstmalig in den Cache eingelesen. Dazu müssen Sie zypper refresh ausführen. Bei Paketquellen, deren Inhalt sich nicht ändert, können Sie die regelmäßige Aktualisierung durch die Option -n (No Refresh) vermeiden. Während des Einrichtens der Paketquelle haben Sie die Möglichkeit, den Schlüssel zu importieren, mit dem die Pakete signiert sind. Sofern Sie von der Authentizität der Paketquelle überzeugt sind, sollten Sie den diesbezüglichen Rückfragen zustimmen. zypper addrepo bietet keine Möglichkeit, den Namen einer Paketquelle anzugeben. zypper repos zeigt in der Namenspalte deswegen nochmals den Alias an. Wenn Sie Namen und Alias getrennt einstellen möchten, müssen Sie die Datei zur Beschreibung der Paketquelle im Verzeichnis /etc/zypp/repos.d/ direkt ändern. repos listet alle eingerichteten Paketquellen auf. Das Kommando zeigt dabei den Namen und den Alias jeder Paketquelle an, nicht aber die Adresse (URI). Bei mit YaST eingerichteten Paketquellen wird die Adresse als Alias verwendet, weswegen die Alias-Spalte oft wie eine Adressspalte aussieht. Für Paketquellen, die mit zypper addrepo eingerichtet werden, gilt dies aber nicht. removerepo urijalias entfernt die angegebene Paketquelle. renamerepo oldalias newalias gibt der Paketquelle einen neuen Namen.
1241
Kapitel 39
Alphabetische Kommandoreferenz
refresh testet, ob sich die Inhaltsverzeichnisse der Paketquellen geändert haben, und liest diese gegebenenfalls neu ein – auch bei solchen Paketquellen, die mit der Option -n (No Refresh) eingerichtet wurden. Mit der Option -f (Force) erreichen Sie eine Neuerfassung des Inhaltsverzeichnisses selbst dann, wenn zypper glaubt, dass sich nichts geändert hat.
1242
Stichwortverzeichnis 3D-Desktop 595 KDE 123 3D-Grafik 594 64-Bit-Bibliotheken 546 64-Bit-Distributionen 38 64 Studio 242 802.11x-Standards 806 "" (Zeichenketten) 448 $ (Variablen in der bash) 449 $() (Kommandosubstitution) 447 & (Hintergrundprozesse) 350 ' (Zeichenketten) 448 < (Ausgabeumleitung) 441 > (Eingabeumleitung) 441 [] (arithmetische Ausdrücke) 447 * (Jokerzeichen) 302, 445 ** (Jokerzeichen) 446 ? (Jokerzeichen) 302, 445 # (Kommandointerpreter) 454 ` (Kommandosubstitution) 447 ~ (Heimatverzeichnis) 78, 298 A a.out 544 a2dismod 986 a2enmod 986 a2ensite 986 a2ps 375 aa-status 926 AAC 235 Abkürzungen 440, 1135 Abwedeln (Gimp) 219 AC-3 235 Access Control Lists 338 Access Point (WLAN) 807 Account (E-Mail) 166 AcidRip 262 acl (mount) 1193 ACL 338 acpi 1134 ACPI 499 Kernel-Bootoptionen 788
acpi -V 499 acpid 499 Acrobat Reader 158 Active Directories 939 Ad-hoc-Modus (WLAN) 808 add-apt-repository 1134 addgroup 481, 1134 adduser 481, 1134 Administration 473 Administrator-Account 61 Adobe Flash 156 Flash unter Debian 1063 Flash unter Fedora 1080 Reader 158 Reader (Debian) 1063 Reader (openSUSE) 1101 Reader (Ubuntu) 1127 Reader unter Fedora 1080 Adobe Flash Player 156 Adobe Reader 158 ADSL Interna 832 Network Manager 793 PPPoE-Konfiguration 833 PPTP-Konfiguration 837 AFPL Ghostscript 377 aio 364 Airbrush (Gimp) 216 aktive Partition 703 aktuelles Verzeichnis 1205 alacarte 86 alias 440, 1135 in modprobe.conf 770 Alias (E-Mail) 1013 alias_database 1014 alias_maps 1014 alien 540 Allow (Apache) 989 AllowMouseOpenFail 572 alsactl 504 alsamixer 504
Stichwortverzeichnis
alternatives 541, 1135 Amarok 243 AMD AMD-V 270 Grafikkarten 573 amdcccle 575 amdccle 575 Anaconda 1070 Anacron 368 Android 24, 27 Annex A/B (ADSL) 833 ANT 832 Anti-Aliasing 602 Apache 985 Passwortschutz 990 Unicode 988 Verzeichnis absichern 990 APIC 787 aplay 504 APM 499 Kernel-Bootoptionen 788 APN 831 AppArmor 924 apparmor-notify 928 append (LILO) 731 Apple-Dateisystem 624 Apple-Extension (ISO9660) 1158 Apple-Tastatur unter Linux 584 Applet Gnome 85 Java 160 application-browser 86 applydeltarpm 515 apport 1123 AppSocket (Netzwerkdrucker) 973 apropos 1135, 1182 APT 528 automatische Updates 533 apt-cache 532, 1135 apt-cacher 535 apt-cdrom 529 apt-get 528, 530, 1136 Paketversion auswählen 1062 apt-key 529, 1061, 1137 APT-RPM 528 apt-setup 529 aptitude 528, 531, 1137 Paketversion auswählen 1062 Arbeitsfläche Gnome 87
1244
KDE 115 Archivieren von Dateien 315, 1146, 1221 Gnome 101 KDE 130 Ardour 241 arecord 504 arithmetische Ausdrücke (bash) 447 Ark 130 Arora 150 Artifex Ghostscript 377 aRts 505 artsd 505 ASCII 493 async (NFS) 931 ATAPI siehe IDE 608 athn-Schnittstelle 816 ATI/AMD-Grafikkarten 573 ATI/AMD-Treiber 574 Debian 1063 SUSE 1080, 1101 Ubuntu 1128 aticonfig 574 atime (mount) 1190 ATM 826 ATrpms-Paketquelle 1076 ATSC A/52 235 Audacity 241 Audio ALSA 504 Konverter 371 Player 231 Audio-CDs abspielen 239 brennen 330 Ripper/Grabber 239 Audio-Player 242 audiofile 371, 372 aufs-Dateisystem 626 Ausgabeumleitung (bash) 441 Auslagerungsdatei 57 Auswahl (Gimp) 220 authconfig 1075, 1079 Authentifizierung POP/IMAP 1022 SMTP 1023 AuthName (Apache) 991 AuthType (Apache) 991 AuthUserFile (Apache) 991 auto-Dateisystem 625 Auto-Login 564
Stichwortverzeichnis
Gnome 95 KDE 123 SUSE 1098 autofs 625 automount 625 autopano-sift-C 200 Autostart Gnome 96 KDE 124 Avahi 824 avahi-browse 825 avahi-daemon 363, 824 avahi-discover 825 avahi-dnsconfd 824 Avant Window Navigator 104 avant-window-navigator 105 AVI 237 Avidemux 241 awk 335 awn-manager 105 B Background-Prozesse 350 backintime 323 Backports Debian 1061 Ubuntu 1120 Backup Domain Controller 939 Backup-Datei (Emacs) 413 Backup-Script 456 Backups 315 inkrementelle 318 bad-interpreter-Fehlermeldung 458 Banshee 244 baobab 102 Barriers btrfs-Dateisystem 1192 ext4-Dateisystem 1193 bash 433 completion 438 Programmierung 453 Tastatureinstellung 435 Tastenkürzel 438 Variablen 460 bash-Script-Beispiele 454 bashrc 1077 Batterie (Notebooks) 499 BDC 939 bdflush 738 Beamer 588 Beamer (X-Konfiguration) 593
Bedingungen (bash) 465 Beep 1152 Benutzer 481 Eigenschaften verändern 1231 einrichten 480 Gruppen 334 verwalten 480 Benutzerwechsel Gnome 83 KDE 112 Besitzer neue Dateien 337 von Dateien 333 Betriebssystem 23 bg 350, 1138 Bibliotheken 543 32/64 Bit 546 ELF 544 glibc 544 libc 544 Prelinking 546 Bild rotieren (Gimp) 208 Bilder-Verzeichnis 109 Bildschirmschoner (X) 1237 /bin 343 ~/bin 458 Binärpaket 514 BIND 863 bind interfaces only 943 bind-address (MySQL) 996 BIOS-RAID 48 BitTorrent 395, 396 blacklist (modprobe.conf) 770 Blacklist (E-Mail) 1007 blkid 629, 640, 1138 Blockgröße 613 Blu-Ray 233 Blu-Ray-Discs 331 Bluetooth 503 bluetooth-applet 503 bluetooth-wizard 503 bluetoothd 363, 503 BMP-PS-Konverter 370 bmp2eps 370 bmp2tiff 370 Bombono 241 Bonjour 824 Bookmarks Firefox 141 synchronisieren (Firefox Sync) 142
1245
Stichwortverzeichnis
synchronisieren (Xmarks) 142 /boot /boot.b 730 /grub 693 /grub/devices.map 695 /grub/grub.conf 694 /grub/menu.lst 694 /initrd 691 /initrd selbst erzeugen 711 /vmlinuz 691, 782 boot (LILO) 730 Boot-Loader 689 BOOT.INI 707 Bootoptionen 785 GRUB-Menüdatei 698 LILO 731 Bootpartition 56, 57, 698 Bootprobleme 66 Bootprozess Boot-Loader 690 System-V-Init 736 Upstart 743 BOOTREC 71 Bootsektor 701 GRUB-Installation 703 LILO-Installation 732 Sicherungskopie 702 bootsplash 756 Boxee 240 Bridge 1048 bridge-utils 1048 Bridged Networking 272 browseable 952 Browsing (Samba) 937 Brush (Gimp) 216 BSD-Dateisystem 623 BSD-Lizenz 33 btrfs 643, 1138 btrfs-Dateisystem 622, 641 Fedora 1077 GRUB 711 mount-Optionen 1191 RAID 648 btrfs-cleaner 1139 btrfs-convert 644, 1140 btrfs-show 1138 btrfs-vol 1138 btrfsck 643, 1140 btrfsctl 1138 BuildServices (SUSE) 1097
1246
bunzip2 1140 BURN-Proof (CD-R) 1235 burncdda 327 bzip2 316, 1140 C C+ (Programmiersprache) 551 C (Programmiersprache) 551 Cache (WWW) 909 Cambridge (Fedora) 1079 Canonical (Ubuntu) 1105 canonical_maps 1016 Capabilities 342 Cardbus (PCMCIA) 502 Carriage Return 373 case 466 cat 1141 Catalyst Control Center 575 ccsm 95, 597 cd 1141 CD Audio-CDs abspielen 239 auswerfen 657 brennen 330 brennen in Gnome 100 brennen in KDE 127 burnfree-Modus 1235 CD-Player 239 Devices 656 Inhalt kontrollieren 330 ins Dateisystem einbinden 656 Multi-Session 1236 physikalische Integrität testen 331 umount-Problem 657 wechseln 657 Zeichensatzprobleme 328 CD-Cover 235 cdcd 239 cdda2wav 371 CDDB 239 cdparanoia 371 cdrdao 330 cdrecord 330, 1235 cdrkit 330 CentOS 27 chainloader (GRUB) 699 Channel (WLAN) 808 CHAP 826 chap-secrets 906 character set 493 chattr 1141
Stichwortverzeichnis
chcon 920 checkarray 669, 675 check_policy_service 1027 chgrp 1141 ChipId 570 chkconfig 751, 763, 1141 chmod 1142 Choqok 137, 162 chown 1143 Chrome OS 27 Chromium 148 chroot 887, 1079, 1143 chsh 434, 1143 cifs-Dateisystem 662–664 mount-Optionen 1192 Cinelerra CV 241 cksum 1143 ClamAV 1031 clamav-milter 1031 classes.conf 966 Claws Mail 184 ClearType 603 Client-Konfiguration 791 cloneconfig 779 Cluster-Dateisystem 625 Cluster-Dateisysteme 606 cmp 1144 Codec 232 Coherent-Dateisystem 623 commit (ext-Dateisystem) 1193 Compiler 547 Compiz 596 compiz-decorator 597 compizconfig-settings-manager 95, 597 complete 438 Compose-Taste 586 cone 166 configure 549 Connectiva 28 console-data 476 console-setup 477 consolehelper 358 Container-Format 236 Contrib-Pakete 1059 control-alt-delete.conf 745 convert 369, 1144 convmv 374 Cookies 143 coreboot 716 Coredump (Größe limitieren) 1226
CoverFinder 235 cp 1145 Namen beim Kopieren ändern 304 cpio 1146 Beispiel 713 CPU 498 cpu-checker 1034 cpufreq 499 cramfs-Dateisystem 625 create mask 952 cron 366 crontab 366 crossmnt (NFS) 935 crtscts (PPP) 827 Crypto-Dateisystem 606 cryptsetup 684 csh 434 CSS 233 ctrlaltdel (in inittab) 739 CUPS Browsing-Funktion 975 Interna 965 Netzwerkdrucker nutzen 973 SUSE-Besonderheiten 968 TCP/Wrapper (SUSE) 886 cups-lpd 967 cupsd 965 cupsd.conf 965, 966 cupsenable 963 curl 393, 1146 cut 1147 Cut&Paste 76 D Dämonen 362 Damn Small Linux 29 DansGuardian 913 dash 435, 453 data (Journaling-Modus) 636 date 1147 dateconfig 1075 Dateien aneinanderhängen 1141 anzeigen 1141 archivieren 1221 auflisten 1177 Besitzer 1143 dekomprimieren 1166, 1227 drucken 970 Existenztest 1223 Grundlagen 297
1247
Stichwortverzeichnis
Gruppenzugehörigkeit 1141 Jokerzeichen 445 komprimieren 315, 1140, 1166 kopieren 1145 kopieren mit sed 304 löschen 1206 Prüfsumme 1143, 1182, 1215 suchen 309, 1176, 1234 Typ feststellen 1154 umbenennen 131 vergleichen 1150 verschieben/umbenennen 1198 Zugriffsrechte 1142 zusätzliche Attribute 1141, 1179 Dateimanager Konqueror 121 Nautilus 88 Dateinamen 297 Dateisystem einrichten 1184 ext3-Dateisystem 634 Fragmentierung 641 Integritätsprüfung seltener 1226 Konfiguration 629 Loopback-Device 625 maximale Dateigröße 634 reparieren 633, 1157, 1158 Schnelleinstieg 78 Speicherbedarf 1152 Typen 622, 630 überprüfen 633 vergrößern (ext3) 640 vergrößern (xfs) 652 verschlüsseln 606 verwalten 605 virtuelles 624 Dateityp im ls-Kommando 300 Magic-Datei 309 MIME 307 Dateiverwaltung Grundlagen 297 Datenbank-Server 994 Datenpartition 56 Datenträger (mount) 1189 dbus-daemon 504 dcraw 189, 370 dctrl-Format 528 dctrl-tools 528 dd 1147
1248
Beispiel 702 ISO-Datei erzeugen 329 DDC 573 DDC (X) Probleme 573 ddns-update-style 871 dead keys 476 Dead Keys 44 Debian 27, 1053 Firefox 138 GRUB 700 Init-V-Besonderheiten 746 initrd-Datei 712 Paketverwaltung 526 Runlevel 737 VirtualBox 280 Deckkraft (Gimp) 219 declare 451 Decoder 231 defaultroute (PPP) 828 DefaultServerLayout 572 Defragmentierung 641 Deja Dup 321 delay (LILO) 730 Delayed Allocation (ext4-Dateisystem) delgroup 481, 1148 Delta-Updates 515 deltarpm 515 deluser 481, 1149 demand (PPP) 828 demand dialing (PPP) 828 Deny (Apache) 989 denyhosts 984 DenyHosts 984 depmod 1149 .desktop-Dateien 564 Desktop Gnome 81 KDE 111 desktop-effects 597, 1074, 1075 Desktop-Suche 313 deutsche Sonderzeichen bash 435 Emacs, US-Tastatur 432 /dev 343 /cdrom 657 /disk 610 /dvd 657 /fd 658 /hd 609
637
Stichwortverzeichnis
Interna 346 Liste 347, 348 /lp0 964 /mapper 677 /md 668 /pts 624 /sd 608 /ttyS0 964 /usb/lp0 964 dev (mount-Option) 1190 DeVeDe 241 Device-Abschnitt (X) 570 device is busy (Fehlermeldung) 657 DeviceKit 503 Devices 335, 346, 608, 1187 CD/DVD-Laufwerke 656 direkt beschreiben 1147 Drucker 964 einrichten 1187 Interna 346 Kernelmodule 770 mount 1190 udev-Dateisystem 347 devices.map (GRUB) 695 Devil Linux 29 devtmpfs 347 df 1149 Beispiel 627 DFS 664 DGA 598 dhclient 847 dhclient.conf 847 dhclient3 815 DHCP 802, 851 Client-Konfiguration 802, 857 Hostname 857 Server 851 Server (DNS) 871 Server, mehrere Netzwerke 861 Server-Konfiguration (dnsmasq) 852 dhcpcd 815 dhcpd 859 dhcpd.conf 859 DNS 869 Dial-on-Demand 828 diff 1150 CD/DVD kontrollieren 330 dig 876 digiKam 194 Digitalkameras 188
Dillo 150 Direct Graphics Access 598 (Apache) 989 directory mask 952 Disk at Once (DAO) cdrdao 330 wodim 1235 Disk-Quotas 606 Diskette 658 Display-Abschnitt (X) 571 Display Manager 562 Distributionen Überblick 27 Debian 1053 Fedora 1067 Linux 25 SUSE 1083 Ubuntu 1105 Updates 68 DivX 236 dkms 772 DLLs 544 dm_crypt 683 dmesg 509, 1150 DNS Cache-only-Konfiguration 863 Client-Konfiguration 802, 821 Firewall 864 Mail-Server 1007 PPP 827 Reverse DNS 1008 Server-Konfiguration (dnsmasq) 852 Wartungsarbeiten 876 dns proxy 941 dnsmasq 852 dnssec-keygen 870 do-release-update 534 Docky 106 DocumentRoot (Apache) 986 Dokument-Konverter 374 Dokumente-Verzeichnis 109 Dolphin Verzeichnis freigeben 955 Domain-Level-Sicherheit 938 Domain-Nameserver siehe DNS 852 Domainname 800 DontZap 572 Doppellizenzen 33 DOS-Dateien konvertieren 373 DOS-Dateisystem 623
1249
Stichwortverzeichnis
dos2unix 373 dotglob 446 Dovecot 1020 POP/IMAP-Authentifizierung 1022 SMTP-Authentifizierung 1023 dovecot.conf 1020 Downloads-Verzeichnis 109 DPI (X) 603 dpkg 527, 1150 Beispiele 527 dpkg-deb 1151 dpkg-reconfigure 528 dracut 712, 1078, 1151 Dragon Player 246 drahtlose Netze (WLAN) 806 Dreischritt (Kompilieren) 549 DRI 559 DRM 233 Drucken 963 Dämon (CUPS) 965 Devices 964 direkt über Schnittstelle 964 Druckjobs verwalten 970 Filter 964 GDI-Drucker (Windows) 971 Gimp 206 Gnome 97 KDE 126 Konfiguration 963 MIME (CUPS) 966 per Kommando 970 PostScript 963 Server-Konfiguration 974 Spooling-System 964 SUSE 1092 Warteschlange 964 DSC (PostScript) 379 du 1152 Dual-Head-Konfiguration 588 DVB 263 dvb-apps 264 DVBcut 241 dvbscan 264 DVD brennen 331 brennen in Gnome 100, 127 Dateisystem 624 Devices 656 ins Dateisystem einbinden 656 kopieren 263
1250
umount-Problem 657 Videos abspielen 238, 658 wechseln 657 dvd-slideshow 241 DVD95 263 dvd::rip 262 dvdauthor 241 dvdrw-booktype 332 dvdrw-format 332 dvdrw-mediainfo 333 dvdrw-tools 331 DVDStyler 241 Dynamic Host Configuration Protocol 851 dynamisch gelinkte Programme 544 dynamische IP-Adresse 829 E eBox 1108 E-Mail 165 Account 166 Alias 1013 Blacklist 1007 DNS 1007 Evolution 179 Grundlagen 1004 Kontact 183 lokal zustellen 168 mutt 186 Relaying 1007 Server 1003 signieren 170 Thunderbird 173 verschlüsseln 170 Viren 1031 e2fsck 1158 e2label 640 e4defrag 641 earlyxdm 755 Easy Peasy 1108 EasyBCD 707 EasyTAG 235, 252 Ebenen (Gimp) 227 eBox 474 echo 1152 ecryptfs-unwrap-passphrase 1127 ecryptfs-utils 1126 EDID 573 EDITOR 294 Editoren 292 Emacs 411 Vim 397
Stichwortverzeichnis
Edubuntu 1108 EFI 692, 716 eglibc 544 egrep 1164 Eingabefokus (X) 77 Eingabeumleitung (bash) 441 eject 657, 1152 Ekiga 137 Element 240 ELF 544 Elvis 293 Emacs 411 automatische Sicherheitskopie 413 Bearbeitungsmodi 415, 428 Cursorbewegung 416 dynamische Abkürzungen 423 Editierkommandos 418 Ein- und Ausrückungen 420 Einrückungen im Fließtext 422 .emacs-Datei 429, 430 farbiger Text 428 Fenster 427 Fließtext 421 font-lock-mode 428 fremdsprachige Zeichen 432 Hintergrundfarbe einstellen 430 Konfiguration 429 Online-Hilfe 414 Puffer 426 reguläre Ausdrücke 424 Schnelleinstieg 292 Schriftart einstellen 430 suchen 423 suchen und ersetzen 425 Syntaxhervorhebung 428 Tabulatoren 419 Textmodus 422 Unicode 431 emergency (Kerneloption) 786 Empathy 137 Emulate3Buttons 585 Encoder 231 Encryption (Dateisystem) 606 Energiesparfunktionen 499 Enigmail 178 enscript 375 env 496 Environment-Variablen 451 eog 188 Epiphany 151, 1064
EPS Konverter 376 epsffit 378 epstopdf 376 erweiterte Partition 46 esd 505 EsounD 505 ESP Ghostscript 377 ESSID (WLAN) 808 /etc 343, 475 /adduser.conf 481 /aliases 169, 1010, 1013 /alternatives 541 /anacrontab 368 /apparmor.d 925 /apt/apt.conf 528 /apt/sources.list 528 /ati 575 /auto.master 625 /boot/grub.cfg 717 /cron.daily 367 /cron.hourly 367 /cron.monthly 367 /cron.weekly 367 /crontab 366 /crypttab 685 /cups 965 /cups/printers.conf 974 /dansguardian 914 /dansguardianf1.conf 915 /default/console-setup 477 /default/grub 720 /default/prelink 546 /default/rcS 479 /deluser.conf 481 /denyhosts.conf 984 /dhcp/dhcpd.conf 859 /dhcp3/dhclient.conf 847 /dhcpd.conf 869 /dnsmasq.conf 853 /dovecot 1020 /dracut.conf 712 /event.d 744 /exports 930 /fedora-release 1079 /file 309 /fonts/fonts.conf 603 /fstab 629 /fstab (CIFS) 664 /fstab (NFS) 662
1251
Stichwortverzeichnis
/fstab, LABEL 629 /ftpusers 1002 /group 484 /grub.conf 703 /gshadow 487 /host.conf 821 /hostname 823 /hosts 820, 853 /hosts.allow 885 /hosts.allow (NFS) 931 /hosts.deny 885 /hosts.deny (NFS) 931 /inetd.conf 761 /init 744 /init/control-alt-delete.conf /init.d 754 /init.d/rc.local 754 /init.d/skeleton 757 /init.d/rc.local 747 /inittab 738 /inputrc 435 /jobs.d 744 /laptop-mode 501 /ld.so.cache 545 /ld.so.conf 546 /lilo.conf 729 /localtime 479 /login.defs 486 /logrotate.conf 510 /lsb-release 1125 /mailcap 308 /manpath.config 295 /mdadm/mdadm.conf 668 /mime.types 308 /mke2fs.conf 1185 /modprobe.conf 768, 813 /modprobe.d 768 /modules 769 /mono 554 /mtab 627 /my.cnf 995 /nscd.conf 492 /nsswitch.conf 491 /ntp.conf 979 /PackageKit/* 538 /pam.conf 489 /pam.d/* 489 /passwd 482 /php.ini 993 /postfix 1010
1252
745
/ppp 826 /ppp/chap-secrets 826, 840, 906 /ppp/ip-up 830 /ppp/ip-up 827 /ppp/ip-up.local 827 /ppp/pap-secrets 826 /ppp/pptpd-options 905 /pptpd.conf 905 /prelink.conf 546 /printcap (CUPS) 965 /profile 450, 452 /rc.d/* 740 /rc.d/rc.local 747, 750 /rc.d/init.d/ 741 /redhat-release 1079 /resolv.conf 821, 868 /resolv.conf (PPP) 830 /rsyslog.conf 507 /samba/smb.conf 940 /selinux 922 /services 761 /shadow 485 /shell 1143 /shells 435 /skel 483 /smartd.conf 682 /squid/squid.conf 909 /ssh 982 /sudoers 359 /sysconfig 754 /sysconfig/clock 479 /sysconfig/console 478 /sysconfig/dhcpd 861 /sysconfig/i18n 478 /sysconfig/iptables 890 /sysconfig/kernel 713 /sysconfig/keyboard 477 /sysconfig/locate 311 /sysconfig/network 822, 823 /sysconfig/prelink 546 /sysconfig/boot 756 /sysctl.conf 788 /timezone 479 /udev 347 /updatedb.conf 311 /vsftpd.conf 1001 /vsftpd/ftpusers 1002 /vsftpd/user_list 1002 /wpa_supplicant 817 /X11/fonts 600
Stichwortverzeichnis
/X11/xorg.conf 566 /X11/Xsession 563 /xdg/user-dirs.conf 109 /xinetd.d/* 762 /yum.conf 519 /yum/yum-updatesd.conf 523 Ethernet-Controller IP-Adresse 804 konfigurieren 812 MAC-Adresse 801 ethtool 813, 823 eval (bash) 1153 evdev 582 events 364 evim 410 Evince 104 Evolution 179 Ex Falso 235 EXA 559 Exaile 238 *.exe-Datei 349 exec (bash) 1153 exec (mount) 1190 Exec Shield 918, 1078 exFAT-Dateisystem 653 EXIF-Informationen 370 exit 1153 Expansion von Dateinamen 437 Experimental-Pakete 1060 export 451 exportfs 931 exports 930 Exposé-Funktion 108, 595 expr 1153 ext-Dateisystem 622, 634 reparieren 1158 ext2-Dateisystem 630 ext3-Dateisystem formatieren 1184 Konvertierung zu ext4 639 Systemparameter 1226 Windows-Zugriff 641 ext4-Dateisystem GRUB 711 Extended Attributes 339 Extents (ext4-Dateisystem) 635 externe Laufwerke 659 extractres 378
F F-Spot 197 Füllen (Gimp) 217 faac 371 faad 371 .face-Datei 98 .face.icon-Datei 126 Facebook 162 faillog 487 Fakeraid 48 FAQ 80 Farben (Gimp) 218 Farbprofile (Gnome) 102 Farbverlauf (Gimp) 218 FAT-Dateisystem 653 fbdev-Treiber (X) 581 fc-cache 602 fc-list 601, 1154 fdisk 615, 1154 Bedienung 615 Tastenkürzel 617 Fedora 27, 1067 automount 625 DKMS 772 Firewall 890 Gateway-Konfigurationsdatei 822 Init-V-Besonderheiten 749 initrd-Datei 712 Konfigurationswerkzeuge 1074 LABEL in /etc/fstab 629 VirtualBox 280 Fernbedienung 240 Fernsehen 240 DVB-T 263 Fernwartung (VNC) 598 feste Links 306 Festplatte formatieren 46, 1184 freier Speicher 1149 partitionieren, Linux 54 überwachen (SMART) 679 fetchmsttfonts 602 ffmpeg 372 FFmpeg 232 ffserver 233 fg 351, 1154 fglrx 573 fglrx-Treiber (X) 574 fgrep 1164 FHS 343
1253
Stichwortverzeichnis
FIFO 441 file 309, 1154 Files-Abschnitt (X) 571 Fonts 601 Filesystem Hierarchy Standard 343 Filmschnitt 255 Filter drucken 964 IP-Paketfilter 892 find 311, 1155 Firefox 137 Debian 1063 MIME 144 Plugins 155 Sync 142 firestarter 891 Firestarter 891 Firewall 879 Beispiel 895 CUPS 969 DNS 864 Firestarter 891 FTP 391 Grundzustand herstellen 896 NFS 3 932 NFS 4 933 Paketfilter 892 Ubuntu 1118 VPN (PPTP-Server) 907, 908 Firewire 502 Laufwerke 659 Firmware 811 firstboot 1073 fish (Konqueror) 120 fixfmps 378 fixmacps 378 fixscribeps 378 fixtpps 378 fixwfwps 378 fixwpps 378 fixwwps 378 flac 372 Flash 156 Debian 1063 Fedora 1080 openSUSE 1101 Ubuntu 1127 Flash-Dateisystem 625 FlashBlock 158 flashplugin-nonfree 1063
1254
Flecken entfernen (Gimp) 210 Flip (Gimp) 226 Fluendo 232 flush (mount) 1198 dmask (mount) 1197 Fokus (X) 77 fold 1157 font-lock-mode 428 fontconfig-System 600 FontPath 601 Fonts 494 installieren 602 X 600 fonts.conf 603 for (bash) 467 force group = sales 952 forcefsck 633 FORMAT (Windows) 46 Formatieren ext3/ext4-Dateisystem 638 Festplatte/Partition 1184 Fotodrucker 971 Foxmarks 142 Fragmentierung 641 Framebuffer (X) 581 free 499, 1157 Free Software Foundation 32 FreeBSD-Dateisystem 623 freedb 239 FreeNX 600 Freevo 240 freier Speicherplatz 1149 fremdsprachige Zeichen (Emacs) 432 freshclam 1031 fsck 633, 1157 fsck.ext2/ext3/ext4 1158 fsck.ext2/ext3/ext4 639 fsck.xfs 652 FSF 32 fsid (NFS) 935 FSSTND 343 fstab 629 CIFS 664 NFS 662 fsview 121 ftp-Kommando 389, 1158 FTP 389 Client 389 Masquerading 850 passiver Modus 391
Stichwortverzeichnis
Secure FTP Server 982 Server 1000 Server (sftp) 982 ftpusers 1002 FUSE 625, 655 fuser 353, 1158 G Gast (Virtualisierung) 269 Gateway 802 Client-Konfiguration 822 Client-Konfiguration (route) 814 Server-Konfiguration 848 gconf-editor 94 gconftool-2 94 GDI-Drucker 971 gdm 564 gdm-user-switch-applet 88 gdmsetup 95, 564 Gecko 135, 145 gecko-mediaplayer 162 gedit 104 genisoimage 328, 1158 Gentoo 27 getafm 378 getcap 342 getfacl 340, 1161 getfattr 341, 1161 getsebool 922 getty 738 GFS 606 gfs-Dateisystem 625 gftp 391 gfxboot 697 gfxmenu (GRUB) 697 Ghostscript 377 gid (mount) 1196 GID 483 gif2tiff 370 Gimp 203 Screenshots 201 gimp-dcraw 189 Gimp-Print 377 gksu 357 gksudo 360 GL (Open GL) 560 Glanzlichter (Gimp) 219 glibc 544 Zeitzone 479 Global Filesystem 606 Globalmenü 100
globstar 446 globstar-Option 446 GLX 560 glxinfo 594 GMA500 557 GMT (Greenwich Mean Time) 479 GN40 557, 576 gnash 158 Gnome 81 3.0 107 Anti-Aliasing 603 gdm 564 geänderte Netzwerkkonfiguration 858 Icons in Menüs 98 Panelposition (Dual-Head) 588 scannen 192 Screenshots 201 Startprobleme 67 Ubuntu-Besonderheiten 1123 Verzeichnis freigeben 954 gnome-about-me 98 gnome-activity-journal 107 gnome-appearance-properties 603 gnome-cups-manager 97 gnome-default-applications-properties 99 gnome-display-properties 587 gnome-keybinding-properties 87 gnome-keyboard-properties 100 gnome-keyring-daemon 389 gnome-language-selector 495 gnome-media[-apps] 241, 250 gnome-nettool 384 gnome-packagekit 538 gnome-panel-screenshot 201 gnome-photo-printer 188 gnome-ppp 796 gnome-search-tool 90 gnome-shell 107 gnome-sound-recorder 250 gnome-system-monitor 352 gnome-system-tools 480 gnome-terminal 102 gnome-vfs.keys 99 gnome-vfs.mime 99 gnome2-globalmenu 100 GNU 34 Emacs 411 General Public License 32 Ghostscript 377 GRUB 689
1255
Stichwortverzeichnis
PG 171 .gnupg-Verzeichnis 172 Google Earth 595 Groups 179 Google Chrome 147 gparted 620 gpasswd 487 gpg 683, 1161 GPG 171 gphoto2 189 gpk-application 538 gpk-repo 1076 gpk-update-icon 1096 gpk-update-viewer 539, 1093 GPL 32 gpm 478 Grabber (Audio-CDs) 239 Grafik-Konverter 369 grep 312, 1162 Beispiele 454 grep-dctrl 528 grepall (bash-Beispiel) 454 grepmail 1164 groupadd 481, 1164 groupdel 1164 groupmod 1164 groups 1164 growisofs 331, 1164 Grsync 320 grub 1165 GRUB 689 btrfs-Dateisystem 711 Debian 700 ext4-Dateisystem 711 Farben 696 Festplattennamen 695 Installation in den MBR 703 Interna 705 Kernel-Updates 714 Linux starten 697 LVM 675, 711, 728 Mehrfachinstallationen 708 Menüdatei 694 Neuinstallation in Live-System Notfall 714 Partitionsnamen 695 Passwortschutz 705 RAID 670, 728 Splash-Datei 696
1256
715
Ubuntu 700 USB-Datenträger 704 Windows 706 Windows starten 699 GRUB 2 715 Konfiguration 717 Reparatur 727 grub-editenv 723 grub-install 1165 grub-mkconfig 719 grub.cfg 717 grub.conf 694 Gruppen 484 Eigenschaften verändern 1164 Gruppenzugehörigkeit 1141 neue Dateien 337 von Dateien 333 gs 377 gscan2pdf 191 GSM-Modem 794 gsox 372 GStreamer 505 gsynaptics 586 Gthumb 188 gtkPod 253 GTUBE-Testnachricht 1030 gucharmap 601 guest account 953 guest ok 953 guest only 953 Gufw 891, 1118 gunzip 315, 1166 Gutenprint 377, 964 Gimp 206 GVFS 92 gvim 397 Gwenview 188 Gwibber 137 gzip 315, 1166 H H264 236 Hacker-Kernel 774 HAL 503 evdev-Treiber (X) 582 halt 1166 Handbrake 241 HandBrake 262 Hardware Devices 346 Devices (udev-Dateisystem) 347
Stichwortverzeichnis
Referenz 498 Hardware-RAID 48 hd0,0 (GRUB) 695 head 1166 Heimatverzeichnis 78, 298, 482, 483 Helix-Player 238 Helligkeit optimieren (Gimp) 209 Hello World 551 help 296, 1166 HFS-Dateisystem (Apple) 624, 1160 Hibernate Kerneloptionen 788 Hintergrundprozesse 350 Hinting 602 /home 343 Home-Partition 57 Home-Server 956 Home-Verzeichnis 78, 298 host 869, 1007, 1008, 1167 Host-only Networking 272 host.conf 821 hostname 800, 1167 Hostname DHCP-Client-Konfiguration 857 DHCP-Server (dnsmasq) 855 einstellen 823 SUSE 1091 hosts 820 hosts allow 943 hosts deny 943 hosts.allow 885 NFS 931 hosts.deny 885 NFS 931 Hotplug-System 503 HOWTO 80 HP-Druckertreiber 967 HPLIP 967 hplip-gui 967 hplip-toolbox 967 .htaccess-Datei (Apache) 991 HTML PostScript-Konverter 376 html2ps 376 html2text 375 HTML5 135 htop 352 htpasswd 990 HTTP Proxy 909
Webserver 985 httpd 985 httpd.conf 986 Hugin 199 hwclock 479 Hyper-Threading 787 Hyper-V 274 Hypervisor 269 I i.Link 502 i18n 493 ICC/ICM-Farbprofile 102 Icecast 233 icedax 371 Icedove 173, 1063 IcedTea 160, 552 Iceweasel 138, 1063 ICMP 799, 880 iconv 373, 1167 id 1167 ID3-Tags 235 IDE Device-Namen 609 Festplatten 608 Identi.ca 162 idle (PPP) 828 IEEE 1394 502 if (bash) 464 ifconfig 382, 813, 1167 ifdown 1168 ifup 847, 1168 Image Magick 369 IMAP 167 IMAP-Server 1004 Authentifizierung 1022 Immunix 924 Inbox 168 includeres 378 Indexes (Apache) 990 indicator-applet 88, 1124 indicator-applet-session 88 indicator-application 1124 indicator-appmenu 100 indicator-me 1124 indicator-messages 1124 indicator-session 1124 indicator-sound 1124 inetd.conf 761 info 296 Infrastructure-Modus (WLAN) 808
1257
Stichwortverzeichnis
init 736, 1168 init (Kerneloption) 786 Init-System 735 Init-V-Prozess 362, 736 Debian 746 Fedora 749 Kernelparameter 788 Optimierung 743 Protokoll 509 Red Hat 749 restart/reload 742 SUSE 754 Ubuntu 743, 759 Upstart 743 X starten 562, 737 Init-V-Scripts 740 Init-V-System Firewall-Beispiel 899 init.d 741 initctl 746 initdefault (in inittab) 739 Initial-RAM-Disk 711, 786 initramfs-Datei 713 initrd (GRUB) 697 initrd (Kerneloption) 786 initrd (LILO) 731 initrd-Datei 691 selbst erzeugen 711 inittab 738 inkrementelle Backups 318 Inkscape 204 InnoTek 275 Inode Access Time 1190 Inodes (Dateisystem) 1185 InputClass (X/Tastatur) 582 InputDevice (X/Maus) 584 InputDevice (X/Tastatur) 583 inputrc 435 insecure (NFS) 931 insmod 767, 1169 insserv 756, 1169 install (in modprobe.conf) 770 Installation 37, 42 Benutzerverwaltung 61 externe Festplatten 40 Grundkonfiguration 61 Linux deinstallieren 70 Netzwerkinstallation 41 Netzwerkkonfiguration 61 Probleme 64
1258
root-Passwort 61 SUSE 1086 Tastaturprobleme 65 Updates 68 Varianten 39 Instant Messaging 137 inted 761 intel-Treiber (X) 576 Interface 801 interfaces 943 Internationalisierung 492 Internet Gateway (Client-Konfiguration) 822 Gateway (Server-Konfiguration) 848 Masquerading 848 Netzwerkgrundlagen 799 Printing Protocol (IPP) 967 Router 848 Sicherheit 879 Internet Service Daemon 760 Internet-Gateway 843 invoke.rc 1169 iocharset (mount) 1197 iotop 352 IP-Adresse 801, 802 IP-Filter 892 IP-Nummer 801, 802 IP-Ports 800 Liste 880 ip-up (PPP) 827 ip-up.local (PPP) 827 IPng 805 IPP 967 ipparam (PPP) 828 ipsec 900 iptables 894, 1169 Beispiel 895 Masquerading 849 transparenter Proxy-Cache 913 IPv6 805 IRC 137 ISO-10646-Zeichensatz 493 ISO-8859-Zeichensätze 493 ISO-Image 328 erzeugen 328 testen 329 ISO-Latin 1 1205 iso9660-Dateisystem 624, 630, 656 mount-Optionen 1194 Istanbul 201, 236
Stichwortverzeichnis
iwconfig 1172 iwlist 819, 1173 J JägerMonkey 135 Java 552 Firefox 143 Konqueror 153 Plugin 160 JavaScriptCore 135 jed 292, 411 JetDirect (HP-Netzwerkdrucker) 973 Jetpack 146 jffs-Dateisystem 625 jfs-Dateisystem 623 jmacs 292, 411 joe 293 Jokerzeichen 302, 445 grep 1162 Komplikationen 303 Joliet-Extension 328, 624, 656, 1160 journal (Journaling-Modus) 636 Journaling-Dateisysteme 632 btrfs 641 ext3 634 xfs 651 jove 292, 411 jpico 293 K K3b 127 K9Copy 263 kacpid 364, 499 Kaffeine 246 DVB-T 265 kaffine-mozilla 162 Kanal (WLAN) 808 Kantenglättung Anti-Aliasing (X) 602 Gimp 222 Kate 131 KAudioCreator 254 kbd 477 kblockd 364 kbluetooth 503 kbluetooth-devicemanager 503 kcmshell4 122 KDE 111 Anti-Aliasing 603 Fonts installieren 602 geänderte Netzwerkkonfiguration
858
kdm 564 scannen 192 Screenshots 201 Startprobleme 67 su 357 Verzeichnis freigeben 955 kdenetwork-filesharing 955 Kdenlive 201, 241 kdesu 357 kdm 564 kdmrc 564 KEdit 131 kernel (GRUB) 697 Kernel 24, 774 Bootoptionen 785 Bootoptionen (GRUB) 693 Bootoptionen (LILO) 731 Dokumentation 775 Einstellungen ändern 788 Hotplug-Funktion 503 installieren 782 IP-Filter 892 kompilieren 773, 781 Konfiguration feststellen 779 konfigurieren 778 Logging 509 Module 765 neueste Version 777 Optionen 770 Optionen (GRUB) 693, 698 Optionen (LILO) 731 Parameter 788 Patches 777 Prozesse 362 Update (GRUB) 714 Kernel Mode Setting 560 Kerxy 1122 keys-Dateien (Gnome MIME) 99 KGpg 131 khelperd 364 KHTML 135, 151 khubd 364 Kid3 235 kill 353, 1173 killall 354, 1173 KIO-Protokolle 122 KIPI 196 kjavaappletviewer.so 153 kjournald 364, 636 KJS 135
1259
Stichwortverzeichnis
Klammererweiterung 446 Kleopatra 131 Klipper 131 KMail 183 kMediaFactory 241 kmod 766, 768 KMS 560 video (Kerneloption) 787 knfsd 364 Knoppix 28 kolourpaint 204 Kommandoprompt 20 Kommandoreferenz 1133 Kommandos 349 ausführen 443 bedingt ausführen 444 Eingabe 436 im Hintergrund ausführen 444 Kommandointerpreter 433 Optionen 1133 siehe auch Prozesse 349 starten 350 starten (bash) 437 Substitution (bash) 447 Konfiguration 473 bash 435 Benutzer einrichten 480 Dateisystem 629 Kernel 773, 778 LAN 791 Maus 478 Maus unter X 584 Netzwerk 791 Passwort 486 Prompt 435 Schriftart 478 Tastatur (Textkonsole) 476 Tastatur unter X 582 Textkonsole 476 X 566 Zeitzone 479 Konqueror 121 MIME 126 Verzeichnis freigeben 955 Webbrowser 151 konqueror-nsplugins 152 Konsole 130 mehr als sechs 738 Schriftart 478 Tastatur 476
1260
wechseln 288 Kontact 183 Kontrast optimieren (Gimp) 209 Konversation 137 Konverter 369 Audio 371 Kopete 137 KPackageKit 538 kpartx 1050 KPhotoAlbum 188 krandrrc 588 krdc 599 Krename 131 krfb 599 krita 204 KRunner 130 kscand 364 kseriod 364 ksh 434 ksnapshot 201 ksoftirqd 364 Ksplice 775 kswapd 364 ksysguard 352 kthread 364 KTorrent 396 ktune (PPP) 828 Kubuntu 29, 1108 nachträglich installieren 1128 Kubuntu Netbook Edition 1108 kupdateapplet 1096 kvm 1036 KVM 1034 kvm-ok 1034 KWallet 130 KWin 127 KWrite 131 L l10n 493 L2TP 901 label (LILO) 731 Label /etc/fstab 629 root-Kerneloption 785 lame 234, 372 LAMP 981 LAN 791 Network Manager 792 Netzwerkkonfiguration 799 Server 929
Stichwortverzeichnis
Sicherheit 879 LANG 495 lapic (Kerneloption) 787 laptop-mode-tools 501 Lasso-Funktion (Gimp) 221 LATEX 380 Latin-Zeichensätze 493 Laufwerksbuchstaben (A:, C:, D:) 607 Launchy 106 Lautstärke 505 lba32 (LILO) 730 LC_ALL 496 LC_COLLATE 496 LC_CTYPE 496 LC_MESSAGES 496 LC_MONETARY 496 LC_NUMERIC 496 lcp (PPP) 828 LC_PAPER 496 LC_TIME 496 LC_TYPE 492 LDAP 933 ldconfig 546, 1173 ldd 545, 1174 LD_LIBRARY_PATH 545 ld.so 545 Lenny 1055 Lesezeichen Firefox 141 synchronisieren (Firefox Sync) 142 synchronisieren (Xmarks) 142 less 291, 1174 /proc-Dateien 783 let 451 LFS 634 lftp 393, 1174 LGPL 32 /lib /firmware 811 /modules/*/modules.dep 769 /modules 766, 767, 782 libata 608 libc 545 libcap 342 libdbus 504 libGL.so 560 NVIDIA 577 libgphoto2 189 libgudev 503 libmad 238
libogg 239 libpam-smbpass 949 Libraries 543 librsvg2 370 libtiff 370 libudev 503 libvirt 1035 libvirtd 1035 libvorbis 239 libwrap 886 libzypp 1092, 1095 Lightning 179 lilo 1174 LILO 728 Bedienung 729 entfernen 732 globale Optionen 730 Konfiguration 729 Linux-Image-Optionen 730 LVM 728 RAID 728 Reparatur in einem Live-System Startprobleme 66 lilo.conf 729, 730 Line Feed 373 LinEAK 584 linkname (PPP) 829 Links 306, 1175 LinNeighborhood 959 Linus Torvalds 34 Linux 23 deinstallieren 70 Distribution 25 Entstehung 31 Installation 37, 42 Kernel kompilieren 773 Kernelmodule 765 Konfiguration 473 Linux Standard Base 26 Shutdown 74 Startprobleme 66 Systemveränderungen 68 Updates 68 Voraussetzungen 37 Linux Mint 1108 linux-restricted-modules 769 LinuxBIOS 716 lirc 240 Live-System 26 Fedora 1073
733
1261
Stichwortverzeichnis
Ubuntu 1109 LiVES 241 liveusb-creator 1074 livna-config-display 1081 Livna-Paketquelle 1076 Lizenzen 31 LLTD 962 ln 306, 1175 loadkeys 477 locale 496 Locales/Internationalisierung 492 localhost 800, 820 local_recipient_maps 1014 locate 310, 1176 lock (PPP) 829 lockd 364 Locking-Datei (PPP) 829 log file 944 Logging Logrotate 509 Postfix 1020 Samba 943 Logging-Dateien 506 X 565 Logical Volume 51 Logical Volume Manager 50, 675 Login 73 Name 483 Login-Icon Gnome 98 KDE 126 login.defs 486 logische Partition 46 logname 1176 logout 1176 logrotate 509 Samba 944 lokale Netze 791 Sicherheit 879 lokale Variablen 451 Lokalisierung 492 Loopback-Device 625 ISO-Image testen 329 Loopback-Interface 799, 801, 804 lostfound 344, 640, 1157 lp 970 lpadmin 963, 970 lpc 970 lpd CUPS 965
1262
lpinfo 970 lpoptions 966, 970, 1176 lpq 970, 1176 lpr 1176 lprm 970, 1177 lpstat 970, 973, 1177 ls 1177 Beispiele 299 lsattr 1179 LSB 26 lshal 498 lsmod 767, 1179 lsof 883, 1179 lspci 498, 502, 570, 1179 lsscsi 1180 lsusb 498, 502, 1180 Lubuntu 1108 Lucid-Emacs siehe Emacs 411 LUKS 683 luksformat 685 lvcreate 677, 1180 lvdisplay 1181 lvextend 678, 1181 LVM 675 GRUB 675, 711 GRUB/LILO 728 Grundlagen 50 RAID 675 Snapshots 678 lvreduce 1181 lvremove 1181 lvrename 1181 lvsvan 1181 lynx 154 M m23 513 MAC 885, 918 MAC-Adresse 801, 855 mach64 573 MacOS-Dateisystem 624 Macromedia Flash 156 madplay 371 madplayer 238 Magic-Dateien 309 magicdev 659 Mail siehe E-Mail 1003 MAIL (Variable) 452 Mail Transport Agent (MTA) 166 Mail User Agent (MUA) 166 Mail-Server 1003
Stichwortverzeichnis
Mailbox 169, 1010 Dovecot 1021 mailcap 308 maildir-Format 170 Maildir-Postfach Dovecot 1022 Mutt 186 Postfix 1013 mailq 1020 Main-Pakete 1059 main.cf 1011 Major Device Number 346 make 549 makepasswd 982, 1016 makethumbs 457 man 295 Mandatory Access Control 918 Mandrakelinux 28 Mandriva 28 ManDVD 241 map (LILO) 730 map to guest = bad user 953 mapfile 461 Markierungen (Gimp) 220 Masquerading 848 FTP 391, 850 MSS-Clamping 836 Probleme 850 Master Boot Record 63, 690, 701 wiederherstellen 70 MatchDevicePath 582 MatchIsKeyboard 582 MatchIsPointer 583 MatchVendor 582 Matroska 237 Maus blockiert 355 per Tastatur steuern 77 Textmodus 478 X 76, 584 Mausrad 585 max log size 944 maxcpus (Kerneloption) 787 mbox-Format 169 Mbox-Postfach 1010 MBR 63, 690, 701 Sicherungskopie 702 wiederherstellen 70 mcs 554 md5crypt 706
md5sum 1182 MDA 1004 mdadm 668, 670, 1182 mdadm.conf 668 md_mod (LVM) 675 md_mod (RAID) 668 mdnsd 363 Me-Menü 1124 /media 344 Medibuntu 1121 Medien-Server 956 MeeGo 28 Memtest86 499 Menü im Panel 100 menu.lst (GRUB) 693 Mesa 560 Messaging-Menü 1124 metacity 87 MH-Format 184 Microsoft Joliet-Extension 624 SMB-Protokoll 936 TrueType-Fonts 602 Windows starten 699, 732 Windows-Partitionen 653 Midori 153 migration 364 Milter-Schnittstelle 1029 MIME CUPS (drucken) 966 E-Mail 167 Firefox 144 Gnome 99 KDE 126 Konfiguration 307 mime.convs 966 mime.types 308, 966 mingetty 738 Minirok 238 Minor Device Number 346 Mirage 188 Miro 267 Mirroring 49 MIT-Lizenz 33 mkbootmsg 697 mkconf 668 mkdir 1183 mke2fs 638, 1185 mkfifo 1183 mkfs 1184
1263
Stichwortverzeichnis
mkfs.btrfs 643, 1184 mkfs.ext2 1185 mkfs.ext3 1185 mkfs.ntfs 654, 1186 mkfs.vfat 654, 1186 mkfs.xfs 652, 1186 mkinitramfs 712 mkinitrd 1186 SUSE 713 mkisofs 328, 1158 mknod 1187 mkntfs 656 mkswap 667, 1188 mkudffs 1188 MKV 237 mkxfs 1184 mlocate 311 MMS 240 /mnt 344 Mobilfunkmodem 794 modinfo 768, 1188 modprobe 767, 1188 modprobe.conf 768, 813 Module 765 Abhängigkeiten 769 automatisch laden 769 Device-Dateien 770 kompilieren 771, 781 Nicht-GPL-Module (Ubuntu) 769 Optionen 770 Parameter 768 Versioning 766 verwenden 767 Module-Abschnitt (X) 572 module-assistant 772 ModulePath 571 modules.dep 769 mogrify 370, 1189 Monitor (X-Konfiguration) 568 monitors.xml 587 Mono 553 Monolithischer Kernel 779 Monsoon 396 Moovida 240 more 1189 mount 627, 628, 1189 Beispiele 628 NFS 661 Optionen 630 remount für Systempartition 628
1264
SMB 663 mount.cifs 663 MOV 237 mozilla-mplayer 162 mozilla-plugin-config 157 mozilla-plugin-vlc 162 MP3 234 Decoder 238 Fedora 1081 Player 242 Ubuntu 1129 mp32ogg 371 MP4 237 mpage 375 MPEG-4 236 mpg123 238, 371 mpg321 238, 371 MPlayer 247 DVB-T 266 mppe-xxx (PPP) 906 mru (PPP) 829, 835 ms-dns (PPP) 906 msdos-Dateisystem 623 MSS-Clamping rp-pppoe 836 msttcorefonts 602 MTA 1004 mtab 627 mtu (PPP) 829, 835 MUA 1004 Mule (Emacs) 431 Multi-Session-CDs/DVDs 129, 1236 Multimedia-Player 246 MultiViews (Apache) 990 Musik-Verzeichnis 109 mutt 166 Mutter 107 mv 304, 1198 Dateien umbenennen 304 Sicherheitsabfragen 1077 MX-Eintrag 1007 mydestination 1017 mydestinations 1012 myhostname 1012 mynetworks 1012 myorigin 1012 MySQL 994 Administration 998 Mythbuntu 240, 1108 MythTV 240
Stichwortverzeichnis
N Nachbelichten (Gimp) 219 nachträgliche Installation 68 Name Service Switch 491 named 863 named-checkconf 875 named-checkzone 875 Nameserver Client-Konfiguration 802, 821 Server-Konfiguration (dnsmasq) 852 nano 294 NAS-Festplatte 664 NAT 848 NAT-Tabelle (ipchains) 894 Native POSIX Thread Library 355 Nautilus 88 MIME 99 Verzeichnis freigeben 954 nautilus-share 954 ncp-Dateisystem 624 NDIS-Wrapper 811 Neatx 600 Nepomuk 314 .NET Framework 553 NetBIOS 936 NetBSD-Dateisystem 623 Netfilter 892 Netpbm 370 netstat 882, 1198 Netware Core Protocol 624 Network File System 624, 661 Network Manager 791 Network-Maske 801 Netzwerk 791 Ethernet-Controller konfigurieren 812 Grundlagen 799 Netzwerk-Controller 812 Server-Konfiguration 843 Sicherheit 879 Netzwerkaktivität überwachen 882 Netzwerkbrücke 1048 Netzwerkdrucker Client-Konfiguration 973 Server-Konfiguration 974 Netzwerkschnittstelle 801 neue Rechtschreibung bash-Script 455 newaliases 169, 1014 newgrp 1199 Beispiel 337
News (Thunderbird) 178 newusers 1199 NextStep-Dateisystem 623 nfs-Dateisystem 624 NFS 929 Client 661 /etc/fstab 662 Firewall 933 Geschwindigkeit (Client) 1195 Geschwindigkeit (Server) 931 mount-Optionen 1195 NFS 4 933 root 931 Server 929 SUSE 662 nfsd 364, 930 nfsd4 930 nftables 895 NIC 800 nice 355, 1199 NIS 933 nl 1199 nm-tool 795 nmap 883 nmbd 940 nmcli 795, 1200 noapic (Kerneloption) 787 noatime (mount) 1190 noauth (PPP) 829 noauto (mount) 1190 nodeadkeys 476, 583 nodelalloc (ext4-Dateisystem) 1194 nodetach (PPP) 829 nodev (mount) 1190 nodev-Dateisysteme 624 nodfs (mount/CIFS) 1193 noexec (mount) 1190 nohide (NFS) 935 noht (Kerneloption) 787 nohup 1200 noipdefault (PPP) 829 nolapic (Kerneloption) 787 noload (mount) 1194 NoMachine 600 Nomad 600 nomodeset (Kerneloption) 787 Non-Free-Pakete 1059 none-Dateisystem 626 nopersist (PPP) 829 noresume (Kerneloption) 788
1265
Stichwortverzeichnis
no_root_squash (NFS) 931 nosmp (Kerneloption) 787 no_subtree_check (NFS) 931 nosuid (mount) 1191 Notebook Batterie 499 Notfall Dateisystem reparieren 633 Debian 1065 Fedora 1079 Init-V-Prozess umgehen 786 Linux-Startprobleme 66 Rettungssystem 66 Tastatur funktioniert nicht 68 Windows-Startprobleme 67 X/KDE/Gnome startet nicht 67 Novell 28 Dateisystem 624 Nozomi 831 NPTL (Native POSIX Thread Library) 355 nscd 492 nspluginviewer 152 nspluginwrapper 156, 157, 1080 NSS 491 ntfs-Dateisystem 624, 653 Streams 655 NTFS mount-Optionen 1195 ntfs-3g 655 ntfsclone 656 ntfsinfo 656 ntfslabel 656 ntfsprogs 656 ntfsresize 656 ntfsundelete 656 NTP 978 ntpd 978 ntpdate 978 ntpq 978 NumLock xset 1237 nvidia-Treiber (X) 577 Debian 1065 DRI 559 Fedora 1080 openSUSE 1102 TwinView 591 Ubuntu 1129 nvidia-settings 578 nvidia-xconfig 578
1266
NWID (WLAN) 808 NX 599 O OCFS 606 ocfs-Dateisystem 625 OCICLI 1098 Öffentlich-Verzeichnis 109 Ogg Vorbis 235 Ogg-Audio-Dateien 235 ogg123 239 oggdec 371 oggenc 371 OggMedia 237 OGM 237 OGMrip 262 Okular 131 old_passwords (MySQL) 996 One-Click-Install (openSUSE) 1098 Online-Dokumentation 79 Open Database Alliance 994 Open GL 560 Open Movie Editor 241 Open Source 31 openbsd-inetd 761 OpenJDK 160, 552 OpenPGP 171 OpenShot 258 openssh 982 openSUSE 28, 1083 openswan 900 OpenVPN 901 OpenVZ 274 /opt 344 Optionen Kernel 778 Kommandos 1133 Module 770, 1169 options in modprobe.conf 770 Oracle 28 Cluster Filesystem 606 Java 160, 552 MySQL 994 VirtualBox 275 Oracle Cluster Filesystem 606 Orca 103 Order (Apache) 989 ordered (Journaling-Modus) 636 os-prober 721 OSS 504
Stichwortverzeichnis
other (LILO) 732 Outlook Express 170 owner (mount) 1191 P Pacifica 270 PackageKit 538 Fedora 1076 openSUSE 1093 packagekitd 538 Packman-Pakete (SUSE) 1097 PAE 280, 771 Pakete 513 Abhängigkeiten 515 Debian 526, 1059 Fedora 1076 Format ändern 540 Paketmanager 1093 Proxy (apt-cacher) 535 Red Hat 513 SUSE 1092 Ubuntu 1119 Verwaltung 511 Paketfilter 892 Firestarter 1118 Palimpsest 621 PAM 489 pam-auth-update 489 Panel Gnome 85 KDE 113 Panoramabilder 199 PAP 826 parallele Schnittstelle 964 Parametersubstitution 461 Paravirtualisierung 270 Parity Striping 49 Parted Magic 29 Partition ändern, Linux 54 Bezeichnung unter Linux 608 Dateisystem 59 fdisk-Bedienung 615 formatieren 1184 freier Speicher 1149 Größe ändern mit fdisk 616 Grundlagen 45 ID-Nummer 616 ideale Partitionierung 56 im Verzeichnisbaum 607 Partitionsname 629
remount 628 Typen 45 passdb backend 941, 947 passwd 1201 password (GRUB) 706 Passwort 485 ändern 486, 1201 für Gruppen 487 root 486 vergessen 487 Passwortverwaltung PAM 489 Samba 947 patch 548, 777, 1201 Patches (Kernel) 777 path 951 PATH 437, 452 Einstellung ändern 452 Pattern (ZYpp) 526 pavucontrol 251, 506 PC-Card (PCMCIA) 502 pccardctl 502, 503 pci (Kerneloption) 786, 788 PCI-Bus 502 pci.ids 570 PCM-Lautstärke 505 PCMCIA 502 Datenträger 659 pdbedit 947 PDC 939 PDF Adobe Reader 158 Gnome 104 PostScript-Konverter 376 Tools 379 pdf2ps 376, 1201 pdf90 380 pdfedit 380 pdfimages 379 pdfinfo 379 pdfjam 380 pdfjoin 380 pdflush 364 pdfnup 380 pdftk 1201 pdftops 376, 1202 pdftotext 379, 1203 pdksh 434 persist (PPP) 830 PGP 171
1267
Stichwortverzeichnis
Phonon 506 PHP 992 Unicode 988 phpMyAdmin 999 Physical Device 51 Physical Extent 51 Physical Volume 51 Picasa 188 pico 294 PID 352 PID-Datei 353 Pidgin 137 pidof 352, 1203 PIN/PUK-Probleme 831 pine 166 pinfo 296 ping 382, 804, 1203 Pino 137 Pipes 441 pirut 511 PiTiVi 255 pkcon 538 pkmon 538 Plasma 113 Plasmoids 113 Pluggable Authentication Modules 489 plugin (PPP) 830 Plugins 155 Adobe Reader 158 Flash 156 Java 160 Konqueror 152 Yum 520 plymouth 749 Plymouth 1078 policyd-weight 1026 PolicyKit 361 POP 167 POP-Server 1004, 1020 Authentifizierung 1022 Poppler 379 Port-Nummer FTP (20, 21) 880 HTTP (80) 880 Liste 880 Referenz 880 Squid (3128) 912 Port-Scan 883 Portable Bitmap Utilities 370 Portland 109
1268
portmap 930 Ports (TCP/IP) 800 Liste 880 POSIX Threads 355 Postfach Mbox-Format 1010 virtuell 1018 Postfix 1009 Alias 1013 Logging 1020 virtuelle Domänen 1017 postmap 1010, 1015 postqueue 1020 PostScript 963 DSC 379 HTML-Konverter 376 PDF-Konverter 376 Printer Definition (PPD) 966 Text-Konverter 375 Unicode-Konverter 375 Utilities 378 Poulsbo 557, 576 powertop 500 PPAs (Ubuntu) 1120 PPD-Dateien 966 ppds.dat 967 PPP 825, 901 Blockgröße 829 Blockgröße (ADSL) 835 DNS automatisch einstellen 827 pppd 825 ADSL (PPPoE) 833 ADSL (PPTP) 837 Konfigurationsdateien 826 Optionen 827 VPN-Client-Konfiguration 839 VPN-Server-Konfiguration 903 PPPoA 826, 832 PPPoE 825, 833 MTU-Problem 835 pppoeconf 797 PPTP 901 ADSL 826 ADSL-Konfiguration 837 Network Manager 794 VPN-Client-Konfiguration 839 VPN-Server-Konfiguration 903 pptpconfig 837 pptpd 903, 905 pptpd.conf 905
Stichwortverzeichnis
pwd 1205 Prüfsumme 1143 MD5 1182 SHA 1215 Pre Shared Key (WPA) 810 prefdm 749 prelink 546 preload 743 Presto 135 Presto (Yum) 521 preupgrade 1076 pri (Swap-Priorität) 665 primäre Partition 45 Primary Domain Controller 939 printcap CUPS 965 printenv 451 printers.conf 966 /proc 344, 624, 783 /asound 504 /sys 788 /acpi 499 /config.gz 779 /crypto 684 /mounts 627 /pci 502 /splash 756 Procmail 1004 profile-Dateien 450, 452 Programm 349 gewaltsam stoppen 1173 gewaltsam stoppen unter X 1236 im Hintergrund fortsetzen 1138 im Vordergrund fortsetzen 1154 kompilieren 547 siehe auch Prozesse 349 starten 350 starten (bash) 437 starten (mount-Option) 1190 prompt (LILO) 730 Prompt 20 bash 435 PROMPT_COMMAND (Variable) 436, 452 Protocol (X-Maus) 584 Protokoll-Dateien (Logging) 506 Proxy 143 Client (Firefox) 143 Server (Squid) 909 Proxy (apt-cacher) 535 proxy-arp (PPP) 906
Prozesse 349 aktueller Zustand 1225 gewaltsam beenden 353 Größe begrenzen 355 Größe limitieren 1226 Hierarchie 353 Hintergrundprozesse 350 im Hintergrund fortsetzen 1138 im Vordergrund fortsetzen 1154 Liste 1203 Priorität 355 Rechenzeit 355 stoppen 1173 unter anderer Identität ausführen unterbrechen 350 verwalten 351 Vordergrundprozesse 350 Prozessor 498 ps 351, 1203 PS1 (Variable) 435, 452 ps2pdf 376, 1204 psbook 378 psnup 378 psresize 378 psselect 378 pstops 378 pstree 353, 1204 psutils 378 PTP-Digitalkameras 188 pty (PPP) 830, 839 pullin-Pakete (SUSE) 1096 PulseAudio 506 Pungi 1067 pup 511 Puppy 29 pvcreate 1205 pvdisplay 1205 pvremove 1205 pvscan 1205 PyBackPack 321 pyNeighborhood 959
356
Q qconf 780, 781 QDVDAuthor 241 QEMU 1034 qemu-img 1036 Qt 111 QT 237 Quassel IRC 137 Quellpaket 514
1269
Stichwortverzeichnis
queue (Druckerwarteschlange) 964 Quick Mask (Gimp) 224 QuickTime 237 quiet (Kerneloption) 787 Quotas 606 R r128 573 radeon 573 radeon-Treiber (X) 573 Radierer (Gimp) 216 RAID 48 GRUB 670 GRUB/LILO 728 LVM 675 RAID-0 49 RAID-1 49 RAID-10 49 Scrubbing 674 Systempartition 670 Überwachung 669 raidtools 667 RandR 560, 586 RAW-Format 189 rc-Dateien 740 rdiff-backup 318 read 463 readahead 743 readcd 329 readline 435 readom 329 Real Audio 236 RealPlayer 161, 238 reboot 1205 Rechnername siehe Hostname 857 Rechnerstart 689 Probleme 66 recode 373, 1205 RecordMyDesktop 201 recover-file (Emacs) 413 Red Hat 28, 1068 automount 625 Firewall 890 Gateway-Konfigurationsdatei 822 initrd-Datei 712 Konfigurationswerk