Менеджер пакетов linux может

Менеджеры пакетов в системах linux

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

Что такое зависимости пакетов

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

Система пакетов

Практически любой софт устанавливаемый в современную linux систему можно найти в Интернете. Он может быть предоставлен разработчиками конкретного дистрибутива через официальные репозитарии (хранилища программного обеспечения, которые могут содержать тысячи пакетов, каждый из которых был скомпилирован, протестирован и поддерживается для распространения и использования в данном дистрибутиве linux) или доступен в виде исходного кода, который можно загрузить и установить вручную. Поскольку разные семейства дистрибутивов linux используют разные системы упаковки (Debian — пакеты в формате deb, CentOSrpm формат, openSUSE — тоже rpm но созданный специально для openSUSE), пакет, предназначенный для одного дистрибутива, не будет совместим с другим дистрибутивом. Большинство дистрибутивов linux входят в одно из трех основных семейств linux, включенных в сертификацию LFCS.

Высоко- и низкоуровневые инструменты управления пакетами.

  • Debian, Ubuntu и подобные — менеджер пакетов dpkg
  • CentOS — менеджер пакетов rpm
  • OpenSUSE — менеджер пакетов rpm (opensuse)
  • Debian, Ubuntu и подобные — apt-get/aptitude
  • CentOS — менеджер пакетов yum
  • OpenSUSE — менеджер пакетов zipper

Apt-get — высокоуровневый пакетный менеджер в Debian linux и производных дистрибутивах. Apt-get представляет из себя простой способ получения и установки необходимых пакетов из различных источников, с разрешением зависимостей, через командную строку. В отличии от dpkg, apt-get не работает напрямую с .deb файлами пакетов, только пакетом по его имени.

Читайте также:  Intel iris pro linux

Aptitude, это еще один высокоуровневый инструмент управления пакетами в debian-подобных операционных системах и может быть использован для управления пакетами (установка, обновление и удаление пакетов с автоматическим разрешениме зависимостей), быстрым и простым способом. Он обеспечивает те же функциональные возможности что и apt-get, плюс некоторые расширенные, такие как доступ к нескольким версиям пакета. Rpm — система управления пакетами, используемая Linux Standard Base (LSB) — совместимыми дистрибутивами для низкоуровневой обработки пакетов. Как и dpkg, он может запрашивать, устанавливать, проверять, обновлять и удалять пакеты, чаще используется в дистрибутивах на базе Fedora, таких как RHEL и CentOS.

Yum — высокоуровневый инструмент для работы с пакетами (установка, удаление, обновление), с управлением зависимостями в системах на основе RPM пакетов. Yum как apt-get и aptitude, работает с репозитариями

Распространенные задачи низкоуровневых инструментов.

1. Установка пакета из скомпилированного *.deb или *.rpm файла.

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

# dpkg -i file.deb [Debian and derivative] # rpm -i file.rpm [CentOS / openSUSE]

2. Обновление пакета из скомпилированного файла.

# dpkg -i file.deb [Debian and derivative] # rpm -U file.rpm [CentOS / openSUSE]

3. Список установленных пакетов

Если в ваше распоряжение попала уже работающая система, будет не лишним узнать, что на ней установлено:

# dpkg -l [Debian and derivative] # rpm -qa [CentOS / openSUSE]

Если вам нужно узнать, установлен-ли какой-то конкретный пакет, можно воспользоваться командой grep. перенаправив на нее вывод менеджера пакетов:

# dpkg -l | grep apache2-mpm-itk ii apache2-mpm-itk 2.2.22-13+deb7u6 amd64 multiuser MPM for Apache 2.2
# rpm -qa | grep httpd-2.4.6 httpd-2.4.6-45.el7.centos.4.x86_64
# dpkg --status package_name [Debian and derivative] # rpm -q package_name [CentOS / openSUSE]
# dpkg --search my.cnf mysql-common: /etc/mysql/my.cnf # rpm -qf /etc/my.cnf mariadb-libs-5.5.52-1.el7.x86_64

Распространенные задачи высокоуровневых инструментов

1. Поиск пакетов

# aptitude update && aptitude search package_name [Debian-like] # zypper refresh && zypper search package_name [OpenSUSE] # yum search package_name [CentOS] 
# yum search all package_name
# yum whatprovides "*/server.cnf" 1:mariadb-server-5.5.52-1.el7.x86_64 : The MariaDB server and related files Repo : base Matched from: Filename : /etc/my.cnf.d/server.cnf

2. Установка пакета из репозитария

При установке пакета вам может быть предложено подтвердить установку после того, как менеджер пакетов разрешит все зависимости.

# aptitude update && aptitude install package_name [Debian-like] # zypper refresh && zypper install package_name [openSUSE] # yum update && yum install package_name [CentOS] 

3. Удаление пакетов

Если aptitude указан ключ remove, пакет будет удален, за исключением конфигурационных файлов. Что-бы удалить все следы установки пакета, нужно использовать ключ purge.

# aptitude remove/purge package_name
# zypper remove -package_name

4. Просмотр инфоормации о пакете

# aptitude show mariadb-server # yum info mariadb-server # zypper info mariadb-server

Источник

Читайте также:  Nvme linux файловая система

Альманах пакетных менеджеров Linux

Иногда может возникнуть вопрос: чьих этот файл, откуда вообще взялась эта библиотека? Удобный менеджер пакетов решает очень многие проблемы ОС. Можно с уверенностью сказать, что если вы подружитесь с МП, то подружитесь и с дистрибутивом как таковым. Причем важно освоить именно набор основных команд, и знать где найти дополнительную информацию.

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

