Вопрос или проблема
Меня зовут Джеро, и я рад вас встретить. Как я уже сказал, я начинающий, но если я могу помочь, я здесь.
Моя проблема: из-за моей новой работы мне нужно работать с GNU-Linux. Я посмотрел довольно 50 видеоуроков и… я не знаю, как установить программное обеспечение из терминала или сделать это правильно, по крайней мере, потому что, когда я перезапускаю терминал, изменения не сохраняются! Я все это делал под пользователем root, а не с помощью sudo. Хорошо, я расскажу вам все. Я приведу пример, но, пожалуйста, не сосредоточьтесь на конкретном программном обеспечении, мне нужен более обобщенный метод. Я пытаюсь установить modpoll, программное обеспечение для эмуляции коммуникаций ModBus.
Я скачал его из интернета, так что все должно быть в порядке. Он приходит в zip-архиве, который после распаковки показал файл .tgz. Используя
tar -xvzf modpoll.3.15.tgz
Распакованный файл показывает другие директории с названиями архитектур версий GnU-Linux (X86, ARM, i686…). У меня нет представления, какая из них моя, поэтому в конце концов я попробовал установить все. Это кажется простым, зайдите в одну из них и введите
modpoll
Я должен сообщить, что usb-адаптер для последовательного порта был правильно установлен и подключен в момент, когда я пытался запустить modpoll. Что ж, здесь есть проблема, так как устройство не распознается, даже когда я уже проверил его в /dev, подключая и отключая устройство usbtty0 (так что все было правильно). Но это сейчас не моя проблема.
Следующее, как я уже прочитал, это создать постоянный путь к бинарным файлам, чтобы Linux мог их найти, когда я в конечном итоге вызову modpoll из любого места в моем терминале. Итак, я ввел
PATH=$PATH:/home/user/Apps/modpoll (путь к бинарным файлам modpoll в моей системе)
Тогда, казалось, все работает правильно, поскольку, по крайней мере, modpoll сообщает об ошибке связи с устройством, и мне не нужно оставаться в директориях установки modpoll. Просто из моего домашнего каталога я могу вызвать modpoll, и он там.
Я повторяю, я вошел как root, я ввел su, затем пароль root, и после этого сделал все, что я упомянул, но, когда я перезапускаю терминал и вызываю modpoll, тогда “неизвестная команда”…
Перезапуск Linux, и, как и раньше, команда modpoll не сохранена: что я делаю не так?
Большое спасибо заранее и хорошего дня!
Ваши навыки действительно не дотягивают до основ, поэтому ответ не будет коротким, и решение не будет быстрым для вас.
На самом деле, как и в Windows, интерпретатор ищет файл в PATH, но, в отличие от DOS/Windows, игнорирует текущую папку. Поэтому, если у вас есть работающий бинарный файл, правильный способ его выполнения — это добавить “./” перед именем или полный путь, например, “/home/jotape/”.
Вы спрашиваете о установке… То есть, чтобы поместить бинарный файл куда-то, и иметь возможность просто выполнять его по имени откуда угодно. Так что, если у вас есть работающий бинарный файл (то есть вам не нужно компилировать его из исходников), вы можете поместить его в какую-нибудь папку, например, ~/.local/bin/ – самый простой способ, если вам не нужно предоставлять его другим пользователям. Теперь вам нужно добавить это в ваш путь. Или, если вы хотите и у вас есть права root, поместите его в /usr/local/bin/. Это уже в PATH.
PATH. Обычно он определяется в /etc/profile.
В вашей домашней папке обязательно существует файл “.profile”, который среди прочего ищет наличие папки “bin” и добавляет ее в PATH, если такая имеется (в моем случае из debian):
# установите PATH, чтобы он включал личный bin пользователя, если он существует
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
# установите PATH, чтобы он включал личный bin пользователя, если он существует
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
Итак, как я уже сказал, создайте папку ~/bin или ~/.local/bin/ и поместите туда ваш бинарник. В следующий раз, когда вы войдете в систему, он будет в PATH.
Ответ или решение
Установка программного обеспечения через терминал в GNU/Linux может быть сложной задачей для начинающих, но, основываясь на вашем опыте, я постараюсь объяснить процесс как можно более подробно и понятно.
Шаг 1: Понимание структуры файлов и прав пользователя
Когда вы скачиваете и распаковываете архив с программным обеспечением, вам следует обратить внимание на его содержимое. В вашем случае это файл .tgz
, который распаковывается в директории, в которых содержатся версии для различных архитектур (x86, ARM и т.д.). Вам нужно знать, какая архитектура используется на вашем компьютере. Вы можете проверить это, используя команду:
uname -m
Шаг 2: Установка программы
Если программа уже скомпилирована и готова к запуску, вам необходимо убедиться, что вы находитесь в нужной директории. Прежде чем перейти к запуску программы, попробуйте выполнить:
cd /путь/к/репозиторию/x86 # замените x86 на вашу архитектуру
./modpoll # Запуск программы
Обратите внимание, что ./
перед именем файла указывает системе искать программу в текущей директории.
Шаг 3: Установка и создание исполняемых файлов
Если вы хотите запускать программу из любой директории без указания полного пути, можно переместить исполняемый файл в одну из каталогов, которые уже находятся в PATH. Обычно это /usr/local/bin/
для всех пользователей или ~/.local/bin/
для вашего пользователя. Для этого выполните следующее:
# Создайте директорию, если ее еще нет:
mkdir -p ~/.local/bin
# Переместите модуль в созданную директорию:
mv /путь/к/репозиторию/x86/modpoll ~/.local/bin/
Шаг 4: Обновление переменной PATH
Теперь вам нужно убедиться, что каталог ~/.local/bin/
присутствует в переменной окружения PATH. Для этого откройте файл ~/.bashrc
(или ~/.profile
):
nano ~/.bashrc
Добавьте следующие строки в конец файла:
# Добавить локальную директорию в PATH
export PATH="$HOME/.local/bin:$PATH"
После этого примените изменения:
source ~/.bashrc
Теперь, когда вы откроете новый терминал, команда modpoll
должна работать из любой директории.
Шаг 5: Проверка установленных команд
Для проверки, что все работает как надо, запустите:
which modpoll
Данная команда должна вернуть путь к modpoll
, если все настроено правильно.
Заключение
Теперь, когда вы знаете, как установить и запускать программы из терминала в GNU/Linux, вы сможете более эффективно работать с системой. Помните, что изучение командной строки требует времени и практики, поэтому не стесняйтесь экспериментировать. Если возникнут дополнительные вопросы, смело задавайте их!