Невозможный запустить графические исполняемые файлы в наутилусе

Я недавно переустановил Ubuntu в 64 битах, (прежде чем у меня была она в 32 битах). У меня были домашняя папка на разделе и система на другом. Таким образом, когда я переустановил, я сохранил свою старую домашнюю папку. Моя проблема состоит в том, что теперь, когда я пытаюсь выполнить свои исполняемые файлы C++, которые используют SDL, Nautilus говорит мне:

Could not display "program"

There is no application installed for "shared library" files.
Do you want to search for an application to open this file?

Таким образом, проблема, кажется, что наутилус думает, что это - "общая библиотека", но я понятия не имею о том, как зафиксировать его!

Как я заставляю его распознать как нормальный исполняемый файл?

file program возврат:

program: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=39330e8ffbc9d3c5392da418d7fabecbb32334eb, stripped

и mimetype program возврат:

program: application/x-sharedlib
1
задан 15 January 2017 в 18:04

4 ответа

Это, кажется, продолжительная ошибка:

https://bugzilla.gnome.org/show_bug.cgi? id=737849

я также хотел бы видеть его, разобрался.

Отношения

Peter

0
ответ дан 8 December 2019 в 07:02

Я не думаю, что команда Наутилуса скоро уладит его, проблема между Наутилусом и file/libmagic проектом. file/libmagic не может различать общие объекты и исполняемые файлы надежным способом. Так, когда я иногда должен выполнять двоичные файлы от Наутилуса, я или перетащить его в окно терминала или создать сценарий с одним словом. Однако, когда я должен выполнять двоичные файлы более часто, я переключаю на другого файловые менеджеры: дельфин или Немо. Дельфин, как я понимаю, просто выполняется, любой файл с "выполняют" разрешение. Немо спрашивает в случае общего объекта: "Сделайте исполняемый файл и работайте", или "Выбирают программу".

0
ответ дан 8 December 2019 в 07:02

Я создал сценарий "RunFromThunar.sh"

#!/bin/bash
exec $1

... и в Thunar я связал "совместно использованную библиотеку" с этим сценарием.Работает!
Это должно работать в Наутилусе тот же путь.

0
ответ дан 8 December 2019 в 07:02

Я обновил Ubuntu до версии 19.10. Никаких изменений в этой проблеме нет. Nautilus по-прежнему отказывается запускать 64-битный исполняемый файл. Даже после того, как file/libmagic был исправлен. Теперь скомпилированный исполняемый файл сообщается как «исполняемый файл ELF 64-bit LSB pie», а не как раньше «общий объект ELF 64-bit LSB». Однако команда Nautilus не изменила своего подхода, и я не понимаю их причин. Если они хотят защитить пользователей от случайного нажатия на вредоносный файл, то будет достаточно простого всплывающего предупреждения. (См. предупреждение MS Windows при запуске неподписанных программ.) Но, если они действительно хотят полностью запретить запуск вредоносных программ, то это просто невозможно. Есть много способов обмануть неопытных пользователей.
Что хуже для меня, так это то, что Nemo (версия 4.0.6) перестал предлагать «Сделать исполняемый файл и запустить». (Я в основном использовал Nemo до 19.10.) Либо команда Nemo разделяет опасения по поводу безопасности Nautilus, либо они просто скопировали часть кода из Nautilus. Дельфин не теряет здравого смысла. Но я не готов полностью перейти на Dolphin в среде GNOME.
Еще раз хочу отметить, когда мне нужно запускать бинарники из файлового менеджера. Мне это не нужно, когда я устанавливаю скачанные программы. Тогда настольная программа запуска является наиболее подходящим вариантом. Но когда я разрабатываю или исследую, я могу хранить разные версии исполняемого файла одной и той же программы. Затем мне нужно запустить бинарные файлы из файлового менеджера.
Похоже, команда Nautilus не изменит своего подхода. Наконец, я нашел лучшее решение для меня.Я создал средство запуска на рабочем столе, которое получает имя файла и передает его в качестве команды оболочке. Пример ниже:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Run Executable
Comment=Run Executable
Exec="/bin/sh" -c %f
Icon=application.png
Terminal=false

Я сохранил этот лаунчер в ~/.local/share/applications как RunExecutable. Итак, я могу выбрать эту программу запуска в списке «Все приложения» в меню «Открыть с помощью». Это сделало мою жизнь такой же комфортной, как и раньше. Таким образом, я решил эту проблему в Nautilus и последней версии Nemo. Тем не менее, я не разрешил свои разногласия с командами «Наутилуса». Nautilus должен запускать исполняемые файлы простым способом.

0
ответ дан 1 February 2020 в 17:59

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

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