Уровень новичка: как правильно установить программное обеспечение из терминала

Вопрос или проблема

Меня зовут Джеро, и я рад вас встретить. Как я уже сказал, я начинающий, но если я могу помочь, я здесь.
Моя проблема: из-за моей новой работы мне нужно работать с 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, вы сможете более эффективно работать с системой. Помните, что изучение командной строки требует времени и практики, поэтому не стесняйтесь экспериментировать. Если возникнут дополнительные вопросы, смело задавайте их!

Оцените материал
Добавить комментарий

Капча загружается...