apt-get purge --autoremove paket-adı şablonu ile kaldırırsanız, tüm bağımlılıkları ile kaldırılır. Mesela nvidia-legacy-390xx-driver sürücüsünü aşağıdaki komutla kaldırsaydınız, hiç bir sorun yaşamazdınız.sudo apt purge --autoremove nvidia-legacy-390xx-driver
Deneyeceğim.390 farklı bir bir legacy sürücüsü serisidir, Debian'da sürücü modülü bile farklı eklenir DKMS ile. Autoremove komutu ile paketler kaldırılırken, eski çekirdeklerdeki sürücü modüllerinin kaldırılmasını görmüşsünüz. Nvidia-418 ve Nvidia-450 aynı paketin (nvidia-driver) farklı sürümleridir. Yani Nvidia-418 kurulu olan bir sisteme, Backports deposundan Nvidia-450 kurulurken herhangi bir sorun yaşatmaz. VLC'nin x sürümünün üstüne x+1 sürümün kurulması gibidir.
Ayrıca paketleriapt-get purge --autoremove paket-adışablonu ile kaldırırsanız, tüm bağımlılıkları ile kaldırılır. Mesela nvidia-legacy-390xx-driver sürücüsünü aşağıdaki komutla kaldırsaydınız, hiç bir sorun yaşamazdınız.
Kod:sudo apt purge --autoremove nvidia-legacy-390xx-driver
LMDE'ye Nvidia-390 sürücüsünü kurdum, sonra kaldırıp 418 sürümü kurdum (LMDE deposunda Nvidia-450 olduğu için paket=sürüm-no komutu ile kurudum.) Sonra sistemi güncelledim, depoda olan 450 sürüm sorunsuzca bunun üstüne yüklendi. Mesa'yı da Backports'tan güncelledim. Hiç bir sorun da yaşanmadı.
Xorg güncel sürümünü de (1.20.10) Testing deposundaki kaynaktan indirip LMDE'de paketleyip, yerel depo oluşturup rahatça güncelledim. Şu an tıkır tıkır çalışıyor. Paketleme dahil tüm düzenlemeler 1 saatimi almadı. Yani yapabilen işini kolayca yapıyor.
390 farklı bir bir legacy sürücüsü serisidir, Debian'da sürücü modülü bile farklı eklenir DKMS ile. Autoremove komutu ile paketler kaldırılırken, eski çekirdeklerdeki sürücü modüllerinin kaldırılmasını görmüşsünüz. NVIDIA-418 ve NVIDIA-450 aynı paketin (NVIDIA-driver) farklı sürümleridir. Yani NVIDIA-418 kurulu olan bir sisteme, Backports deposundan NVIDIA-450 kurulurken herhangi bir sorun yaşatmaz. VLC'nin X sürümünün üstüne X+1 sürümün kurulması gibidir.
Ayrıca paketleriapt-get purge --autoremove paket-adışablonu ile kaldırırsanız, tüm bağımlılıkları ile kaldırılır. Mesela NVIDIA-lEGACY-390XX-driver sürücüsünü aşağıdaki komutla kaldırsaydınız, hiçbir sorun yaşamazdınız.
Kod:sudo apt purge --autoremove nvidia-legacy-390xx-driver
LMDE'ye NVIDIA-390 sürücüsünü kurdum, sonra kaldırıp 418 sürümü kurdum (LMDE deposunda NVIDIA-450 olduğu için paket=sürüm-no komutu ile kurudum.) Sonra sistemi güncelledim, depoda olan 450 sürüm sorunsuzca bunun üstüne yüklendi. Mesa'yı da Backports'tan güncelledim. Hiçbir sorun da yaşanmadı.
Xorg güncel sürümünü de (1.20.10) Testing deposundaki kaynaktan indirip LMDE'de paketleyip, yerel depo oluşturup rahatça güncelledim. Şu an tıkır tıkır çalışıyor. Paketleme dahil tüm düzenlemeler 1 saatimi almadı. Yani yapabilen işini kolayca yapıyor.
NVIDIA ile ilgili her şeyi purgeledim ve birbirini bloklayan versiyonlar kaldırıldı. Size fine grained dependency resolution örneği göstereyim. 450.46 sürücüsünün üstüne 390.138 kurmaya çalıştığınızda bakın Gentoo nasıl bir tepki veriyor. Gördüğünüz gibi iki sürücüyü aynı sistemde bulunduramıyorsunuz çünkü modülleri çakışıyor sisteminizin sağlığı bozulmasın diye portage buna izin vermiyor. Ama apt kardeşimiz kurduğu paketin hesabını tutamayacak kadar beceriksiz bir paket yöneticisi olduğu için birbiriyle çakışan rastgele modüllerin aynı anda bir sistemde bulunmasına izin veriyor.
Eki Görüntüle 809891
DNF/YUM çok başarılı bir paket yöneticisi.Aynı şey Fedora'da da oluyordu galiba.
Debian'da bir paketin Control dosyasındaki Replaces kısmına çakışan paketler eklenirse elbetteki diğer paket kaldırılır. Diğer dağıtımların paket yöneticilerinde de işlev benzer şekilde işliyordur. Yani iş paket bakımcısında bitiyor. Debian'da NVIDIA sürücüsü yüklenmesi öncesinde genellikle NVIDIA-detect kullanıldığı için böyle ek yapmamış olabilirler.
Biraz önce normal Linux Mint'te NVIDIA-390 sürücüsü kurup, ardından NVIDIA-450 sürücüsü kurdum. Burada paket bakımcıları ilgili işlemi yapmışlar ve otomatik olarak olarak NVIDIA-390 kaldırılıp yerine NVIDIA-450 sürücüsü kuruldu.
Eki Görüntüle 810445
Debian tabanında NVIDIA-lEGACY-390 sürücüsü farklı bir modül olarak derlenerek çekirdeğe eklenir, NVIDIA-driver ile gelen sürücü ise doğrudan NVIDIA modülü derlenerek çekirdeğe eklenir. Bu sebeple teknik olarak bir çakışma olmaz, hatta istenirse bu sürücüler arasında basit bir xorg. Conf düzenlemesi ile geçiş yapılabilir. Debian'da NVIDIA-418 sürücü ile NVIDIA-450 sürücüsü aynı paketin farklı versiyonlarıdır. Yani biri kurulurken diğeri otomatik olarak kaldırılır.
Debian 10 tabanında yaşadığınız senoryanın tamamını denedim ve hiçbir paket çakışması yaşamadım. Hatta NVIDIA-390 sürücüsü kuruluyken, NVIDIA-450 sürücüsü kurulumunda bile paket çakışması sorunu yaşatmadı. Ama NVIDIA-390 sürücü ve current sürücüleri, paket bakımcıları tarafından Replaces kısmına eklenmeli. Neden eklenmediği ile ilgili belki makul bir açıklama vardır, onlar da "NVIDIA-detect zaten hangi sürücünün kurulması gerektiğini gösteriyor, bu sebeple buna gerek yok" şeklinde düşünmüş olabilirler.
Yani apt ile ilgili bahsettiğin hususlar kısaca gerçek değil, sadece sizin algılamak istediğiniz bir durum gibi görünüyor.
NVIDIA sürücüsü tek kernelde iki farklı sürücünün kullanılmasına izin vermez. Eğer apt buna izin verirse iki sürücü ve bağlı paketler aynı yere kopyalanır yani üst üste, bu başlı başına bir facia zaten. Bir de neden autoremove kullanıyoruz?
Debian'da NVIDIA-390 sürücüsü NVIDIA-450 sürücüsünü bir arada kurabilirsin. Debian'da Update-alternatives diye bir araç var, bununla istediğin kurulmuş sürücülerden istediğin sürücüyü seçebilirsin. Sonra X'i yeniden başlatırsın. NVIDIA-390 sürücüsünün farklı bir modül olarak derlendiğini zaten söylemiştim, geriye kalanı Update-alternatives halleder. Update-alternatives öncelik desteğine de sahiptir, yani NVIDIA-450'nin yani NVIDIA-drivers paketindeki sürücünün önceliği daha yüksek olduğu için, otomatik olarak bu varsayılan olur.
Autoremoves paket ile kurulan tüm bağımlılıkları temizler, Gentoo'daki Deep-clean bunun karşılığı sanırım.
Update-alternatives gibi bir özelliğe, başka hiçbir dağıtımda rastlamadım. Bununla sistemdeki birçok ögeyi değiştirebilirsin, Java sürümünden, sistem genelinde kullanacağın imlece kadar...