Что такое определение зарегистрированного приложения в Ubuntu?

11

Я сталкивался с этим несколько раз при установке приложений из исходного кода и во время случайного взлома update-alternatives. До сих пор это было лишь незначительное раздражение (то есть, не мешало достижению конечной цели), но теперь это разочарование, поскольку оно указывает на дыру в моей базе знаний ... поэтому, когда я получаю сообщение, что ' foo 'не является "зарегистрированным приложением" (или я не могу использовать значок по умолчанию для foo, потому что Ubuntu не знает о' foo '):

  1. Что определяет «зарегистрированное приложение»?

  2. Как определить приложение, установленное из исходного кода (и, вероятно, находящееся в $ HOME / bin / app-name), чтобы оно упаковывало те же функции, что и пакет, установленный из .deb? (если решение не очевидно из ответа 1)

Пример:

Я загружаю и распаковываю ежедневные сборки dev sublime-text-2для /home/tom/bin/sublime-text-2. Я создал файл * .desktop с соответствующими ярлыками и т. Д. Но значок для возвышенного не может отображаться ни в одном из средств запуска, даже если я укажу полный путь к опции. Решение состоит в том, чтобы установить второй экземпляр sublime из пакета deb.

Когда я устанавливаю возвышенный-текст-2 из пакета .deb, он устанавливается под /usr/bin && /usr/lib, установленный .desktop файл хранится под /usr/share/applications, и соответствующая строка: icon=sublime_text.

Где связь, которую мне не хватает? Каким-то образом Ubuntu знает, как получить значок sublime_textв последнем, но не в первом (опять же, даже с указанием полного пути).

Том
источник
Где в вашей домашней папке вы положили этот лаунчер?
Исаия
Кроме того, когда вы получаете сообщение: «foo не зарегистрированное приложение»?
Исаия
@DoR: мой возвышенный * .desktop под /.local/share/applications. Самое заметное место, которое я могу вспомнить, это сообщение «зарегистрированное приложение», когда я пытался втиснуть в update-alternativesсписок версию vim, скомпилированную из источника, чтобы она появилась вместо установки «по умолчанию». Полезно? Угадайте, что я ищу, так это механизм, который дает Ubuntu знания о том, где найти (например) правильный значок для приложения A - как это происходит с файлами * .desktop в /usr/share/applications/.
Том
Если вы установите значение «icon» в своей ~/.local/share/applicationsпанели запуска просто sublime_text( не полный путь, это работает?
Исаия

Ответы:

3

Я думаю, что вы сталкиваетесь с несколькими проблемами одновременно с исходными установками.

update-alternativesне позволит вам установить какую-либо программу в качестве предпочтительного приложения для данного имени. Программа должна быть сначала зарегистрирована с --installопцией. Например:

sudo update-alternatives --set editor /home/peter/bin/foo
update-alternatives: error: alternative /home/peter/bin/foo for editor not registered, not setting.

Если вы хотите увидеть, как осуществляется регистрация, проверьте, например /var/lib/dpkg/info/nano.postinst.

Обратите внимание, однако, что было бы довольно поддельным определить общесистемную альтернативу, которая указывает на домашний каталог какого-то пользователя. Обычно есть переменные окружения или другие параметры, чтобы установить предпочтение только для одного пользователя.

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

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

Питер Айзентраут
источник
Питер: Да, я думаю, что вы попали в гвоздь ... и, подумав, исправьте мое мышление - вот ответ. Я использую систему на ноутбуке - я использую только ноутбук, вход в систему и т. Д. И, конечно, UNIX - это многопользовательская ОС, которая определяет установку программы как таковую. Иконка вещь тривиальна, и я верю в причуду. В sublime-text postinstваших чеках я обнаружил отдельный файл значков, как вы и предлагали, поэтому теперь я могу указать альтернативную установку (в моем $ HOME) на конкретный файл, а не позволять ему «автоматически» искать из исполняемого файла. Я отмечаю это как закрытое / решенное, так как считаю, что у меня есть то, что мне нужно сейчас.
Том
Как мы можем зарегистрировать это --install?
Пятница,