Установка программ в Linux (.tar, .gz, .bz, RPM и DEB)

Ситуаций, в которых необходимо повышать привилегии и выполнять команды от имени суперпользователя (root), довольно много. С некоторыми мы уже столкнулись, с другими познакомимся в следующих уроках:

Подводные камни

Знание про sudo играет с новичками злую шутку. Каждый раз, когда они видят "странные" ошибки, то не пытаются разобраться, а пробуют запустить команду с sudo без параметров, то есть просто выполнить её от суперпользователя. Часто такой подход срабатывает, но он создаёт ещё больше проблем, чем решает.

Запуск команды, которая создаёт файлы и директории из-под sudo, приводит к тому, что владельцем этих файлов становится пользователь root. Фактически все последующие обращения к этому файлу без sudo начнут выдавать ошибку об отсутствии прав доступа. Причём даже необязательно работать с этими файлами напрямую: множество программ так или иначе обращаются к файловой системе для чтения конфигурационных и других файлов.

Правильный выход из ситуации в каждом случае свой. В некоторых случаях sudo это то, что нужно, но иногда требуется изменить права (об этом в следующем уроке), а иногда и переустановить какую-нибудь часть системы.

Наиболее общее правило может быть таким: всё, что лежит в личных директориях пользователя, должно принадлежать пользователю, а не суперпользователю. Всё, что требует дополнительных прав, так как находится в системных путях (вне домашней директории пользователя), скорее должно запускаться с sudo (но это необязательно).

~$ ls -la # Всё содержимое домашней директории принадлежит одному пользователю. # Сама директория пользователя принадлежит ему же, # а родительская директория принадлежит суперпользователю drwxr-xr-x+ 117 mokevnin staff 3744 Feb 19 15:55 . drwxr-xr-x 5 root admin 160 Oct 12 19:15 .. -r——— 1 mokevnin staff 7 Nov 21 2017 .CFUserTextEncoding -rw-r—r—@ 1 mokevnin staff 22532 Feb 8 00:04 .DS_Store

Дополнительные материалы

  1. sudo vs su

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Ошибки, сложный материал, вопросы > Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

  • задайте вопрос. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
  • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
  • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.

Об обучении на Хекслете

  • Статья «Как учиться и справляться с негативными мыслями»
  • Статья «Ловушки обучения»
  • Статья «Сложные простые задачи по программированию»
  • Урок «Как эффективно учиться на Хекслете»
  • Вебинар «Как самостоятельно учиться»

Подробнее о группе администратора и группе sudo на сервере Ubuntu

Члены административной группы могут получать привилегии root. Все члены группы sudo запускают любую команду на сервере Ubuntu. Поэтому просто добавьте пользователя в группу sudo на сервере Ubuntu. Возможности группы admin были значительно урезаны, начиная с версии Ubuntu и выше. Следовательно, admin группы больше не существует или она просто используется в версии Ubuntu или выше. Причина, по которой это работает:

# grep -B1 -i ‘^%sudo’ /etc/sudoers

ИЛИ

$ sudo grep -B1 -i ‘^%sudo’ /etc/sudoers

Примеры возможных выводов данных:

# Allow members of group sudo to execute any command %sudo    ALL=(ALL:ALL) ALL

Давайте посмотрим на некоторые практические примеры.

Шаг — Тестирование доступа к sudo

Чтобы проверить, что новые разрешения sudo доступны, сначала нужно воспользоваться командой su для переключения на новую учетную запись пользователя:

  • su — sammy

Используя нового пользователя, убедитесь, что вы можете использовать sudo, добавив sudo перед командой, которую вы хотите запустить с привилегиями суперпользователя:

  • sudo command_to_run

Например, вы можете вывести список содержимого директории /root, которое обычно доступно только для пользователя root user:

  • sudo ls -la /root

При первом использовании sudo в сеансе вам будет предложено ввести пароль учетной записи данного пользователя. Введите пароль, чтобы продолжить:

Output:[sudo] password for sammy:

Примечание: это не запрос пароля root! Введите пароль пользователя с привилегиями sudo, а не пароль root.

Если ваш пользователь находится в соответствующей группе и вы ввели правильный пароль, команда с sudo будет запущена с правами root.

 Установка программ из архивов (тарболов)

Дистрибутив с программой, представляет из себя архив с кучей файлов и обычно имеет расширение  .tar , ,  .bz, .tgz ну или что то похожее.

Для архивов сжатых с помощью GZIP (gz, gz2 и т.д.) выполняем:

tar -xvzf имя_файла

Для архивов сжатых с помощью BZIP (bz, bz2 и т.д.) выполняем:

tar -xvjf имя_файла

Команды Tar:

  • x — извлечь файлы из архива;
  • v — подробный вывод информации на экран;
  • f — Обязательная опция. Если не указать, Tar будет пытаться использовать магнитную ленту вместо файла;
  • z — обработать архив сжатый gzip’ом;
  • j — обработать архив сжатый bzip’ом.

После выполнения, будет создана папка с именем, идентичным названию пакета.

Далее необходимо открыть эту созданную папку

cd имя_папки

Далее все зависит от того, как была собрана программа, в виде исполняемого файла, или в исходном коде, который сначала необходимо скомпилировать и лишь потом устанавливать. В любом случае для начала лучше прочитать инструкцию, которая должна присутствовать в распакованном архиве и, как правило, называется README, или что то похожее.

Если программа собрана в виде исполняемого файла, то в папке будет находиться файл, с расширением .sh, обычно он так и называется Его достаточно просто запустить на исполнение:

./

Если же программа представлено в исходном коде, выполняем следующие команды:

Читайте также:  Linux командная строка — что это такое, как вызвать

./configure make make install

После установки делаем:

make clean

Все, как ведите ничего сложного в установке программ в Linux нет.