Eu já me deparei com isso algumas vezes ao instalar aplicativos da fonte e durante o hack ocasional update-alternatives
. Até agora, houve apenas um pequeno aborrecimento (isto é, não atrapalhou o objetivo final), mas agora é uma frustração, pois aponta para um buraco na minha base de conhecimento ... então, quando recebo uma mensagem que ' foo 'não é um aplicativo registrado (ou não posso usar o ícone padrão do foo porque o Ubuntu não tem conhecimento de' foo '):
O que define um "aplicativo registrado"?
Como posso definir um aplicativo instalado a partir da origem (e provavelmente residindo em $ HOME / bin / app-name), de modo que compacte a mesma funcionalidade que um pacote instalado a partir de um .deb? (se a solução não for evidente pela resposta 1)
Exemplo:
Eu faço o download e descompacte as compilações diárias do Dev sublime-text-2
para /home/tom/bin/sublime-text-2
. Eu criei um arquivo * .desktop com atalhos apropriados etc. Mas o ícone sublime não pode ser exibido em nenhum iniciador, mesmo que eu forneça um nome de caminho completo para a opção. A solução é instalar uma segunda instância do sublime a partir de um pacote deb.
Quando eu instalar sublime-text-2 a partir de um pacote .deb, ele instala sob /usr/bin && /usr/lib
o instalado .desktop arquivo é armazenado sob /usr/share/applications
, e a linha relevante lê: icon=sublime_text
.
Onde está o elo que estou perdendo? De alguma forma, o Ubuntu sabe como solicitar o ícone sublime_text
no último, mas não no primeiro (novamente, mesmo com um caminho completo fornecido).
/.local/share/applications
. O lugar mais notável em que me lembro da mensagem "aplicativo registrado" foi ao tentar inserir uma versão compilada a partir do código-fonte do vim naupdate-alternatives
lista para que ela surgisse em vez da instalação "padrão". Útil? Acho que o que estou procurando é o mecanismo que fornece ao Ubuntu o conhecimento de onde encontrar (por exemplo) o ícone correto para o aplicativo A - como acontece com os arquivos * .desktop em/usr/share/applications/
.~/.local/share/applications
lançador para apenassublime_text
( não o caminho completo, é que isso funciona?Respostas:
Eu acho que você está tendo vários problemas ao mesmo tempo nas instalações de origem.
update-alternatives
não permitirá que você defina qualquer programa como um aplicativo preferido para um determinado nome. O programa deverá ser registrado primeiro com a--install
opção Por exemplo:Se você quiser ver como o registro é feito, verifique por exemplo
/var/lib/dpkg/info/nano.postinst
.Observe, no entanto, que seria bastante falso definir uma alternativa para todo o sistema que aponte para o diretório inicial de algum usuário. Geralmente, existem variáveis de ambiente ou outras configurações para definir uma preferência para apenas um usuário.
O problema com o arquivo da área de trabalho provavelmente é completamente separado, mas você precisará fornecer mais detalhes sobre exatamente quais caminhos você usou.
Em geral, a instalação de um aplicativo a partir da fonte pode ser bastante difícil de se integrar bem ao restante do sistema, dependendo do aplicativo em particular.
fonte
sublime-text
postinst
verificações, como você sugeriu, para que agora eu possa apontar a instalação alternativa (dentro do meu $ HOME) para um arquivo específico, em vez de deixá-lo buscar automaticamente o executável. Estou marcando isso como fechado / resolvido, pois acredito que tenho o que preciso agora.--install
?