Установка программ в Linux

В операционных системах(ОС) UNIX и Linux под установкой программного обеспечения (ПО) следует понимать процедуру распространения пакетов. В данном случае пакет — это универсальный контейнер, содержащий не только само ПО, но также и соответствующие конфигурационные файлы, информацию о зависимостях распространяемого ПО, методах его распространения в системе и способы задания конфигураций. В отличие от неструктурированных архивных файлов (.tar.gz), пакеты обладают строго организованной структурой, взаимодействие с которой подчиняется определённым методам, изначально заложенным в Системы Управления Пакетами(СУП). Благодаря такой схеме, очень удобно распространять (устанавливать) не только ПО, но и административную информацию (конфигурацию), причём безболезненно, поскольку специализированные СУП «знают», как устроена структура системы и не переписывают конфигурацию, ранее заданную пользователем. В случае конфликтов предлагается просто сделать резервные копии существующих файлов конфигурации или конкретный вариант для их модификации по согласованию с пользователем или администратором системы. Очень важно, то, что СУП самостоятельно отслеживают и распознают зависимости пакетов, используя также для этого соответствующую информацию из самих приложений. В составе приложений также могут быть и целые служебные сценарии для их дополнительной обработки и настройки. Благодаря этому установка (или удаление) происходит как единая транзакция, полностью освобождая пользователей от выполнения рутины по поиску и установке зависимостей, распаковке файлов по требуемым каталогам и т. д.

Управление пакетами в Linux

Для операционной системы (ОС) Linux существует два основных типа пакетов: RPM (Red Hat Package Manager) и Debian. Первый, как можно видеть, изначально появился в дистрибутивах семейства Red Hat, но позже стал применяться и в других системах (SUSE, ROSA), второй был разработан для одноимённого дистрибутива и позже унаследован семейством ОС Ubuntu, созданных изначально на основе Debian. Средства упаковки пакетов RPM и Debian реализуются соответствующими СУП. Объединяет их то, что эти системы включают в себя два функциональных уровня — первый обеспечивает опрос требуемых пакетов, а также непосредственно их установку/обновление и удаление. На этом уровне используются команды rpm – для RPM-пакетов, и dpkg – для Debian (.deb). Второй уровень выполняет поиск программ  в удалённых хранилищах, анализирует зависимости, обеспечивает корректное обновление и модернизацию самих программ  и конфигурации, поскольку располагает информацией о структуре системы. Основными системами управления пакетами являются RPM и APT (Advanced Package Tool), которая изначально создавалась для управления приложениями  Debian, но позже была доработана для работы в RPM-ориентированных ОС.

Установка RPM-пакетов

Для управления пакетами формата RPM в Linux используется соответствующая команда — rpm. Она производит установку, удаление, а также опрос состояния программ. Требуемый функционал этой команды определяется специальными опциями. Например, самыми распространёнными являются: -i – установка, -e – удаление, -U – обновление и -q – запрос. Если с первыми тремя опциями всё довольно просто, то последняя, т. е. -q очень часто используется совместно с другими опциями, т. е. она служит для включения опций конкретных запросов, например, команда:

$ rpm -qa

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

$ rpm -i apache2.rpm

В результате будет произведена установка веб-сервера «Апач», т. к. это в данном случае предписывает опция -i. Сам же файл программы должен быть предварительно загружен или иным способом помещён в файловую систему. Бывает и так, что при работе с приложениями  возникают сложности — чаще всего с зависимостями, например:

$ sudo rpm -U openssh-2.9p2-12.i386.rpm
error: failed dependencies:
openssh = 2.9p2-7 is needed by openssh-askpass-2.9p2-7
openssh = 2.9p2-7 is needed by openssh-askpass-gnome-2.9p2-7
openssh = 2.9p2-7 is needed by openssh-clients-2.9p2-7
openssh = 2.9p2-7 is needed by openssh-server-2.9p2-7

Этот вывод означает, что при попытке обновить приложение  openSSH будут затронуты другие, зависящие от него программы. Это помогает сориентироваться, в том, что ещё нужно сделать для выполнения успешного обновления приложения openSSH, т. е. удовлетворить зависимости. Следует обратить особое внимание на то, что опция —force, для принудительной установки/обновления здесь не помощник — запросто можно сломать приложение. Для того, чтобы заранее узнать, какие зависимости имеются у требуемого приложения, нужно выполнить команду следующего вида:

