вступ
А система керування пакетами або менеджер пакетів це група програмних засобів. Він ефективним чином автоматизує процес встановлення, оновлення, конфігурації та видалення комп’ютерних програм для операційної системи комп’ютера. А менеджер пакетів працює з пакетами, даними в архівних файлах і дистрибутивами програмного забезпечення.
Пакети містять такі метадані, як назва програмного забезпечення, опис його мети, контрольна сума (бажано криптографічну хеш-функцію), d список залежностей, постачальник, і номер версії необхідні для правильної роботи програмного забезпечення.
- Метадані зберігаються в базі даних локального пакета після встановлення.
- Як правило, менеджери пакунків керують базою даних інформації про версії та програмних залежностей, щоб запобігти відсутності попередніх умов і невідповідності програмного забезпечення.
- Вони тісно співпрацюють із магазинами програм, менеджерами бінарних сховищ і сховищами програмного забезпечення.
- Менеджери пакунків розроблено для усунення вимоги до оновлень і встановлення вручну.
- Зокрема, це може бути корисним для великих організацій, чиї ОС зазвичай поєднують сотні або більше різних пакетів програмного забезпечення.
Функції менеджера пакетів
Пакет програмного забезпечення можна визначити як архівний файл поєднання комп’ютерної програми та основних метаданих, а також для розробки. Системна програма може бути у вихідному коді, який спочатку потрібно створити та скомпілювати.
Метадані пакета містять версію пакета, опис пакета та залежності (пакети, які потрібно встановити заздалегідь). Багато менеджерів пакунків мають можливість інсталювати, видаляти, підтримувати або знаходити пакети програмного забезпечення під командою користувача.
The система управління пакетами містить деякі типові функції які згадані нижче:
- Робота з архіваторами файлів для розпакування архівів пакетів.
- Забезпечення автентичності та цілісності пакета шляхом автентифікації їхніх цифрових сертифікатів і контрольних сум відповідно.
- Оновлення, інсталяція, завантаження або пошук існуючого програмного забезпечення через магазин додатків або сховище програмного забезпечення.
- Комбінування пакетів за допомогою функції для зменшення плутанини користувача.
- Підтримка залежностей для забезпечення того, що пакет встановлено разом із кожним пакетом, який йому потрібен. Отже, ігнорування «пекло залежності».
Інтерфейси для скомпільованих пакетів (локально)
Системні адміністратори може встановлювати та керувати програмним забезпеченням за допомогою деяких інструментів, відмінних від програмного забезпечення керування пакетами. Наприклад, локальний адміністратор може завантажити вихідний код (без упаковки), скомпілювати його, а потім інсталювати.
Це може призвести до випадання стану локальної системи з синхронізації разом із базою даних стану менеджера пакетів. Місцевому адміністратору знадобиться вжити деяких додаткових заходів, наприклад, вручну інтегрувати зміни в менеджер пакетів або керувати кількома залежностями.
java bool до рядка
Існують деякі інструменти для забезпечення компіляції пакетів (локально) розробляються за допомогою керування пакетами.
CheckInstall доступний для .rpm або Дистрибутиви на основі файлів .deb і Slackware Linux так само. для гібрид такі системи, як Arch Linux і системи на основі рецептів люблю Gentoo Linux, можна спочатку вказати рецепт, який потім підтверджує, що пакет відповідає локальній базі даних пакетів.
Проблеми з розподіленими бібліотеками
Різні комп’ютерні системи, які залежать від зв’язування динамічних бібліотек, а не зв’язування статичних бібліотек, розподіляють бібліотеки машинних інструкцій (виконувані) між програмами та пакетами.
У таких типах систем типові зв’язки між окремими пакетами, які потребують версій бібліотеки, викликають виклик «пекло залежності».
Він також відомий як 'DLL hell' у Microsoft Windows при динамічній роботі зі зв’язаними бібліотеками. Добре керування пакетами має вирішальне значення для цих систем.
Від OPENSTEP , рамкова система була пострілом у вирішенні цієї проблеми, дозволяючи одночасно встановлювати декілька версій бібліотеки, а для багатьох пакетів програмного забезпечення описувати, між якою версією вони пов’язані.
Обслуговування конфігурації
Оновлення файлу конфігурації особливо проблематично з оновленням програмного забезпечення. Принаймні в Unix, оскільки менеджери пакетів виникли як розширення утиліти архівування файлів.
Зазвичай вони лише зберігають або перезаписують файли конфігурації замість використання для них правил. У разі зміни формату файлу конфігурації може виникнути кілька проблем. Наприклад, якщо старий файл конфігурації не вимикає нові параметри явно, це має бути відображено. Кілька менеджерів пакунків, наприклад dpkg Debian, дозволяють конфігурацію під час інсталяції. У деяких інших випадках бажано встановлювати пакунки разом із використанням конфігурації за замовчуванням і перезаписувати конфігурацію під час інсталяції (без заголовків) для великої кількості систем. Цей тип встановлення (попередньо налаштований) також підтримується через dpkg.
Придушення оновлення
Традиційно надається користувачеві разом зі списком дій, які потрібно виконати (зазвичай це список пакетів, який потрібно оновити, і, можливо, надає нові та старі номери версій), якщо користувач співпрацює з програмним забезпеченням для керування пакетами для виконання оновлення.
Це дозволяє користувачеві вибрати один пакет для оновлень або оновити групу. Різні менеджери пакунків можуть бути налаштовані так, щоб багато пакунків ніколи не оновлювались або оновлювалися лише у разі виявлення критичних нестабільностей або вразливостей у старому стандарті, як зазначено пакетом програмного забезпечення. Іноді цей процес відомий як закріплення версії.
Наприклад:
yum підтримує це за допомогою exclude=openoffice* синтаксис
pacman із синтаксисом Ігнорувати=openoffice (в обох випадках для придушення оновлення openoffice)
dselect і dpkg частково підтримують його за допомогою прапора утримання у вибраних пакетах.
здатність має 'заборонити' і 'тримати' прапори.
portage підтримує це за допомогою файлу конфігурації, тобто пакет.маска.
APT розширює прапор, тобто утримувати по комплексу 'закріплення' метод (користувачі також можуть додати пакет до чорного списку).
Репозиторії
Щоб надати користувачам додатковий контроль над типами програмного забезпечення, яке вони дозволяють установлювати у своїй системі (іноді через зручність і юридичні причини з боку розповсюджувача), програмне забезпечення іноді завантажується за допомогою багатьох сховищ програмного забезпечення.
зразки програм java
Каскадне видалення пакетів
Кілька більш розвинутих аспектів керування пакунками полегшують 'каскадне видалення пакетів', де кожен пакет, який покладається на пакет призначення, і кожен пакет, на який покладається пакет призначення, також видаляються.
Порівняння команд
Однак команди є унікальними для всіх конкретних менеджерів пакетів. Ці команди значною мірою можна перекладати, оскільки більшість менеджерів пакунків забезпечують ті самі функції.
Поширеність пакетного менеджера
Менеджери пакунків, такі як dpkg, доступні ще в 1994 році. Різні дистрибутиви Linux, орієнтовані на двійкові пакети, значною мірою покладаються на систему керування пакетами через їхній основний засіб підтримки програмного забезпечення та керування ним.
Багато мобільних операційних систем, таких як Windows Phone, iOS (подібна до Unix) і Android (на базі Linux), майже залежать від відповідного App Store постачальника. Таким чином, вони використовують свою систему керування пакетами (виділену).
Порівняння з інсталяторами
Часто менеджер пакетів відомий як «Менеджер встановлення». Це може викликати плутанину серед інсталяторів і менеджерів пакетів. Деякі з основних відмінностей наведено нижче.
Критерій | Менеджер пакетів | Інсталятор |
---|---|---|
Поставляється з | Як правило, ОС | Всі комп'ютерні програми |
Інформація про місце установки | Центральна база даних для встановлення | Цілком, це на розсуд інсталятора. Це може бути файл у папці програми або серед папок і файлів операційної системи. Вони можуть зареєструватися в списку програм для видалення, не розкриваючи інформацію про встановлення. |
Обсяг технічного обслуговування | Потенційно кожен пакет у системі | Просто продукт, до якого він був упакований |
Розробник | Єдиний постачальник менеджера пакетів | Більш ніж один постачальник інсталятора |
Формат упаковки | Декілька визнаних форматів | Може бути стільки форматів, скільки програм |
Сумісність формату упаковки | Можна використовувати, якщо його використовує менеджер пакетів. Або користувач не оновлює менеджер пакетів, або нові версії менеджера пакетів продовжують його підтримувати. | Якщо інсталятор використовує будь-який формат архіву, то інсталятор завжди з ним сумісний. Хоча інсталятори можуть бути під впливом гниття програмного забезпечення, як і будь-який інший комп’ютер. |
Порівняння з утилітою автоматизації
Майже всі системи управління конфігурацією програмного забезпечення представляють розгортання програмного забезпечення та створення програмного забезпечення як окремі. Як правило, утиліта автоматизації збирання бере файли вихідного коду, які вже є в системі у форматі, доступному для читання, і прискорює процедуру їх перетворення у виконуваний пакет (двійковий) у подібній системі.
Як правило, менеджер пакунків, який пізніше працює на кількох інших системах, завантажує ці виконувані пакунки (попередньо зібрані двійкові) в Інтернеті, а потім інсталює їх.
Хоча обидва типи інструментів включають кілька загальних факторів, які згадуються нижче:
- Топологічне сортування графа залежностей застосовується в менеджері пакетів для обробки залежностей між багатьма бінарними компонентами.
- Крім того, він застосований у менеджері збирання для обробки залежностей між багатьма вихідними компонентами.
- Різноманітні make-файли забезпечують їхню підтримку, а не лише створення виконуваних файлів.
- Крім того, вони підтримують встановлення за допомогою make install.
- Усі менеджери пакунків підтримують переклад вихідного коду (зрозумілого для людини) у двійкові виконувані файли, а потім інсталюють його для дистрибутива на основі вихідного коду, наприклад Homebrew, Sorcery, Portage тощо.
Деякі інструменти, як А-А-П і зробити розроблені для керування як розгортанням, так і будівництвом. Їх також можна використовувати як менеджер пакунків, або утиліту автоматизації збірки, або обидва.
Основні пакетні менеджери та їх формати
Універсальний менеджер пакетів
Його також називають менеджер двійкового сховища. Цей менеджер пакетів — це програмний інструмент, створений для оптимізації зберігання та завантаження бінарних файлів, пакетів і артефактів, створених і використаних у процесі розробки програмного забезпечення.
Універсальні менеджери пакетів зосередьтеся на стандартизації того, як модні користувачі ставляться до кожного типу упаковки. Вони надають користувачам можливість використовувати показники відповідності та безпеки для кожного типу артефакту. Вони були призначені як такі, що знаходяться в середині a Ланцюжок інструментів DevOps.
Системи з відкритим кодом і безкоштовне програмне забезпечення
Пакунки за сумісними та подібними ліцензіями існували для використання в кількох операційних системах через поведінку відкритого програмного забезпечення та безкоштовного програмного забезпечення.
Ці пакунки можна розповсюджувати та комбінувати за допомогою внутрішньо складних і настроюваних систем пакування для керування декількома специфічними для версій конфліктами та залежностями та програмними перестановками.
Крім того, кілька систем упаковки програмного забезпечення з відкритим вихідним кодом і безкоштовного програмного забезпечення самі опубліковані як програмне забезпечення з відкритим кодом і безкоштовне програмне забезпечення.
Однією з відмінностей між керуванням пакунками в таких операційних системах, як Windows і Mac OS X, і системах з відкритим вихідним кодом і безкоштовним програмним забезпеченням, як-от Linux, є те, що системи з відкритим кодом і безкоштовне програмне забезпечення дозволяють оновлювати та встановлювати пакети сторонніх розробників за допомогою подібного механізму. . Тоді як багато менеджерів пакетів Windows і Mac OS X оновлять програмне забезпечення, надане Microsoft і Apple відповідно.
Можливість постійного оновлення програмного забезпечення сторонніх розробників додається шляхом включення відповідної URL-адреси сховища до файлу конфігурації керування пакетами.
Формати пакетів
Усі менеджери пакунків залежать від метаданих і формату пакунків, якими вони можуть керувати. Менеджери пакунків вимагають, щоб групи файлів були згруповані для конкретного менеджера пакунків із відповідними метаданими, як-от залежності.
Основний набір утиліт часто керує загальним встановленням за допомогою цих пакетів, і більше одного менеджера пакетів застосовує ці утиліти для надання додаткових функцій.
приклад:
- yum залежить від rpm як серверної частини. Yum розвиває функціональність серверної частини, додаючи такі аспекти, як проста конфігурація для підтримки системної мережі.
- Менеджер пакетів Synaptic надає графічний інтерфейс, застосовуючи бібліотеку Advanced Packaging Tool, яка залежить від dpkg.
Інопланетянин можна визначити як програму, яка перекладає між різними форматами пакетів Linux. Це підтримує перетворення серед Slackware (.tgz, .tlz, .tbz, .txz) пакети, Пакети Solaris (.pkg), Stampede (.slp), .deb, .rpm, і Стандартна база Linux (LSB) сумісний.
У кількох мобільних ОС, наприклад Google Play використовує формат пакета Пакет програм Android (коротко APK ) в той час як Магазин Windows використовує формати XAP і APPX. Обидва Магазин Windows і Google Play містять однойменні менеджери пакетів.
Менеджери пакетів на рівні програми
Існує кілька менеджерів пакунків (надбудов) для ОС для мов програмування та з обмеженими можливостями, де розробникам потрібні поточні бібліотеки. Менеджери пакетів на рівні програми зосереджуються на невеликій частині програмної системи на відміну від менеджерів пакетів на системному рівні.
Як правило, вони знаходяться в дереві каталогів. Він не організований менеджером пакетів системного рівня, як /usr/local/fink або c:cygwin. Хоча це може не бути умовою для менеджера пакетів, який працює з бібліотеками програмування, що спричиняє можливий конфлікт, оскільки обидва менеджери пакетів можуть порушити оновлення та запитати 'власний' файл.