Quindi, quando non viene trovato un comando, in che modo viene popolata la lista "intendevi:"? Quale programma trova questi comandi alternativi? Qual è il significato di: "(principale), (universo) ..."? Posso cambiare quale programma li trova?
Quindi, quando non viene trovato un comando, in che modo viene popolata la lista "intendevi:"? Quale programma trova questi comandi alternativi? Qual è il significato di: "(principale), (universo) ..."? Posso cambiare quale programma li trova?
Risposte:
Se guardi il contenuto di /etc/apt/sources.list
esso avrà il formato
#Archive type Repository URL Distribution Component
deb http://archive.ubuntu.com/ubuntu precise main
Tipo di archivio
La prima parola su ogni riga, deb o deb-src, indica il tipo di archivio. Deb indica che l'archivio contiene pacchetti binari (deb) e così via.
URL del repository
La voce successiva sulla riga è un URL per il repository da cui si desidera scaricare i pacchetti.
Distribuzione
La 'distribuzione' può essere rispettivamente il nome / alias del codice di rilascio (wheezy, jessie, stretch, sid) o la classe di rilascio (oldstable, stable, testing, unstable) rispettivamente.
Qual è il significato di: "(principale), (universo) ..."?
Componente
main è costituito da pacchetti conformi a DFSG, i pacchetti contrib contengono software conforme a DFSG, ma hanno dipendenze non principali, non contengono software non conforme a DFSG e così via. Un consiglio: controlla uno degli URL del repository, dovrebbe avere una cartella con il nome del componente.
I gestori di pacchetti sostengono apt
che avrà un database che contiene un elenco di tutti i pacchetti nei repository ed è abbastanza intelligente da darti suggerimenti.
Il gestore dei pacchetti potrebbe essere su eof dpkg (ad es. Debian, Ubuntu ecc.), Apt (ad es. Debian, Ubuntu ecc.), Ora rpm obsoleto (ad es. Le versioni precedenti di Redhat e quelle nuove non danno il via per ragioni di compatibilità), yum (ad es. Fedora, CentOS), dnf - yum dentificato (es. Nuove versioni di Fedora) e così via. Per un elenco più completo controlla questo . Potresti anche vedere più gestori di pacchetti in una distribuzione. Ad esempio in Ubuntu, potresti vedere dpkg che alimenta / etc / apt / sources / list.
Quindi quando digiti
cleaq
Si può dire
cleaq: no command found. Did you mean clean.
in che modo viene popolata la lista "volevi dire:"?
Ciò comporta una corrispondenza del modello con i pacchetti nel database del gestore pacchetti.
Questo database viene aggiornato quando lo si esegue apt-get update
Non sono sicuro
Posso cambiare quale programma li trova?
anche se. Credo che questa sia una funzionalità che non può essere modificata. Non sono così sicuro però
Riferimento : Debian SourceList
/etc/apt
. Vedi la modifica .. Beh, in generale puoi dire che il tuo gestore di pacchetti mantiene questo elenco per te e il tuo gestore di pacchetti può essere apt (nel caso di Debian, Ubuntu ecc.), Rpm (Redhat e i suoi cloni), yum (es. Fedora , CentOS) e dnf (Nuove versioni di Fedora)
Per bash
, il suo comportamento è governato dalla funzione shell command_not_found_handle
(Vedi man bash
).
Per vedere quale comportamento è definito da quella funzione, puoi emettere:
declare -p -f command_not_found_handle
È possibile modificare il programma utilizzato ridefinendo la command_not_found_handle
funzione.
Nelle distribuzioni basate su Debian (incluso Ubuntu), il pacchettocommand-not-found
è comunemente installato e disponibile come /usr/lib/command-not-found
Dal link:
Suggerisci l'installazione di pacchetti in sessioni bash interattive
Questo pacchetto installa il gestore per command_not_found che cerca i programmi non attualmente installati ma disponibili dai repository.
Guarda anche:
man
pagina per bash
, in particolare ESECUZIONE DEI COMANDI/usr/share/doc/command-not-found/README
(dal pacchetto Debian)