Qual é a definição do Ubuntu de um "aplicativo registrado"?

11

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 '):

  1. O que define um "aplicativo registrado"?

  2. 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-2para /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/libo 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_textno último, mas não no primeiro (novamente, mesmo com um caminho completo fornecido).

Tom
fonte
Onde na sua pasta pessoal você está colocando este iniciador?
Isaiah
Além disso, quando você recebe a mensagem: "foo não é um aplicativo registrado"?
Isaiah
@DoR: meu sublime * .desktop está abaixo /.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 na update-alternativeslista 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/.
Tom
Se você definir o valor do "ícone" em seu ~/.local/share/applicationslançador para apenas sublime_text( não o caminho completo, é que isso funciona?
Isaías

Respostas:

3

Eu acho que você está tendo vários problemas ao mesmo tempo nas instalações de origem.

update-alternativesnão permitirá que você defina qualquer programa como um aplicativo preferido para um determinado nome. O programa deverá ser registrado primeiro com a --installopção Por exemplo:

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

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.

Peter Eisentraut
fonte
Peter: Sim, acho que você acertou em cheio ... e, refletindo, corrigir meu pensamento é a resposta. Estou usando o sistema em um laptop - apenas em um laptop que uso, entrei etc. E, claro, o UNIX é um sistema operacional multiusuário e define a instalação do programa como tal. A coisa do ícone é trivial e acredito uma peculiaridade. Encontrei um arquivo de ícone separado nas minhas sublime-text postinstverificaçõ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.
Tom
Como o registramos --install?
fiatjaf 02/09