Команда не найдена linux что делать
Обновлено: 21.11.2024
Как пользователь Linux, вы можете скомпилировать утилиты и установить их из командной строки с помощью программы make. Однако иногда пользователи получают сообщение об ошибке «make: command not found». взамен.
В этой статье вы узнаете, что вызывает эту ошибку и как ее решить различными способами.
Причина ошибки «make: command not found»
Пакет make — это базовый пакет Linux, который обычно входит в состав большинства дистрибутивов Linux по умолчанию, но не всегда. Когда это происходит, попытка пользователя компилировать или создавать пакеты приводит к ошибке.
Чтобы устранить эту ошибку, вы можете установить пакет make и восстановить возможности сборки и компиляции системы.
Предпосылки
- Ubuntu или любой другой дистрибутив на базе Linux
- Терминальный доступ
- Учетная запись пользователя с правами sudo или root.
Примечание. Хотя команды, используемые в этом руководстве, предназначены специально для системы Ubuntu, все методы также подходят для любой другой системы на базе Linux.
Проверьте наличие make в вашей системе
Прежде всего вам нужно проверить, установлена ли в вашей системе команда make. Для этого вам нужно запустить следующую команду ls, чтобы увидеть каталог /usr/bin/make.
Вывод показывает, что каталог по умолчанию для команды make common не существует в вашей системе. Это означает, что марка отсутствует в вашей системе. Чтобы убедиться в этом, выполните следующую команду.
Приведенный выше вывод подтверждает, что в вашей системе отсутствует пакет make.
Установить пакет make
Обновите свою систему
Обновите свою систему, чтобы убедиться, что ваши репозитории обновлены.
Установите команду make
После завершения обновления системы выполните следующую команду apt, чтобы установить пакет make.
После установки make запустите приведенную выше команду списка или исходную команду, чтобы проверить, решена ли проблема.
Установите пакет build-essential
Если вы по-прежнему сталкиваетесь с некоторыми проблемами, вы можете установить пакет build-essential. Если вы все еще сталкиваетесь с некоторыми проблемами, вы можете установить пакет build-essential. build-essential — это метапакет, что означает, что он устанавливает список других пакетов в качестве зависимостей. Все необходимые пакеты для сборки и компиляции включены в пакет build-essential, поэтому пакет make по умолчанию входит в комплект build-essential.
Ошибка make command not found теперь исправлена, и вы можете продолжить компиляцию своего приложения.
Большую часть времени в ОС Linux мы запускаем команды и программы, вводя команды в программе терминала. Однако иногда, когда мы запускаем команду, мы получаем ошибку «bash: команда не найдена». Может быть много причин для получения этой ошибки. Иногда при минимальной установке ОС мы не видим большую часть команд в нашей системе. Как и при минимальном развертывании, устанавливаются только те пакеты, которые необходимы для запуска операционной системы, а остальные пропускаются. Хотя иногда программа может быть уже установлена, но повреждена. Эта ошибка также возникает, если вы неправильно набираете команду. Поэтому нам необходимо определить причины, вызывающие эту ошибку, а затем устранить ее.
В этой статье мы объясним возможные причины появления ошибки «команда bash не найдена» при попытке запустить команду в Терминале. Наряду с этим мы также обсудим некоторые возможные решения, которые вы должны попробовать, чтобы удалить ошибку и успешно запустить команды и программы.
Команда Bash не найдена: распространенные причины и решения
Ошибка в написании
Ошибка в написании команды — это распространенная ошибка, которую допускают пользователи при запуске команды в оболочке. Все команды для Linux и UNIX чувствительны к регистру, и мы должны вводить команду правильно.
Решение
- Орфографическая ошибка
- Пробелы среди команд и различные параметры
- Неправильная замена символов, таких как 1, на I или l.
- Замена прописных букв строчными
Пакет не установлен
Иногда вы получаете сообщение об ошибке «команда не найдена», потому что пакет не установлен в вашей системе или поврежден. Чтобы проверить, установлен ли пакет в вашей системе, выполните следующую команду в Терминале:
Он вернет вывод с результатами, показывающими, установлен ли пакет в вашей системе или нет. Например, вы хотите запустить команду apt-fast и получаете сообщение об ошибке «команда не найдена», затем выполните следующую команду, чтобы проверить, установлена ли она в вашей системе:
Решение
Если пакет отсутствует в системе, вам придется установить его с помощью команды apt-get следующим образом:
В приведенном выше случае это будет:
После установки пакета попробуйте выполнить команду, чтобы проверить, устранена ли ошибка.
Неверный путь
Еще одна важная причина, по которой вы получаете сообщение об ошибке «команда bash не найдена», заключается в том, что искомый путь неверен. Когда пользователь вводит команду, система ищет ее во всех известных ей местах, а если не находит команду в искомых местах, возвращает ошибку.
Решение
Шаг 1. Найдите путь команды
Сначала найдите путь к команде, где она установлена, с помощью команды «what» или «whereis». Например, вы пытаетесь запустить команду apt-fast, и она выдает ошибку «команда не найдена». Выполните следующую команду, чтобы найти расположение команды apt-fast.
Запишите путь в приведенном выше выводе, а затем определите, входит ли указанный выше путь в ваш текущий путь поиска или нет.
Шаг 2. Найдите текущий путь поиска
Чтобы просмотреть текущий путь поиска, выполните в Терминале следующую команду:
PATH (написано заглавными буквами) указывает оболочке расположение для поиска исполняемых файлов. Большинство команд обычно находятся в путях /usr/bin, /bin и /usr/local/bin. Когда мы запускаем любую команду, она фактически запускается из этих каталогов.
Шаг 3. Добавьте путь команды к пути поиска
Если путь к команде не входит в текущий путь поиска вашей оболочки, попробуйте добавить его в путь поиска следующим образом:
Из результатов поиска «который» мы обнаружили, что apt-fast установлен в /usr/sbin. Чтобы добавить /usr/sbin к текущему пути поиска, используйте следующую команду:
Теперь подтвердите добавленный вами путь с помощью следующей команды:
Чтобы сохранить изменения, выполните следующую команду в Терминале
Теперь еще раз попробуйте запустить команду, для которой вы получили сообщение об ошибке, и посмотрите, устранена ли ошибка.
Ошибка Bash command not found встречается почти у каждого системного администратора и пользователя. В этой статье мы узнали о нескольких решениях, которые вы должны попробовать, чтобы устранить эту ошибку.
Об авторе
Карим Буздар
Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов. Он ведет блог на LinuxWays.
Вы используете Linux и видите ошибку «Команда не найдена» при попытке выполнить команду? Пришло время узнать, почему.
Мы вместе рассмотрим эту ошибку и поймем, как ее исправить.
В чем причина ошибки команда не найдена?
Ошибка «Команда не найдена» вызвана тем, что Linux не может найти в вашей системе команду, которую вы пытаетесь выполнить. Когда вы запускаете команду, Linux ищет двоичные файлы в списке каталогов, указанных в переменной среды PATH, это позволяет выполнять команду без указания ее полного пути.
В этой статье мы рассмотрим пример этой ошибки, и я покажу вам, как ее исправить.
Вы также поймете, как Linux (или Unix-подобные системы) ищет команды, когда пользователь их выполняет.
Переменная среды PATH
Системы Linux настроены с предопределенным набором переменных среды, необходимых операционной системе для правильной работы.
Переменная среды PATH — одна из самых важных переменных среды в системе Linux. Он содержит список каталогов, используемых Linux для поиска команд, которые можно выполнять без указания их полного пути.
Вы можете использовать команду echo, чтобы увидеть значение переменной PATH:
В списке каталогов внутри PATH вы можете увидеть домашний каталог моего текущего пользователя (пользователя ec2), а также такие каталоги, как /usr/bin.
Давайте посмотрим на некоторые команды из каталога /usr/bin. Чтобы ограничить список команд, возвращаемых ls, я просто ищу команды, начинающиеся с ch (для этого я использую подстановочный знак ch*):
В качестве примера возьмем команду chmod.
Если я использую команду which для проверки полного пути к команде chmod, я получаю следующее:
Как видите, это точно такой же каталог в ПУТИ, /usr/bin.
Тот факт, что /usr/bin/ находится в PATH, позволяет нам выполнять команду chmod без указания полного пути.
Где определяется PATH в Linux?
Интересно, где определена переменная среды PATH?
Обычно он определяется где-то в вашем домашнем каталоге, а именно в одном из скрытых файлов, используемых в Linux для настройки вашей пользовательской среды: файле .bashrc.
В Linux точка перед именем файла означает, что файл скрыт. Его не видно, если мы выполним команду ls без флагов. Он виден только в том случае, если вы передадите флаг -a команде ls.
Файл .bashrc на самом деле представляет собой сценарий оболочки, который запускается, когда Linux инициализирует интерактивную оболочку. Это позволяет вам настраивать среду так, как вы хотите, каждый раз, когда вы открываете оболочку.
Если я посмотрю файл .bashrc в своей системе, то увижу следующие строки:
Как видите, переменная PATH определена, и затем она становится доступной для любых дочерних процессов этой оболочки с помощью команды экспорта.
Если вы хотите добавить еще один каталог в PATH, вы можете просто обновить файл .bashrc.
Это обычное требование, если вы загружаете внешние инструменты, не являющиеся частью операционной системы Linux, и хотите иметь возможность запускать их из своей оболочки, не указывая полный путь к ним.
Одним из распространенных сценариев является добавление Java в PATH Linux после загрузки JDK (Java Development Kit) в вашу систему.
PATH, настроенный на общесистемном уровне
Когда я вижу значение переменной PATH в своей системе, я получаю следующее:
Что-то мне непонятно…
… в файле .bashrc в домашнем каталоге моего пользователя я вижу только:
Итак, откуда берутся следующие каталоги, если их нет в файле .bashrc моего пользователя?
Они должны быть определены где-то на уровне системы, а не только на уровне пользователя.
В Linux общесистемные файлы конфигурации находятся в каталоге /etc. Например, в /etc/bashrc.
Давайте выясним, откуда взялось это начальное значение PATH, используя рекурсивную группу grep от имени пользователя root в каталоге /etc.
Единственный результат — файл конфигурации демона SSH. Согласно комментарию в этом файле, демон скомпилирован со значением PATH, которое я вижу в своей системе.
Вот откуда берется значение PATH!
Как исправить ошибку Bash «команда не найдена»?
До сих пор мы видели, что такое PATH…
… но как это поможет нам исправить ошибку «команда не найдена»?
Прежде чем рассматривать, как ошибка command not found может быть связана с PATH, давайте рассмотрим простую причину.
Прежде чем выполнять какие-либо другие проверки, убедитесь, что вы не ошиблись в написании команды при ее выполнении.
В основном это может происходить с теми, кто плохо знаком с Linux и изучает команды.
Если вы ввели команду правильно, продолжайте…
- Команда доступна в системе, но ее каталог отсутствует в PATH.
- Эта команда вообще недоступна в системе.
Сценарий 1 может возникнуть, если вы загружаете определенный инструмент в свою систему Linux и не добавляете каталог, в котором находится двоичный файл, в переменную среды PATH.
Чтобы обновить значение PATH, необходимо изменить файл .bashrc.
Допустим, текущее значение PATH:
И я хочу добавить к нему каталог /opt/install, потому что именно там находится команда, которую я хочу выполнить. Эта строка будет выглядеть так:
Порядок каталогов в PATH важен, первый каталог имеет более высокий приоритет, чем второй каталог, и так далее.
Итак, если вы хотите, чтобы каталог /opt/install был первым в поиске при выполнении команды, определение PATH будет таким:
Обратите внимание на доллар $ перед PATH. Это ДЕЙСТВИТЕЛЬНО важно, поскольку относится к существующему значению переменной PATH.
Пропуск знака $ в этой строке может привести к катастрофическим последствиям для вашей системы. Это потому, что оболочка больше не знает, где найти основные команды, такие как ls, cd, vim и т. д.…
В следующем разделе мы рассмотрим сценарий 2, в котором команда недоступна в вашей системе Linux.
Выполнение команды, недоступной в системе
Теперь давайте посмотрим, что происходит, когда мы выполняем команду, недоступную в системе Linux.
Возьму, например, команду rsync:
Как узнать, появляется ли ошибка «команда не найдена» из-за того, что команды rsync нет в PATH или из-за того, что ее вообще нет в системе?
Я могу использовать диспетчер пакетов моего дистрибутива Linux. В данном случае я использую CentOS и, следовательно, воспользуюсь командой yum, чтобы узнать, установлен ли пакет rsync:
Эта команда не возвращает никаких результатов, это означает, что rsync недоступен в системе.
Еще один вариант — использовать команду RPM для запроса пакетов RPM, установленных в моей системе Linux:
Опять нет результатов для пакета rsync.
Итак, давайте установим его!
Команда поиска yum возвращает результат для rsync:
И мы можем установить пакет rsync с помощью команды «yum install»:
И теперь, если я попытаюсь снова выполнить команду rsync, чтобы проверить ее версию:
Команда работает хорошо!
Заключение
- Команда написана с ошибкой.
- Команда доступна в системе, но ее каталог отсутствует в PATH.
- Эта команда недоступна в системе.
Я также объяснил, как работает переменная среды PATH и насколько она важна для системы Linux.
APT (Advanced Package Tools) — это менеджер пакетов, используемый для управления пакетами операционных систем на основе Debian и производных от них, таких как Ubuntu. APT можно использовать для установки, обновления ОС и удаления приложений. При работе с APT часто встречается ошибка «команда apt-get не найдена».
Эта ошибка возникает при попытке установить другие операционные системы, не поддерживающие APT. Использование команды с соответствующими операционными системами решит проблему.
В этой статье мы подробно рассмотрим эту ошибку и ее решения.
Что такое команда apt-get?
apt-get — это инструмент командной строки, используемый для установки, обновления и удаления пакетов Linux. Он извлекает информацию о пакетах из аутентифицированных источников для их установки или удаления вместе с их зависимостями.
Самые распространенные команды в apt-get следующие:
- sudo apt-get install (для установки пакета)
- sudo apt-get remove (удаление пакета)
- sudo apt-get update (для обновления пакета)
- sudo apt-get upgrade (для обновления пакета)
- apt-get help (чтобы узнать больше о команде)
Здесь sudo используется для предоставления вам привилегий безопасности суперпользователя.
Что такое команда apt-get не найдена?
Как упоминалось ранее, при попытке установить или изменить пакет в Linux с помощью команды apt-get может появиться эта ошибка. Это может выглядеть примерно так –
Давайте рассмотрим причины этой проблемы.
Операционная система не поддерживается
Команда apt-get работает только в Debian, Ubuntu и их производных. Если вы пытаетесь установить операционные системы на базе rpm, такие как Fedora, RHEL и CentOS, эта команда не сработает. В результате вы получите сообщение об ошибке.
Дистрибутивы, поддерживающие apt-get
Чтобы узнать имя дистрибутива Linux, введите следующую команду –
Пакет недоступен
Если вы используете операционную систему, совместимую с командой apt-get, проверьте доступность APT. Введите команду locate apt-get, чтобы проверить, установлен ли он в вашей системе. Команда должна вернуть следующий вывод –
Если ничего не возвращается, это означает, что пакет APT не установлен. Вам нужно установить его вручную, чтобы все заработало.
Как решить, что команда apt-get не обнаружила ошибку?
Эта команда apt-get не нашла ошибку, используя следующий метод:
1) Использование правильного диспетчера пакетов
Первым шагом для решения проблемы является использование правильных дистрибутивов Linux с помощью команды apt-get. Не пытайтесь загружать те, которые не поддерживает APT, а именно:
В таких дистрибутивах, как Fedora, CentOS и RHEL, Yum используется в качестве диспетчера пакетов по умолчанию. Введите следующую команду, чтобы установить их с помощью Yum —
macOS X использует Homebrew в качестве диспетчера пакетов по умолчанию. Вы можете использовать его, выполнив команду ниже –
Для Arch Linux вы должны использовать менеджер пакетов Pacman следующим образом –
2) Загрузка последнего пакета APT
Еще один способ устранить эту ошибку — загрузить последний пакет APT, совместимый с вашей системой. Вам необходимо загрузить файл .deb в соответствии с архитектурой вашей системы, которая может быть 32-разрядной или 64-разрядной операционной системой.
Загрузить файл .deb из файла «/etc/apt/sources.list». Соответствующие ссылки для установки и обновления пакетов находятся внутри этого файла. Вы можете проверить источник загрузки, выполнив команду $cat /etc/apt/sources.list.
В источнике загрузки перейдите в каталог «/pool/main/a/apt/», найдите файл .deb, подходящий для вашей архитектуры, и загрузите его. После загрузки файла установите его с помощью команды dpkg –
3) Переустановка ОС
После установки пакета APT проверьте каталог /usr/bin/, чтобы убедиться, что он установлен правильно. Если файл пуст, снова запустите команду locate apt-get. Если результат не отображается, нет другой альтернативы, кроме как переустановить операционную систему. Это может решить проблему.
Убедитесь, что все команды правильно используют ключевое слово sudo access. Ошибка apt-get может возникнуть, если системный администратор не разрешает вам выполнять команду apt-get в вашей системе.
Читайте также: