Belge

Unmet dependencies Error During Package Installation or Upgrade Hatası Nasıl Düzeltilir

 

Herhangi bir paketi yükseltirken veya kurarken karşılanmayan bağımlılıklar hatası alıyorsanız verilen adımlarla sorunu çözebilirsiniz.

Karşılanmayan bağımlılıklar, özellikle paket en son yapısının Ubuntu kurulumunuzla uyumlu olmadığı bir PPA kaynağından geliyorsa, paketi yüklerken karşılaşacağınız oldukça yaygın bir sorundur.

Sadece bu da değil, paketin sisteminizde bulunmayan belirli bir sürümünü yüklemeye çalıştığınızda da meydana gelebilir; bu da bağımlılık sorunlarına ve sisteminizdeki diğer paketlerle olası çatışmalara yol açabilir.

unmet dependencies error on ubuntu

Yapmaya çalıştığınız şey gibi son adımınızı hatırlayabilirseniz sorunu gidermeniz çok daha kolay olacaktır.

Ancak her şeyin nasıl başladığının farkında değilseniz endişelenmeyin.

Sorunu teşhis etmek ve çözmek için atabileceğiniz birkaç adım var; bunu sizinle paylaşacağım, ancak ondan önce, karşılanmayan bağımlılıklara neyin sebep olduğunu anlamak için biraz zaman harcayalım.

Karşılanmayan Bağımlılıklara Ne Sebep Oldu?

Daha önce de söylediğim gibi, bu hatanın ana nedeni, PPA’yı kullanarak bir programın veya uygulamanın eski bir sürümünü yüklemeye çalışmanızdır.

Peki programın eski bir sürümünü yükleyebildiğimizde sistem neden hata veriyor?  Eski programı kurmamız gerekmez mi?

Elbette paketin daha eski bir sürümünü yükleyebilirsiniz, ancak sorun şu ki, uygulamanın en son sürümü veya Ubuntu kurulumunuz, sisteminizde mevcut olmayabilecek belirli bir bağımlılık sürümü gerektirebilir.

Sisteminize daha eski bir bağımlılık kazandırmayı başarsanız bile, sisteminizin kararsız bir duruma girmesini önlemek için kütüphanenin daha düşük bir sürümünü kurmanıza izin verilmeyecektir.

Ancak, uygulamanın en son sürümünün bile yükleme sırasındaki bir kesinti veya sistem veritabanının bozulması nedeniyle yüklenemediği zamanlar vardır veya yükseltme için paketi elinizde tutmuş olabilirsiniz, bu da yükleme hatasına katkıda bulunabilir.

Şimdi karşılanmayan bağımlılıklar hatasını düzeltmek için kullanabileceğiniz yöntemlere bakalım.

Karşılanmayan Bağımlılıklar Hatasını Düzeltmek için Mevcut Yöntemler Nelerdir?

Bu sorunu çözmek için kullanılabilecek birkaç yöntem var ve sorunu çözebilecek tüm yöntemleri bu makalede sizinle paylaşacağım, o yüzden önce basit olanla başlayalım.

TL;DR Version

Hızlı bir çözüm arayanlar için bu makalenin CliffsNotes sürümünü burada bulabilirsiniz, ancak bu konuda yeniyseniz lütfen makalenin tamamını okumak için aşağı kaydırın.

Karşılanmayan bağımlılıklar hatasını düzeltmek için  sorunu çözmek için yöntemlerden herhangi birini kullanabilirsiniz.

# Yöntem 01: Paket yöneticisinden şunu isteyin: 
 bozuk bağımlılıkları otomatik olarak düzelt

$ sudo apt install --fix-broken
veya
$ sudo dpkg-reconfigure  --force <package-name>

# Yöntem 02: Uygulamayı Aptitude aracılığıyla yükleyin 
 bağımlılık sorununu çözmek için.

$ sudo aptitude install <package-name>

# Yöntem 03: Bir bağımlılık paketi beklemede olarak işaretlenmişse beklemeyi kaldırın
$ apt-mark showhold
$ apt-mark unhold <package>

# Yöntem 04: Çakışan PPA'yı Kaldır
$ ls /etc/apt/sources.list.d/
$ sudo apt autoremove --purge <package-name>
$ sudo rm /etc/apt/sources.list.d/<ppa_name>.list
$ sudo apt autoclean
$ sudo apt update

Step 01Kurulumu Zorlamak için -f veya –fix-broken Bayrağını ekleyin

Bazen, paket kurulumundaki bir kesinti veya çakışma nedeniyle, hiçliğin ortasında iptal edilir ve bu nedenle, paketi tekrar kurmayı denediğinizde karşılanmayan bağımlılıkları görürsünüz.

Böyle bir sorunu çözmek için, eksik paketleri yükleyerek veya çakışan paketleri kaldırarak bozuk bağımlılıkları düzeltmeye çalışacak -f veya –fix-broken bayrağını kullanabilirsiniz.

