Verschiebbares Paket identifizieren
Nicht alle RPM-Pakete können in einem anderen Verzeichnis installiert werden. Ein RPM-Paket, das in ein anderes Verzeichnis installiert werden kann, wird als verschiebbar bezeichnet. Um zu prüfen, ob ein bestimmtes Paket verschiebbar ist, verwenden Sie den Befehl:
# rpm -qpi [rpm package] | head -1
Beispielsweise erzeugen die Pakete:redhat-lsb-1.3-3.1.EL3.i386.rpm und rsync-2.5.7-5.3E.i386.rpm die folgende Ausgabe:
# rpm -qpi redhat-lsb-1.3-3.1.EL3.i386.rpm | head -1 Name : redhat-lsb Relocations: (not relocatable)
# rpm -qpi rsync-2.5.7-5.3E.i386.rpm | head -1 Name : rsync Relocations: /usr
Es besagt, dass das redhat-lsb-Paket nicht verschiebbar ist, rsync jedoch.
Verschieben eines RPM-Pakets
1. Durch das Verschieben eines RPM-Pakets kann der Benutzer das RPM-Paket in einem anderen Verzeichnis als dem Standardverzeichnis installieren. Das bedeutet, dass Sie das rsync-Paket in einem anderen Verzeichnis installieren können, sagen wir /opt, indem Sie die rpm-Option –prefix verwenden so:
rpm -ivh --prefix=/opt rsync-2.5.7-5.3E.i386.rpm
2. Um zu überprüfen, ob es tatsächlich in /opt installiert wurde, verwenden Sie den Befehl rpm -ql rsync. Unten ist eine Beispielausgabe:
# rpm -ql rsync /etc/xinetd.d/rsync /opt/bin/rsync /opt/share/doc/rsync-2.5.7 /opt/share/doc/rsync-2.5.7/COPYING /opt/share/doc/rsync-2.5.7/README /opt/share/doc/rsync-2.5.7/tech_report.tex /opt/share/man/man1/rsync.1.gz /opt/share/man/man5/rsyncd.conf.5.gz
3. Wenn nun der ähnliche Prozess auf das Paket redhat-lsb angewendet wird, erscheint diese Fehlermeldung:
# rpm -ivh --prefix=/opt redhat-lsb-1.3-3.1.EL3.i386.rpm error: package redhat-lsb is not relocatable
Abschließende Gedanken
Die Verschiebung von Paketen, die als nicht verschiebbar aufgeführt sind, wird von den meisten Betriebssystemanbietern wie RedHat nicht unterstützt. Daher ist es ratsam, nur „verschiebbare“ RPM-Pakete zu verschieben.