Bagaimana shell menemukan program Anda
Saat Anda mengetikkan foo
command-line pada shell Anda, itu akan mencari foo
set path yang ditentukan oleh PATH
variabel lingkungan shell Anda (yang dapat Anda periksa dengan menjalankan echo $PATH
).
Jadi tebakan saya simpe: paket asterisk yang Anda miliki sebelum menginstal ulang memiliki asterisk
biner yang terletak di tempat yang terdaftar di pengguna Anda $PATH
dan paket yang diinstal kemudian menginstalnya di tempat lain.
Anda dapat memeriksa ini dengan mudah dengan mengkorelasikan echo $PATH
di shell Anda dengan output
$ dpkg -L asterisk | grep bin/asterisk
Bagaimanapun, Anda dapat menjalankan program biner Anda dengan menentukan pathname lengkapnya.
Caching resitution pathname di shell
Kemungkinan lain, meskipun kecil kemungkinannya, adalah caching resolusi pathname. Kerang interaktif, bash
termasuk, hanya mencari nama program telanjang melalui daftar $PATH
sekaligus, dan kemudian ingat lokasi lengkap yang mereka temukan. Jika Anda kemudian menghapus program dari lokasi itu, shell tidak akan dapat menjalankannya lagi, bahkan jika file program sekarang dapat diakses di beberapa tempat lain yang tercantum dalam $PATH
.
Anda dapat membantu shell dengan menjalankannya hash -r
(silakan lihat help hash
di bash
prompt Anda ).
Miscellanea
Perhatikan bahwa dalam kasus umum, ketika Anda melakukannya
apt-get remove --purge asterisk
apt-get install asterisk
yaitu, lakukan siklus hapus + instal, versi paket yang dikenal dengan sistem APT berdasarkan arsip yang disediakan untuknya telah diinstal. Artinya, jika Anda telah menginstal versi buatan tangan Anda langsung melalui dpkg -i ...
, APT tidak akan berusaha untuk menemukan dan menginstal versi yang sama ini ketika Anda kemudian menghapus dan menginstal paket dengan nama yang sama.
Jika Anda ingin membuat asterisk
paket buatan tangan Anda tersedia untuk instalasi umum, Anda harus memelihara repositori Debian lokal yang tepat ( reprepro
juga alat yang paling sederhana untuk digunakan, lihat juga apt-ftparchive
), buat diketahui oleh sistem APT lokal Anda dan juga mungkin membuat paket dari repositori yang disukai menggunakan preferensi APT .
/usr/bin
tidak ada di PATH saya. Baru saja menambahkannya di .bashrc, yang menyelesaikannya. Terima kasih atas inspirasi dan jawaban yang luas dan luar biasa! Anda membuat hari saya!