Debian Debian 12Debian 13

Debian Linux: пакет установлен, но команда отсутствует в PATH

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

В Debian dpkg может отмечать пакет установленным, но введённая команда возвращает «command not found». Это может быть обычная разница между названием пакета и исполняемого файла, отсутствием /usr/sbin в PATH у пользователя или служебной командой без прямого бинарного файла.

В этой статье
  1. Когда возникает ошибка в Debian и какие условия важны
  2. Причины и как отличить их друг от друга
  3. Пошаговая диагностика и устранение
  4. Проверка результата и действия при неуспехе

#Когда возникает ошибка в Debian и какие условия важны

В Debian dpkg может отмечать пакет установленным, но введённая команда возвращает «command not found». Это может быть обычная разница между названием пакета и исполняемого файла, отсутствием /usr/sbin в PATH у пользователя или служебной командой без прямого бинарного файла.

#Причины и как отличить их друг от друга

Возможная причинаКак узнатьЧто делать
Неверное название программыdpkg -L не содержит исполняемый файл с названием пакета.Найти реальное имя в списке файлов и справке пакета.
Программа есть вне PATHФайл лежит в /usr/sbin или /opt, но command -v ничего не находит.Сравнить PATH и абсолютный путь, не добавлять небезопасные каталоги.
Пакет не полностью установленdpkg-query показывает не ii или отсутствует указанный файл.Исправлять только пакет с подтверждённым состоянием.

#Пошаговая диагностика и устранение

  1. 1. Проверьте, какую команду вы пытаетесь запуститьВ терминале Debian запишите команду без аргументов и выясните, от чьего имени работает сеанс. Для стандартного поиска выполните command -v; пустой результат означает, что оболочка не нашла файл в текущем PATH, но не обязательно что пакет отсутствует.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    id -un
    printf "%s\n" "$PATH"
    command -v ИМЯ_КОМАНДЫ
  1. 2. Сверьте точное имя пакета в базе dpkgВместо ИМЯ_ПАКЕТА подставьте название из apt show или документации разработчика. Команда dpkg-query -W покажет состояние и версию; значение ii соответствует установленному пакету, но пакет может состоять только из библиотек. Если пакета нет, не надо угадывать имя бинарника.
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package} ${Version}\n' ИМЯ_ПАКЕТА
    apt show ИМЯ_ПАКЕТА
  1. 3. Найдите настоящие исполняемые файлыС помощью dpkg -L получите список путей, принадлежащих пакету. Убедитесь, что выбранный файл существует, и проверьте разрешение на запуск; каталоги /usr/bin и /usr/sbin обычно не содержат программ с именем самого пакета. В документации пакета ищите раздел COMMANDS.
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    dpkg -L ИМЯ_ПАКЕТА
    ls -ld /usr/bin /usr/sbin
  1. 4. Проверьте абсолютный путь без изменения настроекЕсли файл обнаружен, например в /usr/sbin, запуск по полному пути позволяет отличить неправильный PATH от недостающих библиотек. Не запускайте привилегированную утилиту с произвольными параметрами: сначала проверьте её help либо man. Если файл помечен неисполняемым, выясните причину установки.
  2. Чтение данных и диагностика
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    /usr/bin/env | grep "^PATH="
    ls -l /ПОЛНЫЙ/ПУТЬ/К/ПРОГРАММЕ
  1. 5. Сравните интерактивную оболочку с sudo и службойУ пользователя и у sudo может быть разный безопасный PATH. Отдельно проверьте Login shell и systemd unit, если ошибка возникает в сервисе: systemd не читает автоматически ваш ~/.bashrc. Не меняйте глобально /etc/profile и /etc/sudoers ради одной программы.
  2. Первая команда обычная; вторая требует sudo и показывает окружение для проверки различий
    Linux · Терминал (Bash)КомандаНужен sudo
    Первая команда обычная; вторая требует sudo и показывает окружение для проверки различий. Не используется изменение sudoers.
    printf "%s\n" "$SHELL"
    sudo -n env | grep "^PATH=" || true
  1. 6. Проверьте, не требуется ли корректная переустановкаЕсли dpkg-query показывает состояние с ошибкой, начните с чтения audit. Не запускайте автоматическое удаление и переустановку на сервере без списка зависящих служб и сохранённой конфигурации. Исправления пакета проводите только после проверки его источника и подробного сообщения об ошибке.
  2. dpkg --audit только читает состояние базы; apt policy не меняет пакеты
    Linux · Терминал (Bash)КомандаНужен sudo
    dpkg --audit только читает состояние базы; apt policy не меняет пакеты.
    sudo dpkg --audit
    apt policy ИМЯ_ПАКЕТА
  1. 7. Подтвердите итог из нужной средыПовторите command -v после корректировки PATH только там, где это необходимо. Затем выполните безопасную проверку версии по документации конкретной программы; для запускаемой службы проверьте её журнал. Если команда по-прежнему отсутствует, сохраните dpkg -L и PATH для предметного разбора.
    Linux · Терминал (Bash)Команда
    Чтение данных и диагностика. Изменений нет.
    command -v ИМЯ_КОМАНДЫ
    printenv PATH

#Проверка результата и действия при неуспехе

Решение подтверждается не установкой наугад, а запуском нужной программы от нужного пользователя по корректному пути без изменения системной безопасности.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.