Далее следует джентльменский набор необходимых для повседневной рутины команд основных Linux дистрибутивов: установить, обновить и удалить пакет, накатить обновления, проверить зависимости, установить принадлежность файла пакету и пр.

Debian и родственные

Популярность и образ дружественного к пользователю Linux дистрибутива сыграли с Ubuntu злую шутку. Некоторым новичкам кажется, что можно на нем делать все, что угодно без помощи командной строки. Это заблуждение и лучше от него поскорее избавиться.

То, что в примерах aptitude не значит, что он правильнее, чем apt-get . Для меня это всего лишь дело привычки.

$ aptitude install package #установить пакет; $ aptitude safe-upgrade package #обновить пакет; $ aptitude update #проверить и установить обновления; $ aptitude remove package #удалить пакет; $ aptitude purge package #удалить пакета с концами, все данные и настройки; $ apt-get dist-upgrade #обновить ОС, killer-feature и оно работает! $ aptitude search package #искать пакет. $ apt-cache depends package #зависимости пакета; $ apt-cache rdepends package #обратные зависимости от пакета.

Некоторые функции доступны с дополнительным МП dpkg .

$ dpkg -l #список установленных программ; $ dpkg -L package #список файлов пакета

Есть еще такое чудо — wajig. Несмотря на странное звучание, вполне годный МП с человеко-читабельным выводом информации на экран.

Настройка репозиториев производится правкой файла /etc/apt/sources.list

$ wajig install package $ wajig distupgrade #обновить ОС; $ wajig install --fileinput filename #установить пакеты списком; $ wajig listinstalled

В целом ПМ Debian один из лучших, с которыми мне доводилось иметь дело.

Redhat и другие RPM дистрибутивы

RPM нельзя назвать образцовым пакетным менеджером, скорее это был кактус, который мыши употребляли в пищу со слезами на глазах. Затем появились более или менее вменяемые МП: yum , dnf , zypper и другие. Только что на сервере RHEL 7.4 yum за раз обновил более 700 пакетов и ничего при этом не сломал, неплохой результат я считаю.

$ yum install package $ yum update package $ yum update $ yum remove package $ yum deplist package #зависимости пакета; $ dnf repoquery --deplist #то же самое, для Fedora $ yum whatprovides package #установить принадлежность файла какому-либо пакету; $ yum list all #список всех установленных программ

Команды rpm на те случаи, когда использовать yum не с руки.

$ rpm -i package #установить пакет; $ rpm -e packate #удалить пакет; $ rpm -qa #список установленных пакетов; $ rpm -qi package #вывод информации об установленном пакете; $ rpm -q --whatrequires package #обратные зависимости от пакета.

Чтобы настроить репозитории Yum , откройте файл /etc/yum.repos.d/*.repo , или используйте команду yum-config-manager .

Читайте также:  Locale gen arch linux

Zypper

На SuSE Linux используется Zypper / YaST для управления пакетами, движок ZYpp крутится поверх RPM.

$ zypper in mc #установить пакет, если его нет, а противном случае - обновить его; $ zypper up nginx openssh #обновить программу; $ zypper se gnome-desktop #найти программу; $ zypper remove package; $ zypper se --provides --match-exact hg #установить принадлежность файла какому-либо пакету; $ zypper se --requires package #обратные зависимости от пакета. 

Можно использовать операторы и регулярные выражения.

Управление репозиториями производится командой zypper mr .

$ zypper lr #список реп, укаханы номера репозиториев; $ zypper mr -d 5 #выключить 5-у репу; $ zypper mr -e 5 #включить 5-у репу.

Pacman

Этот МП используется в Арче и Manjaro.

$ pacman -S package #установить пакет; $ pacman -R package #удалить пакет; $ pacman -Su package #обновить пакет; $ pacman -Q1 package #список файлов пакета; $ pacman -Qo filename #установить принадлежность файла какому-либо пакету; $ whoneeds package #обратные зависимости от пакета; $ pacman -Qdt #список пакетов-сирот, без обратных зависимостей.

Движок поиска в базе данных поддерживает регулярные выражения.

$ pacman -Ss package #простой полнотекстовый поиск; $ pacman -Ss '^vim-' #поиск с регулярными выражениями; $ pacman -Qs package #поиск среди установленных пакетов;

Настройка репозиториев и зеркал производится из файла /etc/pacman.conf

Gentoo emerge

Конечно же это скорее умозрительный сценарий, чем реальный, так как сложно предположить, что красноглазый пользователь Gentoo Linux не знает необходимых опций emerge . Тем не менее, без этого альманах был бы неполным.

$ emerge package #установить пакет; $ emerge -av package # интерактивный режим установки пакета; $ emerge -pv package # показать сценарий установки пакета; $ emerge -u package # обновить пакет; $ emerge -C package # удалить пакет; $ emerge -auDv world # обновить все программы с учетом зависимостей; $ emerge -auDNv word # обновить все программы с учетом зависимостей и новых USE опций.

С дополнительными утилитами можно получить больше информации о файлах, ненужных пакетах и т. д.

$ revdep-rebuild #проверить и восстановить неудовлетворенные зависимости; $ eix package #искать пакет; $ equery belongs package #установить принадлежность файла какому-либо пакету; $ equery depends package #обратные зависимости от пакета; $ equery uses package #USE флаги пакета; $ qlop -l #история операций emerge;

Репозитории, зеркала и все самое важное для emerge / portage содержится в /etc/make.conf .

Материалы по теме

Источник

Оцените статью
Adblock
detector