Предложить установку пакета, если команда не найдена в Linux
Предложите установку пакетов для команд, которых нет в Linux.
Как вы, возможно, уже знаете, когда мы запускаем недоступную или нераспознанную команду в Linux, мы получаем сообщение об ошибке — "bash: команда не найдена". Проблема в том, что некоторые из нас не знают, какие пакеты предоставляют эту конкретную команду. Уже нет! Сегодня я наткнулся на полезную утилиту под названием "command-not-found", которая помогает вам, предлагая установку пакетов при запуске недоступной команды в Linux.
Например, предположим, что вы хотите запустить команду с именем «leafpad», которая недоступна в вашей системе Linux. Вы не уверены, какие пакеты предоставляют эту команду. Здесь на помощь приходит утилита «команда не найдена».
Утилита «команда не найдена» автоматически выполняет поиск в официальных репозиториях при вводе нераспознанной или недоступной команды. Он использует кэш существующих программ и связанных с ними пакетов, чтобы помочь пользователям в повседневной работе с командной строкой.
Установите утилиту «команда не найдена» в Linux
Утилита «команда не найдена» доступна в AUR. Таким образом, вы можете установить его с помощью помощников AUR, таких как Paru или Yay.
paru -S command-not-found
Или,
yay -S command-not-found
Кроме того, пакет pkgfile предоставляет ловушку «команда не найдена». Просто установите pkgfile, чтобы использовать утилиту «команда не найдена».
sudo pacman -S pkgfile
После установки отредактируйте файл .bashrc:
vi ~/.bashrc
Добавьте следующую строку в конце, чтобы включить ее.
source /usr/share/doc/pkgfile/command-not-found.bash
Обновите изменения, внесенные с помощью команды:
source ~/.bashrc
В Ubuntu и ее производных он предустановлен.
На тот случай, если он еще не установлен, вы можете установить его следующим образом.
sudo apt update
sudo apt install command-not-found
Общесистемный кэш пуст. Возможно, вы захотите запустить «apt-file update» от имени пользователя root, чтобы обновить кеш.
После установки вам может потребоваться выполнить следующие команды от имени root, чтобы обновить общесистемный кеш.
sudo update-command-not-found
sudo apt-file update
Предложить установку пакета, если команда не найдена в Linux
Теперь запустите любую недоступную команду, например leafpad:
Он предложит вам, какой пакет предоставляет эту команду. Вот результат работы моей системы Arch Linux.
$ leafpad
Command 'leafpad' not found, but can be installed with:
sudo snap install leafpad
Как вы видите в приведенном выше выводе, команда «leafpad» предоставляется пакетом Leafpad-0.8.18.1-5.
Давайте попробуем другую команду в Ubuntu:
$ emacs
The program 'emacs' can be found in the following packages:
* emacs24
* emacs24-nox
* e3
* emacs23
* emacs23-lucid
* emacs23-nox
* emacs24-lucid
* jove
Try: sudo apt-get install <selected package>
Предложить установку пакета, если команда не найдена в Linux
Это всего лишь пример. Эта утилита предложит установку пакетов при запуске любой недоступной команды. После удаления этой утилиты она больше ничего не предложит. Он просто отобразит вывод, как показано ниже.
"bash: emacs: command not found"
Надеюсь это поможет.