Jaka jest definicja „zarejestrowanej aplikacji” przez Ubuntu?

11

Natknąłem się na to kilka razy podczas instalowania aplikacji ze źródła i od czasu do czasu hack z update-alternatives. Do tej pory była to tylko niewielka irytacja (tj. Nie przeszkadzała w osiągnięciu celu końcowego), ale teraz jest to frustracja, ponieważ wskazuje na dziurę w mojej bazie wiedzy ... więc kiedy dostaję wiadomość, że „ foo ”nie jest zarejestrowaną aplikacją (lub nie mogę użyć domyślnej ikony foo, ponieważ Ubuntu nie ma wiedzy o„ foo ”):

  1. Co definiuje „zarejestrowaną aplikację”?

  2. Jak mogę zdefiniować aplikację zainstalowaną ze źródła (i prawdopodobnie rezydującą w $ HOME / bin / app-name) tak, aby zawierała taką samą funkcjonalność jak pakiet zainstalowany z .deb? (jeśli rozwiązanie nie jest oczywiste z odpowiedzi 1)

Przykład:

Pobieram i rozpakowuję codzienne wersje deweloperskie sublime-text-2do /home/tom/bin/sublime-text-2. Utworzyłem plik * .desktop z odpowiednimi skrótami itp. Ale ikona wzniosłości nie może być wyświetlana w żadnym programie uruchamiającym, nawet jeśli podam pełną nazwę ścieżki do opcji. Rozwiązaniem jest zainstalowanie drugiej instancji wzniosłej z pakietu deb.

Po zainstalowaniu wysublimowane-text-2 z pakietu .deb, instaluje pod /usr/bin && /usr/libzainstalowana .desktop plik jest przechowywany pod /usr/share/applications, a odpowiedni wiersz brzmi: icon=sublime_text.

Gdzie brakuje mi powiązania? W jakiś sposób Ubuntu wie, jak wyodrębnić ikonę sublime_textw drugim, ale nie w pierwszym (znowu, nawet z pełną ścieżką).

Tomek
źródło
Gdzie w folderze domowym umieszczasz ten program uruchamiający?
Isaiah
Ponadto, kiedy pojawi się komunikat: „foo nie jest zarejestrowaną aplikacją”?
Isaiah
@DoR: mój wzniosły * .desktop jest poniżej /.local/share/applications. Najbardziej godnym zapamiętania miejscem, w którym pamiętam komunikat „zarejestrowana aplikacja” była próba zaklinowania skompilowanej ze źródła wersji vima na update-alternativeslistę, aby pojawiła się zamiast instalacji „domyślnej”. Pomocny? Zgadnij, czego szukam to mechanizm, który zapewnia Ubuntu wiedzę o tym, gdzie znaleźć (na przykład) poprawną ikonę aplikacji A - podobnie jak w przypadku plików * .desktop pod /usr/share/applications/.
Tom
Jeśli ustawisz wartość „ikony” w programie ~/.local/share/applicationsuruchamiającym tylko na sublime_text( nie pełną ścieżkę, czy to działa?
Isaiah

Odpowiedzi:

3

Myślę, że masz kilka problemów z instalacjami źródłowymi na raz.

update-alternativesnie pozwoli ci ustawić żadnego programu jako preferowanej aplikacji dla danej nazwy. Najpierw należy zarejestrować program z --installopcją. Na przykład:

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

Jeśli chcesz zobaczyć, jak odbywa się rejestracja, sprawdź na przykład /var/lib/dpkg/info/nano.postinst.

Należy jednak pamiętać, że zdefiniowanie ogólnosystemowej alternatywy, która wskazuje na katalog osobisty użytkownika, byłoby dość fałszywe. Zwykle istnieją zmienne środowiskowe lub inne ustawienia, które ustawiają preferencje tylko dla jednego użytkownika.

Problem z plikiem na pulpicie jest prawdopodobnie całkowicie oddzielny, ale musisz podać więcej szczegółów na temat dokładnie używanych ścieżek.

Ogólnie rzecz biorąc, instalacja aplikacji ze źródła może być dość trudna do dobrej integracji z resztą systemu, w zależności od konkretnej aplikacji.

Peter Eisentraut
źródło
Peter: Tak, myślę, że trafiłeś w gwoździe ... a po odbiciu korygowanie mojego myślenia jest odpowiedzią. Korzystam z systemu na laptopie - używam tylko laptopa, loguję się do niego itp. I oczywiście UNIX to system operacyjny dla wielu użytkowników i jako taki definiuje instalację programu. Ikona jest banalna i wierzę dziwactwu. W moich sublime-text postinstczekach znalazłem osobny plik z ikoną , więc mogę teraz wskazać alternatywną instalację (w moim $ HOME) na konkretny plik, zamiast pozwolić mu „automatycznie” magicznie szukać w pliku wykonywalnym. Oznaczam to jako zamknięte / rozwiązane, ponieważ uważam, że mam teraz to, czego potrzebuję.
Tom
Jak to zarejestrować --install?
fiatjaf