Управление на пакетите под Linux – Част първа: Основи на управлението на пакетите

Управлението на пакетите под Linux се различава изоснови от управлението на приложения под Windows. При Windows, приложенията се разпространяват като пакети с инсталатор, които са като цяло независими и съдържат всичко необходимо на програмата за да бъде пусната. При Linux обаче, отделния пакет не съдържа всичко необходимо за изпълнение на програмата, а само самата програма. Останалите зависимости са част от други пакети.

Програмния пакет представлява сбор от програми и метаданни (информация за приложението, като име, версия, описание). Пакетния мениджър е сбор от инструменти, създадени за да облекчат и автоматизират управлението на програмните пакети (инсталация, ъпгрейд, конфигуриране, премахване).

В зависимост от това, дали пакетния мениджър поддържа решаване на зависимости или не, при опит за инсталация на пакет, са възможни две ситуации:

  1. Пакетния мениджър не се интересува от това, дали всички зависимости за даденото приложение са инсталирани. Пример за такава дистрибуция е Slackware.
  2. Пакетния мениджър е в състояние да направи проверка на зависимостите и отказва да инсталира приложението без да са удовлетворени зависимостите му. Пример за дистрибуции с такива пакетни мениджъри са Fedora, openSuSE, Ubuntu, Arch, CentOS.

Пакетните мениджъри могат да бъдат разделени по различни начини. Един от начините на пакетни мениджъри от ниско и от високо ниво. Пакетни мениджъри от ниско ниво са например rpm, dpkg, pacman, pkgtool. Пакетните мениджъри от високо ниво са обвивки над тези от ниско ниво. Примери за такива мениджъри от високо ниво са yum (RedHat, Fedora, CentOS), zypper (openSuSE), apt, aptitude, synaptc (Debian, Ubuntu, Mint), urpmi (Mandriva).

Основните функции на пакетните мениджъри са:

  • Проверка на чек-сумите на пакетите, за гарантиране, че се инсталира правилния пакет, както и че пакета е с ненарушена цялост
  • Проверка на дигиталния подпис на пакета, целяща да гарантира произхода на пакета
  • Използване на различни ахривиращи програми, с цел извличане на файловете от пакета
  • Ъпгрейд на пакета до последната налична версия
  • Групиране на пакетите по функции
  • Управление на зависимостите

Без пакетните мениджъри, потребителите трябва да следят сами за промени във версиите на приложенията. Също така би било необходимо потребителите сами да компилират приложенията от source code. Освен това ще е необходимо първо да осигурят всички зависимости, на които разчита приложението, като се съобразят със това точно кои версии на зависимостите трябва да бъдат инсталирани за да работи конкретната версия на приложението.

Пакетните мениджъри под Linux използват хранилища като източник на пакети. Хранилищата се помещават на сървъри, обикновенно извън локалната мрежа. Пакетните мениджъри са в състояние да изтеглят приложението директно от хранилището, а в случаите, когато пакетния мениджър поддържа зависимости, ще изтегли и зависимостите. Хранилищата са организирани по дистрибуция и версия. Не рядко разделение съществува и по това, дали дадено приложение е свободно (open source) или не.

Основни предимства на използването на пакетни мениджъри са:

  • Централизирано управление на приложенията
  • Повишена сигурност – преди пакетите да бъдат публикувани в Internet, те биват щателно проверени както за зловреден код, така и за проблеми във функционирането на програмата
  • Списък с приложенията – при поискване пакетния мениджър може да изведе списък с приложенията, налични в активните хранилища, да потърси конкретно приложение или да изведе детайлна информация за него
  • Съхраняване на целостта и работоспособността на системата – при опит за инсталиране на приложение, пакетните мениджъри правят проверка, дали приложението, което се опитвате да инсталирате не влиза в конфликт с друго или дали не се опитва да подмени библиотеки, използвани от други приложения.
  • Лесен начин за ъпгрейд на приложенията

В следващите части на тази статия ще се спра по-подробно на основните пакетни мениджъри и начините за тяхното използване.

Comments are closed.