Поиск по сайту:

Предложить установку пакета, если команда не найдена в 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"

Надеюсь это поможет.

Статьи по данной тематике