& ldquo; Нет такого файла & rdquo; при запуске 32-битной программы в 64-битной системе

Я скачал снимок Chromium и разархивировал его, вот так:

michael@ubuntu:/opt/chrome-linux$ ls
chrome                  libffmpegsumo.so                nacl_irt_x86_32.nexe
chrome.1                libppGoogleNaClPluginChrome.so  product_logo_48.png
chrome_100_percent.pak  locales                         resources
chrome.pak              nacl_helper                     resources.pak
chrome_sandbox          nacl_helper_bootstrap           xdg-mime
chrome-wrapper          nacl_irt_srpc_x86_32.nexe       xdg-settings

Но когда я пытаюсь запустить chrome, его там нет ...

michael@ubuntu:/opt/chrome-linux$ ./chrome
bash: ./chrome: No such file or directory

Кто-нибудь знает, почему он не открывается? Работает Xubuntu 12.10 AMD64.

michael@ubuntu:/opt/chrome-linux$ ldd /opt/chrome-linux/* | grep -i "not found"
ldd: /opt/chrome-linux/locales: not regular file
ldd: /opt/chrome-linux/resources: not regular file
6
задан 22 December 2012 в 00:22

2 ответа

Вам не хватает 32-битной поддержки. Установите libc6: i386 , то есть пакет 32-разрядной базовой библиотеки, а также все остальные 32-разрядные библиотеки, которые необходимы Chrome (вероятно, будут близки к зависимостям пакета Chromium ).

Когда вам не удается выполнить файл, который зависит от «загрузчика», вы получаете ошибку, которая может относиться к загрузчику, а не к исполняемому файлу.

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

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

После установки 32-разрядного динамического загрузчика /lib/ld-linux.so.2, который находится в пакете libc6: i386 , вы, по крайней мере, получите не вводящее в заблуждение сообщение об ошибке, сообщающее вам о других недостающих библиотеках.

6
ответ дан 22 December 2012 в 00:22

Самый быстрый способ найти решение Жиля - установить ia32-libs-multiarch . Хотя при этом требуется много пакетов, это экономит ваше время на выяснение всех различных зависимостей.

1
ответ дан 22 December 2012 в 00:22

Другие вопросы по тегам:

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