Burada sürecin daha ayrıntılı bir açıklaması. Üzgünüm metin çok uzadı.
Deneyimlerim, Ubuntu'da kullanılan tüm paketleme ve yükseltme sisteminin başlangıçta icat edildiği Debian'dan kaynaklanıyor. Günlük Ubuntu güvenlik yükseltmeleri apt-get upgrade
, normalde herhangi bir yazılımı kaldırmayan çalışmaya karşılık gelir . Büyük sürüm yükseltmeleri apt-get dist-upgrade
, yazılım paketlerinin tamamen değiştirilebileceği bir süreye karşılık gelir .
Aslında çok düşük seviyeli bileşenler normalde bir sürüm yükseltme sırasında değiştirilmez. Yükseltmeden hemen sonra / boot dizininizde iki çekirdek ve initrd resmi bulmalısınız. Bunun nedeni, programların aksine çekirdek bileşenlerinin birbirinin yerine geçememesidir. Yükseltme sırasında yeni aygıt sürücülerinin yüklenmesi gerekiyorsa, bunların çalışan çekirdeğe uyumlu olması gerekir. Sistem yeni çekirdek ile önyükleme yaptıktan sonra eskisi kaldırılabilir. Bu bir şeyin manuel olarak yapılması gerektiğini en son kontrol ettiğimde, mevcut güncelleyicinin bunu nasıl işlediğini bilmiyorum. Bu BTW. ana neden, çekirdek görüntüsünün dosya adında sürüm numarasını neden taşımasıdır - böylece aynı anda farklı çekirdek sürümleri yüklü olabilir. Modül yolu için de aynı (/ lib / modules / ...)
Yazılım paketleri bağımlılık hirarchy en düşük paketleri ile başlayarak, tek tek yükseltilir. Bunlar normalde libc ve diğerleri gibi program kütüphaneleridir. Bununla birlikte, paketlerin güncellenme sırası sabit kodlanmaz, ancak paket bağımlılıkları çözüldükçe dinamik olarak hesaplanır. Çoğu durumda eski programlar yeni kütüphanelerle çalışabilir, bu nedenle ilk önce bu kütüphanelerin değiştirilmesi çok sorunlu değildir.
Burada, sistemin manuel olarak kurulan paketler (yani doğrudan kendiniz kurduğunuz paketler, yani krom) ve otomatik olarak kurulan paketler arasında ayrım yaptığını ve yalnızca manuel olarak kurulan paketlerin bağımlılıklarını (ve bu bağımlılıkların bağımlılıklarını yerine getirmek için kurulduğunu) anlamalısınız. ).
Manuel olarak yüklenen her program için güncelleyici sadece daha yeni bir sürüm arar. Genellikle bu programlar sadece veri içermeyen "ubuntu-desktop" gibi meta paketlerdir ve sadece bağımlılıklar içerir. Doğrudan güncellenen (manuel olarak talep edilen) programlar tarafından istendiği için, bağımlı kitaplıkların yeni sürümleri içeri alınacaktır. Güncelleyici her zaman bağımlı bir paketin en yeni kullanılabilir sürümünü yüklemeye çalışacaktır (herhangi bir yükseltme sırasında sadece yükseltmeleri değil).
Yeni kütüphane sürümleriyle çalışamayan programlar, kütüphane yükseltildikten sonraki süre boyunca ve programın kendisi yükseltilmeden önce başlatılamaz. Ancak bu programların kütüphane yükseltmesinden önce çalışması gerekiyorsa, çalışmaya devam ederler, çünkü eski kütüphane sürümü kullanımda olduğu sürece bellekte kalır. Yükseltilmeden önce başlatılan programlar için de aynı şey geçerlidir. Bunlar, sonlandırılıp yeniden başlatılıncaya kadar yeni özellikler sağlamaz.
Güncellemeden sonra bazı kütüphaneler (veya genel olarak bağımlılıklar) yetim kalır. Bunlar, eski program sürümleri tarafından istenen ancak artık yeni sürümler için gerekli olmayan kütüphanelerdir. Bu paketler otomatik olarak yüklendi olarak işaretlendiğinden ve manuel olarak yüklenen hiçbir prgram artık bunlarla ilgili olmadığından, bu paketler kolayca yerleştirilip çıkarılabilir. Bunu güncelleme işleminin son adımı olarak da görebilirsiniz (güncelleyici "eski paketleri kaldırma" veya benzeri bir şey).
Daha önce yüklenmediği yerlerde, bunlar otomatik olarak yüklendi olarak işaretlenen ve gelecekte gereksinim ortadan kalktığında kaldırılabilen yeni bağımlılıklar olan bazı paketler yüklenecektir.
Bu mekanizma, tüm kullanıcı programlarının değiştirilmesine bile izin verir. Örneğin Gnome2'den Unity'ye geçiş gibi. Her ikisi de ilk etapta yeni sürümlerin talep edildiği birkaç paketten biri olan ubuntu-desktop'un otomatik bağımlılıkları olduğundan.
Programlar normalde OS çekirdeğinin belirli bir sürümüne bağlı değildir, bu nedenle normalde çalışan çekirdeğe göre iyi çalışır.
Tüm bunların dışında , Ubuntu güncelleyicisinin bu teorinin kırıldığı durumları atlatmak için karışıma bazı özel düzeltmeler ve geçici çözümler attığından şüpheleniyorum .
Güncelleme sırasında görebileceğiniz gibi, sistemin sadece sınırlı bir parça için kullanılabilir olduğu çok iyi koşullar vardır. Güncelleme sırasında bir şeyler ters giderse , büyük olasılıkla bozuk bir sisteme bırakılırsınız. Çoğu zaman kolayca onarılamayan bir tane bile, çünkü yükseltme programı da etkilenebilir. Unutmayın, bağımlılıkları bozuk olan programlar çalışmaya devam edebilir, ancak bağımlılıklar bozulduğu sürece yeniden başlatılamaz, bu durum güncelleyici için de geçerlidir.
apt-mark
Hangi paketlerin manuel olarak yüklendiğini ve hangilerinin otomatik olarak yüklendiğini bulmak için komut satırı programını kullanabilirsiniz. Bu işaretleri aynı programı kullanarak da değiştirebilirsiniz. Bu güncelleme işlemini doğrudan etkileyecektir.
Daha karmaşık bir yazılım kurulumunda Güncelleyici bazen bir bağımlılığı manuel olarak çözmenizi ister. Başka bir el ile yüklenen program aynı kitaplığın eski sürümüne bağlıdır ve yeni ile çalışamaz. Daha sonra, bu programlardan birini bırakmak veya her ikisini de yükseltmekten kaçınmak için seçiminizi yapmanız gerekecektir. Bağımlılıklar genellikle karmaşık olduğu için bu çok hızlı bir şekilde dağınık hale gelebilir ("bağımlılık cehennemi" terimini duymuş olabilirsiniz).
Şimdi belirli sorulara:
- Düşük düzeyli altyapı değiştirildiğinde (çekirdek, sürücüler, kütüphaneler vb. Gibi kullanıcının doğrudan etkileşimde bulunmadığı düşük düzey), kullanımdan kaldırılan ikili dosyalara ne olur?
- Tamam ... ben bunu zaten ele aldım
- Tamamen kullanımdan kaldırılmış bir uygulamaya ne olur? Örneğin, Unity 2D (veya paketi yeni repoda olmayan herhangi bir yazılım terk edildi / bakım yok).
- Uygulama bir kez manuel olarak yüklendiyse, sistemde kalır ve genellikle tarif ettiğim bağımlılık cehennemine neden olur.
- ubuntu-desktop, varsayılan Ubuntu uygulamalarını bağımlılık olarak çeken bir meta pakettir. Firefox'u kaldırıp Chrome'u yüklediysem Firefox, yükseltmelerin bir parçası olarak hala çekilecek mi?
- Yeni Sürümün standart tarayıcısı olduğu sürece, evet. Chromium da yükseltilecek. Ubuntu-desktop'u kaldırmadan Firefox'u kaldırabileceğinizden emin değilim. Sıkı bağımlılıkların yanı sıra, paket sisteminin bir yazılımın normalde bir bağımlılık gibi kurulacağı, ancak kendi bağımlılıkları dışında hiçbir şeyi etkilemeden kaldırılabileceği öneriler kavramını da bildiğini unutmayın.
- Dahası, tek bir uygulama paket-x'e bağlıysa ve artık yeni sürümde yapmıyorsa ne olur; yetim kalmasına rağmen package-x paketlerin geri kalanıyla birlikte yükseltilecek mi?
Başka sorularınız olup olmadığını sormanız yeterli.