Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z
faqs.org - Internet FAQ Archives

de.comp.os.unix.linux.infos - FAQ (section2)


[ Usenet FAQs | Web FAQs | Documents | RFC Index | Forum archive ]
Archive-name: /de/comp/linux/dcoul-faq/section2
Posting-frequency: monthly
Last-modified: 2001-02-04 21:21:42
Version: CVS revision 1.57
URL: http://www.dcoul.de/faq/

See reader questions & answers on this topic! - Help others by sharing your knowledge
                                              http://www.dcoul.de/faq/
  _________________________________________________________________
                                                                      
2. Allgemeine Linux-Fragen

2.1 Wo finde ich deutschsprachige Dokumentation zu Linux?

Im Deutschen Linux HOWTO Projekt (DLHP). Die Texte sind unter
http://www.tu-harburg.de/dlhp/ bzw.
http://www.tu-harburg.de/dlhp/FTP/
zu beziehen. Weiterhin werden regelmäßig deutschsprachige Infotexte in
de.comp.os.unix.linux.infos gepostet, die man unbedingt gelesen haben
sollte, bevor man Fragen in der de.comp.os.unix.linux-Hierarchie
stellt.

2.2 Welche Bücher gibt es zu Linux?

In de.comp.os.unix.linux.infos wird wöchentlich eine Bücherliste
gepostet, im Web ist sie unter http://ifix.cx/buecher.txt zu finden.

2.3 Ich habe Linux gerade erst hochgefahren und fast mein gesamter
Speicher ist schon belegt. Verbraucht Linux soviel Speicher?

Linux versucht, den vorhandenen Speicher möglichst effizient zu
nutzen. Daher wird der von Programmen zur Zeit nicht benötigte
Speicher als Plattencache benutzt. Sobald ein Programm mehr Speicher
anfordert, wird der Plattencache automatisch verkleinert und der
freigewordene Speicher dem Programm zur Verfügung gestellt. Es ist
also vollkommen normal, dass der Speicher immer sehr voll zu sein
scheint.

2.4 Linux erkennt nur einen Teil meines Speichers. Wie kann ich das
ändern?

Du teilst einfach dem Kernel explizit mit, wieviel Speicher du hast,
indem du einen Kernelparameter übergibst, bei 96 MB z.B. mem=96M. Wie
Kernelparameter übergeben werden, ist im BootPrompt-HOWTO beschrieben.
Aber Windows erkennt doch problemlos den ganzen Speicher?
Zum Abfragen der Speichergröße gibt es verschiedene BIOS-Funktionen,
int15/88, die älteste, kann nur Speichergrößen bis 64 MB übermitteln.
Linux benutzt sie, wenn keine der "besseren" Funktionen implementiert
ist. int15/e801 wird seit Kernel 2.0.36 (anno 1998) unterstützt und
kann auch Speichergrößen über 64 MB zuverlässig zurückliefern,
aktuelle BIOS (seit ca. 1999) bieten diese Funktion aber nicht mehr
an. Kernel 2.4 verwendet daher wie Windows int15/e820, womit das
Problem hoffentlich beseitigt ist. (Mittels fancy-memory-patch
<http://www.pell.portland.or.us/~orc/Memory/> kann man auch älteren
Kerneln die neue BIOS-Funktion beibringen.)
int15/e801 und besonders int15/e820 melden nicht nur schlicht das
obere Ende des Hauptspeichers zurück, sondern können z.B. auch über
"Löcher" im Speicher (Memory Holes) und andere Dinge mehr informieren.
Eine Beispielausgabe von Kernel 2.4.x:
BIOS-provided physical RAM map:
BIOS-e820: 000000000009fc00 @ 0000000000000000 (usable)
BIOS-e820: 0000000000000400 @ 000000000009fc00 (usable)
BIOS-e820: 0000000000010000 @ 00000000000f0000 (reserved)
BIOS-e820: 0000000000010000 @ 00000000ffff0000 (reserved)
BIOS-e820: 0000000003f00000 @ 0000000000100000 (usable)

