Andere Sprachen Deutsch ; English |
Einleitung:alien ist eine Anwendung welche zu Red Hat rpm, Debian deb, Stampede slp, Slackware tgz und Solaris pkg Dateiformaten konvertiert. Falls Sie ein Paket von einer anderen Linux Distribution, welche Sie nicht auf Ihrem System installiert haben, verwenden möchten, können Sie alien verwenden um dieses in Ihr gewünschtes Paketformat umzuwandeln und zu installieren. Es unterstützt auch LSB Pakete.
|
Diese Seite behandelt auch Umwandlungen, welche nicht erfolgreich abgeschlossen wurden.
Betrachtung
Wir werden im ~/tmp
Verzeichnis arbeiten, in welchem die .rpm und .deb Dateien für dieses Beispiel gespeichert wurden.
Sie können auch ein anderes Verzeichnis verwenden.
Führen Sie fakeroot
vor alien aus, damit alien ohne root-Rechte funktioniert.
rpm zu deb
Dies funktionierte seit den Mageia 8 tagen nicht sofort mga#28607, jedoch seit Mageia 9 und neuer, seitdem die aktualisierten Pakete zur Verfügung stehen, können wir einen Schritt aufführen, welche uns die Durchführung ermöglicht.
Die Umwandlung kann wie folgt fehlschlagen:
Package build failed. Here's the log: dh binary dh_update_autotools_config dh_autoreconf create-stamp debian/debhelper-build-stamp dh_testroot dh_prep debian/rules override_dh_auto_install make[1]: Entering directory '/home/katnatek/tmp/mc-4.8.29' mkdir -p debian/mc # Copy the packages's files. find . -maxdepth 1 -mindepth 1 -not -name debian -print0 | \ sed -e s#'./'##g | \ xargs -0 -r -i cp -a ./{} debian/mc/{} make[1]: Leaving directory '/home/katnatek/tmp/mc-4.8.29' dh_installdocs dh_installchangelogs dh_installman dh_installman: error: mv debian/mc/usr/share/man/es/man1/mc.1.xz.dh-new debian/mc/usr/share/man/es/man1/mc.1.xz: No such file or directory dh_installman: error: Aborting due to earlier error make: *** [debian/rules:7: binary] Error 25
Lösung:
Directory mc-4.8.29 prepared.
Bearbeiten Sie die Datei mc-4.8.29/debian/rules
Fügen Sie nach der Zeile 26 folgendes ein: override_dh_installman:
und speichern Sie diese Änderung.
cd mc-4.8.29
fakeroot dh binary
Am Ende des Vorgangs werden Sie etwas ähnliches wie folgt sehen:
dpkg-gencontrol: warning: Depends field of package mc: substitution variable ${shlibs:Depends} used, but is not defined dpkg-gencontrol: warning: package mc: substitution variable ${perl:Depends} unused, but is defined dh_md5sums dh_builddeb dpkg-deb: building package 'mc' in '../mc_4.8.29-2_amd64.deb'. |
deb zu rpm
Dieser Vorgang funktioniert für gewöhnlich sofort, wie bei deb von Debian:
fakeroot alien --to-rpm bash_5.2.15-2+b7_amd64.deb
Jedoch kann es bei manchen deb Dateien fehlschlagen.
Warning: Skipping conversion of scripts in package schildichat-desktop-alpha: postinst postrm Warning: Use the --scripts parameter to include the scripts. Package build failed. Here's the log of the command (cd schildichat-desktop-alpha-1.11.97~sc.0.test.0; rpmbuild --buildroot='/home/katnatek/tmp/schildichat-desktop-alpha-1.11.97~sc.0.test.0' -bb --target x86_64 'schildichat-desktop-alpha-1.11.97~sc.0.test.0-2.spec'): error: line 5: Empty tag: Summary: Building target platforms: x86_64 Building for target x86_64
Lösung:
Warning: Skipping conversion of scripts in package schildichat-desktop-alpha: postinst postrm Warning: Use the --scripts parameter to include the scripts. Directory schildichat-desktop-alpha-1.11.97~sc.0.test.0 prepared.
cd schildichat-desktop-alpha-1.11.97~sc.0.test.0
Bearbeiten Sie die spec Datei, fügen Sie die Informationen nach der Summary: Zeile ein und speichern Sie die Änderung.
rpmbuild -bb schildichat-desktop-alpha-1.11.97~sc.0.test.0-2.spec --define "_topdir $(pwd)"
Dies verursacht eine Menge an Fehlermeldung, wie:
File not found: /home/user/tmp/schildichat-desktop-alpha-1.11.97~sc.0.test.0/BUILDROOT/schildichat-desktop-alpha-1.11.97~sc.0.test.0-2.x86_64/opt/SchildiChatAlpha/v8_context_snapshot.bin |
mkdir -p BUILDROOT/schildichat-desktop-alpha-1.11.97~sc.0.test.0-2.x86_64
Verschieben Sie das Verzeichnis oder die Verzeichnisse, welche nicht für die rpm Erstellung nötig sind (BUILD,BUILDROOT,SRPMS) nach BUILDROOT/schildichat-desktop-alpha-1.11.97~sc.0.test.0-2.x86_64
In diesem Fall opt
und usr
.
Kehren Sie, falls nötig, zurück zu ~/tmp/schildichat-desktop-alpha-1.11.97~sc.0.test.0
Führen Sie den Befehl erneut aus
rpmbuild -bb schildichat-desktop-alpha-1.11.97~sc.0.test.0-2.spec --define "_topdir $(pwd)"
Bitte beachten! Im deb zu rpm Fall können Sie sehen, das es komplex ist diese per Hand zu beheben, da wir die Schritte für jede Umwandlung lernen und anpassen müssen. Der Schlüssel ist das Verzeichnis BUILDROOT und der String zwischen dem ersten "/" und dem zweiten "/". |