Bagaimana cara mengimplementasikan saran instalasi paket pada Debian?


21

Saya perhatikan saat di Ubuntu, jika saya mengetik berikut ini:

mc

dan itu tidak diinstal, saya mendapatkan pesan di bawah ini:

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

Namun dalam Debian, itu tidak tersedia. Itu hanya memberikan pesan "-bash: / usr / bin / mc: Tidak ada file atau direktori". Bagaimana saya bisa menerapkan fungsi yang sama di baris perintah bash di Debian? Ya, saya tahu bahwa jika itu adalah saran paket yang saya inginkan, saya bisa melakukan pencarian regex menggunakan pencarian apt-cache . Namun saya berharap untuk saran sederhana segera mengetik nama program.

Sesuai diskusi, fungsi ini disediakan oleh paket yang tidak ditemukan . Namun bahkan setelah menginstalnya, dan juga menginstal paket bash-completion, ini tidak tersedia di shell bash Debian.

Jawaban:


22

Alasan pemasangan command-not-foundtidak mulai memberikan saran untuk paket yang tidak diinstal adalah karena saya telah melewatkan pemberitahuan kecil dari dpkg sebagai bagian dari pemasangan.

Seseorang seharusnya menjalankan perintah update-command-not-foundsegera setelah dijalankan apt-get install command-not-found. Sebenarnya dpkg meminta untuk menjalankan perintah ini.


1
Saya juga harus menjalankan apt-get updatesebelum menjalankan update-command-not-foundlalu membuka sesi bash baru atau source /etc/bash.bash.rc.
jordanbtucker

Saya melakukan apt updatesebelum apt install command-not-foundlalu update-command-not-found, dan kemudian memulai shell baru, tetapi menemukan saya membutuhkan yang lain apt updatedan mungkin update-command-not-foundsebelum mulai bekerja.
Dave X

9

Paket debian tampaknya tidak lengkap. README mengatakan bahwa Anda harus sumber /etc/bash_command_not_founddi .bashrc. Anehnya file itu tidak termasuk dalam paket.

command-not-foundPaket debian didasarkan pada paket ubuntu . Paket ubuntu tampaknya lebih lengkap dalam hal itu.

Konten dari versi ubuntu bash_command_not_found :

command_not_found_handle() {
  if  [ -x /usr/lib/command-not-found ]; then
     /usr/lib/command-not-found -- "$1" 
     return $?
  else
     return 127
  fi        
}

Tambahkan garis-garis itu ke ~/.bashrc(atau /etc/bash.bashrc) Anda dan command-not-foundfitur tersebut akan berfungsi.


1
README salah, Debian tidak menggunakan file itu. Handler termasuk dalam /etc/bash.bashrc (setidaknya dalam Debian 9) yang dijalankan secara otomatis oleh shell interaktif Bash ketika mereka mulai.
hackerb9

Menginstal command-not-foundpaket (versi 0.2.38-4 dari debian.org) ke MX Linux (Debian 9 Stretch base) tidak mengubah /etc/bash.bashrc dan selanjutnya tidak berfungsi sampai menambahkan baris dalam jawaban ini.
Xen2050
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.