Линукс no such file or directory

Debian: No such file or directory — а файл есть

Здравствуйте, уважаемые. Скачал btsync (у меня arm, по ссылке Linux ARM тут), положил в /usr/bin и не могу запустить:

Как так и что с этим делать?

P.S. Тоже самое происходит, если переместить исполняемый файл, например, в домашний каталог.

P.S.S. Debian Jessie, вот такая железка.

chmod +x точно не поможет?

apparmor, selinux, noexec?

noexec на разделе

такое бывает когда исполняемый файл например предназначенный для 32 битной архитектуры пытаются запустить в 64-битной системе

А что покажет file btsync ? Необязательно на самой железке.

apparmor, selinux, chattr — это что? Что посмотреть?

В общем, похоже-таки несовместимость архитектур. Придётся пересобирать из исходников. Источник: http://otvety.google.ru/otvety/thread?tid=1e74bf1617bdb4b6

Try to run the following command

I had the same issue on Cubieboard.

Try to run the following command:

sudo ln -s /lib/arm-linux-gnueabihf/ld-linux.so.3 /lib/ld-linux.so.3

На Debian 7.6.0 (Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux) столкнулся с той же проблемой. Для запуска 32-битного приложения может потребоваться пакет ia32-libs-i386. Дебиан по умолчанию не дает его установить из-за зависимостей. Решается таким образом:

sudo dpkg —add-architecture i386 sudo apt-get update sudo apt-get install ia32-libs-i386 (тянет за собой 60Мб зависимостей)

Источник

Исправление ошибок Linux

Каждый пользователь, рано или поздно сталкивается с определенными проблемами в своей операционной системе Linux. Это может быть просто неправильное использование команд или их непонимание, так и такие серьезные ошибки Linux, как отсутствие драйверов, неработоспособность сервисов зависание системы и так далее.

Эта статья ориентирована в первую очередь на новичков, которые не знают, что делать когда их будут поджидать проблемы linux, мы дадим общую концепцию и попытаемся показать в какую сторону двигаться дальше. Мы рассмотрим исправление ошибок в linux как простых, так и более сложных. Но давайте сначала определим, какие проблемы linux будем рассматривать, разобьем их на категории:

  • Проблемы с командами в терминале
  • Проблемы с программами
  • Проблемы с драйверами и ядром
  • Проблемы с графической оболочкой
  • Проблемы с диском и файловой системой

Все это мы рассмотрим ниже, но сначала общее введение и немного теории.

Решение проблем Linux

Linux очень сильно отличается от WIndows, это заметно также при возникновении проблем Linux. Вот допустим, произошла ошибка в программе Windows, она полностью закрывается или выдает непонятное число с кодом ошибки и все, вы можете только догадываться или использовать поиск Google, чтобы понять что произошло. Но в Linux все совсем по-другому. Здесь каждая программа создает лог файлы, в которых мы можем при достаточном знании английского или даже без него, выяснить, что произошло. Более того, если программу запускать из терминала, то все ошибки linux и предупреждения мы увидим прямо в окне терминала. и сразу можно понять что нужно делать.

Причем вы сможете понять что произошло, даже не зная английского. Главным признаком ошибки есть слово ERROR (ошибка) или WARNING (предупреждение). Рассмотрим самые частые сообщения об ошибках:

  • Permission Denied — нет доступа, означает что у программы нет полномочий доступа к определенному файлу или ресурсу.
  • File or Directory does not exist — файл или каталог не существует
  • No such file or Directory — нет такого файла или каталога
  • Not Found — Не найдено, файл или ресурс не обнаружен
  • Connection Refused — соединение сброшено, значит, что сервис к которому мы должны подключиться не запущен
  • is empty — означает, что папка или нужный файл пуст
  • Syntax Error — ошибка синтаксиса, обычно значит, что в конфигурационном файле или введенной команде допущена ошибка.
  • Fail to load — ошибка загрузки, означает что система не может загрузить определенный ресурс, модуль или библиотеку (fail to load library) обычно также система сообщает почему она не может загрузить, permission denied или no such file и т д.
Читайте также:  Rar program windows 10

Сообщения об ошибках, кроме терминала, мы можем найти в различных лог файлах, все они находятся в папке /var/log, мы рассматривали за какие программы отвечают определенные файлы в статье просмотр логов linux. Теперь же мы подробнее рассмотрим где и что искать если linux выдает ошибку.

Проблемы с командами в терминале

Обычно проблемы с командами в терминале возникают не из-за ошибки linux или потому, что разработчики что-то недоработали, а потому, что вы ввели что-то неправильно или предали не те что нужно опции.

Если были переданы не те опции, то, скорее всего, программа покажет вам справку, ознакомившись с которой вы сможете очень быстро понять в чем проблема. Также справку выдают множество команд если их запустить без параметров.

Также довольно частой ошибкой при выполнении команд есть неиспользование команды sudo перед самой командой для предоставления ей прав суперпользователя. В таких случаях вы обычно получаете ошибку Permission Denied или просто уведомление, что не удалось открыть тот или иной файл или ресурс: can not open . can not read . и так далее.

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

Очень распространенной среди новичков ошибкой, есть no such file or directory при попытке выполнить файл, скачанный из интернета. Сразу кажется что это бред, ведь файл существует, но на самом деле оболочка ищет только файлы с флагом исполняемый, а поэтому пока вы не установите этот флаг для файла, он для оболочки существовать не будет.

Проблемы в программах

Если ни с того ни с сего закрывается или не так, как требуется работает, какая-нибудь графическая программа, решение проблем linux начинается из запуска ее через терминал. Для этого просто введите исполняемый файл программы и нажмите Enter. Обычно достаточно начать вводить имя программы с маленькой буквы и использовать автодополнение для завершения ввода названия.

В терминале программа, скорее всего, покажет почему она не работает. Также у многих программ поддерживается опция -v или —verbose. Вы можете попробовать использовать эту опцию, если первый запуск в терминале ничего не дал. Далее, когда уже есть сообщение об ошибке, вы можете попытаться исправить его сами, если поняли в чем дело или попытаться найти решение на формуме, скорее всего, другие пользователи уже решили вашу проблему. Но если нет, вы можете создать новую тему и описать там свою ошибку. Но без вывода программы в терминале вам вряд ли помогут.

Многие ошибки системы linux, связанные с графической оболочкой вы можете найти в файле

/.xsession-errors в вашей домашней директории. Если оболочка работает медленно, зависает или не работают другие программы, но в других логах причин этому нет, возможно, ответ находится именно в этом файле.

Также ошибки linux могут возникать не только в обычных программах но и в работающих в фоне сервисах. Но их тоже можно решить, чтобы посмотреть сообщения, генерируемые сервисом, запущенным с помощью systemd, просто наберите команду просмотра состояния сервиса:

$ sudo systemctl status имя_сервиса

Дальше вы знаете, что делать с этой ошибкой, главное что у вас есть зацепка, а дальше все можно решить, ну или почти все.

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

Проблемы с драйверами и ядром

Проблемы с драйверами, модулями ядра или прошивками могут вызвать много неприятностей во время загрузки системы. Это может быть просто медленная загрузка системы, неработоспособность определенных устройств неправильная работа видео или полная невозможность запустить графическую подсистему. Исправление ошибок Linux начинается с просмотра логов.

Читайте также:  Все эмуляторы для windows mobile

Вы можете посмотреть все сообщения ядра с момента начала загрузки, выполнив команду чтобы узнать какую linux выдает ошибку:

Чтобы иметь возможность удобно листать вывод можно выполнить:

sudo dmesg | less

Или сразу выбрать все ошибки:

sudo dmesg | grep error

Дальше будет очень просто понять какого драйвера не хватает, что система не может загрузить или что нужно установить. Если возникает ошибка ввода-вывода linux, то, скорее всего, драйвер несовместим с вашим устройством, в таком случае, может помочь обновление ядра, чтобы получить самую новую версию драйвера. В некоторых случаях ядро может само предложить вариант решения проблемы прямо в сообщении об ошибке вплоть до того какую команду выполнить или какой файл скачать. Если же нет, вы все еще можете воспользоваться поиском для решения своей проблемы linux.

Проблемы с графической оболочкой

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

При проблемах с графической оболочкой вы можете всегда переключиться в режим терминала с помощью сочетания клавиш Ctrl+Alt+F1. Далее, вам нужно ввести логин и пароль, затем можете вводить команды терминала.

Посмотреть логи графической оболочки вы можете в том же файле

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

Проблемы с диском и файловой системой

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

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

Выводы

Теперь исправление ошибок Linux будет для вас немного проще. Ошибки системы linux довольно сложная тема и этой информации явно мало, если у вас остались вопросы или есть предложения по улучшению статьи пишите в комментариях!

Источник

Windows Docker Error — standard_init_linux.go:211: exec user process caused «no such file or directory» #9

Comments

joaotnlima commented Jan 17, 2020

This happens in windows environments.

To advance the topic you should edit all .sh files in the repo and change the EOL from CRLF to LF. This fixes the issue.
Then another bug appeared btw:

PG:Bad connection.
Added db to windows hosts and added port 5432 to the docker-file in ports for db.

Works in Windows now 😉

The text was updated successfully, but these errors were encountered:

riggraz commented Jan 17, 2020

Hey joaotnlima, thanks for posting!

standard_init_linux.go:211 is a well known issue for Windows users.

you should edit all .sh files in the repo and change the EOL from CRLF to LF

Yes, EOL are a problem in Windows. I think you wanted to say to change them from LF to CRLF.

Added db to windows hosts and added port 5432 to the docker-file in ports for db

Could you elaborate more on this, please? For the windows hosts you mean the host file c:\windows\system32\drivers\etc\hosts ?

joaotnlima commented Jan 17, 2020 •

Yes, EOL are a problem in Windows. I think you wanted to say to change them from LF to CRLF.

I believe you need to change them to LF — at least i did that.

Could you elaborate more on this, please? For the windows hosts you mean the host file

Yes correct. I believe there is a better way, but i just wanted it working right away

riggraz commented Jan 17, 2020

I tried your solution but it doesn’t work on my machine. I’m on Windows 10 Home and I’m using Docker Toolbox (because Docker Desktop is not compatible with Windows 10 Home). What OS and Docker are you using?

I believe you need to change them to LF — at least i did that.

Can you please check whether all files are in LF or just the ones you manually changed?

Читайте также:  Список bsod ошибок windows

joaotnlima commented Jan 17, 2020 •

All files (.sh) are LF including Dockerfile and docker-compose.yml.

I’m using windows 10 Pro Version 10.0.18362 Build 18362
Docker Desktop 2.1.0.5 (40693)


riggraz commented Jan 19, 2020

Thanks for the information. In these day I’ve been pretty busy, I’ll try it out in a few days.

riggraz commented Jan 25, 2020

Unfortunately I was not able to make it work on my machine.

If you want, you can open a pull request with the changes to make it work under Windows. Then we’ll ask for other windows users to test it and, when it works, merge it.

versedpro commented Jun 5, 2020 •

Could you elaborate more on this, please? For the windows hosts you mean the host file

Yes correct. I believe there is a better way, but i just wanted it working right away

Would you mind to explain more about hosts of windows?
I faced a problem creating db.

PhilippWuerfel commented Jun 10, 2020 •

you should edit all .sh files in the repo and change the EOL from CRLF to LF

Yes, EOL are a problem in Windows. I think you wanted to say to change them from LF to CRLF.

Had the same issue on Docker
I changed my shell script on Windows 10 from CRLF to LF and that worked for me!

vr6tdi commented Jul 9, 2020

you should edit all .sh files in the repo and change the EOL from CRLF to LF

Yes, EOL are a problem in Windows. I think you wanted to say to change them from LF to CRLF.

Had the same issue on Docker
I changed my shell script on Windows 10 from CRLF to LF and that worked for me!

Same here, CRLF to LF helped to fix

diegosurita commented Jul 11, 2020

you should edit all .sh files in the repo and change the EOL from CRLF to LF

Yes, EOL are a problem in Windows. I think you wanted to say to change them from LF to CRLF.

Had the same issue on Docker
I changed my shell script on Windows 10 from CRLF to LF and that worked for me!

Same here, thanks!

Kyle-Williamson-Dev commented Jul 18, 2020

This happens in windows environments.

To advance the topic you should edit all .sh files in the repo and change the EOL from CRLF to LF. This fixes the issue.
Then another bug appeared btw:

PG:Bad connection.
Added db to windows hosts and added port 5432 to the docker-file in ports for db.

Works in Windows now 😉

I would like to know how you did this. I’m very new and this is my first time building a docker app. No idea what files I need to change or how. You say edit all .sh files. I only have one, my entrypoint.sh that the Rails Docker-Compose quickstart guide shows how to build the Dockerfile and stuff. I’ve built my rails app image, which is my portfolio I’m going to build, and got the server to start and everything on my laptop. But when I come to my desktop to pull the image down and docker-compose up, I’m getting this error we’re talking about in this thread. So what part of the file am I changing? am I REPLACING .sh? or adding the LF after it?

matthias-ijewski commented Sep 24, 2020

You can use this code in your dockerfile to fix line breaks:

RUN sed -i -e ‘s/\r$//’ /entrypoint.sh

Replace /entrypoint.sh with the path to the file with the suspected wrong line breaks.

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Источник

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