Итак, когда команда не найдена, каким образом заполняется список «Вы имели в виду:»? Какая программа находит эти альтернативные команды? Что означает: «(главное), (вселенная) ...»? Могу ли я изменить, какая программа находит это?
Итак, когда команда не найдена, каким образом заполняется список «Вы имели в виду:»? Какая программа находит эти альтернативные команды? Что означает: «(главное), (вселенная) ...»? Могу ли я изменить, какая программа находит это?
Ответы:
Если вы посмотрите на его содержимое /etc/apt/sources.list
будет иметь формат
#Archive type Repository URL Distribution Component
deb http://archive.ubuntu.com/ubuntu precise main
Тип архива
Первое слово в каждой строке, deb или deb-src, указывает тип архива. Deb указывает, что архив содержит двоичные пакеты (deb) и т. Д.
URL репозитория
Следующая запись в строке - это URL-адрес хранилища, из которого вы хотите загрузить пакеты.
распределение
«Дистрибутивом» может быть либо кодовое имя релиза / псевдоним (wheezy, jessie, stretch, sid), либо класс релиза (oldstable, stable, testing, unstable) соответственно.
Что означает: «(главное), (вселенная) ...»?
Составная часть
main состоит из пакетов, совместимых с DFSG, пакеты contrib содержат программное обеспечение, совместимое с DFSG, но имеют зависимости, не относящиеся к main, несвободные содержат программное обеспечение, которое не соответствует DFSG и т. д. Совет: проверьте один из URL-адресов хранилища, в нем должна быть папка с именем компонента.
Менеджеры пакетов говорят, apt
что у них будет база данных, которая содержит список всех пакетов в репозиториях, и она достаточно умна, чтобы давать вам предложения.
Ваш менеджер пакетов может быть на eof dpkg (например, Debian, Ubuntu и т. Д.), Apt (например, Debian, Ubuntu и т. Д.), Теперь устарел rpm (например, старые версии Redhat и более новые не запускают его по причинам совместимости), yum (например, . Fedora, CentOS), dnf - дентрифицированная ням (например, новые выпуски Fedora) и так далее. Для более полного списка проверьте это . Вы можете даже увидеть несколько менеджеров пакетов в одном дистрибутиве. Например, в Ubuntu вы можете увидеть dpkg, который кормит / etc / apt / sources / list.
Поэтому, когда вы печатаете
cleaq
Это может сказать
cleaq: no command found. Did you mean clean.
каким образом заполняется список «Вы имели в виду:»?
Это включает в себя сопоставление с образцами пакетов в вашей базе данных менеджера пакетов.
Эта база данных обновляется, когда вы делаете apt-get update
Не уверен насчет
Могу ли я изменить, какая программа находит это?
хоть. Я считаю, что это особенность, которую нельзя изменить. Хотя не уверен
Ссылка : исходный список Debian
/etc/apt
. См. Редактирование. Ну, в общем, вы можете сказать, что ваш менеджер пакетов поддерживает этот список для вас, и вы можете использовать apt менеджера пакетов (в случае Debian, Ubuntu и т. Д.), Rpm (Redhat и его клоны), yum (например, Fedora , CentOS) и dnf (новые выпуски Fedora)
Ведь bash
его поведение определяется функцией оболочки command_not_found_handle
(см. man bash
).
Чтобы увидеть, какое поведение определяется этой функцией, вы можете выполнить:
declare -p -f command_not_found_handle
Вы можете изменить используемую программу, переопределив command_not_found_handle
функцию.
В дистрибутивах на основе Debian (включая Ubuntu) пакетcommand-not-found
обычно устанавливается и доступен как /usr/lib/command-not-found
по ссылке:
Предложить установку пакетов в интерактивных сессиях bash
Этот пакет установит обработчик для command_not_found, который ищет программы, которые в данный момент не установлены, но доступны из репозиториев.
Смотрите также:
man
страница для bash
, особенно КОМАНДА ИСПОЛНЕНИЯ/usr/share/doc/command-not-found/README
(из пакета Debian)