'''apt4rpm''' ist die Portierung des ursprünglich für [[Debian]] entwickelten Paketverwaltungstools [[apt|Advanced Package Tool (APT)]] für [[RPM]]. Offiziell unterstützt wird apt derzeit nur von [[http://www.conectiva.com.br|Conectiva]], aber auch für [[Fedora]], RedHat, [[Mandriva]] und [[SuSE]] existieren bereits Versionen.

Homepage: http://apt4rpm.sourceforge.net/

Entwickler-Homepage: CncMoin:AptRpm

Lizenz: [[GPL]]

Bedienung von apt: [[apt/MiniHowTo]]

 * für [[Fedora]] siehe [[apt/Fedora]]
 * für RedHat siehe http://freshrpms.net/ und [[apt/RedHat]]
 * für [[SuSE]] siehe http://linux01.gwdg.de/apt4rpm und [[apt/SuSE]]

Auf http://freshrpms.net/apt/ ganz unten gibt es eine Anleitung, wie man eigene Repositories erstellt.

Seit Version 0.5.5cnc4 gibt es auch eine `apt-shell`, das ist eine Text-Oberfläche für apt, mit der sich viele apt-Operationen deutlich einfacher durchführen lassen.

[[http://lwn.net/Articles/60650/|Neuerungen in APT-RPM]] (2003-12-01)

= Erstellung einer Update-CD =
für RedHat 7.3 in diesem Fall

{{{
#!/bin/sh
mkdir -p apt/rh73/base
mkdir -p apt/rh73/RPMS.updates
mkdir -p apt/rh73/SRPMS.updates
cat <<EOF >apt/rh73/base/release.updates
Archive: Red Hat Linux
Component: updates
Version: 7.3 en
Origin: Red Hat, Inc.
Label: Valhalla
Architecture: i386
EOF

rsync -vzrP --delete --delete-after ftp.leo.org::RedHat/redhat/updates/7.3/en/os .
rm -f apt/rh73/RPMS.updates/*
rm -f apt/rh73/SRPMS.updates/*
find os -type f ! -name "*.src.rpm" -name "*.rpm" -exec ln {} apt/rh73/RPMS.updates/ \;
find os -type f -name "*.src.rpm" -exec ln {} apt/rh73/SRPMS.updates/ \;
genbasedir --flat --bloat --bz2only --progress `pwd`/apt/rh73 updates

mkdir -p .disk
echo "Red Hat 7.3 Updates $(date +%Y-%m-%d)" > .disk/info
}}}
Skript ausführen und die Verzeichnisse "apt" und ".disk" und auf CD brennen.

Hinweis: Man kann auch das ganze Verzeichnis (inkl apt, .disk und os) ins Root-Verzeichnis der CD brennen, es wird dabei nicht mehr Platz verbraucht, da die Dateien nur verlinkt und nicht kopiert sind. ({{{mkisofs -r -o updates.iso .}}})

Dann mit "apt-cdrom add" apt bekanntmachen.

Durch erneutes Aufrufen des Skripts wird das Repository aktualisiert.

Auf die gleiche Art und Weise kann man auch andere Repositories auf CD erstellen, das ist besonders nützlich, wenn man Rechner ohne schnelle Internetverbindung "betanken" will.

Ich hänge hier mal mein super-duper spezial Mirroring und CD-Making Skript für RedHat 9 an: [[attachment:apt-rep.sh]] -- RonnyBuchmann <<DateTime(2003-07-18T13:52:14Z)>>
Das Repository funktioniert auch mit [[yum]]. (Zum Erstellen wird es sowieso benötigt.)

Achtung: Ab RPM 4.1 und manchen apt-Versionen muss man unbedingt die [[GnuPG]]-Public-Keys importieren, wenn man signierte RPM-Pakete verwalten will. (`rpm --import key.asc`)

= Fragen =

== Erstellen einer "abgespeckten" RPM-Liste ==

Mit {{{rpm -qa}}} bekommt man leicht eine Liste aller installierter RPMs. Interessant (z.B. bei einer Automatischen Installation und vor allem bei der Migrationen derselben, von einer Version zur nächsten) wäre aber eine Liste bei der die abhängigen Pakete fehlen - also die Pakete die von anderen Paketen benötigt werden und deshalb mit installiert werden.

Mit [[/rpmlist.py]] kann man die RPMS in Abhängige und Unabhängige aufteilen. Installiert man nun die Unabhängigen mit apt, werden die Abhängigen automatisch mit installiert. Durch die so deutlich kürzere (ca. Faktor 2) Liste werden Fehler bei der Umstellung auf eine neue Version verringert.