Я недавно обновил свою Ubuntu от 16,04 до 18,04, и одной проблемой является значок для исполняемого файла, совпадает с тем для текстового файла. (ArucoDetect является исполняемым файлом, и другие являются обычными текстовыми файлами),
В Ubuntu 16.04 исполняемый файл имеет свой собственный значок как
Как я могу настроить Ubuntu 18.04, таким образом, исполняемый файл может иметь свой собственный специальный значок?
Если у Вас есть проблема, чем можно найти gcc и добавить строку -no-pie
Это - исполняемый файл по умолчанию, потому что Ubuntu 18.04 имеет проблему с Уэйлендом именно поэтому положение независимый исполняемый файл. Просто никакой круг! Чем он хорошо работает для меня.
Это имеет отношение к типам пантомимы и не имеет никакого отношения, является ли файл исполняемым файлом или нет. Все сценарии, которые я использую, являются, конечно, исполняемым файлом, но это не изменяет то, что тип Пантомимы отличается.
Примеры: Busybox имеет значок , который показывают в вопросе.
$ file /bin/busybox
/bin/busybox: ELF, который 64-разрядный исполняемый файл LSB, x86-64, версия 1 (GNU/Linux), статически связанный, для GNU/Linux 2.6.32, BuildID[sha1]=86b86ebdeb1e423dc1672c2a7408fb83ee70eeb1, разделил
Мои сценарии, с другой стороны, имеет значки, подобные:
file ~/bin/vdprocessx265.sh
/home/me/bin/vdprocessx265.sh: сценарий оболочки границы снова, исполняемый файл текста ASCII, с очень длинными строками
, Как Вы видите, сценарий удара, в то время как исполняемый файл является сценарием оболочки в тексте ASCII, в то время как busybox является исполняемым файлом ELF.
использование grep на/etc/mime.types делает это еще более ясным.
grep "exe" /etc/mime.types
пользователи dll
grep "sh" /etc/mime.types
летучей мыши application/x-executable application/x-msdos-program com exe могут добавить свои собственные типы, если они желают путем создания ".mime.types"
< Надрез--->
text/x-csh csh
text/x-sh sh
Там является парой хороших ответов на , Как я изменяю значок для конкретного типа файла? , который должен помочь Вам получить результаты, которые Вы хотите.
Этот вопрос имеет ответы, которые глубже проникают в детали: , Где ассоциации файлов хранятся?
@dim я полагаю, что Вы найдете, что, компилируя с - результаты переключателя без кругов в другом заголовок
mimetype предполагает соответствующий тип пантомимы на основе содержания файла. Для файлов ELF (наиболее скомпилированные двоичные файлы и совместно использованные библиотеки), заголовок содержит поле e_type, который определяет его тип. Если это будет ET_DYN, то mimetype будет рассматривать его как общую библиотеку.
По умолчанию, gcc/ld произведет двоичные файлы, которые устанавливают e_type на ET_EXEC, который обнаруживается как application/x-executable
, который заставляет mimetype предполагаться по-другому, как объяснено этот ответ StackOverflow следовательно другой значок.
Источники:
, Где ассоциации файлов хранятся?
, Как я изменяю значок для конкретного типа файла?
Этот ответ существует только продолжения Осуществления контрейлерных перевозок от из ответа Jens из использования
-no-pie
как часть сборок GCC...
Это - ошибка вызванный [1 127] Положение Независимые Исполняемые файлы (КРУГ). КРУГ Является средством защиты в современных версиях Linux, который рандомизирует адреса памяти, а также немного изменяет файловые структуры. Двоичные файлы КРУГА отличаются от "стандартных" двоичных файлов Linux, потому что двоичные файлы КРУГА имеют другое тип - большинство систем (особенно, file
) будет рассматривать их как Совместно использованный файл Библиотеки вместо простого исполняемого двоичного файла:
$ file bin-nopie
bin-nopie: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32,
BuildID[sha1]=ee817f6d5d4f5635a981b1b837b1b0de3b16aacf, not stripped
$ file bin-pie
bin-pie: 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]=439fc92838d4d0981f99dd967485e5b95a5a0e7b, not stripped
файловый браузер Ubuntu (Наутилус) не делает своей собственной обработки типа файла (он вместо этого выбирает использовать libmagic
/ file
/ и т.д.). Поскольку эти восходящие библиотеки повреждаются и не могут обнаружить СОЗДАННЫЕ ИЗ КРУГА двоичные файлы правильно, Наутилус не может показать их исполняемым файлом в GUI. Система, поэтому, выбирает рассматривать их, как будто они - любая другая общая библиотека (то есть, как неисполняемый файл).
Однако эта проблема может быть смягчена далеко. Разработчик может скомпилировать двоичный файл с помощью -no-pie
опция отключить КРУГ (хотя это причиняет безопасность вреда немного). Это позволит libmagic
/ file
рассматривать двоичный файл как исполняемый двоичный файл и передавать те данные соответственно на Наутилус. С другой стороны, разработчик (или конечный пользователь) может создать .desktop
файл, указывающий на двоичный файл. Это считает "предпочтительным" обходным решением команда GNOME, поскольку это позволяет добавление метаданных и файлов значков, создавая полный более симпатичный пользовательский опыт.
Открытые/Связанные Отчеты об ошибках:
Измените имя своего приложения на ArucoDetect.appimage