Это уже отправляется в serverfault - и может быть большим количеством apprpriate там. Переделанный немного от регистрации orginal.
Нам основывались на продукте CentOS 4 32-разрядный Linux, который работает неизмененный на 32-и 64-разрядный CentOS/RHEL 4 и 5 и SLES 10. Это также работает неизмененный на 64-разрядном SLES 9. [32-разрядный SLES 9 требует другого libstdc ++.]
Название основного двоичного исполняемого файла является 'каналом'
Вчера мы попытались поместить это в 64-разрядную Ubuntu 10 и, даже при том, что файл там и правильный размер, мы добираемся:
- удар:./канал: Никакой такой файл или каталог
'канал файла' показывает его, чтобы быть 32-разрядным ELF (не может помнить точный вывод, и система находится в изолированной сети),
Если помещено в/usr/local/bin, то, 'который канал' возвраты:/usr/local/bin/flume
Файл отмечен как исполняемый файл (сделал 'chmod +x канал'), и lsattr не показывает проблем с битами атрибута.
Я не смог попробовать 'ldd канал' все же. Я также не попробовал 'strace канал'. В настоящее время я с отказом кондиционера. [Это была такая неделя!]
Я теперь подозреваю, что некоторая библиотека не там.
Это - глубоко бесполезное сообщение, и один я никогда не видел прежде.
Это специфичное для Ubuntu или возможно только к этой установке.
Мы сдались и переместились в систему RHEL 4, и все прекрасно. Но я уверенный хотел бы знать то, что вызывает это.
[скопированный с ответа Gilles на Отказе сервера]
Можно получить это сообщение, если канал существует, но его “загрузчик” не существует, где
/lib/ld-linux.so.2
;/bin/sh
если сценарий начинается #!/bin/sh
.В Вашем случае похоже, что у Вас нет 32-разрядного динамического загрузчика установленным в 64-разрядной системе Ubuntu. Это находится в libc6-i386
пакет.
strings ./flume | head -n 1
отобразит путь к динамическому загрузчику это flume
требует. Это - один из тех редких случаев где strace ./flume
абсолютно бесполезно.
Я полагаю, что эта ситуация самое вводящее в заблуждение сообщение об ошибке Unix. К сожалению, фиксация его была бы трудна: ядро может только сообщить о числовом коде ошибки вызывающей стороне программы, таким образом, это только имеет пространство для “команды, не найденной”, и не для названия загрузчика это ищет.
У меня было что-то подобное, в конце это было вследствие того, что libstdc ++ 5 был удален из человечности 10.04 и 9.10. Я не знаю, почему ошибка, которую я получил, не была, не может найти libstdc ++, но когда я установил его (от нестабильного debian), ошибка ушла.