LINUX.ORG.RU

В linux есть список установленных приложений?

 


0

1

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

★★★

Ответ на: комментарий от abs

Почему не то? Если есть *.desktop, то запускаешь напрямую, если нету - то в терминаторе эмуляра :)

dhameoelin ★★★★★
()

читай документацию к пакетному менеджеру дистрибутива

Harald ★★★★★
()
Ответ на: комментарий от anonymous

а какой?

Ну мне нужно типа gimp, google chrome, qt-creator и так далее. А бинарников куча разных.

abs ★★★
() автор топика

Хочу написать что-то типа раннера.

В каком смысле? Какого «раннера»?

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

Есть понятия бинарника, пакета, файла .desktop в /usr/share/applications или ~/.local/share/applications, сервиса D-Bus... может ещё кто-нибудь что-нибудь вспомнит. Объясни подробнее, что ты хочешь написать.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Объясни подробнее, что ты хочешь написать.

Alt+F2 нажми(зависит от DE) запустится раннер. Начнешь писать первые буквы нужного приложения - оно покажет все возможные варианты.

abs ★★★
() автор топика

Посмотри как сделано в dmenu.

anonymous
()
Ответ на: комментарий от abs

ищи бинарники в $PATH как это делают все остальные.

maloi ★★★★★
()
Ответ на: комментарий от abs

для перечисленного лежат ярлыки в /usr/share/applications/

anonymous
()
Ответ на: комментарий от abs

У меня Mint 17.1 Cinnamon. Нажал Alt+F2, появилось окошко с надписью «введите команду». Дополнение в нём, по всей видимости, такое же, как в командной строке, то есть по названию бинарников в PATH, а также названий директорий и файлов.

Полагаю, что более мощная запускалка могла бы смотреть ещё на названия приложений в /usr/share/applications. В Cinnamon это делает поиск по меню.

proud_anon ★★★★★
()
Ответ на: комментарий от DeadEye

Он, похоже, о KRunner (или как его).

Это же просто «стартовое меню» в кедах? Ну да, оно как раз ищет по /usr/share/applications, если только в пятых кедах ничего нового не добавили.

proud_anon ★★★★★
()

ls /usr/share/applications/*.desktop

ananas ★★★★★
()

Для этого сначала хотелось бы получить все установленные на компьютер приложения

Так смотри в пакетном менеджере маны ж

Dudraug ★★★★★
()
dpkg --get-selections | grep -v deinstall
rpm -qa

Any question?

Dudraug ★★★★★
()

не любой бинарник это приложения

«Бинарник» - это исполнимый файл (с флагом «x»)?

А «приложение» - это программа с гуем?

Нет надежного способа их отличить. Если хочешь вручную получить все «приложения», которые может запустить пользователь, можешь пробежать по исполнимым файлам в $PATH и проанализировать их. Сначала чем-то вроде утилиты file (libmagic), потом смотреть с чем бинарник слинкован (ldd).

Но что тогда делать со скриптами, которые вызывают гуй-программу?

anonymous
()

нет. линуксойды все что установили помнят!

anonymous
()
Ответ на: комментарий от abs

Оно парсит сначала /usr/share/applications/

Потом смотрит на бинарики из каталогов, входящих в системную переменную $PATH. Это самый нормальный вариант.

peregrine ★★★★★
()

Ведь не любой бинарник это приложения.

Поясни. Ну библиотеки ещё могут быть. Или ты под бинариками вообще все бинарные файлы рассматриваешь? Да и как быть со всякими программами-скриптами? Они тебе не нужны?

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Да и как быть со всякими программами-скриптами? Они тебе не нужны?

А хз, думаю не нужны.

abs ★★★
() автор топика
Ответ на: комментарий от abs

Странно. Многие приложения всего лишь скрипты на питоне. Тот же SoundConverter спокойно читается, т.к. исполняемый файл - текстовой скрипт. Я бы на твоём месте искал исполняемые файлы, т.е. те, которым даны права на выполнение.

peregrine ★★★★★
()

Ответ содержится в вопросе. Как только ты чётко сформулируешь, что такое приложение, можно будет попытаться получить их список.

ashot ★★★★
()
Ответ на: комментарий от abs

Блин, за тред уже 9 тысяч раз уже ответили. Тебе нужно прочитать и распарсить все .desktop-файлы в /usr/share/applications. Именно туда любое уважающее себя графическое приложение кладёт информацию о себе, и именно туда смотрят раннеры/построители стартовых меню всех DE.

intelfx ★★★★★
()
Ответ на: комментарий от sT331h0rs3

Да, разумеется, ещё юзерские XDG-директории.

intelfx ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.