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 ”):
Co definiuje „zarejestrowaną aplikację”?
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-2
do /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/lib
zainstalowana .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_text
w drugim, ale nie w pierwszym (znowu, nawet z pełną ścieżką).
źródło
/.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 naupdate-alternatives
listę, 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/
.~/.local/share/applications
uruchamiającym tylko nasublime_text
( nie pełną ścieżkę, czy to działa?Odpowiedzi:
Myślę, że masz kilka problemów z instalacjami źródłowymi na raz.
update-alternatives
nie pozwoli ci ustawić żadnego programu jako preferowanej aplikacji dla danej nazwy. Najpierw należy zarejestrować program z--install
opcją. Na przykład: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.
źródło
sublime-text
postinst
czekach 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ę.--install
?