Ubuntu'nun “Kayıtlı Uygulama” Tanımı nedir?


11

Uygulamaları kaynaktan yüklerken ve arada sırada hack yaparken birkaç kez karşılaştım update-alternatives. Şimdiye kadar, sadece küçük bir sıkıntı oldu (yani, nihai hedefin önüne geçemedim) ama şimdi bilgi tabanımda bir deliğe işaret ettiği için bir hayal kırıklığı ... yani bir mesaj aldığımda foo '"kayıtlı bir uygulama değildir" (ya da foo'nun varsayılan simgesini kullanamıyorum çünkü Ubuntu'nun' foo 'bilgisi yok):

  1. "Kayıtlı uygulamayı" ne tanımlar?

  2. Kaynaktan yüklenmiş bir uygulamayı (ve muhtemelen $ HOME / bin / app-name içinde bulunan) bir .deb'den yüklenen bir paketle aynı işlevselliği paketleyecek şekilde nasıl tanımlayabilirim? (çözüm, cevap 1'den belli değilse)

Misal:

Ben indirme ve açmak günlük dev derlemelerini sublime-text-2için /home/tom/bin/sublime-text-2. Uygun kısayollar, vb. İle bir * .desktop dosyası oluşturdum. Ancak seçeneğe tam bir yol adı girsem bile yüce simgesi herhangi bir başlatıcıda görüntülenemez. Solüsyon bir kurmaktır 2 bir deb paketinin yüce örneğini.

Bir .deb paketinden yüce-metin-2 yüklediğinizde, altında yükler /usr/bin && /usr/libyüklenmiş, .desktop dosya altında saklanır /usr/share/applicationsve ilgili satır okur: icon=sublime_text.

Kaçırdığım bağlantı nerede? Bir şekilde Ubuntu sublime_text, ikincisinde simgenin nasıl kesinleştirileceğini biliyor , ancak birincisinde değil (yine, sağlanan tam bir yolla bile).


Bu başlatıcıyı ana klasörünüzün neresine koyuyorsunuz?
Isaiah

Ayrıca, "foo kayıtlı bir uygulama değil" mesajını ne zaman alırsınız?
Isaiah

@ Doo: benim yüce * .desktop altında /.local/share/applications. "Kayıtlı uygulama" mesajını hatırlayabildiğim en dikkat çekici yer, vim'in derlenmiş kaynak bir sürümünü update-alternativeslisteye takmaya çalışırken 'varsayılan' yükleme yerine gelmekti. Faydalı? Aradığım şey, Ubuntu'ya, uygulama A için doğru simgenin nerede bulunacağı bilgisini sağlayan mekanizmadır - altında * .desktop dosyalarıyla olduğu gibi /usr/share/applications/.
Tom

~/.local/share/applicationsBaşlatıcınızdaki "simge" değerini sadece sublime_text( tam yol değil) olarak ayarlarsanız, bu işe
yarar

Yanıtlar:


3

Bence kaynak kurulumlarında aynı anda birkaç problemle karşılaşıyorsunuz.

update-alternativesherhangi bir programı belirli bir ad için tercih edilen bir uygulama olarak ayarlamanıza izin vermez. Programın öncelikle --installseçenekle kaydedilmesi gerekecektir . Örneğin:

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

Kaydın nasıl yapıldığını görmek istiyorsanız, örneğin kontrol edin /var/lib/dpkg/info/nano.postinst.

Bununla birlikte, bazı kullanıcıların ana dizinlerine işaret eden sistem çapında bir alternatif tanımlamanın oldukça sahte olacağını unutmayın. Yalnızca bir kullanıcı için tercih belirlemek üzere genellikle ortam değişkenleri veya başka ayarlar bulunur.

Masaüstü dosyasındaki sorun muhtemelen tamamen ayrıdır, ancak tam olarak hangi yolları kullandığınız hakkında daha fazla bilgi vermeniz gerekecektir.

Genel olarak, belirli bir uygulamaya bağlı olarak, bir uygulamanın kaynağından yüklenmesi sistemin geri kalanıyla iyi bir şekilde bütünleşmesi oldukça zor olabilir.


Peter: Evet, sanırım çiviye vurdun ... ve düşüncem doğru olan düşüncem cevap. Sistemi bir dizüstü bilgisayarda kullanıyorum - sadece kullandığım bir dizüstü bilgisayar, giriş yapıyorum, vb. Ve elbette, UNIX çok kullanıcılı bir işletim sistemidir ve program kurulumunu bu şekilde tanımlar. Simge şey önemsiz ve bir garipliğe inanıyorum. sublime-text postinstDenetimlerimde önerdiğim gibi ayrı bir simge dosyası buldum , bu yüzden şimdi alternatif yüklemeyi ($ HOME'um içinde) yürütülebilir dosyadan 'otomatik olarak' aramasına izin vermek yerine belirli bir dosyaya gösterebilirim. İhtiyacım olan şeye sahip olduğuma inandığım için bunu kapalı / çözülmüş olarak işaretliyorum.
Tom

Nasıl kayıt oluruz --install?
fiatjaf
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.