Fedora

Erstellen eines Paket -Repositorys unter Linux Fedora und Debian

Erstellen eines Paket -Repositorys unter Linux Fedora und Debian

Einführung

Dieser Artikel bei der logischen Fortsetzung unseres PXE -Artikel. Es gibt jedoch noch andere Verwendungen, um Ihr eigenes Repository zu erstellen. Zum Beispiel Bandbreite. Wenn Sie ein Netzwerk verwalten und alle Systeme (oder einige) die gleiche Verteilung ausführen, ist es für Sie einfacher, in Verbindung mit einem nahe gelegenen Spiegel nur RSYNC zu erhalten und selbst Aktualisierungen zu servieren. Als nächstes haben Sie möglicherweise einige von Ihnen erstellte Pakete, die Ihre Distribution im Hauptbaum nicht akzeptiert, aber die Benutzer finden sie nützlich. Holen Sie sich einen Domainnamen, richten Sie einen Webserver ein und da gehen Sie los. Wir werden die Einrichtung eines Webserver hier nicht detailliert, nur grundlegende Installationsaufgaben und die grundlegende Einrichtung eines Repositorys für Fedora oder Debian Systems. Sie werden daher von Ihnen erwartet. So lass uns anfangen.

NOTIZ:Dieser Artikel wurde von unserem vorherigen Domain Linuxcareer verschoben.com.

Erstellen eines Repositorys auf Fedora -Systemen

Installieren der Werkzeuge

Fedora hat ein Tool namens namens Createrepo was die anstehende Aufgabe vereinfacht. Alles, was wir installieren müssen, ist das und HTTPD als Webserver:

 # yum installieren createrepo httpd 

Einrichten der Repositorys

Nach dem Einrichten Ihres Webservers gehen wir jetzt davon aus, dass das Stammverzeichnis AR /VAR /www ist. Wir müssen die notwendigen Verzeichnisse in einer organisierten Angelegenheit erstellen (können Sie sich bei Bedarf an den Geschmack anpassen oder einfach nur das offizielle Layout befolgen):

 # CD/var/www/html # mkdir -p fedora/15/x86_64/base # mkdir fedora/15/x86_64/updates 

Das war es fürs Erste. Alles, was wir tun müssen, ist RSYNC zu den erstellten Ordnern und sicherzustellen, dass wir viel Platz zur Verfügung haben:

 # rsync -avrt rsync: // ftp.Heanet.IE/Pub/Fedora/Linux/Releases/15/Alles \/x86_64/os/pakete//var/www/html/fedora/15/x86_64/base 

Verwenden Sie nun Createrepo für den Basisordner:

 # Createrepo/var/www/html/fedora/15/x86_64/base 

Dies ist obligatorisch, da es das Repodata -Verzeichnis erstellt, das Yum bei Verwendung Ihres Repositorys benötigt. Wiederholen wir nun den gleichen Schritt wie oben, aber diesmal erhalten wir die Updates:

 # rsync -avrt rsync: // ftp.Heanet.IE/Pub/Fedora/Linux/\ Updates/15/x86_64//var/www/html/fedora/15/x86_64/updates 

Am Ende empfehlen wir Ihnen, zu überprüfen, ob HTTPD so eingestellt ist, dass sie mit dem Start starten und auch Cron verwenden, um regelmäßig Updates zu erhalten:

 # SystemCTL aktivieren HTTPD.Service # crontab -e 

Denken Sie daran, dass der zugegebene RSYNC -Befehl der zweite ist, der sich auf Aktualisierungen bezieht und dass SystemCTL nur auf Fedora 15 oder höher verfügbar ist. Verwenden Sie NTSYSV oder CHKConfig auf älteren Fedora -Systemen.

Client -Setup

Sie müssen den Maschinen mitteilen, dass Sie von Ihrem Server Updates erhalten .Repo -Dateien:

# Dies wird Base-Lan sein.Repo [Base -Lan] name = Fedora $ Releasever - $ basearch failoUnoUmethod = Priority BaseUrl = http: // 192.168.1.2/Fedora/$ Releasever/$ Basearch/Base Enabled = 1 # Stellen Sie sicher, dass Sie den Beamten deaktivieren .Repo-Dateien mit enabled = 0 gpgcheck = 0 # Dies ist Updates-Lan.repo [updates -lan] name = fedora $ releasever - $ basearch - Aktualisiert failoUnoUvermethod = priority baseUrl = http: // 192.168.1.2/Fedora/$ Releasever/$ Basearch/Aktualisiert gpgcheck = 0 

Jetzt mach einfach eine

 # YUM Update 

Und du bist bereit zu gehen.

Paketunterzeichnung

Wie von einem unserer Leser hervorgehoben, sollte man sich bei der Installation von Paketen auf Sicherheitsprobleme bewusst sein. Die Software kann von kompromittierten Servern heruntergeladen werden und möglicherweise böswillige ausführbare Ausführungen enthalten. Yum (und APT, Zypper und andere Paketmanagementsysteme) überwindet dieses Problem mithilfe von GPG -Tasten. Wir haben über die Spiegelung eines Fedora -Repositorys gesprochen. Diese Pakete sind bereits unterschrieben und die Schlüssel finden Sie in/etc/pki/rpm-gpg. Wenn Sie jemals ein offizielles Fedora Repo als Kunde verwendet haben. Wenn nicht, können die Schlüssel aus heruntergeladen werden GetFedora.org/tasten/. Jetzt müssen wir unsere ändern .Repo -Dateien, um gpgcheck zu aktivieren und Yum zu sagen, wo die Schlüssel sind.

# Dies sind die einzigen Zeilen, die geändert werden müssen, gpgcheck = 1 gpgkey = file: /// etc/pki/rpm-gpg/rpm-gpg-y-yora 

Wenn Sie ein Repository für benutzerdefinierte Pakete verwenden, beschwert sich Yum, dass Ihre benutzerdefinierten Pakete nicht signiert sind. Sie können entweder das Yum -Flag -nogpgcheck verwenden, wenn Sie der Spiegel-/Repository -Betreuer sind und Sie nur Pakete für Ihre Organisation servieren oder die sicher. Dies liegt daran, dass der Server, der das benutzerdefinierte/lokale Repository hält. Sie müssen also einen GPG -Schlüssel auf dem Server erstellen und RPM verwenden, um das benutzerdefinierte Paket zu signieren:

$ gpg-gene-key $ gpg-list-sigs

Wie Sie sehen können, ist die BenutzerID in unserem Fall "Linux -Karriere". Nun, um den Schlüssel öffentlich zu machen:

 $ gpg -Armor -export "userId"> mein.Taste.Datei.ASC $ GPG -KeyServer PGP.MIT.edu-send-key "userId" 

Natürlich unterscheidet sich Ihre Benutzer -ID. Ändern Sie also die Informationen entsprechend. Beachten Sie, dass die ausführbare Datei auf Fedora 16, auf der wir dies getestet haben.

Wir müssen nur eine erstellen .RPMMACROS -Datei im Home -Verzeichnis des Benutzers, der die Pakete signiert und Folgendes einfügt:

%_signature gpg %_gpg_name userId %_gpgbin/usr/bin/gpg2 

Der Befehl, ein Paket zu unterschreiben, jetzt, da alles festgelegt ist, wird sein

 $ rpm --addSsign name_of_package.Drehzahl

Jetzt verwendet der Client, der von Ihrem benutzerdefinierten Repo heruntergeladen wird.

Erstellen eines Repositorys über Debian -Systeme

Installation

Da die Repository -Struktur von Debian mehr verworren ist, werden Sie feststellen, dass es auf der Serverseite etwas mehr Arbeit dauert, jedoch weniger auf der Client -Seite. Zu jeder Zeit gibt es drei Abschnitte: stabil, testen und instabil (nicht experimentelles Zählen), die je nach der Lizenzierung von Paketen drei Komponenten haben: Main, Beitrag und nicht frei. Es ist Ihre Entscheidung, den Teil der Verteilung zu treffen, die Sie widerspiegeln möchten, aber es ist unsere Pflicht, Sie zu warnen: Debian hat viel mehr Pakete zu bieten als Fedora, sodass die Anforderungen an die Festplattenraum erheblich wachsen werden. Es gibt viele Tools, die Sie zum Erstellen eines benutzerdefinierten Repositorys mit Ihren eigenen benutzerdefinierten Paketen verwenden können, aber wir bleiben vorerst an offizielle Pakete. Wir werden also wieder auf unser Setup für den PXE -Artikel zurückkehren und ein lokales Repo für die Installation erstellen. Wir brauchen einen Webserver, also installieren wir ihn:

 # APTitude Installieren Sie Apache2 

Stellen Sie sicher, dass Apache konfiguriert und gestartet wird, bevor Sie fortfahren.

Server -Setup

Das Standard -Root -Verzeichnis ist genau wie in Fedora /var /www. Lassen Sie uns also ein Debian -Verzeichnis erstellen:

 # mkdir/var/www/debian 

Die Debian -Leute empfehlen FTPSYNC, eine Sammlung von Perl -Skripten, die Ihnen helfen sollen, das zu erreichen, was Sie brauchen, auf Ihren lokalen Spiegel. Von besonderem Interesse ist das --ausschließen Option, da Sie nicht alle Inhalte eines Debian -Archivs erhalten möchten (nur AMD64, nur Main und Beitrag, nur drücken, ohne CDs usw.). Wenn Sie nach der Installation ein Repository erstellen möchten, zeigen Sie einfach Ihre/etc/apt/Quellen.Listen Sie in das Verzeichnis auf, das die Pakete enthält (Sie haben dort bereits ein Arbeitsmodell), und das ist alles. Zum Beispiel:

 Deb http: // 192.168.1.2/Debian Squeeze Hauptbeitrag 

Sehen wir uns jedoch ausführlich an, was Sie herunterladen müssen, wenn Sie keine Lust haben, FTPSYNC zu verwenden. Debian (und Ubuntu und wahrscheinlich andere Debian-Derivate) haben ein Paket mit dem Namen apt-utils, was unter anderem die bietet APT-ftparchive Programm, das wir für unser benutzerdefiniertes Repository verwenden werden. So…

 # Eignung installieren Sie Apt-Utils 

Wird das erforderliche Tool auf Ihr System installiert. Wir haben bereits das Basisverzeichnis auf unserem Webserver erstellt, daher benötigen wir Unterverzeichnisse, die für unsere Anforderungen angepasst werden:

 # CD/var/www/debian # mkdir -p Pool/Main # Mkdir Pool/Beitrag # Mkdir -p dists/squeeze/main/binary -amd64 # mkdir -p dists/squeeze/comm/binary -amd64 # mkdir .Zwischenspeicher 

Nachdem wir die Verzeichnisstruktur vorhanden haben, erstellen wir die erforderlichen Konfigurationsdateien, um APT-ftparchive zu helfen, unsere Software zu finden und zu indizieren. Bitte beachten Sie, dass Sie dieses Setup verwenden können, um offizielle Debian -Pakete zu spiegeln oder ein Repository mit Ihren eigenen Paketen zu erstellen, da die Schritte gleich sind.

Die erste Datei der beiden, die wir erstellen müssen (beide leben in/var/www/debian), heißt APT-Release.Conf.

 # CD/var/www/debian # $ Editor APT-Release.Conf 

Der Inhalt, der sich wie oben gezeigt mit unseren Bedürfnissen bezieht, wäre wie folgt:

APT :: ftParChive :: Release :: Codename "Squeeze"; APT :: ftParchive :: Release :: Origin "Linuxcareer.com "; apt :: ftParchive :: release :: components" main drab "; apt :: ftParchive :: release :: label" Linuxcareer.com debian repo "; apt :: ftParchive :: Release :: Architectures" amd64 "; apt :: ftParchive :: release :: Suite" Squeeze "; 

Sie können auch APT-FftParchive verwenden, um Konfigurationsdateien basierend auf den Befehlszeilenargumenten zu generieren. Verwenden Sie den Ansatz, den Sie bevorzugen.

Die zweite Konfigurationsdatei heißt APT-FftParchive.Conf und sein Inhalt würden so aussehen:

 Dir archivedir "."; Cachedir"./.cache ";; Standard pakete :: compress". GZIP BZIP2 "; Inhalt :: Kompress". GZIP BZIP2 ";; Treedefault Bincachedb" Pakete-$ (Abschnitt)-$ (Arch).DB "; Verzeichnis" Pool/$ (Abschnitt) "; Pakete" $ (dist)/$ (Abschnitt)/binär-$ (Arch)/Pakete "; Inhalt" $ (dist)/Inhalt-$ (Arch) "; ; Baum "dists/squeeze" Abschnitte "Hauptbeitrag"; Architekturen "AMD64"; 

Wie Sie sehen können, ist die Syntax in Bezug auf beide Dateien sehr selbsterklärend.

Zum Beispiel werden wir jetzt a herunterladen .Deb von einem Debian -Spiegel, um unsere Idee richtig zu veranschaulichen.

 # CD/var/www/debian/pool/main # wget -c ftp: // ftp.Heanet.dh/spiegel/ftp.Debian.org/debian/pool/main/\ p/patch/patch_2.6.1.85-423D-3_AMD64.Deb 

Generieren wir nun den Inhalt (dies muss jedes Mal wiederholt werden, wenn Sie Pakete hinzufügen oder entfernen).

 # CD/var/www/debian # apt-ftparchive generieren apt-ftparchive.conf # APT-fftparchive -c APT-Release.Conf Release dists/Squeeze> \ dists/Squeeze/Release 

Diese Aktionen haben sogenannte "Aufbau des Repositorys" bezeichnet. Fügen Sie nun, wie oben angewiesen, eine Linie zu Ihren Quellen hinzu.Liste und Sie können Zugriff auf Ihr Software -Repository haben. Sollten Sie ein Debian -Spiegel werden und immer noch keine Lust auf FTPSYNC, verwenden. Verwenden Sie auch einen Spiegel, überlasten Sie FTP nicht.Debian.Org, bitte.

Paketunterzeichnung

Wenn Sie ein CD/DVD/Blu-Ray-Image verwenden möchten, um Inhalte Ihren Clients zu bedienen. Aber wenn Sie durch RSYNC -Inhalt eines Spiegels dienen, müssen Sie wahrscheinlich nichts tun. Wenn Sie ein benutzerdefiniertes Repository haben, finden Sie hier, wie es geht. Erstens, wie im Fedora -Beispiel, generieren Sie den GPG -Schlüssel:

 $ gpg-gener 

Nun, aufgrund des Fehlers Nr. 639204 in Debsign (letzter Update im August im August) scheint, dass wir eine alternative Route nehmen müssen. Da Debian-Pakete im Grunde genommen nur AR-Archive sind, werden wir die unteren Möglichkeit verwenden, unsere Paket (en) zu unterschreiben:

 $ ar x package_name.Deb $ Cat Debian-Binärkontrolle.Teer.GZ -Daten.Teer.gz> tempfile $ gpg -abs -o _gpgorigin tempfile $ ar rc package_name.DEB _GPGORIGIN Debian-Binärkontrolle.Teer.GZ -Daten.Teer.gz 

Also, was wir hier gemacht haben, war das Extrahieren der .DEB -Datei mit AR, verkettet sein Inhalt mit einer temporären Datei (Überlegte die Reihenfolge), unterzeichnen Sie diese Datei dann neu um .Deb zu seinem ursprünglichen Zustand. Jetzt müssen wir den GPG -Schlüssel exportieren (wie Sie sehen können, unterscheidet sich der Prozess nicht so von dem, der auf Fedora angewendet wird).

 $ gpg --export -a> mydebsign.ASC 

Lassen Sie uns nun den Schlüssel für die weitere Verwendung extrahieren:

 $ gpg -Fingerabdruck 

Denken Sie an die letzten vier Gruppen im Schlüsselfingerabdruck (wie unten), da diese die Schlüssel -ID sein werden, die wir später verwenden werden.

Stellen Sie auf der Client-Maschine sicher, dass Debsig-Verify installiert ist, und dann können Sie einen Ort für den Schlüssel erstellen:

 # MKDIR/usr/share/deBsig/keyrings/$ key_id 

Wie Sie im Screenshot sehen können, ist unsere Beispiel -Schlüssel -ID 8760C540B4FC5C21. Importieren wir nun den Schlüssel:

 # gpg-no-default-keyring-Keyring \/usr/shary/debsig/keyrings/$ key_id/debsign.gpg -import mydebsign.ASC 

Jetzt kommt der schwierige Teil: Wir benötigen eine Richtliniendatei für die Schlüssel. Die verwendete Sprache ist XML, aber keine Sorge: IN/usr/Share/doc/debisg-Verify/Beispiele finden Sie eine Datei namens Generic.pol, das irgendwo kopiert werden kann, um bearbeitet und umbenannt zu werden. Ein Beispiel für eine solche Datei könnte so aussehen:

 xmlns = "http: // www.Debian.org/debsig/1.0/">  Name = "Linux Career" Beschreibung = "Paket von Linux Career angeboten"/>   Typ = "Origin" Datei = "Debsign.gpg "/>   Minoptional = "0">  Typ = "Origin" Datei = "Debsign.gpg "/>  

Was Sie oben sehen, ist nur der wesentliche Teil der Richtliniendatei. Speichern Sie diese Datei nach dem Überprüfen mit dem Beispiel und den erforderlichen Änderungen in/etc/debsig/Policies/$ key_id/$ Policy_name.Pol. Wenn Sie nach diesem Schritt den Schritten korrekt ausgeschlossen haben, können Sie Debsig-Averify mit dem Paketnamen als Argument verwenden, um Ihre heruntergeladenen Pakete zu überprüfen. Vielen Dank an Purplefloyd für seinen hilfreichen Artikel dazu.

Client -Setup

Beginnen wir also unseren Client -Computer und stellen Sie sicher, dass er aus dem Netzwerk gestartet wird. Wenn Sie aufgefordert werden, einen Spiegel auszuwählen, wählen Sie "Informationen manuell eingeben". Geben Sie die IP Ihres Servers ein, dann den Standort relativ zu /var /www (in unserem Fall Debian) und Sie sollten bereit sein, installiert zu sein.

Abschluss

Man kann nie genug betonen, wie wichtig es ist, Bandbreite zu retten, selbst in einem kleinen Netzwerk. Natürlich gibt es andere Vorteile eines lokalen Spiegelansatzes, wie das Servieren von maßgeschneiderter Software für Ihr Unternehmen (spezielle Patches angewendet oder nur Änderungen an die Bedürfnisse des Unternehmens besser) oder das Servieren Ihrer Software, die für Ihre Lieblingsverteilung verpackt ist.

Ändern Sie die Prioritäten von Linux -Prozessen mit Nizza und Renice
Jeder Prozess, der auf dem Linux -System ausgeführt wird, hat eine Standardpriorität zugewiesen......
Cisco CCNA - IP -Adressklasse B Range B
Netzwerkbits 16 verfügbare Netzwerkbits verfügbar (x) 10xxxxxx xxxxxxxx Hosts Hosts Dadurch lassen wir 14 Bits, die für die Anzahl der Netzwerke ausge...
DD- Handbuch Seite
Name DD - Konvertieren und kopieren Sie eine Dateisynopsis DD [Operand]… DD -Option Beschreibung Kopieren Sie eine Datei, konvertieren und formatieren...
Unsere Seite ist dem Linux-Betriebssystem gewidmet. Hier finden Sie viele nützliche Ratgeber und interessante Artikel