/libx32 und /usr/libx32

Hi,
auf meinem Rechner läuft OpenSuse 13.1 (Linux linux.site 3.11.10-25-desktop #1 SMP PREEMPT Wed Dec 17 17:57:03 UTC 2014 (8210f77) x86_64 x86_64 x86_64 GNU/Linux) mit einer KDE Umgebung.

Wenn ich “sudo /sbin/ldconfig -v” aufrufe erhalte ich:
/sbin/ldconfig: Kann »stat()« für »/libx32« nicht aufrufen: Datei oder Verzeichnis nicht gefunden
/sbin/ldconfig: Kann »stat()« für »/usr/libx32« nicht aufrufen: Datei oder Verzeichnis nicht gefunden
/usr/local/lib64:
/usr/local/lib:
/usr/lib64/apper:

Kann mir einer sagen zu welchen Programm die Libx32 gehört?
Bei der Suche des Software Management findet er leider kein Packet was zu den Namen passt. Ich würde den Fehler gerne aus meinen System entfernen.

Vielen Dank für Eure Hilfe

Fluffy17

Weder /libx32 noch /usr/libx32 sollte auf einem openSUSE System existieren.

Auf Debian/Ubuntu werden die aber scheinbar für gewisse 32bit Sachen auf 64bit Systemen benutzt.

Aber so wies ausschaut. hast du diese Verzeichnisse ja gar nicht, nach der Fehlermeldung zu urteilen.

Da du den Fehler bekommst wenn du ldconfig aufrufst, würde ich mal als erstes die Ursache in /etc/ld.so.conf(.d) suchen:

grep -R libx32 /etc/ld.so.conf*

Scheinbar hat irgendwas diese (nicht-existierenden) Verzeichnisse zum Linker-Pfad hinzugefügt… Hast du evtl. irgendein Debian/Ubuntu-Paket installiert, oder ein Programm das nur für Debian/Ubuntu gedacht ist?

Es wird kein Eintrag gefunden oder wiedergegegben.

Ja, das habe ich vor einigen Monaten. Leider weiß ich nicht mehr den Namen oder was es für ein Packet war :-S Ich hoffe, ich kann es mit find oder grep finden.

Vielen Dank für die schnelle Antwort :slight_smile:

Dann schau auch obs in irgendwelchen login scripts gesetzt wird:

grep -R libx32 /etc/profile* /etc/bash* ~/.bash* ~/.profile

Machts einen Unterschied, wenn du “su” oder “su -” (bitte beides probieren) ausführst und ldconfig dann startest (ohne sudo)?

Ja, das habe ich vor einigen Monaten. Leider weiß ich nicht mehr den Namen oder was es für ein Packet war :-S Ich hoffe, ich kann es mit find oder grep finden.

Hast du das wieder deinstalliert oder nicht?
Existiert jetzt /libx32 oder /usr/libx32 eigentlich? Nein, oder?

Leider findet er nur den grep Befehl in der History wieder :confused:

Es macht leider keinen Unterschied, in beiden Varianten gibt er zurück, das er die Verzeichnisse nicht findet. Bei “su -” ist die Aufgabe jedoch in Englisch.

Nein ich denke es ist noch irgendwo vorhanden. (Mache derzeit als root: “grep -r ‘/libx32’ /”, vielleicht bringt das mehr Erkenntnisse.)

/libx32 exisitert nicht, dafür /lib und /lib64
/usr/libx32 gibt es auch nicht, jedoch /usr/lib und /usr/lib64

Würde es vielleicht etwas bringen, wenn ich zwei Softlinks mit den “fehlenden” Verzeichnissen erstelle und diese auf /lib und /usr/lib zeigen?

linux:/ # grep -r '/libx32' /
grep: /var/lib/ntp/proc/sysrq-trigger: Input/output error
grep: memory exhausted
linux:/ # grep -r 'libx32' /etc/
linux:/ # grep -r 'libx32' /lib
linux:/ # grep -r 'libx32' /lib64/
linux:/ # grep -r 'libx32' /usr/lib
linux:/ # grep -r 'libx32' /usr
/usr/lib64/ldscripts/elf32_x86_64.xsw:SEARCH_DIR("/usr/x86_64-suse-linux/libx32"); SEARCH_DIR("/usr/lib64x32"); SEARCH_DIR("/usr/local/libx32"); SEARCH_DIR("/libx32"); SEARCH_DIR("/usr/libx32"); SEARCH_DIR("/usr/x86_64-suse-linux/lib"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
/usr/lib64/ldscripts/elf32_x86_64.xd:SEARCH_DIR("/usr/x86_64-suse-linux/libx32"); SEARCH_DIR("/usr/lib64x32"); SEARCH_DIR("/usr/local/libx32"); SEARCH_DIR("/libx32"); SEARCH_DIR("/usr/libx32"); SEARCH_DIR("/usr/x86_64-suse-linux/lib"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
/usr/lib64/ldscripts/elf32_x86_64.xw:SEARCH_DIR("/usr/x86_64-suse-linux/libx32"); SEARCH_DIR("/usr/lib64x32"); SEARCH_DIR("/usr/local/libx32"); SEARCH_DIR("/libx32"); SEARCH_DIR("/usr/libx32"); SEARCH_DIR("/usr/x86_64-suse-linux/lib"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
/usr/lib64/ldscripts/elf32_x86_64.xdc:SEARCH_DIR("/usr/x86_64-suse-linux/libx32"); SEARCH_DIR("/usr/lib64x32"); SEARCH_DIR("/usr/local/libx32"); SEARCH_DIR("/libx32"); SEARCH_DIR("/usr/libx32"); SEARCH_DIR("/usr/x86_64-suse-linux/lib"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
/usr/lib64/ldscripts/elf32_x86_64.xsc:SEARCH_DIR("/usr/x86_64-suse-linux/libx32"); SEARCH_DIR("/usr/lib64x32"); SEARCH_DIR("/usr/local/libx32"); SEARCH_DIR("/libx32"); SEARCH_DIR("/usr/libx32"); SEARCH_DIR("/usr/x86_64-suse-linux/lib"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
/usr/lib64/ldscripts/elf32_x86_64.x:SEARCH_DIR("/usr/x86_64-suse-linux/libx32"); SEARCH_DIR("/usr/lib64x32"); SEARCH_DIR("/usr/local/libx32"); SEARCH_DIR("/libx32"); SEARCH_DIR("/usr/libx32"); SEARCH_DIR("/usr/x86_64-suse-linux/lib"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
/usr/lib64/ldscripts/elf32_x86_64.xbn:SEARCH_DIR("/usr/x86_64-suse-linux/libx32"); SEARCH_DIR("/usr/lib64x32"); SEARCH_DIR("/usr/local/libx32"); SEARCH_DIR("/libx32"); SEARCH_DIR("/usr/libx32"); SEARCH_DIR("/usr/x86_64-suse-linux/lib"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
/usr/lib64/ldscripts/elf32_x86_64.xdw:SEARCH_DIR("/usr/x86_64-suse-linux/libx32"); SEARCH_DIR("/usr/lib64x32"); SEARCH_DIR("/usr/local/libx32"); SEARCH_DIR("/libx32"); SEARCH_DIR("/usr/libx32"); SEARCH_DIR("/usr/x86_64-suse-linux/lib"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
/usr/lib64/ldscripts/elf32_x86_64.xc:SEARCH_DIR("/usr/x86_64-suse-linux/libx32"); SEARCH_DIR("/usr/lib64x32"); SEARCH_DIR("/usr/local/libx32"); SEARCH_DIR("/libx32"); SEARCH_DIR("/usr/libx32"); SEARCH_DIR("/usr/x86_64-suse-linux/lib"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
/usr/lib64/ldscripts/elf32_x86_64.xn:SEARCH_DIR("/usr/x86_64-suse-linux/libx32"); SEARCH_DIR("/usr/lib64x32"); SEARCH_DIR("/usr/local/libx32"); SEARCH_DIR("/libx32"); SEARCH_DIR("/usr/libx32"); SEARCH_DIR("/usr/x86_64-suse-linux/lib"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
/usr/lib64/ldscripts/elf32_x86_64.xs:SEARCH_DIR("/usr/x86_64-suse-linux/libx32"); SEARCH_DIR("/usr/lib64x32"); SEARCH_DIR("/usr/local/libx32"); SEARCH_DIR("/libx32"); SEARCH_DIR("/usr/libx32"); SEARCH_DIR("/usr/x86_64-suse-linux/lib"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
Binary file /usr/bin/gcj-4.8 matches                                                                                                                                               
Binary file /usr/bin/gcc-4.8 matches                                                                                                                                               
Binary file /usr/bin/ld.bfd matches                                                                                                                                                
/usr/bin/ldd:RTLDLIST="/lib/ld-linux.so.2 /lib64/ld-linux-x86-64.so.2 /libx32/ld-linux-x32.so.2"
Binary file /usr/bin/g++-4.8 matches                                                                                                                                               
Binary file /usr/bin/cpp-4.8 matches  

Leider kann ich mit den output nicht so viel anfangen, hat einer evt. noch ein Tipp für mich? Das Verzeichnis “/usr/local/libx32” ist ebenfalls nicht vorhanden.

VG

Fluffy17

Hm?
Der Befehl den ich geschrieben habe sucht ja gar nicht in der History…

/libx32 exisitert nicht, dafür /lib und /lib64
/usr/libx32 gibt es auch nicht, jedoch /usr/lib und /usr/lib64

Würde es vielleicht etwas bringen, wenn ich zwei Softlinks mit den “fehlenden” Verzeichnissen erstelle und diese auf /lib und /usr/lib zeigen?

Auf openSUSE wird /lib und /usr/lib für 32bit Bibliotheken, und /lib64 und /usr/lib64 für 64bit Bibliotheken verwendet.

Ein Softlink würde nur dafür sorgen dass die Fehlermeldung verschwindet, ansonsten aber überhaupt keine Änderung bewirken, da /lib und /usr/lib ja sowieso im Linker-Pfad sind.

Also anders ausgedrückt, du kannst das machen wenn du willst, das sollte die Fehlermeldung verschwinden lassen. Andererseits kannst du die Fehlermeldung auch einfach ignorieren.

Tja, ein grep über / ist nicht wirklich empfehlenswert…
Da durchsuchst du auch /proc und /sys z.B., die nicht wirklich Dateien enthalten, sondern Schnittstellen zu Kernel-interne Variablen und Datenstrukturen.

Und /var/lib/ntp gibts auch nicht wirklich, das ist ein sogenanntes chroot jail für ntp. Also wenn ntp läuft, bekommt er das als / Verzeichnis, damit nicht durch Fehler/Angriffe Sachen in deinem echten System verändert werden. Und /var/lib/ntp/proc/ ist dann das gleiche wie /proc.

Leider kann ich mit den output nicht so viel anfangen, hat einer evt. noch ein Tipp für mich? Das Verzeichnis “/usr/local/libx32” ist ebenfalls nicht vorhanden.

Also, der Output ist “normal”.

Aber irgendwo muss das libx32 doch herkommen?
Momentan hab ich nur noch 2 Ideen:

  • evtl. wird es in ~/.bashrc oder ~/.profile vom Benutzer “root” gesetzt:
sudo grep libx32 /root/.profile* /root/.bash*
  • “grep -r” such zwar rekursiv, folgt aber keinen Symlinks. Es könnte also sein, dass eine Datei die das setzt nach /etc/profile.d/ z.B. gelinkt ist, obwohl grep nichts findet. Probier mal ‘-R’ stattdessen.
    Also speziell:
grep -R libx32 /etc/

Hallo fluffy und wolfi!

liegt an der datei /usr/lib64/ldscripts/elf32_x86_64.xsw wie man an fluffys Ausgabe sehen kann,
sie gehört zum Paket binutils. bei mir ist das auch so:

ldconfig: Can't stat /libx32: No such file or directory
ldconfig: Can't stat /usr/libx32: No such file or directory

Aus /usr/lib64/ldscripts/elf32_x86_64.xsw :


SEARCH_DIR("/usr/x86_64-suse-linux/libx32"); SEARCH_DIR("/usr/lib64x32"); SEARCH_DIR("/usr/local/libx32"); SEARCH_DIR("/libx32"); SEARCH_DIR("/usr/libx32"); SEARCH_DIR("/usr/x86_64-suse-linux/lib"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib")

rpm -qif /usr/lib64/ldscripts/elf32_x86_64.xsw
Name        : binutils
Version     : 2.24
Release     : 6.1.7
Architecture: x86_64
Install Date: Tue Jan 13 21:05:39 2015

hth,
dirk

Naja, und jetzt bin ich mir nicht mehr sicher was binutils mit ldconfig zu tun hat :wink:

Also ich glaub die Datei /usr/lib64/ldscripts/elf32_x86_64.xsw wird wohl eher von ld
beim Programmbau gebraucht. ob ldconfig die auch benutzt weiß ich im Moment nicht…

Also so weit wie vorher…

cu

zumindest /libx32 ist in ldconfig hardcodiert:

grep ‘/usr/libx32’ /sbin/ldconfig

grep ‘/libx32’ /sbin/ldconfig

Binary file /sbin/ldconfig matches

Möglicherweise wird die /usr…-Variante zusammengebaut und daher findet er nichts??

hth

Danke für die vielen Antworten es ist gut zu wissen, dass ich das Problem nicht durch Fehlkonfigurationen ausgelösst habe.

PS: Habe es auf zwei frisch installierten VMs getestet (mit OpenSuse 13.1 und 13.2). Bei beiden Installationen werden die Fehler beim Aufruf von “sudo /sbin/ldconfig -v” ausgegeben :slight_smile:

Tja, dann benutz halt nicht “-v”… :wink:

Ich hab das grade eben hier ausprobiert (13.2), und die Meldung kommt tatsächlich. Ist mir bis jetzt noch nie aufgefallen, weil ich eben ldconfig noch nie mit der “-v” Option aufgerufen habe (bzw. eigtl. hab ich ldconfig schon lange nicht mehr händisch aufgerufen, das sollte ja normalerweise nicht nötig sein).
Allerdings ist das eben nur ein Hinweis (hervorgerufen duch die “verbose” Option), der dich auch nicht beunruhigen braucht.

Danke für den Hinweis :slight_smile: Ich bereite mich gerade auf den zweiten Teil der LPIC 1 Prüfung vor und probiere daher viel aus :wink: