So erstellen Sie ein benutzerdefiniertes RPM -Repository unter Linux
- 951
- 176
- Matteo Möllinger
Drehzahl ist das Akronym von RPM -Paketmanager: Es ist der Low-Level-Paketmanager, der in allen Red Hat-Familie von Distributionen verwendet wird, wie Fedora und Red Hat Enterprise Linux.
Ein RPM -Paket ist ein Paket mit Software, das mit diesem Paketverwaltungssystem installiert werden soll, und RPM -Pakete werden normalerweise über Software -Repositories verteilt. In diesem Tutorial lernen wir, wie Sie ein benutzerdefiniertes RPM -Repository erstellen und wie Sie unsere Verteilung konfigurieren, um sie als Softwarequelle zu verwenden.
In diesem Tutorial lernen Sie:
- So erstellen Sie ein RPM -Repository
- So verwenden Sie das Repository als Softwarequelle
Softwareanforderungen und Konventionen verwendet
Kategorie | Anforderungen, Konventionen oder Softwareversion verwendet |
---|---|
System | Jede Verteilung der Red Hat -Familie |
Software | DNF, Createrepo |
Andere | Verwaltungsberechtigte zur Konfiguration des Repositorys |
Konventionen | # - Erfordert, dass gegebene Linux -Commands mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mithilfe von verwendet werden können sudo BefehlUS |
Software Installation
Für dieses Tutorial erstellen wir unser benutzerdefiniertes Repository auf einem lokalen Computer mit IP 192.168.0.39
Das wird als HTTP -Server verwendet. Auf dieser Maschine müssen wir das erste tun, um die zu installieren Createrepo
Paket. Die auf dem Remote-Computer installierte Verteilung muss selbst keine RPM-basierte Verteilung sein, solange das Paket verfügbar ist. In unserem Fall ist das auf dem Server installierte System beispielsweise Debian. Um das Paket zu installieren, müssen wir den folgenden Befehl ausführen:
$ sudo apt-get update && sudo apt-Get Installieren Sie Createrepo
Wie bereits erwähnt, möchten wir in unserem spezifischen Beispiel die in unserem benutzerdefinierte Repository gehostete Software über das HTTP -Protokoll zugänglich machen. Daher müssen wir einen HTTP -Server installieren. In diesem Fall werden wir mit Apache arbeiten. Wenn Sie es auf Debian installieren, ist es nur eine Frage des Laufens:
$ sudo apt-Get Installieren Sie Apache2
Sobald die Pakete installiert sind, können wir fortfahren und unser RPM -Repository in wenigen, sehr einfachen Schritten erstellen.
Erstellen des Repositorys
Der Standard Apache VirtualHost Dokument Root
Erstellt, wenn Apache auf Debian installiert ist /var/www/html
. Zu diesem Zeitpunkt können wir einen virtuellenHost für unser Repository erstellen oder einfach das Repository -Verzeichnis als Teil erstellen
der Standardeinstellung. Um der Einfachheit um den Einfachheit halber werden wir in diesem Tutorial die letztere Option untersuchen:
$ sudo mkdir/var/www/html/repo
Der Repo
Wir haben mit dem obigen Befehl in der Standard -VirtualHost erstellt Dokument Root, wird unsere Pakete hosten und die Basis unseres Repositorys sein. Um es besser zu strukturieren, wollen wir jetzt einige Unterverzeichnisse erstellen
benannt nach der Verteilung, seiner Version und der Architektur der Pakete, die wir zur Verfügung stellen möchten. Nehmen wir zum Beispiel an, wir möchten das Repository auf verwenden Fedora 33 x68_64
, Wir sollten den folgenden Befehl ausführen:
$ sudo mkdir -p/var/www/html/repo/fedora/releases/33/x86_64
Der nächste Schritt besteht darin, das Repository zu bevölkern. Alles, was wir tun müssen, ist, die Pakete zu platzieren, die wir zur Verfügung stellen möchten, innerhalb des entsprechenden Repository -Verzeichnisses. In diesem Fall werde ich beispielsweise das Repository mit einem Paket bevölkern, das durch Kompilieren des VSCODE -Editors aus der Quelle erhalten wird. Das Paket heißt Code-1.56.0-1617183449.EL8.x86_64.Drehzahl
. Sobald es kopiert ist, sollte unsere Dateistruktur so aussehen:
Repo └── Fedora └── Veröffentlichungen └── 33 └── x86_64 └── codecode-1.56.0-1617183449.EL8.x86_64.Drehzahl
Wenn unser Repository besiedelt ist, möchten wir nur die Ausführung des Leitfadens haben Createrepo
Befehl im Verzeichnis mit den Paketen. In diesem Fall würden wir rennen:
$ sudo createrepo/var/www/html/repo/fedora/releases/33/x86_64
Der Befehl erstellt die Repository -Metadaten in einem genannten Verzeichnis Repodata
, Basierend auf den im Zielverzeichnis enthaltenen Pakete und muss jedes Mal erneut gestartet werden, wenn das Repository mit neuen Paketen oder alten Paketen entfernt wird. Sobald der Befehl gestartet wurde, sieht unsere Verzeichnisstruktur aus wie:
Repo └── Fedora └── Veröffentlichungen └── 33 └── x86_64 ├── codecode-1.56.0-1617183449.EL8.x86_64.rpm └── repodata ├── 22AB1D1D123BB7D7CDE556BF8A8AC4DAF9CDB75572F40EBDD2F399908CB7F6B9-OHER.xml.GZ ├── 26ED9B63868B2E0263DFA817E21921C4E7542C1BE9F6B7875381BBA6BD78D1C6-Primary.sqlite.BZ2 ├── 50FC300A761812761CF9A8413A619DA23CF336D49999753568CE19A97C025D44-OTER.sqlite.BZ2 ├── A523F54B5FCD0720C182969F991F51E125728A361F31237725DC9418D5E126EA-Primary.xml.gz ├── af2fa9ea5DEAFFCA5FFC9F3E524155DEFA8CFA5656962845A45C8B0E984F3E19-FILELELISTEN.sqlite.BZ2 ├── F95849CF860F1184B97D30000EA1F9F1C35EDD6D625DCD387453187510DD4A18-Filelisten.xml.GZ └── Repomd.xml
Unser Repository wurde erfolgreich erstellt. Jetzt müssen wir unsere Verteilung konfigurieren, um sie als Softwarequelle zu verwenden.
Hinzufügen des Repositorys als Softwarequelle
Wechseln Sie zu unserer RPM-basierten Verteilung und sehen Sie, wie Sie sie konfigurieren, um unser benutzerdefiniertes Repository als Softwarequelle zu verwenden. Repository -Konfigurationsdateien finden Sie unter dem /etc/yum.Repos.D
Verzeichnis und muss das haben.Repo
Verlängerung. Wenn wir in das Verzeichnis schauen, können wir die bereits vorhandenen sehen:
$ ls/etc/yum/repos.D Fedora-Cisco-OpenH264.Repo Fedora-Updates-Test-Modular.Repo Fedora-Modular.Repo Fedora-Updates-Testing.Repo Fedora.Repo RPMFusion-frei.Repo Fedora-Updates-Modular.Repo RPMFusion-frei-Updates.Repo Fedora-Updates.Repo RPMFusion-frei-Updatentest.Repo
Erstellen wir nun unsere benutzerdefinierte Repository -Konfiguration. In der Datei sollten wir als minimale Informationen angeben:
- Die Repository -ID
- Der Repository -Name
- Ein Repository BaseUrl
- Der Repository -Status
- Ob Sie die GPG -Signatur der Pakete überprüfen oder nicht
Wir werden solche Informationen in einer Datei namens speichern Ownrepo.Repo
, Hier ist der Inhalt:
[OwnRepo] name = eigenes Repository BaseUrl = http: // 192.168.0.39/repo/fedora/releases/$ releasever/$ basearch enabled = 1 gpgcheck = 0
Die Definition in Klammern ([Ownrepo]
) ist die Repository -ID und muss in allen Repository -Definitionen eindeutig sein. Mit dem Name
Schlüssel Wir haben einen menschlichen lesbaren Namen für das Repository als Zeichenfolge angegeben. Dies ist optional; Wenn kein Name angegeben ist, wird die Repository -ID auch als Name verwendet.
Mit dem BasisaRl
Schlüssel Wir geben eine Liste der URLs für das Repository an. Die URLs müssen durch einen Raum oder ein Komma getrennt werden. In unserem Beispiel haben wir gerade eine einzelne URL bereitgestellt, aber Sie können feststellen, dass wir zwei Variablen darin verwendet haben:
- $ Releasever
- $ basearch
Die Erweiterung des ersten, $ Releasever
, führt in diesem Fall in die Versionsversion des Betriebssystems 33
, Da wir unser Repository auf einem Fedora 33 -System installieren. Die zweite Variable, $ basearch
, wird in einer Zeichenfolge erweitert, die die Basisarchitektur des Systems darstellt, was in unserem Fall ist x86_64
.
Der ermöglicht
Schlüssel erfordert a boolean Wert, der feststellt, ob das Repository als aktiv angesehen werden sollte oder nicht. Der letzte Schlüssel, den wir verwendet haben, ist gpgcheck
: Es erfordert auch einen booleschen Wert und wird verwendet, um festzustellen, ob eine GPG -Signaturprüfung auf den vom Repository installierten Paketen durchgeführt werden sollte. In unserem Beispiel haben wir den Scheck einfach deaktiviert, da das Repository nur für den persönlichen Gebrauch gedacht ist.
Nachdem unser Repository konfiguriert ist, können wir versuchen, die zu installieren Code
Paket daraus einfach durch Ausführen:
$ sudo dnf install Code eigenes Repository 451 KB/S | 13 KB 00:00 Abhängigkeiten gelöst. ====================================================== ====================================================== ============== Package Architecture Version Repository Size =============================== ====================================================== ================================= installieren: Code x86_64 1.56.0-1617183449.el8 ownrepo 100 M Transaction Summary ============================================ ====================================================== ===================== Install 1 Paket Gesamtdownload Größe: 100 m Installierte Größe: 294 m ist dieses OK [Y/N]:
Sobald wir eine positive Antwort auf die Eingabeaufforderung geben und bestätigen, wird das Paket auf unserem System installiert.
Schlussfolgerungen
In diesem Artikel haben wir gelernt, wie einfach es ist, ein benutzerdefiniertes RPM -Repository mit dem zu erstellen Createrepo
Dienstprogramm, und wir haben gesehen, wie man eine DNF -Konfigurationsdatei in unserer Verteilung erstellt, um sie mit einer Softwarequelle zu verwenden. Wir haben eine minimale Untergruppe von gesehen
die Schlüssel, die in der Repository -Konfiguration verwendet werden können; Für eine detailliertere Liste können Sie die offizielle DNF -Dokumentation konsultieren.
Verwandte Linux -Tutorials:
- Dinge zu installieren auf Ubuntu 20.04
- Eine Einführung in Linux -Automatisierung, Tools und Techniken
- Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
- Linux -Download
- Mint 20: Besser als Ubuntu und Microsoft Windows?
- Kann Linux Viren bekommen?? Erforschung der Verwundbarkeit von Linux…
- Mastering -Bash -Skriptschleifen beherrschen
- Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
- Ubuntu 20.04 Tricks und Dinge, die Sie vielleicht nicht wissen
- Dinge zu installieren auf Ubuntu 22.04
- « So benennen Sie mehrere Dateien unter Linux um
- So generieren und unterstützen Sie einen GPG -Tastatur unter Linux »