omerzu.de

Linux

[Tux]

Seit vielen Jahren beschäftige ich mich mit Linux. Quasi von Anfang an verwendete ich die Slackware.

Leider wurde die Distribution im Laufe der Zeit schwächer, sodass ich mittlerweile Debian bevorzuge. Insofern sind meine Tipps, die sich auf die Slackware bezogen, hier ins Archiv gewandert, was nicht heißt, dass ich nicht nach wie vor Linux-Fan wäre.

Tipps zu Problemlösungen, die mir bei der Benutzung der Slackware aufgefallen sind, will ich hier dokumentieren. Sie können vermutlich auch anderen Linux-Usern helfen, auch solchen, die andere Distributionen bevorzugen.

Glibc1 oder das mysteröse „File not found“

Vielleicht schonmal gesehen: Ich führe in der Shell ein Programm aus - zur Vermeidung von Verwirrungen mit der PATH-Variable - sogar als ./programm und bekomme ein lapidares

./programm: Command not found.

obwohl das Programm definitiv dort ist und ein file ./programm sagt

./programm: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

Was ist das???

Das Problem könnte sein, dass das Programm mit der glibc1 (aka. libc5) gelinkt wurde, aber eine entsprechende Unterstützung nicht installiert ist. Verifiziert werden kann das mit strings ./programm | head. Wenn dort als Ausgabe erscheint

/lib/ld-linux.so.1
libc.so.5
...

aber es unter /lib nur einen ld-linux.so.2 gibt, liegt genau das entsprechende Problem vor.

Was tun?

Wenn die Sourcen des Programms vorliegen, ist es möglicherweise sinnvoll, das Programm einfach neu zu kompilieren. Bei systemnahen Programmen kann das natürlich schwierig sein, da diese möglicherweise zu den aktuellen Header-Files und/oder Bibliotheken nicht kompatibel sind.

Alternativ kann man einen glibc1-Support installieren. Wie geht das?

  • Man besorge sich das Paket libc5.tgz aus der Slackware-7.0 (Verzeichnis slakware/a9).
  • Dieses Paket können Slackware-Benutzer (auch von neuen Versionen, getestet unter Slackware 12.0 und Slackware 13.1!) einfach mit installpkg libc5.tgz installieren. Das ist ganz ungefährlich, es werden nur Dateien unter usr/i386-slackware-linux-gnulibc1/lib installiert.
  • Danach folgende Sequenz (natürlich als root) ausführen:
    echo "/usr/i386-slackware-linux-gnulibc1/lib" >> /etc/ld.conf.so
    cp /usr/i386-slackware-linux-gnulibc1/lib/ld-linux.so.1.9.9 /lib
    ldconfig
    
  • Fertig!

Und wenn es noch immer nicht geht?

Das oben beschriebene File-not-Found-Problem sollte auf jeden Fall verschwunden sein. Möglich ist, dass weitere, ältere Bibliotheken fehlen. Eventuell sind diese im Paket x1/libc5x.tgz der Slackware-7.0 enthalten. Klar ist aber, dass mit zunehmender Anzahl von zusätzlich benötigten Bibliotheken die Chance, dass die Programme anschließend problemlos funktionieren, stark abnimmt.


Ressourcen im Netz

Auf diesen Seiten verwenden wir Cookies. Weitere Informationen.