Ubuntu hangi programların var olduğunu ve yüklenebileceğini nasıl biliyor?


9

Terminalde aşağıdakileri yazdım

$ musique
The program 'musique' is currently not installed. You can install it by typing:
sudo apt-get install musique

Bu yüzden Ubuntu, şu anda makinede yüklü olmasa da "musique" in bir program olduğunu biliyor. Ancak, yazarsam

$ musiquez
No command 'musiquez' found, did you mean:
 Command 'musique' from package 'musique' (universe)

"musiquez" diye bir program olmadığını biliyor.

Sorum şu: Ubuntu bunu nasıl biliyor? Ubuntu'ya hangi uygulamaların yüklenebileceği hakkında bu bilgiler nerede saklanır?

Yanıtlar:


9

Bu özellik, bulunmayan komut (işlevi, buğulanma gibi durumlarda alternatifler ve düzeltmeler önermek) paketi tarafından sağlanır. Ubuntu varsayılan olarak yükler.

o nasıl çalışır?

Çalışma şekli command_not_found_handle()bash fonksiyonudur. bash, bir komut bulunmadığında çağrılan bir işlev olan bir kanca sağlar.


Daha meraklıysanız, /usr/lib/command-not-founddosyayı açın ve senaryoya bir göz atın. CommandNotFound python modülü kullanılarak çalışır.

resim açıklamasını buraya girin


4

Bir çift paket command-not-foundve command-not-found-databu özelliği çalıştıran şeydir.

command-not-foundbasitçe command_not_found_handle()bash işlevi için bir işleyicidir ; tarafından sağlanan komutlar ve paketler arasındaki eşleme hakkındaki verileri arar command-not-found-data.


command-not-foundSonra bir kullanıcı her zaman yapılan depoların yerel önbellek üzerinden denetler varsayalım sudo apt-get update.
nerdwaller
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.