
В двух словах, управление пакетами это установка и поддержка (обновление или удаление при необходимости), программного обеспечения операционной системы.
На ранних стадиях развития операционных систем
Linux, программное обеспечение для них распространялось только в виде исходного кода, вместе с необходимой документацией, файлами конфигурации и т. д. В настоящее время большинство дистрибутивов
Linux используют уже скомпилированные программы, называемые пакетами. Пакеты предоставляются пользователю уже готовыми к установке на операционную систему. Тем не менее в
linux, всегда можно получить исходный код того или иного программного обеспечения для изучения, улучшения и компиляции.
Что такое зависимости пакетов
Зависимости пакета, это когда одному пакету программного обеспечения, для корректной установки и работы, требуются определенные ресурсы в виде дополнительных общих библиотек или других пакетов. Все современные системы управления пакетами имеют способы разрешения зависимостей, чтобы гарантировать, что при установке пакета будут установлены и все его зависимости, необходимые для нормальной работы.
Система пакетов
Практически любой софт устанавливаемый в современную
linux систему можно найти в Интернете. Он может быть предоставлен разработчиками конкретного дистрибутива через официальные репозитарии (хранилища программного обеспечения, которые могут содержать тысячи пакетов, каждый из которых был скомпилирован, протестирован и поддерживается для распространения и использования в данном дистрибутиве
linux) или доступен в виде исходного кода, который можно загрузить и установить вручную.
Поскольку разные семейства дистрибутивов
linux используют разные системы упаковки (
Debian - пакеты в формате
deb,
CentOS -
rpm формат,
openSUSE - тоже
rpm но созданный специально для
openSUSE), пакет, предназначенный для одного дистрибутива, не будет совместим с другим дистрибутивом. Большинство дистрибутивов
linux входят в одно из трех основных семейств
linux, включенных в сертификацию
LFCS.
Высоко- и низкоуровневые инструменты управления пакетами.
При решении различных задач по управлению пакетами программного обеспечения, необходимо знать, что существуют два типа утилит: низкоуровневые инструменты (производящие фактическую установку, обновление и удаление файлов пакетов), и высокоуровневые инструменты (отвечают за выполнение задач по разрешению зависимостей и поиска метаданных - так называемые "данные о данных").
Низкоуровневые системы управления пакетами:
- Debian, Ubuntu и подобные - менеджер пакетов dpkg
- CentOS - менеджер пакетов rpm
- OpenSUSE - менеджер пакетов rpm (opensuse)
Высокоуровневые системы управления пакетов:
- Debian, Ubuntu и подобные - apt-get/aptitude
- CentOS - менеджер пакетов yum
- OpenSUSE - менеджер пакетов zipper
Dpkg - низкоуровневый пакетный менеджер в
Debian linux и производных дистрибутивах.
Dpkg умеет устанавливать, удалять, предоставлять информацию и создавать
deb пакеты, однако он не может автоматически загружать и устанавливать необходимые зависимости для конкретного пакета.
Часто используемые команды dpkg
Apt-get - высокоуровневый пакетный менеджер в
Debian linux и производных дистрибутивах.
Apt-get представляет из себя простой способ получения и установки необходимых пакетов из различных источников, с разрешением зависимостей, через командную строку. В отличии от
dpkg,
apt-get не работает напрямую с
.deb файлами пакетов, только пакетом по его имени.
Часто используемые команды apt-get и apt-cache
Aptitude, это еще один высокоуровневый инструмент управления пакетами в
debian-подобных операционных системах и может быть использован для управления пакетами (установка, обновление и удаление пакетов с автоматическим разрешениме зависимостей), быстрым и простым способом. Он обеспечивает те же функциональные возможности что и
apt-get, плюс некоторые расширенные, такие как доступ к нескольким версиям пакета.
Rpm - система управления пакетами, используемая
Linux Standard Base (LSB) - совместимыми дистрибутивами для низкоуровневой обработки пакетов. Как и
dpkg, он может запрашивать, устанавливать, проверять, обновлять и удалять пакеты, чаще используется в дистрибутивах на базе
Fedora, таких как
RHEL и
CentOS.
Часто используемые команды rpm
Yum - высокоуровневый инструмент для работы с пакетами (установка, удаление, обновление), с управлением зависимостями в системах на основе
RPM пакетов.
Yum как
apt-get и
aptitude, работает с репозитариями
Часто используемые команды yum
Распространенные задачи низкоуровневых инструментов.
1. Установка пакета из скомпилированного *.deb или *.rpm файла.
Минус подобной установки, это невозможность разрешения зависимостей пакета. Вероятней всего вы будете использовать данный способ установки, если в репозитариях соответствующее ПО отсутствует и не может быть установлено с помощью инструментов высокого уровня. В данном случае, пакет не сможет скачать и установить зависимости, если они ему потребуются, и установка будет прервана ошибкой.
# dpkg -i file.deb [Debian and derivative]
# rpm -i file.rpm [CentOS / openSUSE]
Не пытайтесь устанавливать в
CentOS,
rpm пакет, скомпилированный для
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]
4. Какому пакету принадлежит файл.
# 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, поиск производится не только по имени пакета но и по описанию
# 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
# yum erase package_name
В
OpenSUSE обратите внимание на знак "минус" перед именем пакета.
# zypper remove -package_name
Практически любой менеджер пакетов потребует подтвердить удаление пакета.
4. Просмотр инфоормации о пакете
Вывод информации о пакете
mariadb-server
# aptitude show mariadb-server
# yum info mariadb-server
# zypper info mariadb-server
Удачи.
Комментарии
Отправить комментарий