$ rpm -q --whatrequires openssh
openssh-askpass-2.9p2-7
openssh-askpass-gnome-2.9p2-7
openssh-clients-2.9p2-7
openssh-server-2.9p2-7

Как видно, опция включения запроса -q предписывает выполнить сам запрос с требованием —whatrequires для фразы «openssh», т. е. «определить зависимости приложения openssh», и далее следует логичный вывод. Используя информацию из этого вывода можно скачать файлы нужных зависимостей и установить или обновить их последовательно, используя соответствующие ключи. Для удобства достаточно эти зависимости указать списком:

$ sudo rpm -U openssh-*

Для проверки результата нужно воспользоваться опцией запроса:

$ rpm -q openssh
openssh-2.9p2-12

Этот вывод означает, что в ОС корректно установлен (в результате предыдущих действий) openSSH. Нужно заметить, что для команды необязательно указывать точное название программы  и версий — она правильно распознаёт их и при сокращённой записи их наименований.

Установка программ в Debian

Аналогом команды rpm для работы с Debian-пакетами является команда dpkg. Режимы её работы указываются аналогично команде rpm – с помощью соответствующих опций. Опция -l позволяет получить список установленных в ОС программ, -i – установить или обновить, -r – произвести удаление. Основным отличием команды dpkg от rpm является то, что она позволяет использовать утилиту grep для опрашивания/поиска программ, а также отображает в выводе список выполняемых действий. Например:

$ dpkg -l|grep -i nano
ii nano                               2.4.2-1ubuntu0.1
         amd64    small, friendli text editorinspired by Pico

Как можно видеть, команда отобразила список установленных приложений (в данном случае в ОС всего один) текстового редактора nano. Для установки/обновления того же nano следует выполнить команду через терминал:

$ dpkg -i nano2.4.-ubuntu0.1.deb

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

$ dpkg -l nano
Желаемый=неизвестно[u]/установить[i]/удалить[r]/вычистить[p]/зафиксировать[h]
| Состояние=не[n]/установлен[i]/настроен[c]/распакован[U]/частично настроен[F]/
            частично установлен[H]/trig-aWait/Trig-pend
|/ Ошибка?=(нет)/требуется переустановка[R] (верхний регистр
в полях состояния и ошибки указывает на ненормальную ситуацию)
||/ Имя            Версия       Архитектура  Описание
+++-==============-============-============-====================
ii  nano           2.4.2-1ubunt amd64        small, friendly text editor inspired by Pico

Системы управления пакетами (СУП)

Для облегчения поиска, загрузки программ, отслеживания зависимостей, а также для автоматизации обновлений приложений  существуют соответствующие системы управления пакетами (СУП). Самыми распространёнными являются APT и yum. К слову сказать, yum – это ничто иное как та же самая APT, доработанная для работы с rpm-пакетами. Для хранения приложений  существуют специальные хранилища — репозитории, в которых производится поиск и из которых загружаются для установки новые приложений. Репозитории организуют и поддерживают разработчики дистрибутивов, но при желании можно создать собственный, локальный по отношению к конкретной системе репозиторий. Поскольку система управления пакетами APT является универсальной, хорошо документированной (а ещё и бесплатной), то разумно рассмотреть работу подобных систем на примере APT. Эта СУП реализована в виде утилиты apt-get, с помощью которой удобно управлять всей системой. Важное значение для APT (как и для других подобных СУП) является файл с описанием источников хранилищ, т. е. репозиториев. Для APT это файл /etc/apt/sources.list. Если этот файл настроен и содержит верную информацию об источниках, то нужно перед каждыми обновлениями или установками приложений выполнять команду:

$ apt-get update

или в CentOS Red Hat

$ yum update

для обновления информации о пакетах. После чего можно проводить установку/обновление:

$ apt-get install имя пакета

или

$ yum install имя пакета

Эта команда автоматически найдет приложение (если он верно указан) в репозитории, проанализирует его зависимости, загрузит их и установит сам пакет и все требуемые, с учётом иерархии зависимости.

Например для установки редактора mc введите команду

$ apt-get install mc

или в RedHat CentOS

$ yum install mc

Следующая команда:

$ apt-get remove имя

произведёт удаление программы из ОС, причём зависимости могут быть оставлены. Для очистки ОС  от всех неиспользуемых зависимостей следует выполнять последовательность следующих команд:

$ apt-get clean
$ apt-get autoclean
$ apt-get autoremove

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

ИТ Проффи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: