Система управління пакетами - це набір інструментів, що забезпечує уніфікований метод установки, оновлення і видалення програмного забезпечення у вашій системі. Дистрибутиви Linux, включаючи openSUSE, зазвичай складаються з тисяч окремих пакетів програм.
Програмне забезпечення поширюється через пакети з прикріпленими метаданими. в яких міститься додаткова інформація: опис призначення пакета, список залежностей. необхідних для нормальної роботи програми, і т.д. Пакети зберігаються в репозиторіях. локальних (CD, DVD або жорсткий диск) або мережевих сховищах. Після установки пакета його метадані зберігаються в локальній базі даних і використовуються для пошуку файлів пакета.
Libzypp - це реалізація подібної системи управління пакетами для openSUSE, до неї надається графічний інтерфейс користувача YaST Software Management і інтерфейс командного рядка Zypper.
Пакети - це архіви файлів. містять всі компоненти додатків (самі додатки, колективні бібліотеки, пакети для розробки додатків і т.д.) та інструкції щодо їх запуску та налаштування.
Пакет інтегрований в дистрибутив, для якого він був зібраний, з урахуванням шляхів установки, залежностей, інтеграції з середовищем, скриптів запуску для серверів і т.п. Тому завжди слід встановлювати пакети, зібрані саме для вашого дистрибутива і його версії (наприклад openSUSE 11.1). Не варто застосовувати пакети Fedora в openSUSE і навіть пакети openSUSE 11.1 в openSUSE 11.2 (хоча працездатність останніх іноді можлива).
метадані пакетів
Пакет також містить додаткові відомості, зазвичай звані метадані. У них входять:
- анотація
- опис
- список вмісту пакета
- номера версії програми і релізу пакету
- коли, де і ким зібраний пакет
- для якої архітектури призначена збірка
- контрольні суми файлів
- ліцензії на програми
- відомості про залежності
- інше
залежно пакетів
Важлива функція пакетів - опис взаємозв'язків додатків. Оскільки додатки вимагають для свого виконання певного робочого оточення (інших програм, бібліотек і т.п.), пакети можуть надавати файли, призначені для використання в інших пакетах. Залежно пакетів використовуються для вираження таких зв'язків.
Наприклад, пакет А може вимагати наявності встановлених пакетів Б, В, Г для коректної роботи.
- Пакетні залежності транзитивність. тобто в разі залежності А від Б і Б від В для установки А потрібні і Б, і В. Так що не дивуйтеся, якщо для установки всього лише однієї програми може знадобитися установка безлічі пакетів.
- Типові бібліотечні залежності. Практично кожне окреме додаток вимагає декількох бібліотек. Зазвичай назви пакетів, що містять бібліотеки, починаються з "lib".
Використання системи пакетів - важлива властивість дистрибутивів Linux (а також BSD- і Unix-систем), що забезпечує модульний підхід до управління операційною системою і додатками. Наприклад, пакет openssl містить криптографічні бібліотеки, які використовуються безліччю інших додатків і бібліотек (для SSL-шифрування й ін.). Після виходу свіжої версії openssl з поліпшеннями і виправленнями, всі програми, його використовують, отримають нові можливості в результаті лише єдиного поновлення даного пакета.
Такий підхід дуже ефективний для підтримки стабільності і захищеності системи: якщо виправлена уразливість в бібліотеці, використовуваної іншими додатками, її оновлення закриє цю вразливість для всіх пакетів.
формати пакетів
Програмне забезпечення для Linux найчастіше поширюється в одному з наступних форматів.
- tgz (файли tar gzip). Це просто архіви. Вони можуть містити все, що розробник вважає за потрібне. Крім самого формату архіву, ніяких стандартів на структуру вмісту не існує.
- deb (Debian). Формат пакетів, прийнятий в Debian і його похідних дистрибутивах.
- rpm (Менеджер пакетів RPM). Створений Red Hat і прийнятий LSB в якості стандарту, rpm використовується openSUSE і багатьма іншими збірками.
Сам по собі формат пакетів не надає управління залежностями, а лише повідомляє про їх наявність, надаючи користувачу самому розбиратися з установкою необхідних компонентів, якщо вони відсутні.
Припустимо, що ви хочете встановити пакет А, який залежить від пакета Б. RPM не встановив пакет Б автоматично, але повідомить, що він потрібен для установки А, і припинить роботу. Користувач повинен сам спершу встановити Б, а потім зможе встановитися А. Нескладно? Тепер уявіть, що пакет Б залежить від пакетів В і Г, а Г залежить від Д, а Д від. і так далі. В результаті вам буде потрібно вручну відстежити всі гілки, можливо, немаленького дерева залежностей.
Вирішення цієї проблеми є і називається воно менеджер пакетів.
Менеджер пакетів
У сучасних дистрибутивах, таких як openSUSE, установку програм найкраще робити за допомогою менеджера пакетів. Функціонуючи поверх RPM, він отримує пакети з репозиторіїв (інтернет-сервера, CD, DVD.), Знаходить залежності і встановлює їх в вашу систему. Менеджер пакетів також спрощує видалення і оновлення пакетів. Обсяг доступного програмного забезпечення залежить від репозиторіїв, які ви підключили.
Рідним менеджером пакетів openSUSE є модуль YaST Software Management і програма командного рядка Zypper. але в дистрибутиві містяться і інші інструменти управління пакетами. Деякі з них працюють тільки з RPM, інші покривають ширший спектр можливостей.
репозиторії пакетів
Перед установкою пакетів репозиторії повинні бути доступні у вашій системі - чи з дисків, або через інтернет.
Репозиторії openSUSE бувають:
- Офіційні - в них входять добре протестовані і підтримувані пакети.
- Сторонні. такі як Packman і репозиторії Build Service. У них містяться різні додаткові пакети, деякі мають більш нові версії, ніж в дистрибутиві, деякі не можуть бути включені в openSUSE за ліцензійними причин. Пакети в таких репозиторіях, швидше за все, менше тестувалися, ніж офіційні.