• error while loading shared libraries: libmandb-2.9.4.so

    From NoSpam@21:1/5 to All on Mon Sep 6 18:30:02 2021
    Bonsoir, avec debian11, pour comparaison taille et droits

    root@keewi:~# ls -al /usr/lib/man-db/libmandb*
    -rw-r--r-- 1 root root 30712 19 févr.  2021
    /usr/lib/man-db/libmandb-2.9.4.so
    lrwxrwxrwx 1 root root    17 19 févr.  2021 /usr/lib/man-db/libmandb.so
    libmandb-2.9.4.so


    Le 06/09/2021 à 18:20, BERTRAND Joël a écrit :
    Bonsoir à tous,

    Depuis quelque temps, j'ai l'erreur suivante en appelant man :

    Root hilbert:[/usr/lib] > man top
    man: error while loading shared libraries: libmandb-2.9.4.so: cannot
    open shared object file: Permission denied

    Pourtant, toutes les bibliothèques semblent être là :

    Root hilbert:[/usr/lib] > ldd /usr/bin/man
    linux-vdso.so.1 (0x00007ffd118f2000)
    libmandb-2.9.4.so => /usr/lib/man-db/libmandb-2.9.4.so (0x00007fc5f3453000)
    libman-2.9.4.so => /usr/lib/man-db/libman-2.9.4.so (0x00007fc5f3410000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fc5f3399000)
    libpipeline.so.1 => /usr/lib/x86_64-linux-gnu/libpipeline.so.1 (0x00007fc5f3388000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc5f31c3000)
    libgdbm.so.6 => /usr/lib/x86_64-linux-gnu/libgdbm.so.6 (0x00007fc5f31b0000)
    libseccomp.so.2 => /usr/lib/x86_64-linux-gnu/libseccomp.so.2 (0x00007fc5f318b000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fc5f347b000)
    Root hilbert:[/usr/lib] >

    J'ai réinstallé man-db sans obtenir de meilleur résultat.

    Les droits me semblent corrects :

    Root hilbert:[/usr/lib/man-db] > ls -al
    total 420
    drwxr-xr-x 2 root root 1024 6 sept. 18:03 .
    drwxr-xr-x 141 root root 11264 6 sept. 15:48 ..
    -rwxr-xr-x 1 root root 23232 19 févr. 2021 globbing
    -rw-r--r-- 1 root root 271168 19 févr. 2021 libman-2.9.4.so
    -rw-r--r-- 1 root root 30712 19 févr. 2021 libmandb-2.9.4.so
    lrwxrwxrwx 1 root root 17 19 févr. 2021 libmandb.so -> libmandb-2.9.4.so
    lrwxrwxrwx 1 root root 15 19 févr. 2021 libman.so -> libman-2.9.4.so lrwxrwxrwx 1 root root 13 19 févr. 2021 man -> ../../bin/man -rwxr-xr-x 1 root root 23392 19 févr. 2021 manconv
    lrwxrwxrwx 1 root root 15 19 févr. 2021 mandb -> ../../bin/mandb -rwxr-xr-x 1 root root 56096 19 févr. 2021 zsoelim

    et il s'agit bien d'une bibliothèque partagée :
    Root hilbert:[/usr/lib/man-db] > file libmandb-2.9.4.so
    libmandb-2.9.4.so: ELF 64-bit LSB shared object, x86-64, version 1
    (SYSV), dynamically linked, BuildID[sha1]=c20b1c94193b241e4e17834335605b9d68db1632, stripped

    Si j'essaie de lancer man dans strace, je m'aperçois que le loader cherche libmandb partout sauf dans /usr/lib/man-db :

    Root hilbert:[/usr/lib/man-db] > strace man top 2>&1 | grep libmandb openat(AT_FDCWD, "/usr/lib/man-db/tls/haswell/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/man-db/tls/haswell/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/man-db/tls/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/man-db/tls/libmandb-2.9.4.so",
    O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/man-db/haswell/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/man-db/haswell/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/man-db/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/man-db/libmandb-2.9.4.so",
    O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission non accordée)
    openat(AT_FDCWD, "/lib/x86_64-linux-gnu/tls/haswell/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/lib/x86_64-linux-gnu/tls/haswell/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/lib/x86_64-linux-gnu/tls/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/lib/x86_64-linux-gnu/tls/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD,
    "/lib/x86_64-linux-gnu/haswell/x86_64/libmandb-2.9.4.so",
    O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/lib/x86_64-linux-gnu/haswell/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/lib/x86_64-linux-gnu/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission non accordée)
    openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/tls/haswell/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD,
    "/usr/lib/x86_64-linux-gnu/tls/haswell/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD,
    "/usr/lib/x86_64-linux-gnu/tls/x86_64/libmandb-2.9.4.so",
    O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/tls/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/haswell/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/haswell/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission non accordée)
    openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/lib/tls/haswell/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/lib/tls/haswell/libmandb-2.9.4.so",
    O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/lib/tls/x86_64/libmandb-2.9.4.so",
    O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/lib/tls/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type)
    openat(AT_FDCWD, "/lib/haswell/x86_64/libmandb-2.9.4.so",
    O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission non accordée)
    openat(AT_FDCWD, "/lib/haswell/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) =
    -1 EACCES (Permission non accordée)
    openat(AT_FDCWD, "/lib/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) =
    -1 EACCES (Permission non accordée)
    openat(AT_FDCWD, "/lib/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1
    EACCES (Permission non accordée)
    openat(AT_FDCWD, "/usr/lib/tls/haswell/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/tls/haswell/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/tls/x86_64/libmandb-2.9.4.so",
    O_RDONLY|O_CLOEXEC) = -1 ENOENT (Aucun fichier ou dossier de ce type) openat(AT_FDCWD, "/usr/lib/tls/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) =
    -1 ENOENT (Aucun fichier ou dossier de ce type)
    openat(AT_FDCWD, "/usr/lib/haswell/x86_64/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission non accordée)
    openat(AT_FDCWD, "/usr/lib/haswell/libmandb-2.9.4.so",
    O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission non accordée)
    openat(AT_FDCWD, "/usr/lib/x86_64/libmandb-2.9.4.so",
    O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission non accordée)
    openat(AT_FDCWD, "/usr/lib/libmandb-2.9.4.so", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission non accordée)
    writev(2, [{iov_base="man", iov_len=3}, {iov_base=": ", iov_len=2}, {iov_base="error while loading shared libra"..., iov_len=36},
    {iov_base=": ", iov_len=2}, {iov_base="libmandb-2.9.4.so", iov_len=17}, {iov_base=": ", iov_len=2}, {iov_base="cannot open shared object file", iov_len=30}, {iov_base=": ", iov_len=2}, {iov_base="Permission denied", iov_len=17}, {iov_base="\n", iov_len=1}], 10man: error while loading
    shared libraries: libmandb-2.9.4.so: cannot open shared object file: Permission denied
    Root hilbert:[/usr/lib/man-db] >

    Je suis bête, je force le chargement de la bibliothèque :

    Root hilbert:[/usr/lib/man-db] >
    LD_PRELOAD=/usr/lib/man-db/libmandb-2.9.4.so man top
    ERROR: ld.so: object '/usr/lib/man-db/libmandb-2.9.4.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
    man: error while loading shared libraries: libmandb-2.9.4.so: cannot
    open shared object file: Permission denied

    Et là, je sèche...

    Je ne vois pas pourquoi cette bibliothèque n'est pas utilisable et je suis preneur de toute idée.

    Bien cordialement,

    JKB

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)