Quelle est la définition d'Ubuntu d'une «application enregistrée»?

11

J'ai rencontré cela plusieurs fois lors de l'installation d'applications à partir de la source et lors de piratages occasionnels avec update-alternatives. Jusqu'à présent, cela n'a été qu'un ennui mineur (c'est-à-dire qu'il n'a pas gêné l'objectif final) mais c'est maintenant une frustration car il pointe vers un trou dans ma base de connaissances ... alors quand je reçois un message qui ' foo 'n'est "pas une application enregistrée" (ou je ne peux pas utiliser l'icône par défaut de foo car Ubuntu n'a aucune connaissance de' foo '):

  1. Qu'est-ce qui définit une «demande enregistrée»?

  2. Comment puis-je définir une application installée à partir de la source (et résidant probablement dans $ HOME / bin / app-name) de telle sorte qu'elle intègre les mêmes fonctionnalités qu'un package installé à partir d'un .deb? (si la solution ne va pas de soi dans la réponse 1)

Exemple:

Je télécharge et décompresse les versions de développement quotidiennes de sublime-text-2to /home/tom/bin/sublime-text-2. J'ai créé un fichier * .desktop avec les raccourcis appropriés, etc. Mais l'icône de sublime ne peut être affichée dans aucun lanceur même si je fournis un chemin d'accès complet à l'option. La solution consiste à installer une 2e instance de sublime à partir d'un paquet deb.

Lors de l' installation d'un paquet .deb sublime texte-2, il installe sous /usr/bin && /usr/lible installé .desktop fichier est stocké sous /usr/share/applicationset la ligne correspondante se lit comme suit: icon=sublime_text.

Où est le lien qui me manque? D'une certaine manière, Ubuntu sait comment exiger l'icône à partir sublime_textde ce dernier, mais pas dans le premier (encore une fois, même avec un chemin d'accès complet fourni).

À M
la source
Où placez-vous ce lanceur dans votre dossier personnel?
Isaiah
Aussi, quand recevez-vous le message: "foo n'est pas une application enregistrée"?
Isaiah
@DoR: mon sublime * .desktop est sous /.local/share/applications. L'endroit le plus notable dont je me souvienne du message «application enregistrée» était lorsque j'essayais de caler une version compilée à partir de la source de vim dans la update-alternativesliste afin qu'elle apparaisse à la place de l'installation «par défaut». Utile? Je suppose que ce que je recherche, c'est le mécanisme qui permet à Ubuntu de savoir où trouver (par exemple) l'icône correcte pour l'application A - comme c'est le cas avec les fichiers * .desktop sous /usr/share/applications/.
Tom
Si vous définissez la valeur de "icône" dans votre ~/.local/share/applicationslanceur sur juste sublime_text( pas le chemin complet, cela fonctionne-t
Isaiah

Réponses:

3

Je pense que vous rencontrez plusieurs problèmes à la fois avec les installations sources.

update-alternativesne vous permettra pas de définir n'importe quel programme comme application préférée pour un nom donné. Le programme devra d'abord être enregistré avec l' --installoption. Par exemple:

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

Si vous voulez voir comment l'enregistrement se fait, vérifiez par exemple /var/lib/dpkg/info/nano.postinst.

Notez, cependant, qu'il serait assez faux de définir une alternative à l'échelle du système qui pointe vers le répertoire personnel de certains utilisateurs. Il existe généralement des variables d'environnement ou d'autres paramètres pour définir une préférence pour un seul utilisateur.

Le problème avec le fichier de bureau est probablement complètement séparé, mais vous devrez fournir plus de détails sur les chemins exacts que vous avez utilisés.

En général, l'installation d'une application à partir de la source peut être assez difficile à bien intégrer au reste du système, selon l'application particulière.

Peter Eisentraut
la source
Peter: Oui, je pense que vous avez touché le clou ... et après réflexion, corriger ma pensée est la réponse. J'utilise le système sur un ordinateur portable - un ordinateur portable uniquement que j'utilise, auquel je me connecte, etc. Et bien sûr, UNIX est un système d'exploitation multi-utilisateurs et définit l'installation du programme comme telle. L'icône est triviale et je crois une bizarrerie. J'ai trouvé un fichier d'icône distinct dans mes sublime-text postinstvérifications comme vous l'avez suggéré, donc je peux maintenant pointer l'installation alternative (dans mon $ HOME) vers un fichier spécifique plutôt que de le laisser `` automatiquement '' chercher dans l'exécutable. Je marque ceci comme fermé / résolu car je crois avoir ce dont j'ai besoin maintenant.
Tom
Comment l'enregistrer --install?
fiatjaf