Was ist Ubuntus Definition einer „registrierten Anwendung“?

11

Ich bin ein paar Mal darauf gestoßen, wenn ich Apps von der Quelle installiert habe und gelegentlich mit gehackt habe update-alternatives. Bisher war es nur ein kleiner Ärger (dh es hat das Endziel nicht behindert), aber jetzt ist es eine Frustration, da es auf ein Loch in meiner Wissensbasis hinweist ... also, wenn ich eine Nachricht bekomme, dass ' foo 'ist "keine registrierte Anwendung" (oder ich kann das Standardsymbol von foo nicht verwenden, da Ubuntu keine Kenntnisse über' foo 'hat):

  1. Was macht eine "registrierte Bewerbung" aus?

  2. Wie kann ich eine Anwendung definieren, die von der Quelle installiert wurde (und sich wahrscheinlich in $ HOME / bin / app-name befindet), sodass sie dieselbe Funktionalität wie ein von einer .deb installiertes Paket bietet? (wenn die Lösung aus Antwort 1 nicht selbstverständlich ist)

Beispiel:

Ich lade täglich Entwickler-Builds von sublime-text-2bis herunter und entpacke sie /home/tom/bin/sublime-text-2. Ich habe eine * .desktop-Datei mit entsprechenden Verknüpfungen usw. erstellt. Das Symbol für sublime kann jedoch in keinem Launcher angezeigt werden, selbst wenn ich der Option einen vollständigen Pfadnamen gebe. Die Lösung besteht darin, eine zweite Instanz von sublime aus einem Deb-Paket zu installieren .

Wenn ich sublime-text-2 aus einem .deb-Paket installiere, wird es unter installiert /usr/bin && /usr/lib, die installierte .desktop- Datei wird unter gespeichert /usr/share/applicationsund die entsprechende Zeile lautet : icon=sublime_text.

Wo ist die Verknüpfung, die mir fehlt? Irgendwie weiß Ubuntu, wie man das Symbol sublime_textim letzteren herausfordert, aber nicht im ersteren (auch hier, wenn ein vollständiger Pfad angegeben ist).

Tom
quelle
Wo in Ihrem Home-Ordner platzieren Sie diesen Launcher?
Jesaja
Wann erhalten Sie außerdem die Meldung: "foo ist keine registrierte Anwendung"?
Jesaja
@DoR: Mein erhabener * .desktop ist unter /.local/share/applications. Der bemerkenswerteste Ort, an den ich mich erinnern kann, war der Versuch, eine aus der Quelle kompilierte Version von vim in die update-alternativesListe einzubinden, damit sie anstelle der 'Standard'-Installation angezeigt wird. Hilfreich? Ich schätze, ich suche nach dem Mechanismus, mit dem Ubuntu weiß, wo (zum Beispiel) das richtige Symbol für App A zu finden ist - genau wie bei * .desktop-Dateien unter /usr/share/applications/.
Tom
Wenn Sie den Wert von "icon" in Ihrem ~/.local/share/applicationsLauncher auf "just" setzen sublime_text( nicht auf den vollständigen Pfad, funktioniert das?
Jesaja,

Antworten:

3

Ich denke, Sie haben mehrere Probleme gleichzeitig mit Quellinstallationen.

update-alternativesSie können nicht jedes Programm als bevorzugte Anwendung für einen bestimmten Namen festlegen. Das Programm muss zuerst mit der --installOption registriert werden . Beispielsweise:

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

Wenn Sie sehen möchten, wie die Registrierung erfolgt, überprüfen Sie beispielsweise /var/lib/dpkg/info/nano.postinst.

Beachten Sie jedoch, dass es ziemlich falsch wäre, eine systemweite Alternative zu definieren, die auf das Home-Verzeichnis eines Benutzers verweist. Es gibt normalerweise Umgebungsvariablen oder andere Einstellungen, um eine Einstellung nur für einen Benutzer festzulegen.

Das Problem mit der Desktop-Datei ist wahrscheinlich vollständig getrennt, aber Sie müssen mehr Details darüber angeben, welche Pfade Sie genau verwendet haben.

Im Allgemeinen kann es je nach Anwendung schwierig sein, eine Anwendung von der Quelle aus zu installieren, um sich gut in den Rest des Systems zu integrieren.

Peter Eisentraut
quelle
Peter: Ja, ich denke du hast den Nagel getroffen ... und nach Überlegung ist es die Antwort, mein Denken zu korrigieren . Ich verwende das System auf einem Laptop - einem Laptop, den ich nur benutze, bei dem ich mich anmelde usw. Und natürlich ist UNIX ein Mehrbenutzer-Betriebssystem und definiert die Programminstallation als solches. Die Ikone ist trivial und ich glaube eine Eigenart. Ich habe in meinen sublime-text postinstÜberprüfungen eine separate Symboldatei gefunden , wie Sie vorgeschlagen haben, sodass ich jetzt die alternative Installation (in meinem $ HOME) auf eine bestimmte Datei verweisen kann, anstatt sie automatisch auf magische Weise in der ausführbaren Datei suchen zu lassen. Ich markiere dies als geschlossen / gelöst, da ich glaube, dass ich das habe, was ich jetzt brauche.
Tom
Wie registrieren wir es bei --install?
Fiatjaf