2.5 Warum zeigt Linux in /proc/cpuinfo an, im Rechner befände sich ein
Pentium 75, obwohl ein Pentium 90/100/120/133/166/200/* eingebaut ist?

Das Kommando cat /proc/cpuinfo liefert bei allen normalen (d.h. nicht
MMX) Pentiums ab 75 MHz die folgende Ausgabe:
model : Pentium 75+
Das Pluszeichen hinter der 75 steht für oder höher. Anhand der CPU-ID
kann man nur die alten 60/66 MHz-Typen von den moderneren 75-200
MHz-Versionen unterscheiden.
Bei MMX-Pentiums sieht Ausgabe so aus:
model name : Pentium MMX
Der Takt, für den ein konkreter Chip spezifiziert ist, lässt sich über
das CPUID-Kommando leider nicht feststellen, so dass damit nur die
Chip-Familie angegeben werden kann. Ab Kernel 2.2 gibt es in
/proc/cpuinfo einen alternativen Eintrag: cpu MHz. Der dort angezeigte
Wert wird mit Hilfe eines CPU-internen Timers ermittelt und gibt die
tatsächliche Taktfrequenz (näherungsweise) an. Der dazu verwendete
Timer ist jedoch nicht in allen CPU-Typen vorhanden, so dass diese
Funktion nicht bei allen Prozessoren zur Verfügung steht.

2.6 Ich habe gehört, es gibt Linux auch auf anderen Plattformen wie
z.B. DEC Alpha, Sun SPARC, MIPS oder m68k. Kann ich meine
Linux-Programme auch auf diesen Plattformen ausführen?

Grundsätzlich nein. Die verschiedenen Plattformen verwenden
unterschiedliche Prozessoren und sind daher nicht binärkompatibel. Für
die Alphas gibt es eine Intel-Emulation, mit der auch Linux-Programme
für Intel-Prozessoren dort ausgeführt werden können, aber diese ist
wohl noch nicht vollkommen ausgereift.
Sofern zu einem Programm der Sourcecode vorhanden ist, stellt es
jedoch in der Regel kein Problem dar, ihn auf einer anderen Plattform
unter Linux zu kompilieren.
Die verschiedenen Linux/68k-Varianten sind untereinander
binärkompatibel, d.h. ein auf einem Amiga unter Linux/68k kompiliertes
Programm läuft auch z.B. auf einem Atari TT unter Linux/68k und
umgekehrt.

2.7 Ich bekomme beim Compilieren die Meldung, es sei ein Signal 11
aufgetreten. Was bedeutet das?

Das weist häufig auf fehlerhafte Hardware hin (z.B. defekte oder zu
langsame Speicherchips). Zu Signal 11 gibt es eine ausführliche FAQ
unter http://www.bitwizard.nl/sig11/.
Enthält der Rechner einen AMD K6 älterer Bauart und mehr als 32MB RAM,
kann es durch einen Fehler im Prozessor zum Auftreten des Signal 11
kommen. Der Fehler wird u.a. durch einige im gcc vorkommende
Codesegmente ausgelöst (der K6 hält die Sequenz fälschlicherweise für
selbstmodifizierenden Code und behandelt sie falsch). Ab der
Prozessorrevision B9732 (auf dem Prozessor aufgedruckt) ist der Fehler
behoben. AMD hat für die Prozessoren mit dem Fehler einen Umtausch
angeboten.

2.8 Wenn ich unter X arbeite, kommt es manchmal, besonders nach dem
Start von Netscape, zu einem seltsamen Effekt: ein oder mehrere
Fenster werden in Falschfarben dargestellt. Wenn ich den Mauszeiger
dann auf eines dieser Fenster bewege, stimmen die Farben in diesem
Fenster wieder, aber alles andere wird in Falschfarben dargestellt.
Woran liegt das?

Dieser Effekt tritt auf, wenn Programme mehr Farben benutzen möchten,
als zur Verfügung stehen. Wird der X-Server mit 8 Bit Farbtiefe
betrieben (die Normaleinstellung), stehen maximal 2 hoch 8 = 256
Farben gleichzeitig zur Verfügung. Wenn bereits alle verfügbaren 256
Farbtöpfe vergeben sind, kann ein Programm keine weiteren Farben mehr
für sich reservieren. Um dieses Problem zu umgehen, kann ein Programm
eine private Colormap anfordern. Dann erhält das Programm eine eigene
Farbpalette von 256 Farben nur für sich. Da aber tatsächlich nur 256
Farben gleichzeitig dargestellt werden können, muss, sobald ein
Programm bzw. dessen Fenster aktiviert wird, auf dessen Farbpalette
umgeschaltet werden, die sich von denen der anderen Programme
unterscheidet, so dass die Fenster der übrigen Programme in
Falschfarbendarstellung erscheinen.
Netscape reserviert sehr viele Farben für sich, so dass das Problem
häufig nach dem Start von Netscape auftritt.
Lösen lässt sich das Problem durch Betrieb des X-Servers in einer
höheren Farbtiefe (16 Bit/65536 Farben oder 24Bit/16,7 Millionen
Farben). Wer X auf der Kommandozeile startet, kann einen
entsprechenden Parameter übergeben:
  * startx -- -bpp 16 (für 65536 Farben) oder
  * startx -- -bpp 24 (für 16,7 Mio. Farben).
    
Je nach Karte muss man statt -bpp 24 -bpp 32 angeben.
Ab XFree 3.2 kann auch durch den Parameter DefaultColorDepth
<Farbtiefe> in der XF86Config der X-Server standardmäßig in
entsprechender Farbtiefe (16/24/32 Bit) gestartet werden, so dass die
Kommandozeilenoption bei startx nicht mehr nötig ist.
Leider werden nicht alle von XFree grundsätzlich unterstützten Karten
auch in Farbtiefen über 8 Bit unterstützt. Im Zweifel helfen die
Manpages zu XFree oder Ausprobieren weiter. Wenn der X-Server eine
bestimmte Farbtiefe nicht unterstützt, gibt er beim Start eine
entsprechende Fehlermeldung aus.
Falls die eigene Karte nicht in mehr als 8 Bit Farbtiefe unterstützt
wird, lässt sich das Problem bei Netscape durch die Option -no-install
umgehen. Mit diesem Parameter legt Netscape keine eigene Farbpalette
an, sondern versucht, mit den vorhandenen Farben auszukommen,
allerdings kann es dabei natürlich passieren, dass einzelne von einer
Webseite geforderte Farben dann nicht verfügbar sind.

2.9 Warum funktionieren unter XFree bei 16Bit Farbtiefe (65535 Farben)
die höheren Auflösungen nicht mehr, obwohl sie unter Windows mit der
gleichen Hardware möglich sind?

Wenn XFree beim Start des X-Servers eine Meldung der Art
(--) S3: Clock for mode "1024x768" is too high for the configured
hardware.
Limit is 80.000 MHz
(--) S3: Removing mode "1024x768" from list of valid modes.
ausgibt, liegt es daran, dass nach der Spezifikation des
Grafikchip-Herstellers die maximale Pixelclock, d.h. die maximale
Taktrate, mit der der RAMDAC (der Teil der Grafikkarte, der für das
Auslesen der Pixeldaten und deren Umwandlung in ein Bildsignal
zuständig ist) betrieben werden darf, bei höheren Farbtiefen als 8 Bit
begrenzt ist. So dürfen beispielsweise die S3 Trio64-Chips bei 8 Bit
Farbtiefe mit 135 MHz Pixelclock betrieben werden, bei 16 Bit
Farbtiefe aber nur noch mit maximal 80 MHz.
In dem obenstehenden Beispiel ist für den Modus 1024x768 in der
XF86Config eine Pixelclock von mehr als 80 MHz eingetragen, was bei 16
Bit Farbtiefe das Limit überschreitet, weshalb XFree den Modus nicht
zulässt.
Häufig halten die Windows-Treiber die Spezifikation des
Chipherstellers im Gegensatz zu XFree nicht ein, so dass sie auch in
16 Bit mehr als den eigentlich erlaubten Takt zulassen. Das
funktioniert in der Praxis zwar meistens, muss es aber nicht immer und
kann zum frühzeitigen Defekt der Grafikkarte führen, da der Chip bei
zu hohem Takt überhitzt werden kann (die in Wärme umgesetzte
Verlustleistung steigt mit der Frequenz).
Ab XFree 3.3.1 gibt es eine Option, mit der man die maximale Taktrate,
die man seiner Grafikkarte in Abhängigkeit von der Farbtiefe zumuten
will, in der XF86Config einstellen kann. Die Benutzung erfolgt auf
eigene Gefahr. Wer die vorgesehenen Limits überschreiten will, sollte
genau wissen, was er tut!
Im o.g. Beispiel (S3 Trio 64) lässt sich bei 80MHz Pixelclock immer
noch ein 1024x768-VESA-Modus mit 70Hz Bildwiederholfrequenz nutzen.
Mit einer angepassten Modeline sind auch noch 75 oder 76 Hz möglich.

2.10 Warum zeigt mein Rechner einen geringeren (höheren) BogoMips-Wert
an als ein Rechner mit einem anderen Prozessor, obwohl mein Rechner
tatsächlich schneller (langsamer) ist?

Der BogoMips-Wert ist kein Maß für die Geschwindigkeit des Rechners,
daher auch die Bezeichnung _Bogo_, das kommt vom engl. Wort bogus, was
unsinnig, falsch oder irreführend bedeutet. Der Wert ist vom
verwendeten Prozessortyp abhängig und zwischen verschiedenen
Prozessortypen nicht vergleichbar (beispielsweise liefert ein
486DX4-100 einen höheren BogoMips-Wert als ein Pentium 100, obwohl der
Pentium deutlich schneller ist, noch extremer ist der Vergleich
zwischen einem AMD-K5 und einem Pentium). Näheres dazu ist im
BogoMips-Mini-HOWTO zu finden.

2.11 Welche Linux-Distribution ist die beste?

Es gibt keine beste Linuxdistribution, das ist eine Frage der
persönlichen Vorlieben. Die verschiedenen Distributionen haben
unterschiedliche Schwerpunkte, jeder muss für sich entscheiden, was
ihm besser gefällt. Häufig ist es sinnvoll, sich zumindest etwas an
dem zu orientieren, was Bekannte benutzen, da man so einfacher
Ansprechpartner bei Problemen findet, ohne dabei die Besonderheiten
verschiedener Distributionen beachten zu müssen, welche in manchen
Fällen für Einsteiger etwas verwirrend sein können. Die in Deutschland
am weitesten verbreiteten Distributionen dürften nach den News zu
urteilen Debian, RedHat und Suse sein (Aufzählung in alphabetischer
Reihenfolge).
Im folgenden werden die Distributionen etwas genauer beschrieben.
Sollte eine Distribution dabei besser aussehen, ist das nicht
beabsichtigt.
  * Debian <http://www.de.debian.org/>. Diese Distribution ist dafür
    bekannt, dass sie komplett von Freiwilligen entwickelt wird und
    keinerlei kommerzielle Interessen verfolgt. Im Gegensatz zu den
    von Unternehmen herausgebrachten Distributionen muss man sich
    deshalb bei Debian Support von Drittfirmen kaufen. Früher galt
    Debian als wenig Einsteigerfreundlich, das darf man aber
    inzwischen als Vergangenheit bezeichnen. Die Debian Distribution
    wird im Vergleich eher selten aktualisiert, dafür sind die
    Versionen aber durch lange Tests als sehr ausgereift und sicher
    bekannt. Wichtig: Debian Benutzer sollten darauf achten, *immer*
    die stable (oder zumindest frozen) Version zu verwenden. testing
    und unstable können (und das kommt auch durchaus vor) jederzeit
    gravierende Fehler aufweisen, die Datenverluste o.ä. nach sich
    ziehen.
    Debian benutzt ein eigenes Paketformat .deb
  * SuSE <http://www.suse.de/>. Bekannt geworden als erste "echte"
    deutsche Linuxdistribution wird SuSE oft fuer Einsteiger
    empfohlen. Diese Empfehlung kann man auch Aufgrund eines
    umfangreichen Handbuchs durchaus beibehalten; allerdings sind
    andere Distributionen inzwischen ebenso weit. Kauft man eine
    "echte" SuSE (und keine Evaluationsversion aus einer Zeitschrift
    o.ae.) bekommt man 60 Tage kostenlosen Support dazu.
    SuSE verwendet das RPM Paketformat und bringt quartalsweise neue
    Versionen heraus. Als einzige Distribution kann man SuSE auch auf
    DVD bekommen.
  * RedHat <http://www.redhat.de> TODO
    
2.12 Ich habe mir ein kleines Testprogramm compiliert, aber wenn ich
es aufrufe, passiert gar nichts. Warum?

Ein häufig unter Linux (und natürlich anderen Unix-Derivaten)
gemachter Fehler ist es, ein Programm test zu nennen. Es gibt ein
Systemkommando mit dem Namen test, das einen logischen Ausdruck
auswertet und mit dem man z.B. überprüfen kann, ob eine bestimmte
Datei existiert (und noch einiges mehr). Wenn man ein Programm test
nennt und es aufruft, wird der eingestellte Suchpfad (enthalten in der
Shellvariable PATH) von vorne nach hinten durchsucht, bis ein Programm
mit dem Namen test gefunden wird. Das Verzeichnis, in dem sich das
Systemkommando test befindet, steht in der PATH-Variable in der Regel
weiter vorne als das eigene Home- oder Arbeitsverzeichnis, so das
nicht das gerade selbst compilierte Programm ausgeführt wird, sondern
das System-test. Dieses erzeugt keine Ausgabe, sondern setzt, je nach
dem Ergebnis des als Parameter übergebenen logischen Ausdrucks,
lediglich einen Fehlercode, den man in der Shell abfragen kann. Es
sieht also so aus, als ob das Programm nichts tut.
Bei manchen Shells ist test auch ein in die Shell integrierter Befehl,
so dass bei der Eingabe von test überhaupt kein externes Programm
ausgeführt wird. Dies lässt sich umgehen, indem das aufzurufende
Programm mit vollem Pfad (/foo/test) bzw. in dem entsprechenden
Verzeichnis mit ./test aufgerufen wird (vgl. auch den Punkt 2.15 der
FAQ).

2.13 Warum kann ich ein Programm als normaler User starten, aber nicht
als root?

Wenn das Programm im aktuellen Verzeichnis steht, ist es
wahrscheinlich so, dass der Suchpfad für den normalen Benutzer das
Verzeichnis ".", d.h. das jeweils aktuelle Verzeichnis, enthält, der
Suchpfad für root aus Sicherheitsgründen aber nicht. Unter Linux/Unix
ist es standardmäßig so, dass das aktuelle Verzeichnis NICHT im
Suchpfad steht, da man andernfalls sehr einfach ein trojanisches Pferd
mit einem gebräuchlichen Namen irgendwo ablegen könnte und nur darauf
warten müsste, dass root im entsprechenden Verzeichnis (versehentlich)
das Programm startet. Bsp: ein trojanisches Pferd mit dem Namen sl (ls
als Dreher) in /tmp. Sobald root in /tmp wäre und versehentlich sl
statt ls tippt, kann das trojanische Pferd alles tun, was es möchte,
da es Root-Rechte hat, so z.B. irgendwo eine SUID-root-Shell anlegen
o.ä.
Möchte man das Programm trotzdem starten, kann man es explizit mit
voller Pfadangabe aufrufen (/foo/bar/Programm) oder in Kurzform mit
./Programm, da der Punkt für das aktuelle Verzeichnis steht.

2.14 Unterstützt Linux FAT32 (das mit Win95b a.k.a. OSR2 eingeführte
neue Dateisystem)?

Ja, ab Kernel 2.0.35. Für ältere Kernelversionen gibt es entsprechende
Patches, jedoch ist es ratsam, statt der Verwendung des Patches auf
Kernel 2.0.35 oder neuer upzudaten.

2.15 Welche Libc-Version ist neuer: 5.4.4 oder 5.4.38?

Libc 5.4.38 ist neuer. Die verschiedenen Versionsteile bzw. minor
releases sind bei der libc immer durch Punkte getrennt, d.h. 38 ist
als achtunddreißig zu verstehen, nicht als drei acht.

2.16 Welchen Zweck hat die Datei /proc/kcore und warum belegt sie
soviel Platz auf meiner Platte?

Die Dateien in /proc sind nur virtuell, d.h. sie belegen keinen
Plattenplatz, auch wenn sie scheinbar eine Länge haben. Der Inhalt der
Dateien in /proc wird vom Kernel bei Bedarf generiert. /proc/kcore ist
ein Abbild des Hauptspeichers, d.h. die Datei ist genauso groß, wie
der vorhandenen Hauptspeicher (plus 4 kB).
Das Proc-Dateisystem hat den Zweck, den Zugriff auf
Systeminformationen mit normalen Dateioperationen zu ermöglichen, so
dass man sie z.B. leicht in Skripten verwenden kann.

2.17 StarOffice 3.1 ist installiert, wird aber beim Aufruf nicht
gefunden oder meldet, es könne eine Bibliothek nicht öffnen.

Das StarOffice-Setup muss für jeden Benutzer einmal ausgeführt werden,
der genaue Aufruf ist in dem README des StarOffice-Paketes
beschrieben. Dabei werden im Homeverzeichnis des jeweiligen Benutzers
zwei Dateien .sd.sh und .sd.csh angelegt. Bei Verwendung der bash muss
.sd.sh vor dem Start von StarOffice aufgerufen werden und zwar durch .
~/.sd.sh, bei der tcsh entsprechend .sd.csh mittels source ~/.sd.csh.

2.18 Warum habe ich bei StarOffice 3.1 englische Menüs, obwohl ich die
German-Pakete installiert habe?

StarOffice orientiert sich an den vorhandenen Einstellungen für die zu
verwendende Sprache. Mit export LANG=de in der bash (bzw. dauerhaft
durch Aufnahme in eines der Shell-Startupscripte) bietet SO auch
deutsche Menüs. Bei der tcsh erreicht man dies analog durch das
Kommando setenv LANG de.

2.19 Warum kann ich mich nicht als root über telnet einloggen?

Das ist ein Sicherheitsfeature. So wird verhindert, dass man direkt
mit einem Brute-Force-Attack versuchen kann, das Root-Passwort heraus-
zubekommen. Man muss sich als normaler User einloggen und dann mit su
-l Root-Rechte erlangen, wobei das Root-Passwort abgefragt wird. Ein
Eindringling muss somit mindestens zwei Passworte knacken, um root zu
werden. Sinnvollerweise ist das Root-Passwort dabei natürlich ein
anderes als das User-Passwort.
Immer daran denken: wer selbst (z.B. über PPP) ins Netz kommt,
ermöglicht damit auch Anderen, an den eigenen Rechner zu kommen.
Telnet hat dabei ein grundsätzliches Sicherheitsproblem: es überträgt
auch die Kennworte im Klartext und ermöglicht es dadurch einem
Angreifer, vergleichsweise einfach an Kennworte zu kommen. Es ist
daher durchaus lohnenswert, sich Gedanken über die Verwendung eines
verschlüsselnden Verfahrens zu machen, z.B. SSH o.ä., wobei telnet
dann vollständig deaktiviert werden kann. Mit OpenSSH
<http://www.openssh.com/> liegt inzwischen eine komplette freie
Implementierung des SSH-Protokolls vor. Sie wird inzwischen bei den
meisten Linuxdistributionen (bei Debian im Paket "ssh") mitgeliefert.

2.20 Warum kann ich meine CD nicht mehr aus meinem CD-Laufwerk nehmen?

Wenn eine CD mit dem Kommando mount in den Verzeichnisbaum eingebunden
ist (manche Distributionen machen das beim Booten automatisch, falls
eine CD eingelegt ist), ist der Auswurfknopf des Laufwerks gesperrt,
damit die CD nicht versehentlich entnommen werden kann. Dies hat
mehrere Gründe: Bei einem beschreibbaren Wechselmedium (MO, PD, ZIP
etc.) darf dieses erst entnommen werden, wenn alle Puffer auf das
Medium zurückgeschrieben wurden (Linux arbeitet mit Write-Cache, d.h.
Daten werden nicht immer sofort auf das Medium geschrieben, sondern
zunächst nur im Hauptspeicher gesammelt und erst bei Bedarf auf das
Medium geschrieben). Erst nach dem Unmounten des Mediums (mit umount)
kann man sicher sein, dass die Daten auch wirklich geschrieben wurden,
so dass das System die vorherige Entnahme des Mediums verhindert.
Außerdem wird so verhindert, dass einem anderen Prozess bzw. dessen
Benutzer, der noch Dateien auf dem Medium geöffnet hat, dieses
entzogen wird, was zu Programmfehlern und ggf. Datenverlust führen
würde. Wenn ein umount-Befehl ausgeführt wurde, kann man sicher sein,
dass keine Dateien auf dem Medium mehr geöffnet waren.
Der Befehl zum Unmounten lautet umount <Verzeichnis>, wobei
<Verzeichnis> dasjenige ist, in das die CD eingeklinkt wurde, in der
Regel /cdrom.
Einige ältere CDROM-Laufwerke unterstützen die Verriegelung des
Auswurfknopfes nicht, dennoch sollte auch hier immer erst ein
umount-Kommando ausgeführt werden, bevor das Medium entnommen wird.

2.21 Warum kann ich keine ZIP-Disk mounten, obwohl der Kernel das
Laufwerk beim Booten ordnungsgemäß erkannt hat? Ich erhalte beim
Mountversuch lediglich die Meldung mount: wrong fs type, bad option,
bad superblock on /dev/hdc, or too many mounted file systems.

ZIP-Medien sind standardmäßig partitioniert wie eine Festplatte, d.h.
man muss beim Mounten die Partition und nicht nur das Gerät angeben.
Gegeben sei ein ATAPI-ZIP als Master am sekundären Controller, also
wäre das ZIP-Laufwerk über /dev/hdc anzusprechen. Bei Medien von
Iomega ist die Partition an vierter Stelle in der Partitionstabelle
angelegt, d.h. der Mount-Befehl müsste mount /dev/hdc4 /mnt lauten.
Bei Fremdherstellermedien kann die Partitionsnummer eine andere sein.

2.22 Was bedeutet die Meldung /dev/hdaX has reached maximal mount
count; check forced beim Booten?

Beim Booten wird normalerweise das Programm fsck (FileSystemChecK)
aufgerufen, welches überprüft, ob die interne Struktur des
Dateisystems noch konsistent ist. Wenn Linux korrekt beendet wird und
die Platten sauber unmounted sind, wird auf der jeweiligen Partition
eine Markierung gesetzt, die alles ok besagt (Clean-Flag). Wenn diese
Markierung vorhanden ist, nimmt fsck beim nächsten Aufruf keine
detaillierte Überprüfung der Partition vor. Da sich eventuell aber
doch irgendwann ein Fehler eingeschlichen haben könnte, wird nach
einer gewissen Anzahl von Mountvorgängen (maximal mount count)
trotzdem eine Prüfung durchgeführt, auch wenn die Markierung alles ok
signalisiert (daher die Meldung check *forced*). Die Überprüfung kann
bei großen Partitionen mit vielen Dateien durchaus einige Minuten
dauern. Die Anzahl der Mountvorgänge, nach denen zwangsweise ein
fsck-Lauf stattfindet, lässt sich mit Hilfe des Programms tune2fs
einstellen.

2.23 Nach einer Weile funktioniert meine Maus unter X nicht mehr
richtig, ich kann keine Fenster mehr verschieben und auch (manche)
Knöpfe nicht mehr betätigen. Woran liegt das?

Wahrscheinlich ist NumLock (Taste oben links am 10er-Tastenblock auf
der Tastatur) aktiviert. Unter X11 ist die NumLock-Taste (genau wie
Shift, Ctrl, Alt etc.) ein sogenannter Modifier-Key, d.h. eine Taste,
die einer anderen Taste eine andere Bedeutung verleiht. Eine Maustaste
ist auch eine Taste in diesem Sinne, so dass NumLock+Maustaste etwas
Anderes ist als Maustaste. Wenn ein Programm so geschrieben bzw.
konfiguriert ist, dass es bei Mausereignissen (z.B. Maustaste
gedrückt) die Modifier-Keys nicht ignoriert, tritt das oben
beschriebene Verhalten auf.
Beim Windowmanager FVWM2 kann man z.B. für die windowmanager-eigenen
Funktionen angeben, auf welche Modifier reagiert werden soll. Nähere
Informationen dazu bietet die Manpage unter dem Schlüsselwort Key.

Es ist auch möglich, das Problem zu umgehen indem man X so
konfiguriert, dass der 10er-Block auch ohne aktivierten NumLock Zahlen
produziert. Dazu muss man folgende Zeilen in ~/.xmodmap bzw.
/etc/X11/Xmodmap einfügen:
! Nummerntastatur
keycode 90 = KP_0
keycode 91 = KP_Decimal
keycode 87 = KP_1
keycode 88 = KP_2
keycode 89 = KP_3
keycode 83 = KP_4
keycode 84 = KP_5
keycode 85 = KP_6
keycode 79 = KP_7
keycode 80 = KP_8
keycode 81 = KP_9
keycode 112 = KP_Divide
keycode 63 = KP_Multiply
keycode 82 = KP_Subtract
keycode 86 = KP_Add
-- AM

2.24 Ich benutze für meinen Internetzugang ISDN mit SyncPPP (ipppd)
und Dial-On-Demand. Das funktioniert auch, aber nur einmal. Sobald die
Verbindung abgebaut wurde, wird sie nicht automatisch wieder
aufgebaut.

Beim Abbau der Verbindung wird vom ipppd die Defaultroute auf das
ISDN-Interface gelöscht, so dass weitere IP-Pakete keinen neuen
Verbindungsaufbau triggern können, da sie mangels Route nicht auf das
ISDN-Interface geleitet werden. Abhilfe: in /etc/ppp/ip-down die
Defaultroute wieder auf das ISDN-Interface setzen. /etc/ppp/ip-down
wird vom ipppd nach dem Abbau der Verbindung automatisch ausgeführt.

2.25 Ich habe einen Kernel mit Unterstützung für APM (advanced power
management), aber es funktioniert nicht bzw. nicht korrekt.

Die APM-Funktionen arbeiten in der Regel nur, wenn im BIOS des
Rechners ebenfalls APM aktiviert wurde. Weitere Informationen zu APM
im Allgemeinen und auf Laptops im Besonderen finden sich im
Battery-Powered Mini-HOWTO, welches in den meisten Distributionen
irgendwo unterhalb des Verzeichnisses /usr/doc liegt, sowie auf der
Linux-Laptop-Page (vgl. Punkt 3.7 der FAQ).

2.26 Wie kann ich ein ext2-Dateisystem defragmentieren?

Es gibt dazu ein Programm im Alphastadium auf sunsite.unc.edu,
allerdings wird von der Benutzung regelmäßig abgeraten, sowohl wegen
der damit verbundenen Gefahren als auch aus grundsätzlichen
Erwägungen, welche ein Text von Kristian Koehntopp erklärt, zu finden
in der S.u.s.e-Support-Datenbank unter
http://sdb.suse.de/sdb/de/html/ext2frag.html.

2.27 In meiner Shell kann ich keine Umlaute eingeben und die Del/Entf-
Taste arbeitet nicht so, wie sie soll (das Zeichen unter dem Cursor
löschen). Wie kann ich das ändern?

Das lässt sich (zumindest für die Standard-Shell unter Linux, die
bash) ändern, in dem man in die Datei .inputrc im Homeverzeichnis die
folgenden Zeilen einträgt:
set meta-flag on
set convert-meta off
set output-meta on
\e[3~: delete-char

2.28 Warum kann ich ein RPM-Paket, das ich gerade mit rpm -i
foo-1.0-1.i386.rpm installiert habe, nicht mit rpm -e
foo-1.0-1.i386.rpm wieder deinstallieren? RPM meldet nur: package
foo-1.0-1.i386.rpm is not installed.

RPM unterscheidet zwischen dem Namen der Datei und dem Namen des
Paketes. Dies ermöglicht es z.B., ein RPM-Paket auch mit verkürztem
Namen auf einer DOS-Diskette abzuspeichern und es trotzdem mit dem
korrekten Namen zu installieren. Der Name des Paketes ist in der Datei
abgelegt und kann mit rpm -qp foo-1.0-1.i386.rpm abgefragt werden. Im
vorgenannten Beispiel soll das Paket foo-1.0-1 heißen, so dass die
Deinstallation einfach mittels rpm -e foo-1.0-1 oder auch mit der
Kurzform rpm -e foo (Weglassen der Versionsnummern) erfolgen kann.

2.29 Warum kann ich KDE nicht starten? Das Kommando startkde bringt
etliche Fehlermeldung der Art k*: cannot connect to X server.

KDE ist ein Desktop-Environment, d.h. es setzt auf einem laufenden
X-Server auf. Das Script startkde startet nicht den X-Server, sondern
lediglich die KDE-eigenen Programme.
Am einfachsten ist es, startkde in die Datei .xinitrc bzw. .xsession
im Homeverzeichnis einzutragen. Bei Distributionen, die beim Start von
X die Variable WINDOWMANAGER auswerten (z.B. Suse), genügt es, diese
auf startkde zu setzen, da diese Variable in .xinitrc bzw. .xsession
ausgewertet wird.

2.30 Wie kann ich auf der Kommandozeile (d.h. ohne X-basierte
Programme verwenden zu müssen) ftp über einen Proxy benutzen?

In diesem Fall bietet sich Lynx an. Lynx ist ein Webbrowser für die
Textkonsole, der auch ftp über ftp-fähige http-Proxies beherrscht. Um
Lynx den passenden Proxy bekanntzumachen, muss man lediglich die
beiden Shell-Variablen http_proxy und ftp_proxy auf die URL des
jeweiligen Proxies setzen, z.B. so:
bash> export http_proxy=http://mein.http.proxy.de:8080/
bash> export ftp_proxy=http://mein.http.proxy.de:8080/
Alternativ kann man die Proxies für lynx auch in /etc/lynx.cfg setzen.
Eine andere Möglichkeit ist die Verwendung des Programms wget, das
entgegen seinem Namen nicht nur mit Web- sondern auch mit ftp-Servern
und entsprechenden Proxies umgehen kann.

2.31 Bei Anleitungen zur Netzwerkkonfiguration findet man häufig
Angaben wie 192.168.1.0/24. Was bedeutet das /24?

Es handelt sich hier um eine Kurzschreibweise der Netzmaske. Die Zahl
steht für die Anzahl der 1-Bits, die in der Netzmaske den Netzwerkteil
der davorstehenden Adresse angeben. In diesem Beispiel sind es 24
1-Bits, die Netzmaske ist also in binärer Schreibweise
11111111.11111111.11111111.00000000 bzw. dezimal 255.255.255.0.

2.32 Warum kann ich in Netscape 4 weder Mail- noch Newsserver angeben?
Netscape meldet nur Mail host foo is unknown, News host foo is unknown
bzw. <Protokoll> proxy foo is unknown.

Netscape 4 versucht offenbar, die eingegebenen Hostnamen sofort
aufzulösen, um die IP-Adresse zu ermitteln, was im Offline-Betrieb
ohne Zugriff auf einen Nameserver in der Regel nicht möglich ist und
zu der vorgenannten Fehlermeldung führt. Die entsprechenden
Einstellungen müssen also entweder im Online-Betrieb vorgenommen
werden, oder die entsprechenden Hostnamen müssen zusammen mit ihren
IP-Adressen in /etc/hosts eingetragen werden, so dass auch im
Offline-Betrieb eine Namensauflösung möglich ist. Alternativ kann man
in den Netscape-Preferences auch direkt die IP-Adresse des jeweiligen
Mail- bzw. Newsservers angeben.

2.33 Warum werden Textdateien im Querformat (jeweils 2 Seiten auf
einem A4-Blatt) gedruckt und wie kann man das ändern?

Das ist abhängig von der Konfiguration des Druckerfilters. Bei
Systemen, die Apsfilter verwenden (z.B. SuSE), kann man das in der
Datei /etc/apsfilterrc konfigurieren. Dort gibt es einen Eintrag
FEATURE, bei dem die verschiedenen Möglichkeiten in den
Kommentarzeilen beschrieben sind.

2.34 Wie kann ich auf meine DOS-formatierten Disketten zugreifen?

Eine Diskette ist für Linux prinzipiell nichts anderes als jeder
andere Datenträger, d.h. man kann eine Diskette genauso mounten, wie
eine Festplattenpartiton. In diesem Fall muss nur der passende
Dateisystem-Typ angegeben werden, also z.B. so:
mount -t vfat /dev/fd0 /mnt/floppy.
Dabei steht vfat für lange Dateinamen in Windows95-Art und das
Verzeichnis /mnt/floppy muss existieren. Vor dem Entnehmen der
Diskette muss diese _unbedingt_ mittels umount /mnt/floppy wieder
unmounted werden, sonst kann es zu Datenverlusten kommen ! Da es doch
recht umständlich ist, auf diese Art auf Disketten zuzugreifen, gibt
es die mtools. Das sind Befehle, die den wichtigsten DOS-Befehlen mit
einem vorangestellten m entsprechen, also z.B. mdir, mcopy, mtype etc.
Damit kann man, ohne die Diskette mounten zu müssen, z.B. eine Datei
von Diskette auf die Platte kopieren: mcopy A:foo.txt /tmp/.

2.35 Wie kann ich LILO wieder aus dem MBR entfernen?

Am einfachsten ist es, MS-DOS zu booten und fdisk /MBR aufzurufen.
Eine hinreichend neue DOS-Version vorausgesetzt, wird damit der MBR
mit dem Standard-Bootblock überschrieben. Diese Funktion von fdisk ist
AFAIK nicht offiziell dokumentiert und funktioniert mit einigen
fdisk-Versionen nicht.
Soweit unter Linux ein Backup des Original-Bootblocks vorhanden ist,
kann dieser auch unter Linux wie im README zu lilo beschrieben per dd
wieder installiert werden.

2.36 Ich kann keinen Kernel mehr kompilieren: nach make zImage meldet
das System System is too big. Try using bzImage or modules.

Die Meldung besagt, dass das erzeugte Kernel-Image zu groß ist. Bei
der traditionellen Methode der Kernelerzeugung darf der resultierende
Kernel maximal 512kB groß sein, ist er größer, kann er von der
Initialisierungsroutine nicht mehr korrekt entpackt werden. Um dieses
Problem zu lösen, gibt es zwei Alternativen: entweder man erzeugt mehr
Treiber als Module und verkleinert damit das erzeugte Kernel-Image
oder man verwendet statt make zImage (bzw. make zlilo oder make zdisk)
make bzImage (respektive bzlilo oder bzdisk). Dabei wird ein anderes
Speicherlayout verwendet, welches auch größere Kernel-Images zulässt.
Die Bezeichnung bzImage steht dabei für big zImage, hat also nichts
mit bzip2 zu tun. Heutzutage ist es weitgehend unproblematisch,
generell make bzImage statt make zImage zu verwenden, lediglich ältere
LILO- und Loadlin-Versionen können damit nicht umgehen.

2.37 Wie kann ich auf meinen Streamer zugreifen?

Häufig wird gefragt, wie denn ein Streamerband gemounted werden kann.
Die Antwort ist recht einfach: gar nicht (zumindest nicht unter
Linux).
Ein Streamer ist unter Linux ein sogenanntes Character-Device, d.h. es
gibt darauf kein Dateisystem, das man mounten könnte. Zum Schreiben
auf und zum Lesen vom Band verwendet man entsprechende Programme, z.B.
tar und cpio. Für diese Programme ist ein Streamer eine Blackbox, d.h.
dass z.B. tar nicht weiß, an welche Stelle auf dem Band gerade
geschrieben wird und tar kann das Band auch nicht vor- oder
zurückspulen. Für Bandoperationen (vor- oder zurückspulen, löschen,
Suchen einer bestimmten Bandstelle, etc.) gibt es das Programm mt
(magnetic tape). Für mt ist das Band wiederum eine Blackbox: mt kennt
nicht die Daten auf dem Band, es kennt aber z.B. die Position des
Bandes. Tar und mt ergänzen sich daher.
Bei beiden Programmen muss man das zum Streamer gehörende Device
angeben. Wie das Device heißt, hängt von der Art des Streamers ab. Der
erste SCSI-Streamer im System heißt /dev/st0, ein QIC-80- oder
Travan-Floppystreamer wird über /dev/ftape angesprochen und einer der
bisher noch recht seltenen ATAPI-Streamer heißt z.B. /dev/hdb, d.h. er
erhält die Bezeichnung, die eine Festplatte an gleicher Stelle
erhalten würde. Bei den Device-Bezeichnungen muss noch eine wichtige
Unterscheidung getroffen werden: die bisherigen Beispiele sind
sogenannte rewinding devices, d.h. nach dem Ende jeder Schreib- oder
Leseoperation wird das Band automatisch an den Anfang zurückgespult,
so dass ein weiterer Schreibvorgang die vorhandenen Daten
überschreiben würde. Möchte man, dass das Band nach dem Ende eines
Schreib- oder Lesevorgangs an der Stelle stehen bleibt, an der es
zuletzt war, muss als Device das entsprechende nonrewinding device
angegeben werden, also z.B. /dev/nst0 oder /dev/nftape.
Wie bekommt man jetzt die Daten aufs Band? Dazu ein Beispiel mit einem
SCSI-Streamer:
  * Zurückspulen des Bandes, falls noch nicht erfolgt:
    bash> mt -f /dev/st0 rewind
  * Sichern des Verzeichnisses /etc auf den Streamer:
    bash> cd /; tar -cvf /dev/st0 etc/
    Da als Device /dev/st0 angegeben ist, wird das Band anschließend
    automatisch zurückgespult.
  * Vergleich der geschriebenen Daten:
    bash> tar -dvf /dev/st0
    
Die Option -dv bei tar bewirkt, dass die jeweils gerade überprüfte
Datei auf dem Bildschirm ausgegeben wird. Falls eine Abweichung
zwischen Band und Platte festgestellt wird, gibt tar eine
entsprechende Meldung aus.

2.38 Warum habe ich seit dem Update auf Kernel 2.2.x alle
Route-Einträge doppelt?

Der Kernel setzt ab Version 2.2 beim ifconfig automatisch
Interface-Routen, ähnlich wie die BSD-Systeme das schon lange tun.
Distributionen, die nicht standardmäßig mit Kernel 2.2 ausgeliefert
werden, setzen in den Netzwerkkonfigurationsskripten die
Interface-Routen explizit, wie es bei Kernel 2.0.x erforderlich war,
so dass beim Betrieb mit Kernel 2.2 jede Interface-Route doppelt in
der Routingtabelle erscheint. Das hat keine schädlichen Auswirkungen,
es ist aber natürlich der Übersicht nicht gerade förderlich.

2.39 Was bedeutet die Meldung mount fs type devpts not supported by
Kernel?

Mit der glibc-2.1 wurden neue Pseudo-Terminals eingeführt, die sich am
Unix98-Standard orientieren und deshalb als Unix98-PTYs bezeichnet
werden. Für deren Nutzung wurde ein zusätzliches Pseudo-Filesystem,
devpts, geschaffen.
Daher muss für die Verwendung von Unix98-PTYs bei der
Kernelkonfiguration unter Character Devices der Punkt Unix98 PTY
Support und unter Filesystems der Punkt /dev/pts filesystem for Unix98
PTYs aktiviert sein.

2.40 Ich möchte einen neuen Kernel compilieren, erhalte auf make
menuconfig aber nur die Meldung make: *** No rule to make target
`menuconfig'. Stop.

Das kann mehrere Ursachen haben. Die einfachste Variante: man befindet
sich nicht im Kernel-Source-Verzeichnis (im Normalfall
/usr/src/linux). Falls doch, ist kein Kernelsource installiert und
muss nachinstalliert werden. Für Suse-Nutzer: anscheinend werden bei
Suse 6.2 die Kernelsourcen nicht mehr standardmäßig installiert,
sofern sie bei der Installation nicht explizit ausgewählt wurden.

2.41 Was hat es mit den 2.3.x-Kerneln auf sich? Sollte man von 2.2.x
updaten?

Alle Kernel mit einer ungeraden Minor-Nummer (die Nummer an zweiter
Stelle, also bei 2.3.x die 3) sind Entwickler-Kernel. Diese enthalten
experimentelle Funktionen, lassen sich eventuell gar nicht kompilieren
oder können im Extremfall auch Daten auf der Festplatte zerstören.
Daher sollte man diese Kernel nur verwenden, wenn man wirklich weiß,
was man tut. Für den Normaluser sind Entwicklerkernel ungeeignet und
Beschwerden über Probleme mit Entwicklerkerneln werden in den
de.comp.os.unix.linux-Newsgroups im Regelfall ignoriert.

2.42 In /var/log/messages erscheint regelmäßig der Eintrag -- MARK --.
Was hat das zu bedeuten?

Mit diesem Eintrag zeigt der Syslogd, welcher für das Protokollieren
von Systemereignissen zuständig ist, an, dass er noch läuft. Das
Zeitintervall zwischen den Einträgen lässt sich beim Aufruf des
Syslogd mittels des Parameters -m Intervall einstellen bzw. mit dem
Intervall 0 ganz abschalten.
Einige Syslogd-Versionen unterdrücken den Eintrag, wenn während des
Intervalls andere Ereignisse protokolliert wurden, so dass er nur
erscheint, wenn ansonsten keine Lebenszeichen des Syslogd sichtbar
wären.

2.43 Wie ist das mit den Locales?

Locales sind Konfigurationsdateien, die den Rechner an nationale
Gegebenheiten anpassen sollen. Dazu gibt es Dateien, die Informationen
über nationale oder regionale Besonderheiten enthalten, u.a. die
Sprache, das Zahlen-, das Datums- und das Zeitformat sowie den
verwendeten bzw. darstellbaren Zeichensatz. Sind die Locales
unvollständig oder nicht richtig konfiguriert, werden sehr restriktive
Defaults verwendet, die z.B. nur die Anzeige von 7 bit us-ascii
Zeichen erlauben. Die Konfiguration, welche Locale-Einstellungen
verwendet werden sollen, erfolgt durch folgende Environmentvariablen.
Umgebungsvariablen setzt man entweder mit export VARIABLE=WERT (bash)
oder setenv VARIABLE WERT (tcsh).
 1. $LC_ALL Diese Variable überschreibt alle weiter unten erläuterten.
    Deshalb sollte man sie tunlichst ungesetzt lassen, und die anderen
    Variablen verwenden.
 2. $LC_CTYPE Diese Variable gibt an, welche Zeichen / welcher
    Zeichensatz auf dem aktuellen Terminal verwendet werden kann. Wenn
    diese Variable nicht korrekt gesetzt ist, geben viele Programme
    z.B. statt Umlauten nur Fragezeichen aus.
 3. $LC_COLLATE Damit kann man die Sortierreihenfolge beeinflussen. Im
    Locale de_DE beispielsweise ist ä gleichwertig zu a zu behandeln.
    (ab,äb,ac)
 4. $LANG Der hier eingestellte Wert wird für die anderen LC-Variablen
    verwendet, sofern nicht diese selbst oder LC_ALL gesetzt sind.
    Einige wenige Programme wie man werten diese Variable auch direkt
    aus.
 5. $LC_TIME Diese Variable gibt an, in welchen Formaten Datum und
    Zeit ausgegeben werden sollen.
 6. $LC_NUMERIC Gibt an, wie Zahlen, die keine Geldbeträge sind,
    formatiert werden sollen. (z.B. '.' oder ',' als Dezimaltrenner)
 7. $LC_MONETARY Das selbe wie vorhin, diesmal allerdings für
    Geldbeträge.
 8. $LC_MESSAGES Gibt an, in welcher Sprache Programme ihre
    Nachrichten ausgeben sollen. Das hat nichts mit automatischer
    Übersetzung o.ä. zu tun, sondern ein Programm muss für jede
    Sprache die es unterstützen soll, entsprechend vorgesehen sein.
    Deshalb werden durch setzen dieser Variable längst nicht alle
    Nachrichten in Deutsch ausgegeben. Teilweise sind die
    Übersetzungen auch nicht sehr gelungen.
    
Ich persönlich setze nur LC_CTYPE, aber das ist eine Sache des pers.
Geschmacks.
Für deutsche Einstellungen müssen die Variablen auf "de_DE" gesetzt
werden.
Anmerkung: Bei manchen Distributionen müssen die Locales selbst
kompiliert werden. Bei Debian (ab woody) müssen dazu die gewollten
Locales in /etc/locale.gen auskommentiert werden, und danach als root
das Programm localegen ausgeführt werden.

2.44 Wie [lösche/verschiebe/bearbeite] ich Dateien, die mit -
beginnen?

Das hängt vom Programm ab. Oft zum Erfolg führt, nach dem letzten
echten Parameter -- und dann den Dateinamen anzugeben. Also etwa so:
$ touch -file touch: invalid option -- i Try touch --help' for more
information. $ touch -- -file nikratio:~/foo$ ls -file $ rm -file rm:
invalid option -- l Try rm --help' for more information. $ rm -- -file
$ ls Eine weitere Möglichkeit ist, vor dem Dateinamen das Verzeichnis
einzugeben, also z.B. rm ./-file oder rm /home/me/-file. Wenn keine
anderen Dateien im aktuellen Verzeichnis sind, die bis auf das erste
Zeichen gleich geschrieben werden, kann man auch mit Wildcards
arbeiten: rm ?file

2.45 Wie kann ich unter Linux Divx-, wmf-, oder asf-Videos wiedergeben

xanim scheitert leider daran, avifile <http://divx.euro.ru/> löst das
Problem.

2.46 Ich benötige die Datei foo.bar, welches Paket muss ich
installieren?

Das kommt auf die Distribution an:
  * Debian: Auf den CDs und dem ftp-Server befindet sich im
    Verzeichnis dists/$Version/ die Datei Contents-$arch.gz, die
    einfach mittels zgrep durchsucht werden kann.
    zgrep foo.bar /cdrom/dists/potato/Contents-i386.gz
    Alternativ kann man auch das Formular
    <http://packages.debian.org/> auf Debians WWW-Site verwenden.
  * Suse: YaST bietet die Funktion Paketauskunft.
  * RedHat: Installiert man das Paket rpmdb-redhat (ab RedHat Version
    6.2 enthalten), kann man mittels
    rpm -qf `rpm -qla --define '_dbpath
    /usr/lib/rpmdb/%{_arch}-%{_vendor}-%{_os}/redhat' |
    grep gesuchte.Datei` --define '_dbpath
    /usr/lib/rpmdb/%{_arch}-%{_vendor}-%{_os}/redhat'
    das entsprechende Paket finden.
  * Alternative für alle rpm-basierten Distributionen: Man erzeugt
    selbst eine Liste, indem man die Installations-CDs (DVD) der Reihe
    nach einlegt, mountet und anschließend
find /mnt/cdrom -type f -name "*.rpm" -print |
 { while read paketdatei ; do
   paket=`basename $paketdatei`
   rpm -qpl "$paketdatei" | sed -e "s/$/   $paket/"
   done
 } >> ~/InhaltallerCDs
    aufruft. Jetzt kann man die Liste einfach mittels grep
    gesuchte.Datei ~/InhaltallerCDs durchsuchen.
    
2.47 Wieso bekomme ich die Fehlermeldung "Can't find X includes.
Please check your installation and add the correct paths", wenn ich
ein Programm compilieren will, das X benutzt?

Das liegt daran, dass du die zu X gehörenden Headerfiles nicht
installiert hast. Je nach Distribution hat das Paket, das diese
enthält, einen anderen Namen; bei Debian z.B. heißt es "xlib6g-dev",
bei SuSE "xdevel" und bei RedHat "XFree86-devel".

2.48 Ich habe auf Kernel 2.4.x geupgradet und es werden keine Module
mehr geladen.

Die Probleme kommen vermutlich daher, dass sich das Layout der
Verzeichnisse in /lib/modules/<kernelversion> seit Kernel 2.2.x
verändert hat. Mit diesem neuen Layout kommen die modutils erst seit
Version 2.4.0 zurecht; deine sind wahrscheinlich zu alt. Welche
Version bei Dir läuft, kannst Du einfach durch eingabe von
/sbin/modprobe -V
herausfinden.
Um das Problem zu beheben, benutzt Du entweder ein von deinem
Distributor bereitgestelltes Paket oder beziehst die Sourcen von
ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/ und kompilierst
sie selber. Damit wirst du aber vermutlich nicht alle Probleme, die
mit einem neuen Kernel auf dich zukommen, geloest haben.
Sicherheitshalber solltest du Kernelquelltext/Documentation/Changes
lesen und überprüfen, ob du die erforderlichen Programme in den
nötigen Versionen installiert hast.

2.49 Wie kann ich unter Linux mit Dateien größer 2 GB arbeiten?

Zuerst einmal müssen die Programme, welche mit Dateien > 2 GB arbeiten
sollen, andere Betriebssystemeaufrufe verwenden als bisher (Natürlich
kann man mit diesen trotzdem auch kleinere Dateien erzeugen), da der
Zeiger für die Dateiposition von 32 auf 64 Bit gestiegen ist. Dies ist
bei längst noch nicht allen Programmen der Fall. Dann müssen Kernel
und glibc noch entsprechende Unterstützung anbieten. Auf einer 64-Bit
Maschine (z.B. Alphastation) ist das bereits der Fall. Auf 32 Bit
Maschinen wie i386 und PowerPC muss man dazu auf einen 2.4 Kernel
(oder einen 2.2 Kernel entsprechend patchen) und eine glibc > 2.1.3
umsteigen.
In Stichworten:
  * Kernel 2.4. (Oder einen 2.2er Kernel mit LFS-patch)
  * Glibc 2.1.3 oder glibc 2.2, die gegen die Header eines LFS-fähigen
    Kernels (s.o.) kompiliert ist.
  * Anwendungen, die LFS verwenden sollen, müssen entsprechend
    modifiziert worden sein
  * Ein Filesystem, das LFS unterstützt. Ext2, ReiserFS
    
Genauer steht das alles auf http://www.suse.de/~aj/linux_lfs.html.

2.50 Inzwischen ist Kernel 2.4 freigegeben worden, was muss ich beim
Upgrade von 2.2 beachten?

Ja, der neue Linux-Kernel ist da - aber langsam, es gibt einiges, was
vor einem Update zu bedenken ist:
  * Was versprichst du Dir von dem neuen Kernel konkret? Warum
    möchtest du ihn einsetzen?
  * Bist du in der Lage herauszufinden, welche zusätzlichen Programme
    oder neuen Programmversionen zu diesem Kernel benötigt werden?
    Lies Kernelquelltext/Documentation/Changes!
  * Bist du in der Lage, die geforderten Programm(versionen) zu finden
    und zu installieren?
  * Bedenke, dass die von den Distributoren üblicherweise
    standardmäßig verwendeten Kernel gepatcht sind und damit bestimmte
    zusätzliche Funktionen haben, die du evtl. auch nutzt. Diese
    Funktionalitäten sind mit dem neuen Kernel evtl. nicht mehr
    vorhanden.
  * Kernel 2.2.18 nimmt schon einige der Vorteile von 2.4 vorweg
    (brauchbarer USB-Support, abgesehen von Mass-Storage. NFS-Server
    und -Client sind auf dem Stand von 2.4), vielleicht kannst du dir
    das Upgrade auf 2.4 sparen und 2.2.18 verwenden.
    
Wenn du die ersten drei Fragen nicht wirklich sicher beantworten
kannst, solltest du auf ein Update so lange verzichten, bis der
Hersteller deiner Distribution ein entsprechendes Kernel-Package mit
den notwendigen Updates bereit hält. Die Wartezeit bis dahin kann man
sich mit der Lektüre von
http://linuxtoday.com/news_story.php3?ltsn=2001-01-05-007-04-NW-LF-KN
bzw.
http://www.uwsg.indiana.edu/hypermail/linux/kernel/0101.0/1204.html
verkürzen. ;-)

2.51 Wie kann ich mit einem Kommandozeilenprogramm Mails mit
MIME-Attachment verschicken?

  * mutt -a Datei -s "Anhang" email@adresse < /dev/null
  * mpack -s "Anhang" Datei email@adresse
  * nail -s "Anhang" -a Datei email@adresse < /dev/null
  * metasend -b -s "Anhang" -f Datei -t email@adresse -m
    application/octet-stream
  * uuenview -b -s "Anhang" -m email@adresse Datei
    
2.52 Ich habe RedHat 7.0 und kann keinen Kernel fehlerfrei
kompilieren.
Ich kann manche Programme unter RedHat 7.0 nicht kompilieren.
Unter RedHat 7.0 kompilierte Programme laufen nicht auf anderen
Distributionen.

Das liegt daran, das RedHat in 7.0 einen kaputten gcc mitliefert. Die
Lösung ist recht einfach, man muss nur das Paket kgcc installieren und
den beiligenden Anweisungen folgen, damit der Kernel mit diesem
Kompiler übersetzt wird.
Linus Torvalds hat hierzu in
http://x58.deja.com/threadmsg_ct.xp?AN=705169495.1&mhitnum=1&CONTEXT=9
76973433.7
<http://x58.deja.com/threadmsg_ct.xp?AN=705169495.1&mhitnum=1&CONTEXT=
976973433.7> Stellung genommen. Er bezeichnet dort RedHat 7.0 als
"unusable as a development platform" (Übers: "unbenutzbar als
Entwicklungsplattform"). Weitere Statements dazu findet man unter
http://kt.linuxcare.com/kernel-traffic/kt20010101_100.epl#3
<http://kt.linuxcare.com/kernel-traffic/kt20010101_100.epl#3> und
http://kt.linuxcare.com/kernel-traffic/kt20010108_101.epl#1
<http://kt.linuxcare.com/kernel-traffic/kt20010108_101.epl#1>.
Andere Sourcen machen aber teilweise auch Probleme, so scheint es
nicht möglich zu sein, die XFree-Sourcen oder TeX damit zu übersetzen,
aber das ist nicht in allen Fällen zu 100% gesichert. Um auf der
sicheren Seite zu sein, sollte man auf jedenfall die Updates von
RedHat einspielen. Informationen hierzu findet man unter
http://www.redhat.com/support/docs/gotchas/7.0/gotchas-7.html
<http://www.redhat.com/support/docs/gotchas/7.0/gotchas-7.html>.

2.53 Ich habe einen neuen Kernel kompiliert, dieser bootet aber nicht,
sondern gibt die Fehlermeldung Kmod: failed to exec /sbin/modprobe -s
-k binfmt-464c, errno = 8 aus.

Du hast beim Konfigurieren des Kernels
Kernel support for ELF binaries
CONFIG_BINFMT_ELF
nicht ausgewählt. Diese Unterstützung für das unter Linux übliche
Format von ausführbaren Programmen und Bibliotheken muss fest im
Kernel einkompiliert sein und nicht als Modul, da insbesondere
modprobe und insmod, die für das Laden von Kernelmodulen nötig sind,
im ELF-Format vorliegen.
  _________________________________________________________________

04.02.2001 dcoul-FAQ authors

User Contributions:

Comment about this article, ask questions, or add new information about this topic:


[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
linux-faq@lists.netuse.de





Last Update March 27 2014 @ 02:11 PM