Linux przyjął terminową praktykę zarządzania oprogramowaniem, tworząc formaty pakowania, pakiety oprogramowania i unikalne narzędzia instalacyjne. W tym artykule omówiono, w jaki sposób proces instalacji pakietu oprogramowania ulepszony z instalacji pakietu Tarball do zarządzania pakietami DEB i RPM.
Tarball
Wcześniejsze dodanie oprogramowania systemów Linux wymagało, aby użytkownik pobrał kod źródłowy, skompilował go w plikach binarnych i dodać do systemu. Czasami oprogramowanie było udostępnione przez niektórych użytkowników w skompilowanym formularzu znanym jako Tarball. Tarball zawiera wiele plików, w tym, pliki wykonywalne, pliki konfiguracyjne, dokumentację i biblioteki. Tak, aby wszystkie pliki były ściśnięte w jednym pliku, aby ułatwić pamięć i dystrybucję.
Po instalacji oprogramowania pliki rozprzestrzeniły się w systemie w odpowiednich katalogach. Jednak metoda tworzenia Tarball może wydawać się łatwa, ale proces instalacji utrudnia na przykład niektóre zadania:
Wymaga to od użytkownika niezależnego/ręcznego śledzenia zależności dla oprogramowania instalacyjnego, tak aby samo oprogramowanie zależne ma pewne zależności.
Ponieważ instalacja pakietu Tarball rozprzestrzenia pliki, nie będzie łatwo zlokalizować pliki dokumentacji i plików konfiguracyjnych, nawet jeśli użytkownik zna polecenia.
Trudno jest zlokalizować pliki do odinstalowania oprogramowania.
Brak metadanych w Tarballs sprawia, że użytkownicy są zdezorientowane o szczegółach wersji po instalacji. To utrudnia śledzenie błędów i zdobywanie nowych wersji.
Aby przezwyciężyć te problemy, opakowanie oprogramowania w rozkładach Linux przekształciło się w dwa formaty opakowań znane jako opakowanie Deb i RPM.
Opakowanie Deb
Dystrybucje Linux oparte na debian i debian korzystają z opakowań oprogramowania deb-base. .Pliki Deb zawierają wszystkie odpowiednie pliki z metadanami w .Format archiwum AR. Metadane zawierają wszystkie odpowiednie szczegóły oprogramowania obejmujące wersję, opis, zależności, licencje itp. Dystrybucje Debiana oferują wiele interfejsów graficznych i narzędzi opartych na terminalu do zarządzania .Pliki Deb. Niektóre z nich obejmują:
Mimo że Ubuntu Software Center jest intuicyjne, zaawansowany system zarządzania opakowaniami przewyższa wszystkie inne PMS dla opakowań deb.
Opakowanie RPM
RPM (.RPM) Format pakowania to preferencja SUSE, Fedora i Red Hat oraz rozkłady Linux oparte na RHEL. Pakiet RPM jest połączeniem plików, aby zapewnić przeglądarkę zdjęć, edytora tekstu lub inne oprogramowanie dla użytkowników RHEL Distribution. Zawiera również pliki konfiguracyjne, metadane i inne wymagane dokumenty do utworzenia oprogramowania.
Menedżer pakietów RPM łączy pliki binarne i wszystkie wymagane pliki dostępne za pośrednictwem dostawców oprogramowania Upstream w pakiecie RPM. Przed włączeniem pakietów do repozytorium są one podpisane, aby użytkownicy mogli zweryfikować ich ważność. Teraz użytkownik może uzyskać dostęp do tych pakietów do instalacji z repozytoriów umieszczonych wewnątrz CDS lub katalogów za pośrednictwem serwerów NFS lub FTP.
Nazwa pakietu RPM wiele mówi o oprogramowaniu. Na przykład wpisz następujące polecenie, aby znaleźć szczegóły aktualnie zainstalowanego pakietu RPM Firefox:
[fedora@fedora] $ rpm -q Firefox
Firefox-87.0-12.FC34.x86_64
Aby znaleźć dalsze szczegóły pakietu, zapytaj lokalną bazę danych RPM za pomocą polecenia RPM z opcją -qi:
[fedora@fedora] $ rpm -Qi Firefox
Nazwa: Firefox
Wersja: 87.0
Wydanie: 12.FC34
Architektura: x86_64
Data instalacji: Pt 23 kwietnia 2021 06:58:19 EDT
Grupa: nieokreślony
Rozmiar: 261285879
Licencja: MPLV1.1 lub gplv2+ lub lgplv2+
Podpis: RSA/SHA256, WT 13 kwietnia 2021 04:59:11 EDT, Key ID 1161AE6945719A39
Źródło RPM: Firefox-87.0-12.FC34.src.RPM
Data budowy: poniedziałek 12 kwietnia 2021 04:56:26 EDT
Host kompilacji: BuildHW-X86-10.IAD2.Fedoraproject.org
Packager: Projekt Fedora
Sprzedawca: projekt Fedora
URL: https: // www.Mozilla.org/firefox/
URL błędu: https: // bugz.Fedoraproject.Org/Firefox
Podsumowanie: przeglądarka internetowa Mozilla Firefox
Opis :
Mozilla Firefox to przeglądarka internetowa open source zaprojektowana dla standardów
zgodność, wydajność i przenośność.
Powyższe dane wyjściowe reprezentuje teraz opakowanie i daty instalacji, rozmiar, licencjonowanie grupy Firefox Package i wiele innych szczegółów. Mimo że RPM było pierwszym poleceniem narzędzi opakowania RPM do aktualizacji instalacji, zapytania, usuwania pakietów itp., Ma pewne podstawowe wady.
Zależność piekła: Instalacja pakietu RPM nie powiada się przy braku zależności, jednocześnie opowiadając o wymaganych komponentach. Ponadto sam pakiet zależny ma pewne potrzebne zależności, aby wykonać pracę.
Lokalizacja RPM: Menedżer pakietu RPM spodziewa się odbierać lokalizację pakietu przed instalacją. Jeśli pakiet jest dostępny w bieżącym folderze, wymaga wejścia Firefox-87.0-12.FC34.x86_64.RPM, jeśli jest na serwerze, wymaga przykładu http: //.COM/Firefox-87.0-12.FC34.x86_64.RPM.
Podczas gdy w tym czasie opakowanie oprogramowania oparte na Deb może automatycznie rozwiązać problem zależności. Jednak po rosnącej popularności pakietów RPM problemy zostały rozwiązane w przypadku obiektu Yum.
Projekt Yum
Wprowadzono obiekt Modifed YellowDog Updatered (YUM) w celu zarządzania zależnościami pakietów RPM, rozważając każdy pakiet RPM jako część dużego repozytorium oprogramowania. Tak że problem radzenia sobie z zależnościami dotyczy dystrybucji Linux lub oprogramowania stron trzecich.
Rozwiązuje problemy z koncepcją, w której repozytoria mogą się na siebie opierać. Na przykład, jeśli użytkownik zainstaluje pakiet z RPMFusion.Repozytorium org, które wymaga polecenia/narzędzia z głównego repozytorium Fedora, ma również dostęp do tego. Stąd zostanie pobrane i zainstalowane w międzyczasie.
Wniosek
Artykuły zawierają krótką historię ewolucji systemu zarządzania opakowaniami Linux. Omawialiśmy .Deb i .Systemy pakowania oprogramowania oparte na RPM dla dystrybucji Linux opartych na Debianie i RHEL, ich najczęściej używane narzędzia. Omawiamy również ewolucję systemów zarządzania pakietami z problemów, przed którymi stoi na wczesnych etapach rozwoju.