Wstęp
A system zarządzania pakietami lub menedżer pakietów to grupa narzędzi programowych. Automatyzuje proces instalacji, proces aktualizacji, proces konfiguracji i proces usuwania programów komputerowych dla systemu operacyjnego komputera w efektywny sposób. A menedżer pakietów współpracuje z pakietami, danymi w plikach archiwalnych i dystrybucjami oprogramowania.
Pakiety zawierają metadane, takie jak nazwa oprogramowania, opis jego przeznaczenia, suma kontrolna (najlepiej kryptograficzna funkcja skrótu), d lista zależności, dostawca, I numer wersji niezbędne do prawidłowego działania oprogramowania.
- Metadane są zapisywane w bazie danych pakietu lokalnego podczas instalacji.
- Zazwyczaj menedżerowie pakietów zarządzają bazą danych zawierającą informacje o wersji i zależnościach oprogramowania, aby zapobiec brakom wymagań wstępnych i niedopasowaniu oprogramowania.
- Ściśle współpracują ze sklepami z aplikacjami, menedżerami repozytoriów binarnych i repozytoriami oprogramowania.
- Menedżery pakietów zostały opracowane w celu wyeliminowania konieczności ręcznych aktualizacji i instalacji.
- Szczególnie może to być pomocne dla dużych organizacji, których systemy operacyjne zazwyczaj łączą setki lub znacznie więcej różnych pakietów oprogramowania.
Funkcje Menedżera pakietów
Pakiet oprogramowania można zdefiniować jako plik archiwalny połączenie programu komputerowego i niezbędnych metadanych również dla rozwoju. Program systemowy może znajdować się w kodzie źródłowym, który należy najpierw zbudować i skompilować.
Metadane pakietu zawierają wersję pakietu, opis pakietu i zależności (pakiety, które wymagają wcześniejszej instalacji). Wielu menedżerów pakietów zajmuje się instalowaniem, odinstalowywaniem, konserwacją lub wyszukiwaniem pakietów oprogramowania pod komendą użytkownika.
The system zarządzania pakietami zawiera pewne typowe Funkcje które są wymienione poniżej:
- Współpraca z archiwizatorami plików w celu wyodrębnienia archiwów pakietów.
- Zapewnienie autentyczności i integralności paczki poprzez uwierzytelnienie jej cyfrowych certyfikatów i sum kontrolnych.
- Aktualizowanie, instalowanie, pobieranie lub wyszukiwanie istniejącego oprogramowania za pośrednictwem sklepu z aplikacjami lub repozytorium oprogramowania.
- Łączenie pakietów za pomocą funkcji zmniejszającej dezorientację użytkownika.
- Utrzymywanie zależności zapewniających, że pakiet został zainstalowany wraz z każdym potrzebnym pakietem. Zatem ignorowanie „piekło zależności”.
Front-endy dla skompilowanych pakietów (lokalnie)
Administratorzy systemu może instalować oprogramowanie i zarządzać nim za pomocą narzędzi innych niż oprogramowanie do zarządzania pakietami. Na przykład, lokalny administrator może pobrać kod źródłowy (rozpakowany), skompilować go, a następnie zainstalować.
Może to spowodować wypadnięcie stanu systemu lokalnego z synchronizacji wraz z bazą danych stanu menedżera pakietów. Lokalny administrator będzie musiał podjąć dodatkowe środki, takie jak ręczne zintegrowanie modyfikacji z menedżerem pakietów lub zarządzanie kilkoma zależnościami.
vlc pobieraj filmy z YouTube
Istnieją pewne narzędzia zapewniające, że pakiety zostaną skompilowane (lokalnie) są opracowywane wraz z zarządzaniem pakietami.
SprawdźZainstaluj jest dostępny dla obr./min Lub Dystrybucje oparte na plikach .deb I Linux dla Slackware'a również. Dla hybrydowy systemy takie jak Arch Linux I systemy oparte na recepturach tak jak Gento Linux, możliwe jest wstępne podanie receptury, która następnie potwierdzi, że paczka mieści się w lokalnej bazie paczek.
Wyzwania związane z bibliotekami rozproszonymi
Różne systemy komputerowe, które opierają się na dynamicznym łączeniu bibliotek, a nie na statycznym łączeniu bibliotek, rozpowszechniają biblioteki instrukcji maszynowych (pliki wykonywalne) pomiędzy aplikacjami i pakietami.
W tego typu systemach typowe relacje między odrębnymi pakietami wymagającymi bibliotek skutkują wersjami w wyzwaniu zwanym „piekło zależności”.
Znany jest również jako „Piekło DLL” w systemie Microsoft Windows podczas dynamicznej pracy z połączonymi bibliotekami. Dobre zarządzanie pakietami jest kluczowe dla tych systemów.
Z OTWARTY KROK , system frameworkowy miał szansę rozwiązać ten problem, umożliwiając jednoczesną instalację więcej niż jednej wersji biblioteki, a w przypadku wielu pakietów oprogramowania umożliwiał opisanie, z którą wersją są połączone.
Konserwacja konfiguracji
Aktualizacje pliku konfiguracyjnego są szczególnie problematyczne w przypadku aktualizacji oprogramowania. Przynajmniej w systemie Unix, ponieważ menedżery pakietów powstały jako rozszerzenie narzędzia do archiwizacji plików.
Zwykle jedynie zachowują lub nadpisują pliki konfiguracyjne, zamiast używać do nich reguł. W przypadku zmiany formatu pliku konfiguracyjnego może pojawić się kilka problemów. Na przykład, jeśli stary plik konfiguracyjny nie wyłącza jawnie nowszych opcji, należy to wyświetlić. Kilka menedżerów pakietów, takich jak dpkg Debiana, pozwala na konfigurację w czasie instalacji. W niektórych innych przypadkach pożądane jest instalowanie pakietów przy użyciu konfiguracji domyślnej i nadpisywanie konfiguracji podczas instalacji (bezgłowej) na dużej liczbie systemów. Ten typ instalacji (wstępnie skonfigurowanej) jest również obsługiwany przez dpkg.
Ulepszanie tłumienia
Tradycyjnie udostępnia się użytkownikowi listę działań do wykonania (zwykle listę pakietów do aktualizacji i ewentualnie numery nowej i starej wersji), jeśli użytkownik współpracuje z oprogramowaniem do zarządzania pakietami w celu przeprowadzenia aktualizacji.
Pozwala użytkownikowi wybrać pojedynczy pakiet aktualizacji lub dokonać aktualizacji zbiorczej. Różne menedżery pakietów można skonfigurować tak, aby nigdy nie aktualizowały wielu pakietów lub aby aktualizowały je tylko w przypadku wykrycia krytycznych niestabilności lub luk w starym standardzie, jak określono w pakiecie oprogramowania. Czasami proces ten nazywany jest przypinaniem wersji.
Na przykład:
mniam, obsługuje to za pomocą wyklucz=openoffice* składnia
pacman ze składnią Ignoruj=openoffice (w obu przypadkach, w celu powstrzymania aktualizacji openoffice)
dselect i dpkg obsługują to częściowo poprzez flagę wstrzymania w opcjach pakietów.
zdolności ma 'zakazać' I 'trzymać' flagi.
Portage obsługuje to poprzez plik konfiguracyjny, tj. pakiet.maska.
APT rozszerza flagę, tj. trzymać przez kompleks „przypinanie” (użytkownicy mogą również umieścić pakiet na czarnej liście).
Repozytoria
Aby zapewnić użytkownikom dodatkową kontrolę nad typami oprogramowania, które zezwalają na instalację w swoim systemie (czasami ze względu na wygodę i względy prawne po stronie dystrybutora), oprogramowanie jest czasami pobierane przy użyciu wielu repozytoriów oprogramowania.
fabryczny wzór projektowy
Kaskadowe usuwanie pakietów
Ułatwia to kilka bardziej rozwiniętych aspektów zarządzania pakietami „kaskadowe usuwanie pakietów”, gdzie każdy pakiet, który opiera się na pakiecie docelowym i każdy pakiet, na którym opiera się pakiet docelowy, również są usuwane.
Porównanie poleceń
Jednakże polecenia są unikalne dla wszystkich konkretnych menedżerów pakietów. Polecenia te można w dużym stopniu przetłumaczyć, ponieważ większość menedżerów pakietów obsługuje te same funkcje.
Występowanie Menedżera pakietów
Menedżery pakietów, takie jak dpkg, były dostępne już w 1994 roku. Różne dystrybucje Linuksa zorientowane na pakiety binarne w dużym stopniu opierają się na systemie zarządzania pakietami ze względu na ich główny sposób utrzymywania i zarządzania oprogramowaniem.
Wiele mobilnych systemów operacyjnych, takich jak Windows Phone, iOS (podobny do Uniksa) i Android (oparty na systemie Linux), zależy prawie od odpowiedniego sklepu z aplikacjami dostawcy. Dlatego korzystają z własnego systemu zarządzania pakietami (dedykowanego).
Porównanie z instalatorami
Często menedżer pakietów nazywany jest „menedżer instalacji”. Może to powodować zamieszanie wśród instalatorów i menedżerów pakietów. Niektóre z głównych różnic podano poniżej:
Kryterium | Menedżer pakietów | Instalator |
---|---|---|
Dostarczane z | Zwykle system operacyjny | Wszystkie programy komputerowe |
Lokalizacja informacji o instalacji | Centralna baza danych do instalacji | Wszystko zależy od uznania instalatora. Może to być plik w folderze aplikacji lub wśród folderów i plików systemu operacyjnego. Mogą zarejestrować się na liście deinstalatorów bez ujawniania informacji o instalacji. |
Zakres konserwacji | Potencjalnie każdy pakiet w systemie | Tylko produkt, do którego był zapakowany |
Deweloper | Dostawca pojedynczego menedżera pakietów | Więcej niż jeden dostawca instalatorów |
Format opakowania | Kilka uznanych formatów | Formatów może być tyle, ile jest numeru aplikacji |
Zgodność formatu opakowania | Można z niego korzystać, o ile używa go menedżer pakietów. Albo użytkownik nie aktualizuje menedżera pakietów, albo nowe wersje menedżera pakietów nadal go obsługują. | Jeśli instalator korzysta z dowolnego formatu archiwum, to instalator jest z nim zawsze kompatybilny. Chociaż na instalatorów może wpływać zgnilizna oprogramowania, jak każdy komputer. |
Porównanie z narzędziem do automatyzacji
Prawie wszystkie systemy zarządzania konfiguracją oprogramowania przedstawiają wdrażanie oprogramowania i tworzenie oprogramowania jako odrębne elementy. Zazwyczaj narzędzie do automatyzacji kompilacji pobiera pliki kodu źródłowego, które są w formacie czytelnym dla człowieka, znajdujący się już w systemie i przyspiesza procedurę konwertowania ich do pakietu wykonywalnego (binarnego) w podobnym systemie.
Zwykle menedżer pakietów działający później na kilku innych systemach pobiera te pakiety wykonywalne (wstępnie skompilowane pliki binarne) z Internetu, a następnie je instaluje.
Chociaż oba typy narzędzi obejmują kilka wspólnych czynników, które wymieniono poniżej:
- Sortowanie topologiczne grafów zależności jest stosowane w menedżerze pakietów do obsługi zależności pomiędzy wieloma komponentami binarnymi.
- Jest również stosowany w menedżerze kompilacji do obsługi zależności między wieloma komponentami źródłowymi.
- Różne pliki makefile zapewniają wsparcie, a nie tylko budowanie plików wykonywalnych.
- Obsługują także instalację za pomocą make install.
- Wszystkie menedżery pakietów obsługują tłumaczenie kodu źródłowego (czytelnego dla człowieka) na binarne pliki wykonywalne, a następnie instalują go dla dystrybucji opartej na źródłach, takiej jak Homebrew, Sorcery, Portage itp.
Niektóre narzędzia, np A-A-P I Robić zostały opracowane z myślą o zarządzaniu wdrażaniem i budowaniem. Można ich również używać jako menedżera pakietów, narzędzia do automatyzacji kompilacji lub obu.
Podstawowe menedżery pakietów i ich formaty
Uniwersalny menedżer pakietów
Nazywa się to również menedżer repozytorium binarnego. Ten menedżer pakietów to narzędzie programowe stworzone w celu optymalizacji przechowywania i pobierania plików binarnych, pakietów i artefaktów tworzonych i wykorzystywanych w procesie tworzenia oprogramowania.
Uniwersalne menedżery pakietów skupić się na ujednoliceniu sposobu, w jaki użytkownicy traktują każdy rodzaj opakowania. Zapewniają użytkownikom możliwość korzystania ze wskaźników zgodności i bezpieczeństwa dla każdego typu artefaktów. Zostały one przypisane jako znajdujące się w środku a Łańcuch narzędzi DevOps.
Systemy otwartego i wolnego oprogramowania
Pakiety na zgodnych i podobnych licencjach istnieją do użytku w kilku systemach operacyjnych ze względu na zachowanie oprogramowania typu open source i wolnego oprogramowania.
Pakiety te można dystrybuować i łączyć przy użyciu wewnętrznie złożonych i konfigurowalnych systemów pakowania w celu zarządzania kilkoma konfliktami i zależnościami specyficznymi dla wersji oraz permutacjami oprogramowania.
Ponadto kilka systemów pakowania oprogramowania o otwartym kodzie źródłowym i wolnego oprogramowania jest publikowanych jako oprogramowanie o otwartym kodzie źródłowym i wolne.
Jedną z różnic pomiędzy zarządzaniem pakietami w systemach operacyjnych takich jak Windows i Mac OS X oraz w oprogramowaniu typu open source i wolnym oprogramowaniu, jak Linux, jest to, że systemy open source i systemy wolnego oprogramowania umożliwiają aktualizację i instalację pakietów stron trzecich przy użyciu podobnego mechanizmu . Podczas gdy wielu menedżerów pakietów dla systemów Windows i Mac OS X będzie aktualizować oprogramowanie dostarczone odpowiednio przez Microsoft i Apple.
Możliwość ciągłego aktualizowania oprogramowania innych firm jest dodawana poprzez dołączenie odpowiedniego adresu URL repozytorium do pliku konfiguracyjnego zarządzania pakietami.
Formaty pakietów
Wszyscy menedżerowie pakietów zależą od metadanych i formatu pakietów, którymi mogą zarządzać. Menedżerowie pakietów wymagają pogrupowania grup plików dla konkretnego menedżera pakietów z odpowiednimi metadanymi, takimi jak zależności.
Podstawowy zbiór narzędzi często zarządza ogólną instalacją za pośrednictwem tych pakietów, a więcej niż jeden menedżer pakietów stosuje te narzędzia w celu zapewnienia dodatkowej funkcjonalności.
Przykład:
- mniam, zależy od obrotów na minutę jako backendu. Yum rozwija funkcjonalność backendu, dodając takie aspekty, jak prosta konfiguracja w celu utrzymania sieci systemowej.
- Menedżer pakietów synaptic udostępnia GUI, stosując bibliotekę Advanced Packaging Tool, która zależy od dpkg.
Obcy można zdefiniować jako program, który tłumaczy pomiędzy różnymi formatami pakietów Linuksa. Wspiera konwersję wśród Slackware (.tgz, .tlz, .tbz, .txz) paczki, Pakiety Solaris (.pkg), Stampede (.slp), .deb, .rpm, I Standardowa baza systemu Linux (LSB) zgodny.
W kilku mobilnych systemach operacyjnych, takich jak Google Play wykorzystuje format pakietu Pakiet aplikacji na Androida (w skrócie APK ) podczas Sklep Windows używa formatów XAP I ZAŁĄCZNIK. Obydwa Sklep Windows I Google Play zawierają tytułowe menedżery pakietów.
Menedżerowie pakietów na poziomie aplikacji
Istnieje kilka menedżerów pakietów (dodatek) dla systemów operacyjnych dla języków programowania i z ograniczonymi możliwościami, w przypadku których programiści wymagają bieżących bibliotek. Menedżerowie pakietów na poziomie aplikacji koncentrują się na małej części systemu oprogramowania, w przeciwieństwie do menedżerów pakietów na poziomie systemu.
Zazwyczaj znajdują się one w drzewie katalogów. Nie jest on zorganizowany przez menedżera pakietów na poziomie systemu, np /usr/local/fink Lub c:cygwin. Chociaż może to nie być warunkiem, aby menedżer pakietów współpracował z bibliotekami programistycznymi, powodując możliwy konflikt, ponieważ obaj menedżerowie pakietów mogą przerwać aktualizacje i zażądać 'własny' plik.