$ sudo apt install -f
veya
$ sudo apt install --fix-broken
veya
$ sudo dpkg-reconfigure  --force <package-name>

Step 2 Bağımlılık sorunlarını Otomatik Olarak Çözme ve Düzeltme Yeteneği

Linux’ta her zaman alternatif seçenekler mevcuttur ve burada da paketleri yüklemek için apt yerine aptitude’u kullanabilirsiniz; bu, bağımlılık sorunlarını otomatik olarak çözmeye çalışacak ve kurulum hatasını düzeltecektir.

Aptitude’un sözdizimi APT’ninkine benzer ancak daha gelişmiş özellikler sunar.  Ancak, önceden yüklenmiş yeteneği bulamazsınız, bu nedenle onu kullanmak için şunu çalıştırmanız gerekir:

$ sudo apt install aptitude

Aptitude kullanıma hazır olduğunda, yüklemek istediğiniz paket adıyla aşağıdaki komutu çalıştırın ve ekrandaki talimatları izleyin.

$ sudo aptitude install <package-name>

Her şey yolunda giderse paket kurulacaktır.

Step 3Tutulan Paketleri kontrol edin

Bazı paketleri ve kitaplıkları kurulum için beklemeye almış olabilirsiniz ve bu nedenle artık karşılanmayan bağımlılıklar hatası alıyor olabilirsiniz.

Bunu düzeltmek için öncelikle aşağıdaki komutu çalıştırarak beklemede olarak işaretlediğiniz herhangi bir bağımlılık programı veya kitaplık olup olmadığını kontrol etmeniz gerekir:

$ apt-mark showhold

Herhangi bir paket varsa, paketi kaldırmak ve karşılanmayan bağımlılıklar hatasını çözmek için doğru paket adını değiştirerek aşağıdaki komutu çalıştırabilirsiniz.

$ apt-mark unhold <package>

Bu aynı zamanda aptitude komutu kullanılarak da çözülebilir; örneğin, size hatayı veren uygulamayı yüklemeye çalıştığınızda, ardından ‘q’ tuşuna basıp paketi yüklemeyi tekrar deneyin.

Başvuru yapıldıysa, bu küçük numara sorunu çözecektir.

Step 4Soruna neden olan PPA’yı kaldırın

PPA’yı ekledikten sonra karşılanmayan bir bağımlılık hatası oluştuğundan eminseniz, kurulu paketi ve PPA’yı kaldırmanız önemle tavsiye edilir.

PPA’yı kaldırmak için /etc/apt/sources.list.d/ dizinine gidin ve sisteminizde yüklü olan tüm PPA’ları listeleyin.

$ ls /etc/apt/sources.list.d/

Hataya neden olan PPA adına dikkat edin.

Bundan sonra, PPA’yı kullanarak yüklediğiniz tüm paketleri bir sonraki komut satırını yürüterek kaldırın:

$ sudo apt autoremove --purge <package-name>

Yukarıdaki adımı tamamladıktan sonra, PPA’yı Ubuntu sisteminizden kaldırmak için son komutu yürütün.

$ sudo rm /etc/apt/sources.list.d/<ppa_name>.list

Daha sonra, yerel depo önbelleğini temizlemek ve ardından sistem deposunu güncellemek için aşağıdaki komutu çalıştırdığınızdan emin olun.

$ sudo apt autoclean
$ sudo apt update

PPA’yı kaldırdıktan sonra aynı uygulamayı tekrar yüklemek isterseniz manuel olarak veya PPA yerine Snap, Flatpak veya AppImage kullanarak yükleme yapmanızı öneririm.

Step 5Evreni, Çoklu Evreni ve Kısıtlı Depoyu Etkinleştir

Paketlerden bazıları varsayılan depoda mevcut değildir ve bu nedenle gerekli kitaplık paketleri kurulmamaktadır, bu da bağımlılık sorunlarına yol açabilir.

Bildiğiniz gibi Ubuntu’da aşağıdaki komutu çalıştırarak etkinleştirebileceğiniz üç depo daha var:

$ sudo add-apt-repository universe 
$ sudo add-apt-repository multiverse 
$ sudo add-apt-repository restricted 

GUI’yi kullanarak depoları etkinleştirmek istiyorsanız kısa çizgi düğmesine basın ve “Yazılım ve Güncellemeler”i arayın.

Açıldıktan sonra aşağıdaki resimde gösterildiği gibi aşağıdaki seçeneği işaretleyin ve değişiklikleri yeniden yüklemek için uygulamayı kapatın.

Enable and Disable Repositories using Software & Updates
to resolve unmet dependencies
Yazılım ve Güncellemeleri Kullanarak Depoları Etkinleştirme ve Devre Dışı Bırakma

 

Yazının orijinalini buradan okuyabilirsiniz.