Я сталкивался с этим несколько раз при установке приложений из исходного кода и во время случайного взлома update-alternatives
. До сих пор это было лишь незначительное раздражение (то есть, не мешало достижению конечной цели), но теперь это разочарование, поскольку оно указывает на дыру в моей базе знаний ... поэтому, когда я получаю сообщение, что ' foo 'не является "зарегистрированным приложением" (или я не могу использовать значок по умолчанию для foo, потому что Ubuntu не знает о' foo '):
Что определяет «зарегистрированное приложение»?
Как определить приложение, установленное из исходного кода (и, вероятно, находящееся в $ 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
в последнем, но не в первом (опять же, даже с указанием полного пути).
/.local/share/applications
. Самое заметное место, которое я могу вспомнить, это сообщение «зарегистрированное приложение», когда я пытался втиснуть вupdate-alternatives
список версию vim, скомпилированную из источника, чтобы она появилась вместо установки «по умолчанию». Полезно? Угадайте, что я ищу, так это механизм, который дает Ubuntu знания о том, где найти (например) правильный значок для приложения A - как это происходит с файлами * .desktop в/usr/share/applications/
.~/.local/share/applications
панели запуска простоsublime_text
( не полный путь, это работает?Ответы:
Я думаю, что вы сталкиваетесь с несколькими проблемами одновременно с исходными установками.
update-alternatives
не позволит вам установить какую-либо программу в качестве предпочтительного приложения для данного имени. Программа должна быть сначала зарегистрирована с--install
опцией. Например:Если вы хотите увидеть, как осуществляется регистрация, проверьте, например
/var/lib/dpkg/info/nano.postinst
.Обратите внимание, однако, что было бы довольно поддельным определить общесистемную альтернативу, которая указывает на домашний каталог какого-то пользователя. Обычно есть переменные окружения или другие параметры, чтобы установить предпочтение только для одного пользователя.
Проблема с файлом рабочего стола, вероятно, совершенно отдельная, но вам нужно будет предоставить более подробную информацию о том, какие именно пути вы использовали.
В общем, установка приложения из исходного кода может быть довольно сложной, чтобы хорошо интегрироваться с остальной частью системы, в зависимости от конкретного приложения.
источник
sublime-text
postinst
ваших чеках я обнаружил отдельный файл значков, как вы и предлагали, поэтому теперь я могу указать альтернативную установку (в моем $ HOME) на конкретный файл, а не позволять ему «автоматически» искать из исполняемого файла. Я отмечаю это как закрытое / решенное, так как считаю, что у меня есть то, что мне нужно сейчас.--install
?