I386 linux gnu нет такого файла или каталога

Данный файл или каталог отсутствует? Но файл существует!

Я скачал игру (Shank), но файл bin не запускается. Ошибка, которая отображается при попытке запустить исполняемый файл:

Вероятно, вы пытаетесь запустить 32-разрядный двоичный файл в 64-разрядной системе, в которой не установлена ​​32-разрядная поддержка.

В трех случаях вы можете получить сообщение «Нет такого файла или каталога»:

  • Файл не существует. Я предполагаю, что вы проверили, что файл существует (возможно, потому что оболочка завершает его).
  • Файл с таким именем существует, но это свисающая символическая ссылка.
  • Файл существует, и вы даже можете прочитать его (например, команда file shank-linux-120720110-1-bin отображает что-то вроде «ELF 32-битный исполняемый файл LSB…»), и все же, когда вы пытаетесь выполнить его, вам говорят, что файл не существует.

Сообщение об ошибке в этом последнем случае, по общему признанию, сбивает с толку. Это говорит о том, что отсутствует ключевой компонент среды выполнения, необходимый для запуска программы. К сожалению, канал, по которому сообщается об ошибке, имеет место только для кода ошибки, а не для этой дополнительной информации, которая действительно виновата в среде выполнения. Если вам нужна техническая версия этого объяснения, прочитайте сообщение Получение «Не найдено» при запуске 32-разрядного двоичного файла в 64-разрядной системе .

Команда file скажет вам, что это за двоичный файл. За некоторыми исключениями, вы можете запустить только двоичный файл для архитектуры процессора, для которой предназначен ваш выпуск Ubuntu. Основным исключением является то, что вы можете запускать 32-битные (x86, aka IA32) двоичные файлы в 64-битных (amd64, aka x86_64) системах.

В Ubuntu до 11.04 для запуска 32-разрядного двоичного файла в 64-разрядной установке необходимо установить ia32-libs пакет . Возможно, вам придется установить дополнительные библиотеки (в противном случае вы получите явное сообщение об ошибке).

Поскольку в 11.10 (oneiric) появилась поддержка multiarch , вы все равно можете установить ia32-libs , но вы можете выбрать более детальный подход, которого достаточно получить (плюс любую другую необходимую библиотеку). libc6-i386

Источник

Исполняемый файл есть, но его нет

Скачал линуховый клиент для фотохостинга photofile. В архиве исполняемый файл. Пытаюсь запустить.

ему там может чего надо еще? посмотри ldd photofile что говорит? есть ли у тебя все что нужно?

Читайте также:  Восстановление линукс минт после серьезного сбоя

Похоже, ему твоя glibc не нравится

а что если это файл скормить gdb? может он чего больше скажет?

Ну надо же, они что в Сети фуфло распространяют.

Хотя такая же штука была когда я пытался запустить скачанный с офиц. сайта firefox. Подозрительно всё это.

А ты с архитектурой не промахнулся?

ппц, линуксоиды скачивают и запускают бинарники. Куда катится мир?

А это не баш-скрипт ли часом? (:
Текстовым редактором откройте.

Так бывает, когда неправильно shabang указан.

а чмод + икс не нужно сделать?

>Так бывает, когда неправильно shabang указан.

тогда обычно bad interpreter говорят вроде перед No such file or directory

>а чмод + икс не нужно сделать?

>а чмод + икс не нужно сделать?

не читал первое сообщение? там же вывод ls -l есть.

-rwxr-xr-x 1 sunny sunny 10771230 Май 19 2008 photofile

ну проглядел, чо

думаешь noexec? там ошибка другая была бы емнип.

file photofile
head -n 1 photofile

>Ну надо же, они что в Сети фуфло распространяют.

Пока что видно только что ты «в Сети фуфло распространяешь»

Это плохой файл, не исполняемый. Удалите его.

лддэхни его и посмотри какой библиотеки нехватает.

>Как это понять, файл есть, но его вдруг нет? Или это какая-то защита, предотвращающая от запуска чего не попадя? Дистрибутив — Debian

Ну видимо файл запускается, shell читает sha-bang, там написано /bin/bash, запускается /bin/bash ./photfile, но вот эта команда почему-то не видит этого файла. Попробуйте напрямую:

Ну и сам файл поглядите. (xxd | head и file)

Покажи file photofile
А заодно uname -a

Не, лучше наверное не показывай.

Дай угадаю — у тебя amd64?
А ты запускаешь на ней 32-битный бинарник, отсюда проблемы.
Копай в эту сторону.

и оно покажет что к чему и почему.

Судя по размеру, вряд ли

и оно покажет что к чему и почему.

Дай угадаю — у тебя amd64? А ты запускаешь на ней 32-битный бинарник, отсюда проблемы. Копай в эту сторону.

У меня на самом деле процессор AMD AM2+ 64 двухядерный. И система вся архитектуры amd64. Но вроде как бы 32-битные программы должны без проблем запускаться на 64-битной платформе, всегда так было. Вот 32-битный skype запускается.

Читайте также:  Api для windows phone

А readelf что показывает? Признаёт этот файл исполняемым?

Попробуйте скормить этот файл /lib/ld-linux* с разными параметрами.

Например, /lib/ld-linux* —list ./photofile

>for GNU/Linux 2.2.5

Может, в этом дело?

Под /lib/ld-linux вы это имели в виду?

Пишет, что какая-то ошибка. И что это означает?

> И что это означает?
Рядом, случаем, нету другого ld-linux? Если нет, поищите в репозитории пакет для совместимости с 32-битными приложениями (странно, почему же skype работает?)

Может быть, /lib32/ld-linux* ?

linux32 ./photofile что скажет?

zgrep -E ‘CONFIG_X86_32|CONFIG_IA32_EMUL’ /proc/config.gz

это ж не библиотека
p.s. а мне викторина нравится ))

