Пређи на садржај

Корисник:Снуписноопy/песак

С Википедије, слободне енциклопедије
Сyнаптиц, пример управљача пакета на Дебиан дистрибуцији
Пацман синхронизација пакета

Систем за управљање пакетима[уреди | уреди извор]

Систем за управљање пакетима или управљач пакета (енг. Пацкаге манагер) је скуп софтверских алата за аутоматизовање тока инсталирања, ажурирања, конфигурисања и брисања рачунарских програма.[1]

Систем за управљање пакетима управља форматом датотека званим пакет, архивираним фајловима који садрже метаподатке. При инсталирању пакета на рачунару, подаци о пакету се складиште у локалној бази података управљача пакета. Такве базе често садрже име програма, опис, верзију, име продавца или програмера, контролни збир, и листу зависности (енг. Депенденцy). Овакви подаци су од кључног значаја како би систем могао да прецизно прати и управља верзијама софтвера и спречи проблеме при недостатку зависности.

Приликом преузимања пакета са интернета, системи за управљање пакетима приступају јавним или приватним репозиторијумима, централизованим складиштима који програмери користе за објављивање изворног или бинарног кода свог програма.

Појам система за управљањем пакетима се на различитим системима може јавити у другачијим облицима. На Линуx дистрибуцијама користе се различити софтверски алати у ову сврху, понекад без графичког интерфејса, и најчешће долазе инсталирани уз дистрибуцију. На мобилним оперативним системима препознајемо поједностављене системе за управљање пакетима у виду званичних каталога апликација (енг. Апп сторес).

Овакви системи елеминишу потребу за ручном инсталацијом и ажурирањем софтвера, што може бити корисно при великим фирмама којима је потребно одржавање и администрација велике количине апликативних и системских програма.[2]

Историја[уреди | уреди извор]

За потребе ИБМ АИX 3.0 оперативног система, развијен је управљач пакета СМИТ (са својим бацкенд-ом инсталлп) 1989. године.

Рани управљачи пакета, око 1994. године нису имали аутоматско разрешавање зависности [3] али су могли да поједноставе процес додавања и брисања софтверских пакета. [4]

Око 1995. године, почевши са ЦПАН репозиторијумум, управљачи пакета су могли да преузимају пакете са репозиторијума и аутоматски да решавају проблеме зависности, што их је учинило једноставнијим за коришћење. [5]

Функције[уреди | уреди извор]

Дрво зависности
Стабло зависности на НПМ управљачу пакета

Системи за управљање пакетима имају задатак да пронађу, инсталирају, одржавају и обришу (деинсталирају) софтверске пакете. Софтверски пакет је архивирани фајл који садржи рачунарски програм као и неопходне метаподатке за потребе инсталације. Рачунални програм може бити у изворном коду који прво мора бити преведен и изграђен (буилд-ован).[6] Метаподаци пакета укључују опис пакета, верзију пакета и зависности.

Типичне функције система за управљање пакетима су:

  • Рад са фајл архиварима како би се пакет екстрактовао.
  • Провера контролних збирова и сертификата јавних кључева.
  • Претрага, преузимање, инсталирање и ажурирање постојаћег софтвера приступањем софтверских репозиторијума.
  • Груписање пакета по функцијама.
  • Провера зависности, и инсталација свих потребних.

Изазови са дељеним библиотекама - депенденцy хелл[уреди | уреди извор]

Код рачунарских система који дељене програмске библиотеке повезују динамички (енг. дyнамиц линкинг), уместо статичког повезивања, може доћи до конфликта зависности где два пакета захтевају различите верзије исте библиотеке. Такав случај се популарно назива депенденцy хелл. На Мицрософт Wиндоwс оперативним системима овај случај се такође зове ДЛЛ хелл када се ради са динамично повезаним библиотекама (енг. дyнамицаллy линкед либрариес). [7]

Модерни управљачи су углавном решили овај проблем, допуштањем коегзистирања више верзија једне библиотеке, увођењем слотова, па чак и допуштањем превођења библиотека различитим верзијама компајлера.

