Установка ПО в Linux


Репозитории и пакеты

Программное обеспечение дистрибутива Fedora находится в хранилище – репозитории. ПО в репозитории хранится в виде отдельных зависимых пакетов имеющих собственную версию и версию дистрибутива в котором они могут быть установлены с разрешением зависимости. Различные дистрибутивы Linux обладают собственным хранилищем пакетов программного обеспечения. Помимо основного репозитория, на различных серверах по всему миру хранятся “зеркала”, т. е. копии содержания основного репозитория и пакеты обновления. Каждый пакет используется для определенной версии дистрибутива, а хранилище гарантирует совместимость всех зависимых пакетов. Что такое пакет? Пакет – это архив, в котором содержаться необходимые для работы программы компоненты: бинарные файлы программ, библиотеки и прочий контент необходимый для работы программы. Зачастую пакет программы связан с компонентами пакетов других программ. Такое состояние называется зависимостью пакетов друг от друга. Причины зависимости заключаются в том, что разработчики ПО используют/заимствуют программный код или уже имеющиеся библиотечные файлы в других разработках. Это облегчает создание приложений, избавляет разработчиков от написания повторяющихся алгоритмов и позволяет писать программы взаимодействующие в единой среде. При попытке установить пакет (используя консоль), в большинстве случаев, будет выдана информация о наличии неудовлетворенных зависимостей. (Однако, некоторые пакеты могут быть всё же установлены, если в системе все необходимые зависимости будут разрешены.)
Для работы с пакетами дистрибутив Fedora использует консольный менеджер пакетов (back-end) – RPM (рекурсивный акроним RPM Package Manager). RPM имеет недостаток – он не может разрешать зависимость в автоматическом режиме. Его цель обрабатывать пакет/пакеты (удалять, обновлять, устанавливать, проверять зависимости, предоставлять сведения о пакете и его содержимом) и обслуживать базу данных установленных в системе пакетов. Для установки программы необходимо собрать все зависимые пакеты (предварительно узнать какие из них уже установлены, а какие – нет) и только тогда программа может быть установлена вместе с зависимыми пакетами. Узнать какие зависимости имеет данный пакет можно с помощью команды:

rpm -qpR name_package

где name_package – имя пакета.
Разумеется, такая работа с пакетами совершенно неудобна и утомительна. Чтобы автоматизировать процесс установки пакетов в дистрибутиве имеется надстройки пакетных менеджеров (front-end), которые способны производить установку пакетов и призваны решать следующие основные задачи:

  • поиск пакетов в репозиториях;
  • установка пакетов из репозиториев с удовлетворением зависимостей;
  • обновление системы;
  • удаление ненужных пакетов.
Такой надстройкой в Fedora является DNF (Dandified YUM). Разберем более подробно как и с помощью каких программных средств работать с RPM и DNF.

Работа с RPM и DNF в консоли

RPM и DNF являются консольными программами. Для работы с менеджерами пакетов запустите программу Konsole (эмулятор терминала среды KDE).

RPM

Для получения полной справки введите команду:

$ rpm --help

Установка пакетов производится в режиме суперпользователя (root). Если ваш аккаунт имеет администраторские полномочия, то воспользуйтесь утилитой sudo:

$ sudo -i
[sudo] пароль для username: (ввод пароля пользователя)

Если таких полномочий нет, то стандартной командой su:

$ su
Пароль: (ввод пароля суперпользователя)

Формат команд RPM:

rpm [ПАРАМЕТРЫ] [ПУТЬ К ФАЙЛУ].rpm

Некоторые наиболее часто используемые параметры команды rpm:

 -h, --hash       выводить "#" по мере установки пакета
 -i, --install    установить пакет(ы)
 -U, --upgrade    обновить пакет(ы)
 -v, --verbose    выводить более детальные сообщения
 -e, --erase      удалить (деинсталлировать) пакет(ы)
     --force      игнорировать конфликты пакетов

Параметры (иначе, ключи) можно использовать сгруппировав, например, так:

# rpm -ihv name_package

Следующей командой будут установлены все RPM-пакеты в текущей директории:

# rpm -ihv *.rpm

Приведем пример работы с rpm по установке программ, которые не входят в дистрибутив. Большинство таких программ поставляются в виде исходников, которые необходимо скомпилировать. Это сложная задача для рядового пользователя. Но множество разработчиков собирают бинарные файлы своих программ в виде rpm-пакетов. Одна из таких программ – это Edraw Max.

Edraw Max – это универсальное ПО для создания диаграмм более чем 280 типов, таких как бизнес-презентации, планы зданий, интеллектуальные карты, научные иллюстрации, диаграммы UML, каркасы, электрические диаграммы и мн. др.

Перейдите на сайт программы: https://www.edrawsoft.com/download-edrawmax.html . Загрузите rpm-пакет программы и перейдите в директорию загрузки (это условно-бесплатная программа с ограниченным периодом бесплатного использования без лицензии):

# cd /home/user_name/Загрузки/

Выполните команду установки пакета:

# rpm -ihv edrawmax_10.0_x86_64.rpm

Результат и степень выполнения будет отображаться ниже:

Verifying...             ################################# [100%]
Подготовка...            ################################# [100%]
Обновление / установка...
   1:edrawmax-10-0       ################################# [100%]

Программа установлена! Войдите в меню и найдите программу в разделе Office > EdrawMax.
Скачивание программы можно поручить самому rpm. Ниже показан пример скачивания и установки по сети среды разработки IDE CodeLite (убедитесь, что эти URL действительны на странице https://downloads.codelite.org/):

# rpm --import https://repos.codelite.org/CodeLite.asc
# rpm -Uvh https://repos.codelite.org/rpms-14.0/fedora/codelite-14.0-2.fc32.x86_64.rpm
Загружается https://repos.codelite.org/rpms-14.0/fedora/codelite-14.0-2.fc32.x86_64.rpm
Verifying...              ################################# [100%]
Подготовка...             ################################# [100%]
Обновление / установка...
   1:codelite-14.0-2.fc32 ################################# [100%]

В данных примерах разрешения зависимостей не потребовалось.

Список всех пакетов установленных в системе и их размеры можно получить с помощью следующей команды:

rpm -qa --queryformat '%010{SIZE}\t%{NAME}-%{VERSION}-%{RELEASE}\n'
DNF

Для получения полной справки введите команду:

# dnf --help

Использование команды:

dnf [ПАРАМЕТРЫ] [КОМАНДА]

Некоторые наиболее часто используемые команды:

autoremove       удалить все ненужные пакеты, первоначально установленные по зависимостям
check            поиск проблем в packagedb
check-update     проверить доступные обновления для пакетов
clean            удалить кэшированные данные
deplist          Показывать список зависимостей пакета и какие пакеты их предоставляют
distro-sync      обновить установленные пакеты до последних имеющихся версий
downgrade        Откат к предыдущей версии пакета
group            показать или использовать информацию о группах
history          отобразить (или использовать) историю транзакций
info             отобразить информацию о пакете или группе пакетов
install          установка пакета(ов) в систему
list             вывести список пакетов или групп пакетов
reinstall        переустановка пакета
remove           удалить пакет или пакеты из системы
repolist         отобразить настроенные репозитории ПО
repoquery        поиск пакетов по ключевому слову
search           поиск информации о пакете по заданной строке
updateinfo       показать рекомендации к пакетам
upgrade          обновить пакет или пакеты в системе
upgrade-minimal  обновление, но только «новейших» пакетов, которые исправляют проблему в вашей системе

Пример использования:

# dnf install krusader
Обратите внимание на то, что после команды указывается имя пакета, а не файла!

Замечательной особенностью DNF является установка не отдельных пакетов, а целой группы пакетов специального назначения всего одной командой! Такая необходимость возникает, например, после установки дистрибутива. Для того, чтобы увидеть список доступных для установки групп, необходимо ввести следующую команду:

# dnf group list
Вывод в Fedora 32
Последняя проверка окончания срока действия метаданных: 2:08:18 назад, Вс 16 авг 2020 19:34:25.
Доступные группы рабочих сред:
   Настраиваемая операционная система Fedora
   Минимальная установка
   Серверная редакция Fedora
   Fedora Workstation
   Fedora Cloud Server
   KDE Plasma Workspaces
   Рабочая среда Xfce
   Рабочая среда LXDE
   Рабочий стол LXQt
   Рабочая среда Cinnamon
   Рабочая среда MATE
   Графическое окружение Sugar
   Deepin Desktop
   Рабочая станция для разработки и творчества
   Веб-сервер
   Сервер инфраструктуры
   Базовая среда рабочего стола
Установленные группы:
   Средства разработки на C и библиотеки
   Средства разработки
   Научные и инженерные
   KDE
   Шрифты
   Поддержка оборудования
Доступные группы:
   3D Печать
   Средства администрирования
   Звукопроизводство
   Подготовка публикаций
   Книги и руководства
   Инфраструктура для облаков
   Средства управления облачными средами
   Compiz
   Управление контейнерами
   Инструментарий разработки и библиотеки для D
   Комплект программ дизайнера
   Членство в домене
   Fedora Eclipse
   Редакторы
   Развивающие программы
   Электронная лаборатория
   Сервер FreeIPA
   Управление без монитора
   LibreOffice
   Приложения MATE
   Медицинские приложения
   Milkymist
   Сетевые серверы
   Neuron Modelling Simulators
   Офисные приложения
   Python Classroom
   Python Science
   Разработка робототехники
   Инструменты для разработки RPM
   Лаборатория безопасности
   Текстовые средства Интернет
   Оконные менеджеры
   Deepin Desktop Environment
   GNOME
   Графические программы для работы с Интернет
   Игры и развлечения
   Звук и видео
   Системные средства
Примеры использования:

# dnf group [Параметры] [КОММАНДА] [АРГУМЕНТЫ]

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

  • list
  • info
  • remove
  • install
  • upgrade
  • mark
Некоторые параметры dnf (полный список смотрите в справке к программе):

-v, --verbose      подробно описывать действия
    --version      show DNF version and exit
    --nodocs       не устанавливать документацию
    --skip-broken  разрешить проблемы зависимостей, пропустив пакеты
-h, --help         показать справку по команде
    --allowerasing разрешить удаление установленных пакетов для разрешения зависимостей
-b, --best         попытаться использовать наиболее подходящие версии пакетов в транзакциях.
-y, --assumeyes    автоматически отвечать утвердительно на все вопросы
    --noautoremove запретить удаление зависимостей, которые больше не используются
    --nogpgcheck   отключить проверку подписи gpg (если позволяет политика RPM)
    --color COLOR  использовать ли цветовые схемы

Фронтэнд dnfdragora

dnfdragora – фронтэнд DNF, который работает с использованием GTK, ncurses и QT и является основным менеджером пакетов в дистрибутиве Fedora (устанавливается по умолчанию). Запуск приложения осуществляется через меню: Администрирование > dnfdragora.

Внешний вид окна программы

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

Совет. Если по каким-либо причинам приложение стало закрываться аварийно, то попробуйте удалить файл конфигурации ~/.config/dnfdragora.yaml и перезапустить приложение.

Помимо установки отдельных пакетов, приложение может обновлять пакетную базу и работать с группами пакетов. Чтобы установить программу необходимо определить критерии поиска и выбрать с помощью чекбокса пакеты в предложенном списке.
Не взирая на то, что в KDE существует свой “родной” установщик программ Discover, обращаться к dnfdragora, возможно, вы будете довольно часто. Дело в том, что в Discover невозможно (во всяком случае, пока) полноценно работать с пакетной базой репозитория, так как от непосвященного пользователя скрыты некоторые пакеты, (например, пакеты со слабыми зависимостями: дополнения, локализации, плагины), а без точного знания наименования пакета найти его в пакетной базе будет весьма проблематично. Для сравнения, покажем окна dnfdragora и Discover с результатами поиска по ключевому слову “libreoffice”:

Discover

dnfdragora

Не трудно заметить, что Discover, помимо пакетов libreoffice, показывает пакеты, которые к LibreOffice совершенно не относятся! Надеемся, что разработчики программы доработают этот недостаток в ближайшее время, а пока – dnfdragora вам в помощь :-).

