Apt erweitern um eigene RPM-Repositories: Unterschied zwischen den Versionen
K (Kategorie angepasst da nun die Kategorie Paketmanager mit Unterkategorien existiert) |
|||
Zeile 89: | Zeile 89: | ||
− | [[Category:APT | + | ---- |
+ | [[APT|Zurück zur Apt Übersicht]]<br/> | ||
+ | [[Category:APT]] |
Version vom 30. Januar 2007, 15:27 Uhr
Wer oft eigene Pakete compiliert und diese mit checkinstall oder krpmbuilder in RPMs umwandelt oder sich z. B. am Arbeitsplatz Pakete herunterlädt, weil zuhause die Bandbreite nicht ausreicht, kann diese Pakete ebenfalls mit apt installieren und deinstallieren. Dazu gibt es zwei Möglichkeiten.
createrepo
Mit createrepo geht das sehr einfach. Bei SuSE 10.1 liegt createrepo in base bzw. auf den Installationsmedien.
Man kopiert die zu installierenden rpms in Verzeichnis /hier/ist/meinrepo.
Dann
createrepo /hier/ist/meinrepo
ausführen
Diesen Eintrag fügen wir dann in die /etc/apt/sources.list ein:
repomd file:/hier/ist meinrepo
Das Leerzeichen zwischen ist und meinrepo ist kein Fehler. Die sources.list ist nach diesen Schema aufgebaut. Siehe auch bereits bestehende Einträge dort. Nach einem apt update sollten die Pakete zur Verfügung stehen.
aptate
Dazu braucht man zunächst eine funktionierende apt-Installation.
Dann installiert man sich das Paket apt4rpm
apt-get install apt4rpm
Falls beim Starten von aptate perl-Module fehlen sollten, können diese aus dem Repository funktronics (sources.list erweitern) mit apt geladen werden.
apt install perl-XML-Writer perl-XML-Parser perl-XML-LibXML perl-XML-LibXML-Common perl-XML-GDOME perl-XML-NamespaceSupport perl-XML-SAX
Die Konfiguration von apt4rpm erfolgt in der Datei /etc/apt/aptate.conf Hier ein Beispiel:
<?xml version='1.0' encoding="iso-8859-1"?> <!DOCTYPE opt SYSTEM "/usr/share/apt4rpm/aptate.dtd"> <opt signed-pkgs-only="no"> <topdir>/local</topdir> <sources-list-file>file:/local//ftp/pub/linux/suse/apt</sources-list-file> <sources-list-ftp>ftp://ftp.gwdg.de/pub/linux/suse/apt</sources-list-ftp> <sources-list-http>http://ftp.gwdg.de/pub/linux/suse/apt</sources-list-http> <distribution id="suse91"> <name>SuSE</name> <version>9.1</version> <architecture>i386</architecture> <component> <name>EigenePakete-9.1</name> <url>EigenePakete-9.1</url> </component> </distribution> </opt>
In der Sektion <component> gibt man seinem eigenen Repository einen Namen, hier EigenePakete-9.1
Damit apt mit diesem Repository arbeiten kann, wird die /etc/apt/sources.list um den folgenden Eintrag erweitert:
rpm file:/local/apt SuSE/9.1-i386 EigenePakete-9.1
In /local wird dann ein Verzeichnis EigenePakete-9.1 angelegt
mkdir /local/EigenePakete-9.1
Alle eigenen RPM-Pakete werden dann nach /local/EigenePakete-9.1 kopiert. Dann wird das apt-Repository erzeugt mit dem Befehl
aptate
Das Ergebnis von aptate sieht dann ungefähr so aus:
Distribution(s) to be processed: suse91 Processing: suse91 Archive structure: 1 => SuSE/9.1-i386 Entering cache build stage EigenePakete-9.1 -> Check: 1/4, warning: EigenePakete-9.1/xchat-2.0.7-92.i586.rpm: V3 DSA signature: NOKEY, key ID 9c800aca RPMs added: 1 -> RPMs removed: 3 Entering apt repository creation stage EigenePakete-9.1 -> Bin: MD5/GPG: 23/1 -> Src: MD5/GPG: 2/0 Entering apt database building stage EigenePakete-9.1 -> Bin: 0023/0023 EigenePakete-9.1 -> Src: 0002/0002 Creating global release file: done Installing apt repository at: /local/apt/SuSE/9.1-i386 aptate finished successfully
Nun startet man (nach der Änderung an der /etc/apt/sources.list)
apt-get update
Damit werden die Pakete in EigenePakete-9.1 in das apt-Verzeichnis mit aufgenommen. Danach kann man seine eigenen Pakete ganz normal mit apt-get install <paket1> installieren. Wenn das Paket ordentlich gebaut wurde und alle Abhängigkeiten korrekt gesetzt wurden beim Paketbau, wird apt es installieren und die benötigten Abhängigkeiten auflösen.
Wichtig: wenn neue Pakete nach EigenePakete-9.1 kopiert werden, immer zuerst aptate aufrufen, dann apt-get update. Damit wird die apt interne Verwaltungs-Struktur aktualisiert.