LINUX.ORG.RU

IMHO твой "file" из очень старых (из RedHat6, например)
ldd file -- покажет, каки либ не хватает ему

DiMoN ★★★
()

ldd не покажет, потому что нет динамического загрузчика - скорее всего ld-linux.so.1, когда его достанешь, то ldd начнет показывать необходимые программе либы, а система станет ругаться не "No such file or directory", а "Cannot load libxxx.so needed by prog"

grustnoe ★★
()

No such file or directory именно та ошибка, которая выходит с ld-linux.so.2 при попытке запуска динамичного файла, все депенденси которого не на месте. Например
# chroot /newroot /bin/bash
/bin/bash: No such file or directory.

> ldd не покажет, потому что нет динамического загрузчика
Не знаю не знаю, в линуксе ldd всего лишь враппер вокруг /lib/ld-linux.so.2. ldd myexe почти то же самое, что и /lib/ld-linux.so.2 --list ./myexe

rihad
()

Ох, ну попробуй старую прогу, что собрана под ld-linux.so.1 запустить. Увидишь эту ошибку.

grustnoe ★★
()

Чего-то я не вижу упоминаний о ld-linux.so.1 у OP.

rihad
()

пример, для тех, кто в танке 

[ragazza ~] cat 1.c
#include<stdio.h>
int main() {
 printf("hello world\n");
}
[ragazza ~] export PATH=/usr/i386-linux-uclibc/usr/bin:$PATH
[ragazza ~] which gcc
/usr/i386-linux-uclibc/usr/bin/gcc
[ragazza ~] gcc -o hello 1.c
[ragazza ~] ldd hello
        libc.so.0 => /lib/libc.so.0 (0x25b0e000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x25b08000)
[ragazza ~] sudo mv /lib/ld-uClibc.so.0 /lib/ld-uClibc.so.0.bak
[ragazza ~] ./hello
bash: ./hello: No such file or directory
[ragazza ~] ldd hello
/usr/bin/ldd: line 1: ./hello: No such file or directory
[ragazza ~] sudo mv /lib/ld-uClibc.so.0.bak /lib/ld-uClibc.so.0
[ragazza ~] ./hello
hello world
[ragazza ~] sudo mv /lib/libc.so.0 /lib/libc.so.0.bak
[ragazza ~] ./hello
./hello: can't load library 'libc.so.0'
[ragazza ~] ldd hello
        libc.so.0 => not found
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x28d42000)

grustnoe ★★
()

# ./f
Hi
# ldd f
libc.so.6 => /lib/libc.so.6 (0x40018000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
# rm /lib/libc.so.6
# ./f
./f: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
# sln /lib/libc-2.3.2.so /lib/libc.so.6
# ./f
Hi
#

Вобщем, спор непринципиальный, я запомнил именно ошибку ENOENT. Спасибо.

rihad
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.