[HOWTO] apt erweitern um eigene RPM-Repositories

Alles rund um die Installation Eures Linuxsystems, sowie die Updatefunktionen des Systems und das Paketmanagement

Moderator: Moderatoren

Gesperrt
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

[HOWTO] apt erweitern um eigene RPM-Repositories

Beitrag von oc2pus » 1. Sep 2004, 11:17

Wer oft eigene Pakete compiliert und diese mit checkinstall oder krpmbuilder in RPMs umwandelt, kann diese Pakete ebenfalls mit apt installieren und deinstallieren.

Dazu braucht man zunächst eine funktionierende apt-Installation (siehe Forum)

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:

Code: Alles auswählen

<?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 Repoitory 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:

Code: Alles auswählen

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. Danch 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.

Ein Tip am Rande:
Ich erstelle eigene Pakete mit der Releasenummer 0.oc2pus.x. z.Bsp:
xchat-1.8-0.oc2pus.1, damit wird das Paket durch die SuSE-Version ersetzt, wenn sie verfügnar ist. Da SuSE NIE Releasenummern mit 0-beginnend verwendet. (xchat-1.8-23 ist aktueller als x-chat-1.8-0.oc2pus.1 jedenfalls für rpm).
Wenn ich einen neuen eigenen compile von x-chat erstelle setze ich dann die Releasenummer hoch auf 0.oc2pus.2 und kopiere dieses Paket dann nach EigenePakete-9.1, lasse aptate laufen, apt-get update, apt-get upgrade und siehe da es wird jetzt x-chat-1.8-0.oc2pus.2 installiert.
Nach dem gleichen Schema arbeitet übrigends auch Packmann (0.pm.x)
Zuletzt geändert von oc2pus am 26. Aug 2005, 12:25, insgesamt 3-mal geändert.
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User

Werbung:
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus » 10. Feb 2005, 11:17

Fragen, Anregungen, Diskussionen, Erweiterungen etc ... bitte in diesem Thread:

[FRAGEN ZU] apt erweitern um eigene RPM-Repositories
http://www.linux-club.de/viewtopic.php?t=26043
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User

Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus » 17. Nov 2005, 12:56

Hier wurde noch ein anderes Verfahren ohne den Einsatz von aptate entdeckt:
SoeDib hat geschrieben:Gibt es Gründe, das eigene Repository über aptate anzulegen, und nicht einfach über

Code: Alles auswählen

rpm-dir file:///usr/src/packages apt local
in der sources.list (für das Verzeichnis /usr/src/packages/apt/RPMS.local)?

(vgl. http://lwn.net/Articles/60650/ )
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User

Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus » 8. Jul 2006, 20:53

und hier noch eine Variante, thx to Martin Breidenbach ;)
Martin Breidenbach hat geschrieben:Ergänzung zu

[HOWTO] apt erweitern um eigene RPM-Repositories
http://www.linux-club.de/viewtopic.php?t=14576

Mit 'createrepo' geht das noch einfacher. Bei SuSE 10.1 liegt 'createrepo' in base.

rpms in Verzeichnis '/hier/ist/meinrepo' kopieren

Dann

Code: Alles auswählen

createrepo /hier/ist/meinrepo
ausführen

Repository in sources.list aufnehmen:

Code: Alles auswählen

repomd file:/hier/ist meinrepo
Fertig !
und weil der martin heute fleissig war, gleich noch eine:
http://www.linux-club.de/ftopic64077.html
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast