Програма есть, но она не запускается

Тут столкнулся с такой вот проблемой. Перестал запускаться скайп. Он как бы есть, но не запускается:
image
Файл есть, исполняемый, разрешения на запуск есть, не битый. Так что за дела такие? Подобная проблема была и с одной .so библиотекой, которая была, но запускаемые програмы ее не видели, про что и говорили.

Кто с таким сталкивался или знает, что с этим делать?

P.S. Arch x86_64
  • Вопрос задан
  • 2713 просмотров
Пригласить эксперта
Ответы на вопрос 4
CleverMouse
@CleverMouse
В формате ELF за загрузку динамических библиотек отвечает специальная библиотека-интерпретатор aka interpreter, имя которой указано в специальном сегменте elf-файла. Если ядро при exec() обнаруживает такой заголовок, то ядро берёт оттуда имя интерпретатора и пытается загрузить и начать выполнение новой программы с интерпретатора. Если запрошенного интерпретатора на диске не оказывается, создание процесса фейлится с кодом ошибки «файл не найден». С точки зрения создателя — на картинке это bash — это ничем не отличается от отсутствия бинарника, а ядро, которое знает разницу, на терминал ничего не выводит в принципе.
Посмотреть, какой интерпретатор нужен программе, можно через readelf -l . В данном случае явно из 64-битного окружения куда-то слетел 32-битный интерпретатор.
Ответ написан
Комментировать
keedhost
@keedhost Автор вопроса
Какого минусуете?
Ответ написан
Комментировать
Mezomish
@Mezomish
Покажите

$ file /usr/bin/skype

У меня сильное подозрение, что бинарник 32-битный, и затык именно в этом.
Ответ написан
Anonym
@Anonym
Программирую немного )
Совет от домохозяйки: переустановите скайп.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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