[Gelistirici] Bulunamayan komutlar..
Ozan Çağlayan
ozancag at gmail.com
4 Mar 2008 Sal 22:53:45 EET
Merhabalar.
Bazı dağıtımlar komut satırından girilen komut bulunamadığı takdirde,
komutun mevcut olduğu paketin sistemde yüklü olmadığını ve istenildiği
takdirde "hede hodo" komutuyla yüklenebileceğini bildiriyorlar.
Bunu Ubuntu Gutsy'de bash prompt'u modifiye edip, önceki komutun dönüş
değerine bakıp eğer komut bulunamadığında döndürülen 127'ye eşitse,
prompt'u basmadan önce bu bilgiyi sistemdeki bir db'den elde edip ekrana
basıyor.
Ubuntu Hardy ve Debian ise, aynı işi, bash'i çok şık bir şekilde
yamalayıp, komut bulunmadığında bash'in göstereceği davranışı
command_not_found_handle() isimli bir fonksiyonu /etc/bashrc'e ekleyerek
değiştiriyorlar.
Buildfarm'da çalıştırdığım bir betik ile, halihazırda stable'da bulunan
1877~ adet pakette executable olarak işaretlenmiş dosyaları bir
dictionary içine atıp, cPickle ile serialize ettim. Bu dosyanın
bz2'lenmiş hali 160kb~ civarı.
Örnek:
ozan at cyclope ~ $ qemu-kvm
The program 'kvm' is not installed on your system. You can install it by
typing:
sudo pisi it kvm
bash: qemu-kvm: command not found
ozan at cyclope ~ $
Sistemi denemek ve akabinde görüş/fikir bildirmek için aşağıdaki
adımları -dosya izinlerine dikkat ederek- uygulayabilirsiniz :
1. http://cekirdek.pardus.org.tr/~ozan/command-not-found dosyasını
/usr/bin altına kopyalayın,
2. http://cekirdek.pardus.org.tr/~ozan/binary.db.bz2 dosyasını bunzip2
ile /etc/pisi altına açın,
3. sudo pisi it
http://cekirdek.pardus.org.tr/~ozan/dist/bash-3.2-16-1.pisi ile yamalı
bash'i kurun.
(3. adımda dikkat edin yeni bashrc dosyası /etc/bashrc altına
bashrc.newconfig olarak gelebilir.)
bundan sonra zor kullanmak serbest :)
Sorular:
0. Bu işlevselliğin getirisi/götürüsü nedir?
1. Bu işlevsellik pisi içinde mi olmalı yoksa db dosyası arada sırada
elle bump edilecek sıradan bir paket mi olmalı?
İlginize teşekkürler :)
--
Ozan ÇAĞLAYAN
http://cekirdek.pardus.org.tr/~ozan
<ozan_at_pardus.org.tr>
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi