У меня есть сервер с Ubuntu 9.10. Я пытаюсь установить исполняемый файл, который оказывается последней версией flashplayer (версия отладчика).
Каким-то образом файл отображается как существующий и исполняемый, но при его запуске консоль указывает, что файлы не существуют:
rodrigo@ns360773:~/t_fplayer$ pwd
/home/rodrigo/t_fplayer
rodrigo@ns360773:~/t_fplayer$ ls -lh
total 12M
-rwxr-xr-x 1 rodrigo rodrigo 12M 2011-07-09 11:35 flashplayerdebugger
rodrigo@ns360773:~/t_fplayer$ ./flashplayerdebugger
-bash: ./flashplayerdebugger: No such file or directory
rodrigo@ns360773:~/t_fplayer$ ldd flashplayerdebugger
not a dynamic executable
использование того же исполняемого файла (скопированного через ssh) на моем локальном компьютере работает нормально.
Есть идеи о том, что происходит? Чем можно объяснить такое поведение?
Есть идеи, как это исправить?
Проверьте архитектуру: вы получите это сообщение, запускающее двоичный файл x86 в системе AMD64, если у вас не установлены библиотеки совместимости.
Кроме того, Ubuntu 9.04 больше не обновляется, поэтому вы можете обновить его.
Статический или динамический, он по-прежнему использует динамически загружаемый «интерпретатор», который в Linux обычно называется ld-linux.so.VERSION
. Если у вас есть исполняемый файл, для которого требуется версия интерпретатора, которой нет, например, когда вы пытаетесь использовать более новый двоичный файл в старой системе, вы получите эту ошибку, потому что переводчик не найдено. (И сообщение об ошибке прискорбно, но не может быть исправлено, если ядро не будет расширено с помощью улучшенного API отчетов об ошибках; все, что знает оболочка, это то, что она получила ENOENT
в ответ на execve("./flashplayerdebugger", ...)
.) Итак, я предполагаю, что вы пытаетесь запустить двоичный файл, скомпилированный для Ubuntu 11.x, на своем старом сервере, и это безнадежное дело - вам нужно будет получить один, скомпилированный для Ubuntu 9.10.
Вероятно, это связано с отсутствием 32-битной среды. Вы можете попробовать использовать strace, чтобы найти то, что точно отсутствует: strace ./flashplayerdebugger
. Вы должны увидеть там несколько open () для несуществующих библиотек.