Gönderen Konu: [Nasıl] LMDE 4 - APT command-not-found Bütünleşmesi Sorununun Çözümü  (Okunma sayısı 5019 defa)

Çevrimdışı Butterfly

  • Proje Sorumlusu
  • Guru
  • *****
  • İleti: 18863
  • Linux Mint Türkiye
  • Dağıtım: Linux Mint 20 & LMDE 4
  • Masaüstü Ortamı: Cinnamon 4.6 & Xfce 4.14
  • Grafik Kartı: Nvidia GF 9500
  • İşlemci: AMD X3
LMDE sürümlerinde, diğer Debian tabanlı dağıtımların pek çoğunda varsayılan olarak gelmeyen command-not-found paketi hazır olarak geliyor. Bu paketin apt bütünleşmesi ile, kullanmaya çalıştığınız ama sisteminizde yüklü olmayan bir komutun hangi paketle yükleneceği bildiriliyor.

Mesela rastladığınız bir rehberde gördüğünüz bir komutu, uçbirimden başlatmayı denediğinizde; bu komutun bulunduğu paket sisteminizde kurulu değilse aşağıdaki gibi bir uyarı alırsınız. Bu yönlendirme sayesinde, komutun dahil olduğu paketi kurup, komutu kullanabilirsiniz. Örneğin hexeditor uygulamasını uçbirimden çalıştırdığınızda, bu komutu içeren paket sisteminizde kurulu değilse; aşağıdaki şekilde bir uyarı alır ve gerekli paketin kurulması için yönlendirilirsiniz.

Alıntı
hexeditor

Command 'hexeditor' not found, but can be installed with:

sudo apt install ncurses-hexedit

Şimdi gelelim bu konunun hazırlanış amacına. LMDE 4'ün taban aldığı Debian 10 deposundaki command-not-found paketinde, ascii destekli olmayan dillerde (Türkçe gibi) görülen bir sorun var. Bu sebeple bütünleşme sorunlarla çalışıyor. Mesela sisteminizde "apt update" komutunu çalıştırınca, bu sorundan kaynaklı olarak işlem çok uzun sürüyor ve hata vererek sonlanabiliyor. Çoğu Debian tabanlı dağıtımda bu paket varsayılan olarak gelmediği için, herhangi bir kaynakta da çözümü mevcut değil. Bunu aşmak için aşağıdaki şekilde /etc/apt/apt.conf.d/50command-not-found apt bütünleşme dosyasında ve /usr/share/command-not-found/CommandNotFound/db/creator.py dosyasında ufak bir düzenlemeye ihtiyaç var. Bunu 2 farklı şekilde yapabilirsiniz, elle düzenleyerek ya da düzeltmesini yaptığımız paketi kurarak.

Çözüm 1: Elle düzenleyerek

Çözüm için, ilk olarak aşağıdaki komutla /etc/apt/apt.conf.d/50command-not-found bütünleşme dosyasını açınız.

Kod: [Seç]
sudo xed /etc/apt/apt.conf.d/50command-not-found
Açılan dosyada aşağıdaki satırı bulup,

Kod: [Seç]
    "if /usr/bin/test -w /var/lib/command-not-found/ -a -e /usr/lib/cnf-update-db; then /usr/lib/cnf-update-db > /dev/null; fi";
aşağıdaki şekilde değiştiriniz ve dosyayı kaydediniz. Düzenleme sırasında satırın girintisinin bozulmamasına dikkat etmelisiniz.

Kod: [Seç]
    "if /usr/bin/test -w /var/lib/command-not-found/ -a -e 'LC_ALL=C /usr/lib/cnf-update-db'; then 'LC_ALL=C /usr/lib/cnf-update-db > /dev/null'; fi";
Ardından aşağıdaki komutla /usr/share/command-not-found/CommandNotFound/db/creator.py dosyasını açınız.

Kod: [Seç]
sudo xed /usr/share/command-not-found/CommandNotFound/db/creator.py
Açılan dosyada, aşağıdaki satırı bulup,

Kod: [Seç]
import time
altına aşağıdaki satırı ekleyiniz.

Kod: [Seç]
import locale
Son olarak, dosyanın en altına aşağıdaki satırı ekleyiniz ve "/usr/share/command-not-found/CommandNotFound/db/creator.py" dosyasını kaydediniz.

Kod: [Seç]
locale.setlocale(locale.LC_ALL, 'C')
Çözüm 2: Düzeltilmiş paketi kurarak

Yukarıda bahsettiğimiz çözümü uygulayarak, yeniden paketlenen command-not-found paketini buradan indirip, kullanıcı ev dizinine kopyalayınız. Ardından aşağıdaki komutla paketi kurabilirsiniz. 64 bit ve 32 bit sistemler aynı paketi kullanıyor.

Kod: [Seç]
sudo dpkg -i command-not-found_18.04.5-1~fixed_all.deb
Elimiz değmişken pakete Türkçe dil desteğini de ekledik, böylece paketi kurduktan sonra uyarılar artık (aşağıdaki gibi) Türkçe olacak.

Alıntı
hexeditor

'hexeditor'  komutu sistemde bulunamadı. Ama şununla kurulabilir:

sudo apt install ncurses-hexedit

Bu şekilde sorunun etrafından dolaşabilirsiniz. Kurulumun ardından aşağıdaki komutlarla veritabanını güncelleyebilirsiniz.

Kod: [Seç]
sudo update-command-not-found
sudo apt update
« Son Düzenleme: 20 Mart 2020, 00:21:23 Gönderen: Butterfly »
Elimizden geldiğince dilimizin döndüğünce...

[info] Konu Açarken Dikkat Edilmesi Gerekenler  |  Forum Kuralları  |  Kod Etiketi Kullanımı[/info]

Çevrimdışı aakmaz

  • Yeni Penguen
  • *
  • İleti: 84
  • Dağıtım: Linux Mint (Ulyana) 20
  • Masaüstü Ortamı: Cinnamon (64-bit)
  • Grafik Kartı: AMD R5 M230
  • İşlemci: Intel Core i5 4200M 2.5GHz
Yukarıda bahsettiğimiz çözümü uygulayarak, yeniden paketlenen command-not-found paketini buradan indirip, kullanıcı ev dizinine kopyalayınız. Ardından aşağıdaki komutla paketi kurabilirsiniz. 64 bit ve 32 bit sistemler aynı paketi kullanıyor.
Kod: [Seç]
sudo dpkg -i command-not-found_18.04.5-1~fixed_all.deb
Teşekkür ederim, Sayın Butterfly.
command-not-found'u kurma komutu değişmiş gözüküyor. Bugün şu komutla kurdum.
Kod: [Seç]
sudo dpkg -i command-not-found_18.04.5-1.1_fixed_all.deb