“Güncelleme alternatifleri” tam olarak ne yapar?


99

Bu komut ne için update-alternativeskullanılıyor?

Bu örneği ele alalım:

sudo update-alternatives --install /usr/bin/java java /usr/local/java/jre1.7.0_09/bin/java 1

Bu ne işe yarıyor? Yola jdk eklemekten ne kadar farklı?

Diyelim ki komutu ben koştum. Orijinal durumuna nasıl geri dönerim?


2
Yüklü sürümler arasında seçim yapmak için sudo update-alternatives --config javave javacve javawsdüğmelerini de kullanabilirsiniz .
Shayan

Yanıtlar:


73

/etc/alternativesBu amaçla programa işaret eden bağlantıları günceller . Örnekler gibi çok var x-www-browser, editortarayıcı veya tercihinize editörüne bağlayacak vb. Bazı komut dosyaları veya sistem araçları bir dosyayı el ile düzenlemenizi isteyebilir (örn. Yapılandırma çakışması dpkg) ve size editörün vereceği alternatifleri araştırabilir. Çünkü java, bu Java çalışma ortamı - Oracle, OpenJRE, vs.

Linkler /etc/alternativessadece sembolik linklerdir. Örneğin bunları kullanarak görebilirsiniz

ls -l /etc/alternatives

Dahası, normal /usr/binikili dosyalar da sembolik bağlardır. Örneğin:

ls -l /usr/bin/java
  lrwxrwxrwx 1 root root 22 Aug 14 10:33 /usr/bin/java -> /etc/alternatives/java
ls -l /etc/alternatives/java
  lrwxrwxrwx 1 root root 46 Aug 14 10:33 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java

Yani, hiç bir PATHdeğişiklik yapılmayacak. Sadece sembolik bağlar kullanıyor.


Yani başka bir deyişle, tek bir komut yazabilirim ve bu beni seçimler için isteyecektir. Bir yolu doğru ayarlamaktan tek avantaj budur. Ayrıca, farklı bir java satıcısının da yüklü olduğunu söyleyelim. Her iki farklı satıcıyı da işaret etmek için java'yı nasıl güncellerim?
Geliştirici Android

Tanımladığınız gibi ikisine de işaret edemezsiniz. Bunun amacı, verilen örnekte olduğu gibi girişin uygulanmasında tek bir işaretçi bulundurmaktır. Sorular olmadan. Ve adaylardan herhangi biri çalışmalı - bu sadece yöneticinin tercihi olmalı. Ve yine: PATHs ile ilgisi yok .
gertvdijk

1
Tamam. Bu işleri temizler. Yollara geri döneceğimi biliyorum ama sadece aralarındaki farkı anlamak istiyorum. Bir yol olması durumunda, konumu açıkça belirtmemiz gerekir, ancak bu durumda sadece linkleri işaretleyin, böylece java yazdığımız zaman önce / etc / alternative'i arar. Yoksa bu varsayımda yanlış mıyım?
Geliştirici Android
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.