Ihr Vorhaben
Sie haben RPM Pakete erstellt oder heruntergeladen und wollen diese für SUSE LINUX 10.0 per APT auf einfachst mögliche Weise zur Verfügung stellen.
Voraussetzungen
Sie haben bereits einen FTP-Server konfiguriert. Dieser gibt z.B. das Verzeichnis /var/lib/ftp
frei.
Das Vorgehen
Kopieren Sie Ihre RPM-Pakete in ein Unterverzeichnis des FTP-Servers, z.B. nach rpms
:
root@linux# cd /var/lib/ftp
root@linux# mkdir rpms
root@linux# cp /tmp/*.rpm rpms
Um das APT-Repository anzulegen, benötigen Sie das Programm aptate
, welches sich bei SUSE im Paket apt4rpm
befindet. Dieses benötigt eine Konfigurationsdatei /etc/apt/aptate.conf
, welche wie folgt aussehen muss:
/etc/apt/aptate.conf:<?xml version='1.0' encoding="iso-8859-1"?>
<!DOCTYPE opt SYSTEM "/usr/share/apt4rpm/aptate.dtd">
<opt signed-pkgs-only="no">
<topdir>/var/lib/ftp</topdir>
<distribution id="eigenerpms">
<name>eigenerpms</name>
<version>1</version>
<architecture>noarch</architecture>
<component>
<name>eigenerpms</name>
<url>rpms</url>
</component>
</distribution>
</opt>
Wichtig: Der Pfad /var/lib/ftp
und das Verzeichnis rpms
bei <name>
.
Das Repositorium kann nun generiert werden mit einem einfachen Aufruf von aptate
. Dieser Schritt ist auch jedesmal notwendig, wenn im Repositorium ein RPM-Paket hinzukommt, geändert oder gelöscht wird:
root@linux# cd /var/lib/ftp
root@linux# aptate
Distribution(s) to be processed: eigenerpms
Processing: eigenerpms
Archive structure: 1 => eigenerpms/1-noarch
Entering cache build stage
eigenerpms -> RPMs added: 30
-> RPMs removed: 0
Entering apt repository creation stage
eigenerpms -> Bin: MD5/GPG: 30/3
-> Src: MD5/GPG: 0/0
Entering apt database building stage
eigenerpms -> Bin: 0030/0030
eigenerpms -> Src:
Creating global release file: done
Installing apt repository at: /var/lib/ftp/apt/eigenerpms/1-noarch
aptate: finished successfully
Verwendung auf dem Client
Der Client muss das Paket apt
installiert haben. In der Datei /etc/apt/sources.list
benötigen Sie einen Eintrag mit der URL zu der neuen Quelle:
/etc/apt/sources.list:rpm ftp://Aptserver/apt eigenerpms/1-noarch eigenerpms
Wichtig: Damit der Client auch nicht signierte Pakete akzeptiert, müssen Sie die Überprüfung der Signatur in der Datei gpg-checker.conf
abschalten:
/etc/apt/apt.conf.d/gpg-checker.conf:GPG::Check false;
Test
Wenn alles klappt, können Sie jetzt auf dem Client mit apt-get update
zunächst die Paketbeschreibungen herunterladen:
root@linux# apt-get update
Hole:1 ftp://Aptserver eigenerpms/1-noarch release [469B]
469B in 0s (0B/s) geholt
Treffer ftp://Aptserver eigenerpms/1-noarch/eigenerpms pkglist
Treffer ftp://Aptserver eigenerpms/1-noarch/eigenerpms release
Lese Paketlisten... Fertig
Erzeuge Abhängigkeitsbaum... Fertig
... und wie gewohnt Pakete mit apt-get install
installieren:
root@linux# apt-get install sendmail-cf
Lese Paketlisten... Fertig
Erzeuge Abhängigkeitsbaum... Fertig
Die folgenden NEUEN Pakete werden installiert werden:
sendmail-cf
0 upgraded, 1 newly installed, 0 entfernt und 0 nicht upgegradet.
Muss 297kB an Archiven holen.
Nach dem Auspacken werden 911kB zusätzlicher Plattenplatz benutzt werden.
Hole:1 ftp://Aptserver eigenerpms/1-noarch/eigenerpms sendmail-cf 8.12.11-3 [297kB]
297kB in 0s (18,5MB/s) geholt
Committing changes...
Preparing... ########################################### [100%]
1:sendmail-cf ########################################### [100%]
Done.