Разрешавање локално преведених пакета[уреди | уреди извор]

Како се софтвер може преузети и не коришћењем система за управљање пакетима, потребно је синхронизовати локалне верзије софтвера са базом података управљача пакета. Понекад је потребно ручно управљање неким зависностима или интеграција промењеног стања са управљачем пакета.

За такве потребе, постоје доступни алати који допуштају да се локално преведени пакети интегришу у систем за управљање пакетима. На пример, за дистрибуције базиране на .рпм или .деб форматима фајла постоји ЦхецкИнсталл. [8]

Одржавање конфигурационих датотека[уреди | уреди извор]

Приликом ажурирања одређених софтвера, долази до ажурирања конфигурационих фајлова, што може произвести проблеме ако се не изведе коректно. Како је управљач пакета настао као дериват архивара датотека (на УНИX системима), углавном може само да пише преко постојећих или задржи старе конфигурационе фајлове. До проблема може да дође ако се формат конфигурационог фајла промени, на пример, ако стари конфигурациони фајл експлицитно не искључи нова подешавања која би требала бити искључена. Неки системи за управљање пакетима, као што је Дебиан-ов дпкг, дозвољава конфигурацију током инсталације. Уколико то није могуће, пожељна је конфигурација пре инсталације, што је такође једна од могућности на дпкг-у.

Репозиторијуми[уреди | уреди извор]

Репозиторијуми су дизајнирани тако да садрже корисне пакете. Већи и официјални репозиторијуми су дизајнирани тако да не садрже малвере. Ако је управљач пакета конфигурисан тако да преузима искључиво датотеке са електронским потписом и ако су репозиторијуми од репутабилног издавача - можемо очекивати да такви пакети не садрже малициозан софтвер, па по томе није ни потребан антивирус. Нажалост, у пракси то није случај и потребно је обратити пажњу на нападе тзв. репозиторијумске забуне. [9]

Сузбијање ажурирања[уреди | уреди извор]

При ажурирању софтвера, управљач пакета омогућује ажурирање навелико као и избор појединих пакета. Управљачи пакета могу бити конфигурисани тако да никад не ажурирају софтвер, или да то уради онда када је верзија рањива или нестабилна. Поступак сузбијања верзија се назива пиновање (енг. версион пиннинг).

Примери (опеноффице):

  • yум ово подржава са синтаксом еxцлуде=опеноффице* [10]
  • пацман са ИгнореПкг=опеноффице [11]
  • дпкг подржава ово коришћењем холд заставице при избору пакета
  • АПТ проширује функционалност холд заставице са комплекснијим пиннинг механизмом [12] (такође је могуће блацклист-овање пакета) [13]
  • аптитуде има холд и форбид заставице
  • портаге подржава ово коришћењем пацкаге.маск конфигурационе датотеке

Ланчано брисање пакета[уреди | уреди извор]

Неки од напреднијих урпављача пакета нуде опцију „ланчаног бриснаја пакета” (цасцаде) [11], где се бришу сви пакети који зависе од циљаног пакета, и сви пакети од којих зависи само циљни пакет.

Примери система за управљање пакетима и формата[уреди | уреди извор]

Управљачи артифакта[уреди | уреди извор]

Такође звани управљачи бинарних репозиторијума или универзални управљачи, су софтверски алати намењени преузимању и складиштењу бинарних датотека, артифакта (енг. Артифацт) и пакета који су коришћени и произведени у развојном циклусу софтвера. Овакви системи дају организацијама контролу над свим компонентама њиховог ланца снабдевања софтвером (тј. артефактима, бинарним датотекама, пакетима и компонентама).[14] Управљачи артифакта се сматрају кључним алатом у ДевОпс тоолцхаин. [15]

Формати пакета[уреди | уреди извор]

