исполняемый значок отсутствует для Ubuntu 18.04

Я недавно обновил свою Ubuntu от 16,04 до 18,04, и одной проблемой является значок для исполняемого файла, совпадает с тем для текстового файла. (ArucoDetect является исполняемым файлом, и другие являются обычными текстовыми файлами),

ArucoDetect is an executable

В Ubuntu 16.04 исполняемый файл имеет свой собственный значок как

executable

Как я могу настроить Ubuntu 18.04, таким образом, исполняемый файл может иметь свой собственный специальный значок?

3
задан 17 May 2018 в 02:46

4 ответа

Если у Вас есть проблема, чем можно найти gcc и добавить строку -no-pie Это - исполняемый файл по умолчанию, потому что Ubuntu 18.04 имеет проблему с Уэйлендом именно поэтому положение независимый исполняемый файл. Просто никакой круг! Чем он хорошо работает для меня.

2
ответ дан 1 December 2019 в 15:50

Это имеет отношение к типам пантомимы и не имеет никакого отношения, является ли файл исполняемым файлом или нет. Все сценарии, которые я использую, являются, конечно, исполняемым файлом, но это не изменяет то, что тип Пантомимы отличается.

Примеры: Busybox имеет значок executable icon , который показывают в вопросе.

$ file /bin/busybox

/bin/busybox: ELF, который 64-разрядный исполняемый файл LSB, x86-64, версия 1 (GNU/Linux), статически связанный, для GNU/Linux 2.6.32, BuildID[sha1]=86b86ebdeb1e423dc1672c2a7408fb83ee70eeb1, разделил

Мои сценарии, с другой стороны, имеет значки, подобные: text style icons

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 следовательно другой значок.

Источники:

, Где ассоциации файлов хранятся?

, Как я изменяю значок для конкретного типа файла?

https://access.redhat.com/blogs/766093/posts/1975793

https://stackoverflow.com/questions/41398444/gcc-creates-mime-type-application-x-sharedlib-instead-of-application-x-applicati

1
ответ дан 1 December 2019 в 15:50

Этот ответ существует только продолжения Осуществления контрейлерных перевозок от из ответа 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, поскольку это позволяет добавление метаданных и файлов значков, создавая полный более симпатичный пользовательский опыт.

Открытые/Связанные Отчеты об ошибках:

1
ответ дан 1 December 2019 в 15:50

Измените имя своего приложения на ArucoDetect.appimage

0
ответ дан 1 December 2019 в 15:50

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

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