Центр программ KDE Discover

Штатным установщиком программ в KDE является – Discover. Помимо недостатка упомянутого выше, программа имеет и “плюсы”. Так Discover может устанавливать и обновлять не только пакеты, но и расширения как к программам, так и к Plasma (правда, не всегда эти обновления бывают успешними). Да и внешний вид программы более дружелюбен. По каждой программе, например, даны подробные сведения, а к программам из мира KDE прилагаются и скриншоты окон этих программ. Пример установки программы digiKam:

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

Сведения о программе

Утилита alien

Что делать, если необходимо установить в Fedora пакет .deb (конкурирующего менеджера из мира Debian), которого нет в дистрибутиве? Или наоборот: как в Debian установить rpm-пакет? На помощь приходит утилита alien. alien способна преобразовывать пакет одного формата в другой, например rpm <-> deb. Утилита работает не только с пакетами rpm и ded, но мы ограничимся только этими форматами. Рассмотрим практический пример. На сайте программы XMind разработчики выложили для скачивания только deb-пакет.

Новая версия этой замечательной программы (используемой, кстати, в нашем курсе) распространяется теперь, в том числе, и в виде rpm-пакета, скачать который можно по этой ссылке: https://www.xmind.net/download/xmind

Нам не остается ничего другого, как установить в Fedora пакет, сконвертированный из deb-пакета. Скачиваем файл пакета (~84Мб). Далее, переходим в директорию загрузки и в консоли выполняем последовательно следующие команды:

# dnf install alien
# alien -r ./xmind-linux-3.4.1.201401221918_i386.deb
# rpm -i xmind-3.4.1-2.i386.rpm

Первая команда установит пакет alien в Fedora Linux.
Вторая команда, собственно, запустит процесс преобразования deb -> rpm. В результате пакет xmind-linux-3.4.1.201401221918_i386.deb будет преобразован в пакет xmind-3.4.1-2.i386.rpm.
Третья команда инсталлирует новый пакет в системе Fedora.
Некоторые параметры команд:

-d, --to-deb        Generate a Debian deb package (default).
-r, --to-rpm        Generate a Red Hat rpm package.
-i, --install       Install generated package.
-k, --keep-version  Do not change version of generated package.
    --bump=number   Increment package version by this number.
-h, --help          Display this help message.

DeltaRPM

Наше повествование будет неполным, если мы не упомянем технологию Delta, поскольку пакеты delta-rpm идут в обновлениях. По существу, Delta – это патч, внесение изменений в существующий пакет. Поскольку сумма изменений меньше (а в некоторых случаях даже значительно меньше) объема оригинального пакета – происходит существенная экономия трафика и увеличивается скорость обновления системы. При обновлении пакетов вначале определяется база Delta, затем не имеющих Delta и их зависимости, создается общий сценарий установки, руководимый пакетным менеджером. Delta-пакеты используются исключительно для обновления системы и не распространяются с дистрибутивом. Дистрибуция содержит только оригинальные пакеты. В репозитории дистрибутива они содержатся папке обновления.

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


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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.