Сваки управљач пакета препознаје и ради са специфичним типом (форматом) пакета. За фундаментално управљање пакетима одговоран је основни скуп алата једног управљача пакета. Често можемо видети да више различитих управљача пакета користе исти основни скуп алата (енг. цоре утилитиес), а на то додају нови скуп функционалности.

На пример, yум (Yеллоwдог Упдатер Модифиед) користи рпм као свој бацкенд. Yум тиме проширује функционалност бацкенд-а додавањем карактеристика као што су конфигурације за одржавање система на мрежи. Сyнаптиц нам обезбеђује графички кориснички интерфејс и базиран је на АПТ (Адванцед Пацкагинг Тоол) библиотеци, која је сама базирана на дпкг за основни скуп алата.

Алиен је програм који конвертује различите формате пакета на Линуx-у, подржава конверзију између ЛСБ-усклађених .рпм пакета, .деб, Стампеде (.слп), Соларис (.пкг) и Слацкwаре пакета тарбалл типа (.тгз, .тxз, .тбз, .тлз).

На мобилним оперативним системима, Гоогле-ов каталог апликација - Гоогле Плаy користи .АПК (Андроид апплицатион пацкаге) пакет формат, док Мицрософт Сторе користи .АППX и .XАП формате. Аппле-ов еквивалент продавнице апликација користи .ИПА за апликације написане у Сwифт-у или Објецтиве-C-у.

Бесплатан и софтвер отвореног кода[уреди | уреди извор]

По природи бесплатног и софтвера отвореног кода, пакети са сличним и компатибилним лиценцама су доступни на различитим оперативним системима. Овакви пакети могу да се комбинују и дистрибуирају коришћењем комплексних система за управљање пакетима, који могу да подрже разрешавање високе количине зависности и пермутација софтвера. Већина система за управљање пакетима који раде са бесплатним пакетима отвореног кода, су и сами по себи отвореног кода и развијани од стране заједнице која га користи. Главна разлика између система за управљање пакетима на власничким оперативним системима, и на оперативним системима слободног или отвореног кода (као што је Линуx), је у томе што невласнички оперативни системи дозвољавају инсталирање софтвера трећих страна путем истог механизма, док управљачи пакета на Мац ОС X и Wиндоwс-у дозвољавају искључиво инсталирање и ажурирање програма доступних од стране ових фирми (изузетак могу бити неки драјвери на Wиндоwс-у).

На слободним и отвореним управљачима пакета могуће је инсталирати или ажурирати софтвер треће стране додавањем веб адресе репозиторијума у конфигурациони фајл управљача.

Управљачи пакета апликационог нивоа[уреди | уреди извор]

За разлику од управљача пакета системског софтвера, управљачи апликационог нивоа фокусирају се на мању целину софтвера. Углавном се налазе у директоријуму који није под утицајем од управљача системског нивоа, као што је ц:\цyгwин на Wиндоwс-у или /опт/сw на Линуx-у. [16] Ово додуше није случај са управљачима пакета који управљају библиотекама програмских језика, што може довести до конфликта где оба управљача тврде да „поседују” датотеку.

Неки од познатијих управљача пакета апликационог нивоа:

Управљање зависностима података[уреди | уреди извор]

Едгар Маркс, информатичар са универзитета у Лајпцигу је 2016. године осмислио израз Дата Депенденцy Манагемент [17] упућујући на системе који управљају подацима. Системи за управљање зависностима података су дизајнирани тако да олакшају постављање и управљање подацима на цлоуд-у, личним рачунарима или паметним уређајима. Фрамеwорк-ови за управљање зависностима података се користе да би се описало како су подаци добијени, које су њихове лиценце и какве су њихове зависности. Концепт за овакве системе долази из управљачких алата као што су нпм, НуГет итд. Користе се за објављивање, лоцирање и инсталацију пакета података. Типични примери управљача зависностима података су фрамеwорк-ови као што су Хуггинг Фаце, Кбоx и други. [18]

Поређење са сличним програмима[уреди | уреди извор]

Инсталери[уреди | уреди извор]

