Как получить список всего приложения, установленного, который имеет GUI?

Я хочу список всего установленного приложения, которые имеют GUI. Быть ясным, По крайней мере все приложения, которые перечислены в Выставочных Приложениях.

Я попробовал несколько команд как apt list --installed, dpkg -l, find '*.desktop' получить список всего установленного приложения, которое все закончили тем, что пропустили некоторые приложения (как Studio Android, b1freearchiver, pyCharm, и т.д.)

Там не был бы способ найти папку или файл, который используется меню Show Applications для получения всех приложений, перечисленных в ней.

Я выполняю рабочий стол Ubuntu 18.04.

3
задан 16 November 2018 в 11:21

3 ответа

Попробуйте поискать все файлы .desktop, веб-сайт разработчика Gnome называет их «зарегистрированным набором приложений, которые могут запускать пользователи» , и они почти всегда являются программами с графическим интерфейсом. [ 1110]

В этом ответе ( Как я могу найти файлы * .desktop? ) говорится, что вы можете просто искать везде .desktop файлы с помощью

find / -name '*.desktop'

Или они, вероятно, только в [ 113] и ~/.local/share/applications, поэтому достаточно просто взглянуть на эти :

find /usr/share/applications ~/.local/share/applications -name '*.desktop'

Если вы специально хотите исключить терминальные программы (даже если у них есть ) терминал GUI , как htop), вы можете добавить эти команды для поиска выше:

...  -print0 |xargs -0 grep -i -l "Terminal=False"
4
ответ дан 1 December 2019 в 16:16

В качестве дополнения к ответу @ Xen2050 вы можете определить точные имена пакетов deb-пакетов (так, чтобы они были известны APT), имеющих файлы *.desktop с этим однострочником:

[ 110]

В приведенной выше команде:

  • dpkg --search '*.desktop' будет искать пакеты с файлами *.desktop;
  • | перенаправляется с выхода предыдущей команды на ввод следующей команды;
  • awk '{print $1}' напечатает первый столбец результата поиска (обычно в форме plank: /usr/share/applications/plank.desktop - так вы получите plank:);
  • sed "s/://" удалит ненужные : из имени пакета (здесь вы получите plank);
  • sort --unique отсортирует результаты и удалит из них дубликаты.

На моем Ubuntu 16.04.5 LTS он возвращает около 347 уникальных имен пакетов.


Если вы установили какое-то программное обеспечение в домашнюю папку - тогда вы можете использовать команду ниже

find ~ -name '*.desktop'

или более точно

find ~/.local/share/applications/ '*.desktop'

, чтобы найти их *.desktop файлы.

1
ответ дан 1 December 2019 в 16:16

Обычно это трудно определить. Другие ответы не обращаются к той командной строке, приложения также могут иметь .desktop файлы, или приложения для GUI не могут обеспечить a. файл на рабочем столе. Кроме того, нет никакой гарантии, приложение, на которое ссылаются в .desktop файле все еще, существует в системе (необходимо было бы выполнить его, чтобы знать или проверить Должностное лицо = строка для существующего пути). Таким образом это - бедные критерии.

Что может быть сделано, однако, задают лучший вопрос. Какие приложения зависят от GUI? Это может быть найдено с apt-cache rdepends 'package or lib'. Например, apt-cache rdepends libappindicator покажет пакеты, которые имеют тот lib как зависимость и вероятно обеспечивают такой апплет.

Но также и быть справедливым, терминальное приложение может также взаимодействовать через интерфейс с GUI, на самом деле не имея графического интерфейса. Если Ваша цель найти приложения с фронтендом GUI ищет приложения, которые зависят от библиотек Gtk или Qt

Конечно, это также зависит того, предоставил ли специалист по обслуживанию пакета правильно описание зависимости для их пакета. Для стандартных репозиториев Ubuntu это в порядке. Для внешнего PPA, который зависит от разработчиков и специалистов по обслуживанию.

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

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

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