На Ubuntu доберитесь: “- удар:./flume Никакой такой файл или каталог”, НО канал не там и исполняемый файл. Тот же двоичный файл хорошо на RHEL

Это уже отправляется в 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, и все прекрасно. Но я уверенный хотел бы знать то, что вызывает это.

3
задан 13.07.2010, 18:19

2 ответа

[скопированный с ответа Gilles на Отказе сервера]

Можно получить это сообщение, если канал существует, но его “загрузчик” не существует, где

  • загрузчик собственного исполняемого файла является своим динамическим загрузчиком, например /lib/ld-linux.so.2;
  • загрузчик сценария является программой, упомянутой на ее строке хижины, например, /bin/sh если сценарий начинается #!/bin/sh.

В Вашем случае похоже, что у Вас нет 32-разрядного динамического загрузчика установленным в 64-разрядной системе Ubuntu. Это находится в libc6-i386 пакет.

strings ./flume | head -n 1 отобразит путь к динамическому загрузчику это flume требует. Это - один из тех редких случаев где strace ./flume абсолютно бесполезно.

Я полагаю, что эта ситуация самое вводящее в заблуждение сообщение об ошибке Unix. К сожалению, фиксация его была бы трудна: ядро может только сообщить о числовом коде ошибки вызывающей стороне программы, таким образом, это только имеет пространство для “команды, не найденной”, и не для названия загрузчика это ищет.

3
ответ дан 08.12.2019, 00:07

У меня было что-то подобное, в конце это было вследствие того, что libstdc ++ 5 был удален из человечности 10.04 и 9.10. Я не знаю, почему ошибка, которую я получил, не была, не может найти libstdc ++, но когда я установил его (от нестабильного debian), ошибка ушла.

1
ответ дан 08.12.2019, 00:07

Теги

Похожие вопросы