Инсталациони чаробњак на Wиндоwс оперативном систему
Инсталациони чаробњак на Wиндоwс оперативном систему

Управљач пакета се као термин често меша са инсталерима, што може довести до конфузије. Разлика је следећа:

Поређење управљача пакета са инсталерима
Критеријум Управљач пакета Инсталер
Долази са Оперативним системом или самостално. Сваким рачунарским програмом.
Локација о инсталационим информацијама Једна - централна база података. Зависи од инсталера, може се налазити у директоријуму програма, или међу системским датотекама.
Област одржавања Потенцијално сви пакети на систему. Само сопствени програм.
Развијен од Издавача пацкаге манагер-а, понекад пројекат заједнице. Углавном од издавача софтвера.
Формат пакета Одређени број јавно познатих пакета. Стандардизовани формати не постоје, тј. сваки инсталер има свој формат.
Компатибилност формата пакета Потребно је проверити подржавање одређених формата. Инсталер ће увек подржавати свој формат архива.
Инсталирање плаћених апликација
Инсталирање плаћених апликација на иОС апп сторе-у

Каталози апликација[уреди | уреди извор]

Каталози апликација, на енглеском - апп сторес се могу сматрати управљачима пакета апликационог нивоа. За разлику од традиционалних управљача пакета, каталози су дизајнирани да омогуће плаћање за сам софтвер који се преузима, и може само да понуди једнослојне пакете без зависности и решавања зависности. Због своје комерцијалне природе, углавном су јако једноставни и ограничени у управљају. Чести су на власничким оперативним системима и закључаним паметним уређајима.

Програми за аутоматизацију изградње[уреди | уреди извор]

Програми за аутоматизацију изградње узимају датотеке људски читљивог изворног кода и аутоматизују процес претварања датотека у бинарне извршне пакете на истом или удаљеном рачунару. Након тога, управљач пакета на другом рачунару преузима овакве пакете преко интернета и инсталира их.

Додуше оба типа алата имају заједничке карактеристике:

  • На пример, тополошко сортирање графова зависности коришћено код управљача пакета при управљању зависностима, је такође коришћено код управљача изградње за управљање зависности изворних компоненти.
  • На пример, могуће је инсталирање маке датотека командом make install.
  • На пример, сваки управљач пакета који ради на дистрибуцији базираној на изворном коду пакета (нпр. Портаге, Сорцерy, Хомебреw), подржава конвертовање изворног кога у бинарне извршне фајлове.

Неки алати као што су Маак или А-А-П, су дизајнирани да се баве и изградњом и дистрибуцијом пакета, и могу да се користе као управљачи изградње или као управљачи пакета или оба. [19]

Утицај[уреди | уреди извор]

Иан Мудрок је прокоментарисао да су управљачи пакета „најбољи напредак које је Линуx донео у индустрији”, да такви системи замагљују границе између оперативних система и апликација и да омогућава „једноставније постављање нових иновација на тржиште”, као и „еволуцију оперативног система током времена”. [20]

Постоји такође и конференција програмера управљача пакета под називом ПацкагингЦон. Основана је 2021. године са циљем да се разумеју различити приступи у управљању пакетима. [21]

Види још[уреди | уреди извор]

