Tidak ada perintah 'bla' ditemukan, maksud Anda :?

7

Jadi, ketika sebuah perintah tidak ditemukan, apa artinya daftar "apakah maksud Anda:" terisi? Program apa yang menemukan perintah alternatif ini? Apa arti dari: "(utama), (semesta) ..."? Bisakah saya mengubah program mana yang menemukan ini?


sumber
1
Apakah Anda bertanya program apa yang menawarkan fungsionalitas ini atau yang melakukannya dalam kasus Anda? Jika yang terakhir, Anda memberikan terlalu sedikit informasi. Apa shell yang Anda gunakan, untuk memulai?
techraf
Saya menggunakan bash tetapi saya benar-benar hanya bermaksud dalam kasus yang paling umum. Program apa yang menyediakan ini dan apakah ada cara yang cukup konsisten untuk menentukan program di sebagian besar shell?
Ini juga sangat tergantung pada cita rasa / distro Unix / Linux yang Anda gunakan tentang bagaimana fitur tersebut diimplementasikan.
Randall

Jawaban:

2

Jika Anda melihat isinya /etc/apt/sources.listakan memiliki format

#Archive type  Repository URL                   Distribution Component
 deb           http://archive.ubuntu.com/ubuntu precise      main

Jenis arsip

Kata pertama pada setiap baris, deb atau deb-src, menunjukkan tipe arsip. Deb menunjukkan bahwa arsip berisi paket biner (deb), dan sebagainya.

URL repositori

Entri berikutnya pada baris adalah URL ke repositori tempat Anda ingin mengunduh paket.

Distribusi

'Distribusi' dapat berupa nama kode alias / alias (wheezy, jessie, stretch, sid) atau masing-masing kelas rilis (oldstable, stable, testing, unstable).

Apa arti dari: "(utama), (semesta) ..."?

Komponen

main terdiri dari paket-paket yang sesuai dengan DFSG, paket-paket contrib berisi perangkat lunak yang sesuai dengan-DFSG, tetapi memiliki dependensi yang tidak ada di dalam paket utama, tidak mengandung perangkat lunak yang tidak sesuai dengan DFSG dan sebagainya. Kiat - Periksa salah satu url repositori, ia harus memiliki folder dengan nama komponen.

Manajer paket mengatakan aptakan memiliki database yang berisi daftar semua paket di repositori dan cukup pintar untuk memberi Anda saran.

Manajer paket Anda mungkin menggunakan dpkg (misalnya Debian, Ubuntu dll), apt (misalnya Debian, Ubuntu dll), sekarang rpm usang (misalnya versi Redhat yang lebih lama dan yang lebih baru tidak menendang untuk alasan kompatibilitas), yum (mis. Fedora, CentOS), dnf - yum berbekal gigi (mis. Rilis Fedora Baru) dan sebagainya. Untuk daftar yang lebih lengkap periksa ini . Anda bahkan mungkin melihat beberapa manajer paket dalam satu distribusi. Sebagai contoh di Ubuntu, Anda mungkin melihat dpkg yang mengumpankan / etc / apt / sources / list.

Jadi saat Anda mengetik

cleaq

Bisa dikatakan

cleaq: no command found. Did you mean clean.

dengan cara apa daftar "apakah maksud Anda:" terisi?

Ini melibatkan kecocokan pola dengan paket-paket di basis data manajer paket Anda.

Database ini diperbarui ketika Anda melakukan apt-get update

Tidak yakin tentang itu

Bisakah saya mengubah program mana yang menemukan ini?

meskipun. Saya percaya ini adalah fitur yang tidak dapat diubah. Tapi tidak begitu yakin

Referensi : Debian SourceList

sjsam
sumber
1
@vondirac: Ya sources.list ada di dalam /etc/apt. Lihat hasil edit .. Nah, secara umum Anda bisa mengatakan manajer paket Anda menyimpan daftar ini untuk Anda dan manajer paket Anda bisa tepat (dalam hal Debian, Ubuntu dll), rpm (Redhat dan klonnya), yum (mis. Fedora , CentOS) dan dnf (rilis Fedora baru)
sjsam
Anda dapat meningkatkan jawaban ini dengan referensi ke beberapa doco Ubuntu .
JdeBP
4

Sebab bash, perilakunya diatur oleh fungsi shell command_not_found_handle(Lihat man bash).

Untuk melihat perilaku apa yang didefinisikan oleh fungsi itu, Anda dapat mengeluarkan:

declare -p -f command_not_found_handle

Anda dapat mengubah program mana yang digunakan dengan mendefinisikan kembali command_not_found_handlefungsi.

Di distro berbasis Debian (termasuk Ubuntu), paketcommand-not-found ini biasanya diinstal, dan tersedia sebagai /usr/lib/command-not-found Dari tautan:

Sarankan pemasangan paket dalam sesi bash interaktif

Paket ini akan menginstal handler untuk command_not_found yang mencari program yang saat ini tidak diinstal tetapi tersedia dari repositori.

Lihat juga:

Randall
sumber
0

Ini bukan fitur standar kerang Linux. Setidaknya ada dua kemungkinan:

  • zsh mempertahankan daftar sarannya sendiri
  • proyek thefuckmenawarkan satu lagi
techraf
sumber