> это ж не библиотека
Но такой файл есть в пакете libc6-i386, так что имеет смысл попробовать им воспользоваться. Или Вы не об этом?

Источник

Нет такого файла или каталога

Приветствую. Проблема такая — скачал игру (ее нет в репозиториях), распаковал, пытаюсь запустить — получаю

chmod +x cataclysm-tiles

Сделал естественно, не помогает.

Попробуй полный путь указать (/home/user/Downloads/cataclysmdda-0.B/cataclysm-tiles) или через cataclysm-launcher

Покажи еще вывод file cataclysm-tiles и uname -a.

Покажи еще вывод file cataclysm-tiles и uname -a.

Попробуй полный путь указать (/home/user/Downloads/cataclysmdda-0.B/cataclysm-tiles) или через cataclysm-launcher

Спасибо, помогло. Правда пришлось ставить кучу всего дополнительно, но заработало.

Ну да, я собственно это и имел в виду:

ELF 32-bit LSB executable
x86_64 x86_64 x86_64

Источник

asm/errno.h: нет такого файла или каталога

Я пытаюсь установить gcc 4.8.1 на данный момент. В настоящее время установлены версии 4.8.2 и 4.9.1. Я скачал 4.8.1 отсюда http://gcc.cybermirror.org/releases/gcc-4.8.1/. После извлечения файлов я сделал ./configure а потом попробовал make , В конце make Я получаю эту ошибку

Я новичок в Linux, поэтому я не знаю, как найти или добавить этот заголовочный файл.

Изменить: шаги, которые я сделал:

  1. Извлеките gcc-4.8.1.tar.gz в папку
  2. Открыть окно терминала
  3. cd gcc-4.8.1
  4. ./configure —build=x86_64-linux-gnu
  5. make -j4

Я не знаю, что я сделал по-другому, но это, наконец, скомпилировано. После этого я сделал установку. Мой вопрос теперь, как мне использовать это вместо 4.8.2, который по умолчанию использует команду gcc-4.8.

2 ответа

asm/errno.h Заголовок предоставляется различными пакетами. Странно что gcc потребуется, но вы можете попробовать:

Вы также должны указать GCC искать архитектуру и конкретное расположение ОС для заголовков:

(или же i386-linux-gnu для 32-битной Ubuntu).

Настоятельно рекомендуется при создании материала из источника, который вы используете —prefix флаг (и с GCC, —program-suffix флаг) при настройке. Так как у вас нет, попробуйте запустить /usr/bin/gcc ,

Читайте также:  Download windows installer from usb

Теперь ваши файлы GCC будут установлены в /usr/local/bin/ и другие вещи в других папках в /usr/local ,

Обратите внимание, как я бегу configure а также make из другого каталога, вне того, где находится источник GCC? Вот как документы GCC рекомендуют создавать GCC.

Я получил ту же ошибку на ubuntu-xenial 4.4.0-75-generic ,

Я обнаружил, что у меня был /usr/include/asm-generic папка, но нет /usr/include/asm , который искал gcc.

Создание символической ссылки решило это для меня.

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

Источник

Нет такого файла или каталога в Linux Bash

Я установил программу на Linux (UBUNTU), я установил переменные среды. К сожалению, когда я набираю команду для запуска программы, она выдает мне сообщение: нет такого файла или каталога.

Я могу видеть файл, его разрешение установлено как исполняемый. Не понимаю почему?

Я установил эту программу на Mac и Windows раньше, и этого никогда не было! 🙁 Вот ссылка на программное обеспечение http://www2.parc.com/isl/groups/nltt/xle/doc/xle.html#sec1.5

Вот больше информации: это XLE!

Как видите, переменная окружения правильно установлена, поскольку она знает, где искать команду xle, но ..

Извлеките команду readelf -l xle

1 ответ 1

/Desktop$ xle
bash: /home/yasaman/Desktop/XLE/bin/xle: No such file or directory

Это ясно показывает, что файл находится в вашей PATH и имеет права на выполнение.

Наиболее частой причиной ошибки ENOENT в этих условиях является отсутствующий или поврежденный динамический загрузчик. not a dynamic executable ошибка исполняемого файла от ldd является еще одним признаком того, что это происходит.

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

Что говорит readelf -l xle ? Существует ли путь, указанный в сегменте INTERP ? Это исполняемый файл?

Так как файл является 32-битный исполняемый ELF вы , возможно , на 64-битной системе только? Если это так, вам нужно установить libc6-i386 .

Источник

Оцените статью