ПО в Linux. Знакомство

279 прочитали
Как же что-то установить на Linux и этим потом пользоваться? Давайте разбираться.  В Linux ПО разделено на пакеты, которые можно инсталлировать независимо друг от друга.

Как же что-то установить на Linux и этим потом пользоваться? Давайте разбираться.

В Linux ПО разделено на пакеты, которые можно инсталлировать независимо друг от друга. При стандартной установке пакетов системы используется группа "стартовых" пакетов, которую можно при необходимости расширить. Для установки дополнительного ПО используются репозитории. Репозиторий - это хранилище ПО. Существуют официальные репозитории, существуют, так называемы "авторские", создаваемые разработчиками программ. Вообще, репозиторий - это очень удобная штука. Устанавливая ПО из официального репозитория, можно быть уверенным, что вы получите стабильно работающее ПО на вашем дистрибутиве.

Разработчики в основном выпускают ПО в виде исходных кодов. Репозитории потом берут исходные коды и компилируют их в соответствии с особенностью поддерживаемого дистрибутива и включают в пакеты бинарные файлы. Поэтому и проще всего устанавливать ПО именно из пакетов, чтобы быть уверенным в его работоспособности на вашем дистрибутиве. Но тут надо учитывать, что в репозитариях зачастую версия ПО отстает на пару версий от текущей.

Существуют разные форматы пакетов. Например, RPM - для RHEL, CentOS или производных от них. DEB - для debian и производных от него, таких как Ubuntu, Knopix и т.д. Тут стоит заметить, что если в двух дистрибутивах используется одинаковый формат пакетов, то это еще не значит что они взаимозаменяемые. Например, в RHEL и SUSE используется формат RPM, но структура файловых систем в них разная. Рекомендую всегда пользоваться пакетами созданными именно для вашей системы.

А как узнать, что уже установлено?

В системах WIndows, например, можно посмотреть в Панели управления в Установленных программах. В linux с графическим интерфейсом тоже такое возможно. Но что делать, если перед вами есть только строка терминала.

Для начала стоит определить есть ли соответствующий бинарный файл в вашем пути поиска. С этой задачей чудесно справляется команда which:

$ which cat
/usr/bin/cat

Если не получилось, можно использовать команду whereis, она ищет более широкий набор системных каталогов, а не только в пути поиска вашей оболочки.

$whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz

Если вы знаете имя пакета, то для поиска можно использовать утилиты для упаковки системы, такие как rpm или dpkg. Например, в RHEL проверить наличие php можно следующей командой:

$rpm -q php
php-5.4.16-48.el7.x86_64

Из вывода команды, можно увидеть название пакета (php), версию (5.4.16), выпуск (48) и архитектуру (x86_64).

Так же можно узнать к какому пакету принадлежит определенный файл:

В RHEL:
$rpm -qf /etc/httpd
httpd-2.4.6-97.el7.centos.x86_64

В Debian:
$dpkg -S /usr/bin/python3
python3-minimal: /usr/bin/python3

Устанавливаем новое программное обеспечение.

Для того, чтобы что-то установить в Linux, сначала надо определить, так называемое, каноническое имя пакета. Например, в случае установки ruby, проблем не возникнет. Но вот если необходима утилита nsupdate, то это уже надо устанавливать bind-utils. Определить такие вещи поможет поиск в интернете.

В следующем примере, давайте рассмотрим установку команды locate. В системах Debian и Ubuntu для установки используется команда apt (Advanced Package Tool). Погуглив, узнаем, что locate входит в пакет mlocate, его-то и будем устанавливать.

$sudo apt install mlocate
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libfwupdplugin1 ssl-cert
Use 'sudo apt autoremove' to remove them.
Suggested packages:
nocache
The following NEW packages will be installed:
mlocate
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 50.1 kB of archives.
After this operation, 258 kB of additional disk space will be used.
Selecting previously unselected package mlocate.
(Reading database ... 67741 files and directories currently installed.)
Preparing to unpack .../mlocate_0.26-3ubuntu3_amd64.deb ...
Unpacking mlocate (0.26-3ubuntu3) ...
Setting up mlocate (0.26-3ubuntu3) ...
update-alternatives: using /usr/bin/mlocate to provide /usr/bin/locate (locate) in auto mode
Processing triggers for man-db (2.9.1-1) ...

В системах RHEL и CentOS, аналогичная процедура выглядит следующим образом:

$ sudo yum install mlocate

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

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

Надеюсь вам понравилась эта статья. А для общеобразовательных целей выложил в свой телеграм канал https://t.me/crazy_linuxoid/ шпаргалку по командам dpkg и rpm.