Референце[уреди | уреди извор]

  1. ^ „Wхат ис а пацкаге манагер?”. дебиан.орг. Архивирано из оригинала 17. 10. 2017. г. Приступљено 19. 5. 2024. 
  2. ^ „Софтwаре Дистрибутион”. Делл КАЦЕ. Архивирано из оригинала 03. 10. 2015. г. Приступљено 19. 5. 2024. 
  3. ^ „Тхе хисторy оф *ниx пацкаге манагемент”. 15. 8. 2017. Архивирано из оригинала 24. 10. 2021. г. Приступљено 19. 5. 2024. 
  4. ^ Епстеин, Цалеб (1. 4. 1995). „А ревиеw оф ИнфоМагиц'с Децембер 1994 Релеасе”. Архивирано из оригинала 29. 10. 2021. г. Приступљено 19. 5. 2024. 
  5. ^ „Тхе Тимелине оф Перл анд итс Цултуре”. перл.орг. Архивирано из оригинала 11. 1. 2013. г. Приступљено 19. 5. 2024. 
  6. ^ Цоуртес, Лудовиц (јун 2013). „Фунцтионал Пацкаге Манагемент wитх Гуиx”. Еуропеан Лисп Сyмпосиум 2013. Архивирано из оригинала 15. 05. 2020. г. 
  7. ^ Туцкер, Цхрис (15. 03. 2007). „ОПИУМ: Оптимал Пацкаге Инсталл/Унинсталл Манагер” (ПДФ). 29тх Интернатионал цонференце он Софтwаре Енгинееринг (ИЦСЕ'07): стр.1. ИСБН 978-0-7695-2828-1. дои:10.1109/ИЦСЕ.2007.59. Архивирано из оригинала (ПДФ) 14. 06. 2011. г. 
  8. ^ „ЦхецкИнсталл”. хелп.убунту.цом. 29. 08. 2019. Приступљено 19. 5. 2024. 
  9. ^ Нелсон, Нате (4. 3. 2024). „Миллионс оф Малициоус Репоситориес Флоод ГитХуб”. даркреадинг.цом. Приступљено 19. 5. 2024. 
  10. ^ „[ЦентОС] yум пиннинг рпмс”. центос.орг. 1. 5. 2005. Архивирано из оригинала 02. 11. 2007. г. Приступљено 19. 5. 2024. 
  11. ^ а б „пацман(8) Мануал Паге”. арцхлинуx.орг. Архивирано из оригинала 31. 08. 2019. г. Приступљено 19. 05. 2024. 
  12. ^ „Хоw то кееп специфиц версионс оф пацкагес инсталлед (цомплеx)”. дебиан.орг. Архивирано из оригинала 14. 11. 2019. г. Приступљено 19. 5. 2024. 
  13. ^ „апт пиннинг то блацклист а пацкаге”. деркеилер.цом. 7. 7. 2009. Архивирано из оригинала 22. 7. 2011. г. Приступљено 19. 5. 2024. 
  14. ^ „Wхат Ис Артифацторy?”. ЈФрог. Приступљено 16. 5. 2024. 
  15. ^ Xавиер, Децостер (18. 8. 2013). „Ан Овервиеw оф тхе НуГет Ецосyстем”. ЦодеПројецт.цом. Архивирано из оригинала 5. 7. 2020. г. Приступљено 16. 5. 2024. 
  16. ^ „Финк - Ф.А.Q.”. финкпројецт.орг. Приступљено 18. 5. 2024. 
  17. ^ „Тхе Кноwледге Боx”. гитхуб.цом. Приступљено 18. 5. 2024. 
  18. ^ Марx, Едгард; Барон, Циро; Сору, Томмасо. „КБоx”. гиеееxплоре.иеее.орг: 125—132. дои:10.1109/ИЦСЦ.2017.77. Приступљено 18. 5. 2024 — преко ИЕЕЕ. 
  19. ^ Долстра, Елецо. „Интегратинг Софтwаре Цонструцтион анд Софтwаре Деплоyмент” (ПДФ). Архивирано (ПДФ) из оригинала 21. 9. 2019. г. Приступљено 19. 5. 2024. 
  20. ^ Мурдоцк, Иан. „Хоw пацкаге манагемент цхангед еверyтхинг”. Иан Мурдоцк'с wеблог. Архивирано из оригинала 23. 2. 2009. г. Приступљено 19. 5. 2024. 
  21. ^ „ПацкагингЦон - а цонференце фор пацкаге манагер девелоперс анд пацкагерс”. пацкагинг-цон.орг. Архивирано из оригинала 2. 9. 2021. г. Приступљено 19. 5. 2024. 

Спољне везе[уреди | уреди извор]