Jak utworzyć niestandardowe repozytorium RPM w systemie Linux

Jak utworzyć niestandardowe repozytorium RPM w systemie Linux

RPM to akronim Menedżer pakietów RPM: Jest to menedżer pakietów niskiego poziomu używany we wszystkich dystrybucjach Red Hat, takich jak Fedora i Red Hat Enterprise Linux.

Pakiet RPM to pakiet zawierający oprogramowanie, które ma być zainstalowane za pomocą tego systemu zarządzania pakietami, a pakiety RPM są zwykle dystrybuowane za pośrednictwem repozytoriów oprogramowania. W tym samouczku uczymy się, jak tworzyć niestandardowe repozytorium RPM i jak skonfigurować naszą dystrybucję, aby używać go jako źródła oprogramowania.

W tym samouczku się nauczysz:

  • Jak utworzyć repozytorium RPM
  • Jak używać repozytorium jako źródła oprogramowania

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Każdy rozkład rodziny Red Hat
Oprogramowanie DNF, Createrepo
Inny Przywileje administracyjne do konfiguracji repozytorium
Konwencje # - Wymaga, aby podane Linux -commands były wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$-wymaga wykonania Linux-commands jako zwykłego niewidzianego użytkownika

Instalacja oprogramowania



Ze względu na ten samouczek utworzymy nasze niestandardowe repozytorium na lokalnym komputerze z IP 192.168.0.39 który będzie użył jako serwer HTTP. Na tym komputerze pierwszą rzeczą, którą musimy zrobić, jest zainstalowanie CREATEREPO pakiet. Dystrybucja zainstalowana na zdalnym komputerze nie musi być sama dystrybucja oparta na RPM, o ile dostępny jest wspomniany pakiet. Na przykład, na przykład system zainstalowany na serwerze jest Debian, więc aby zainstalować pakiet, musimy uruchomić następujące polecenie:

$ sudo apt-get aktualizacja && sudo apt-get instaluj createrepo 

Jak powiedzieliśmy wcześniej, w naszym konkretnym przykładzie chcemy, aby oprogramowanie hostowane w naszym niestandardowym repozytorium było dostępne za pośrednictwem protokołu HTTP, dlatego musimy zainstalować serwer HTTP; W takim przypadku będziemy pracować z Apache. Instalując go w Debian, to tylko kwestia biegu:

$ sudo apt-get instaluj apache2 

Po zainstalowaniu pakietów możemy kontynuować i utworzyć nasze repozytorium RPM w kilku, bardzo prostych krokach.

Tworzenie repozytorium

Domyślny VirtualHost Apache DocumentRoot utworzone, gdy Apache jest zainstalowany w Debian Is /var/www/html. W tym momencie możemy utworzyć wirtualHost dla naszego repozytorium lub po prostu utworzyć katalog repozytorium w ramach części
domyślny. Ze względu na prostotę, w tym samouczku zbadamy tę drugą opcję:

$ sudo mkdir/var/www/html/repo 

Repo katalog, który utworzyliśmy z powyższym poleceniem, wewnątrz domyślnego wirtualhostu DocumentRoot, będzie hostować nasze pakiety i będzie podstawą naszego repozytorium. Aby lepiej go ustrukturyzować, chcemy teraz stworzyć niektóre podkatalogowe
Nazwany po dystrybucji, jej wersji i architekturze pakietów, które chcemy udostępnić. Załóżmy, że na przykład chcemy użyć repozytorium Fedora 33 x68_64, Powinniśmy uruchomić następujące polecenie:

$ sudo mkdir -p/var/www/html/repo/fedora/remises/33/x86_64 


Następny krok polega na zaludnianiu repozytorium. Wszystko, co musimy zrobić, to umieścić pakiety, które chcemy udostępnić, w odpowiednim katalogu repozytorium. W takim przypadku, na przykład, wypełnię repozytorium opakowaniem uzyskanym przez opracowanie edytora vscode ze źródła. Pakiet jest nazywany Kod-1.56.0-1617183449.El8.x86_64.RPM. Po skopiowaniu nasza struktura pliku powinna tak wyglądać:

Repo └wiąt Fedora └─lok.56.0-1617183449.El8.x86_64.RPM 

Z wypełnionym naszym repozytorium tylko chcemy uruchomić CREATEREPO polecenie wewnątrz katalogu zawierającego pakiety. W takim przypadku uruchomilibyśmy:

$ sudo crerererepo/var/www/html/repo/fedora/remises/33/x86_64 

Polecenie utworzy metadane repozytorium w katalogu wymienionym Repodata, Na podstawie pakietów zawartych w katalogu docelowym i należy je ponownie uruchomić za każdym razem, gdy repozytorium jest aktualizowane o nowe pakiety lub stare pakiety są usuwane. Po uruchomieniu polecenia nasza struktura katalogu będzie wyglądać jak:

Repo └wiąt Fedora └─lok.56.0-1617183449.El8.x86_64.RPM └── Repodata ├wią 22ab1d1d123bb7d7cde556bf8a8ac4daf9cdb75572f40ebdd2f399908cb7f6b9-inne.XML.GZ ├wiąt 26ED9B63868B2E0263DFA817E21921C4E7542C1BE9F6B7875381BBA6BD78D1C6-PROMARY.sqlite.BZ2 ├� 10FC300A761812761cf9A8413A619DA23CF336D49999753568CE19A97C025D44-INTER.sqlite.BZ2 ├── A523F54B5FCD0720C182969F991F51E125728A361F31237725DC9418D5E126EA-PRIMARY.XML.GZ ├wiąt AF2FA9EAFEFFCA5FFC9F3E524155DEFA8CFA5656962845A45C8B0E984F3E19-FILELIST.sqlite.BZ2 ├─anek F95849CF860F1184B97D30000EA1F9F1C35EDD6D625DCD387453187510DD4A18-FILELISTS.XML.GZ └── REPOMD.XML 

Nasze repozytorium zostało pomyślnie stworzone. Teraz musimy skonfigurować naszą dystrybucję, aby używać go jako źródła oprogramowania.

Dodanie repozytorium jako źródła oprogramowania



Przejdźmy do naszej dystrybucji opartej na RPM i zobaczmy, jak ją skonfigurować, aby użyć naszego niestandardowego repozytorium jako źródła oprogramowania. Pliki konfiguracyjne repozytorium znajdują się pod /etc/mniam.repozytorium.D katalog i musi mieć
.Repo rozszerzenie. Patrząc do katalogu, możemy zobaczyć już istniejące:

$ ls/etc/yum/repo.D Fedora-Cisco-Oopenh264.Repo Fedora-updates-Testing-Modular.Repo Fedora-Modular.Repo Fedora-updates testowanie.Repo Fedora.Repo RPMFUSION BEZPIECZEŃSTWO.Repo Fedora-updates-Modular.Repo RPMFUSION-BET-BADATES.Repo Fedora-Dates.Repo RPMFUSION-BET-BODATATS TESTING.Repo 

Teraz utwórzmy naszą niestandardową konfigurację repozytorium. Wewnątrz pliku, jako minimalny zestaw informacji, powinniśmy podać:

  • Identyfikator repozytorium
  • Nazwa repozytorium
  • Baseurl repozytorium
  • Status repozytorium
  • Czy sprawdzić podpis GPG pakietów, czy nie

Zapiszemy takie informacje w pliku o nazwie OwnRepo.Repo, Oto jego treść:

[OwnRepo] Nazwa = własne repozytorium baseurl = http: // 192.168.0.39/repo/fedora/remises/$ releasever/$ basearch enabled = 1 gpgcheck = 0 

Definicja zgłoszona w nawiasach ([OwnRepo]) jest identyfikatorem repozytorium i musi być unikalny we wszystkich definicjach repozytorium. Z nazwa KLUCZ DO MÓWICZNOŚCI DLA MOŻLIWEGO DLA REPOPOTORIA jako łańcucha. To jest opcjonalne; Jeśli nazwa nie zostanie podana, identyfikator repozytorium będzie również używany jako nazwa.

Z Baseurl Klucz Określamy listę adresów URL dla repozytorium. URL muszą być oddzielone przestrzenią lub przecinkiem. W naszym przykładzie właśnie dostarczyliśmy pojedynczy adres URL, ale można zauważyć, że użyliśmy dwóch zmiennych:

  • $ releasever
  • $ basearch


Rozszerzenie pierwszego, $ releasever, W tym przypadku spowoduje wersję systemu operacyjnego 33, Ponieważ instalujemy nasze repozytorium w systemie Fedora 33. Druga zmienna, $ basearch, zostanie rozszerzony w ciągu reprezentującym podstawową architekturę systemu, który w naszym przypadku jest x86_64.

włączony Klucz wymaga Boolean wartość, która określa, czy repozytorium należy uznać za aktywne, czy nie. Ostatnim kluczem, którego użyliśmy GPGCheck: wymaga również wartości logicznej i służy do ustalenia, czy kontrola podpisu GPG powinna być wykonywana w pakietach zainstalowanych z repozytorium. W naszym przykładzie po prostu wyłączyliśmy czek, ponieważ repozytorium jest przeznaczone tylko do użytku osobistego.

Teraz, gdy nasze repozytorium jest skonfigurowane, możemy spróbować zainstalować kod Pakiet z niego, po prostu uruchamiając:

$ sudo dnf instaluj kod własny repozytorium 451 kb/s | 13 kb 00:00 Zależności rozwiązane. ================================================== ================================================== ============== Pakiet Architektura Wersja Rozmiar repozytorium =============================================================================================================================== ================================================== ================================ Instalowanie: Kod x86_64 1.56.0-1617183449.EL8 OwnRepo 100 m Podsumowanie transakcji =========================================== ================================================== ==================== Zainstaluj 1 pakiet Całkowity rozmiar pobierania: 100 m Zainstalowany Rozmiar: 294 m to OK [T/N]: 

Po udzieleniu afirmatywnej odpowiedzi na monit i potwierdzenie jej, pakiet zostanie zainstalowany w naszym systemie.

Wnioski

W tym artykule dowiedzieliśmy się, jak łatwo jest utworzyć niestandardowe repozytorium RPM z CREATEREPO narzędzie i widzieliśmy, jak utworzyć plik konfiguracyjny DNF w naszej dystrybucji, aby użyć go źródłem oprogramowania. Widzieliśmy minimalny podzbiór
klucze, które można użyć w konfiguracji repozytorium; Aby uzyskać bardziej szczegółową listę, możesz zapoznać się z oficjalną dokumentacją DNF.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Pobierz Linux
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Czy Linux może uzyskać wirusy? Badanie podatności Linuksa…
  • Mastering Bash Script Loops
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…
  • Ubuntu 20.04 sztuczki i rzeczy, których możesz nie wiedzieć
  • Rzeczy do zainstalowania na Ubuntu 22.04