Alien löscht .deb beim Konvertieren von .rpm

7

Ich versuche, .rpm mit Alien in .deb umzuwandeln.

sudo alien -k libtetra-1.0.0-2.i386.rpm

Alien sagt das:

libtetra-1.0.0-2.i386.deb generated

Aber wenn ich den Ordner überprüfe, gibt es nur die ursprüngliche .rpm und keine .deb. Außerdem kann ich sehen, dass sich für den Bruchteil einer Sekunde eine .deb-Datei in einem Ordner befindet. Es sieht also so aus, als würde Alien .deb erstellen und es sofort löschen.

Ich vermute, dass es vielleicht daran liegt, dass ich 64-Bit-Betriebssysteme verwende und das Paket 32 ​​ist?

Kann jemand erklären, warum Alien .deb automatisch löscht?

Ausführliche Ausgabe:

LANG=C rpm -qp --queryformat %{NAME} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{VERSION} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{RELEASE} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{ARCH} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{CHANGELOGTEXT} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{SUMMARY} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{DESCRIPTION} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{PREFIXES} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{POSTIN} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{POSTUN} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{PREUN} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{LICENSE} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{PREIN} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qcp libtetra-1.0.0-2.i386.rpm
rpm -qpi libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qpl libtetra-1.0.0-2.i386.rpm
mkdir libtetra-1.0.0
chmod 755 libtetra-1.0.0
rpm2cpio libtetra-1.0.0-2.i386.rpm | lzma -t -q > /dev/null 2>&1
rpm2cpio libtetra-1.0.0-2.i386.rpm | (cd libtetra-1.0.0;  cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2>&1
chmod 755 libtetra-1.0.0/./
chmod 755 libtetra-1.0.0/./usr
chmod 755 libtetra-1.0.0/./usr/lib
chown 0:0 libtetra-1.0.0//usr/lib/libtetra.so.1.0.0
chmod 755 libtetra-1.0.0//usr/lib/libtetra.so.1.0.0
mkdir libtetra-1.0.0/debian
date -R
date -R
chmod 755 libtetra-1.0.0/debian/rules
debian/rules binary 2>&1
libtetra_1.0.0-3_i386.deb generated
find libtetra-1.0.0 -type d -exec chmod 755 {} ;
rm -rf libtetra-1.0.0

Sehr ausführliche Ausgabe

    LANG=C rpm -qp --queryformat %{NAME} libtetra-1.0.0-2.i386.rpm
libtetra
    LANG=C rpm -qp --queryformat %{VERSION} libtetra-1.0.0-2.i386.rpm
1.0.0
    LANG=C rpm -qp --queryformat %{RELEASE} libtetra-1.0.0-2.i386.rpm
2
    LANG=C rpm -qp --queryformat %{ARCH} libtetra-1.0.0-2.i386.rpm
i386
    LANG=C rpm -qp --queryformat %{CHANGELOGTEXT} libtetra-1.0.0-2.i386.rpm
- First RPM Package
    LANG=C rpm -qp --queryformat %{SUMMARY} libtetra-1.0.0-2.i386.rpm
Panasonic KX-MC6000 series Printer Driver for Linux.
    LANG=C rpm -qp --queryformat %{DESCRIPTION} libtetra-1.0.0-2.i386.rpm
This software is Panasonic KX-MC6000 series Printer Driver for Linux.
You can print from applications by using CUPS(Common Unix Printing System)
which is the printing system for Linux.
Other functions for KX-MC6000 series are not supported by this software.
    LANG=C rpm -qp --queryformat %{PREFIXES} libtetra-1.0.0-2.i386.rpm
(none)
    LANG=C rpm -qp --queryformat %{POSTIN} libtetra-1.0.0-2.i386.rpm
(none)
    LANG=C rpm -qp --queryformat %{POSTUN} libtetra-1.0.0-2.i386.rpm
(none)
    LANG=C rpm -qp --queryformat %{PREUN} libtetra-1.0.0-2.i386.rpm
(none)
    LANG=C rpm -qp --queryformat %{LICENSE} libtetra-1.0.0-2.i386.rpm
GPL and LGPL (Version2)
    LANG=C rpm -qp --queryformat %{PREIN} libtetra-1.0.0-2.i386.rpm
(none)
    LANG=C rpm -qcp libtetra-1.0.0-2.i386.rpm
    rpm -qpi libtetra-1.0.0-2.i386.rpm
Name        : libtetra                     Relocations: (not relocatable)
Version     : 1.0.0                             Vendor: Panasonic Communications Co., Ltd.
Release     : 2                             Build Date: Tue 27 Apr 2010 05:16:40 AM EDT
Install Date: (not installed)               Build Host: localhost.localdomain
Group       : System Environment/Daemons    Source RPM: libtetra-1.0.0-2.src.rpm
Size        : 31808                            License: GPL and LGPL (Version2)
Signature   : (none)
URL         : http://panasonic.net/pcc/support/fax/world.htm
Summary     : Panasonic KX-MC6000 series Printer Driver for Linux.
Description :
This software is Panasonic KX-MC6000 series Printer Driver for Linux.
You can print from applications by using CUPS(Common Unix Printing System)
which is the printing system for Linux.
Other functions for KX-MC6000 series are not supported by this software.

    LANG=C rpm -qpl libtetra-1.0.0-2.i386.rpm
/usr/lib/libtetra.so
/usr/lib/libtetra.so.1.0.0
    mkdir libtetra-1.0.0
    chmod 755 libtetra-1.0.0
    rpm2cpio libtetra-1.0.0-2.i386.rpm | lzma -t -q > /dev/null 2>&1
    rpm2cpio libtetra-1.0.0-2.i386.rpm | (cd libtetra-1.0.0;  cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2>&1
63 blocks
    chmod 755 libtetra-1.0.0/./
    chmod 755 libtetra-1.0.0/./usr
    chmod 755 libtetra-1.0.0/./usr/lib
    chown 0:0 libtetra-1.0.0//usr/lib/libtetra.so.1.0.0
    chmod 755 libtetra-1.0.0//usr/lib/libtetra.so.1.0.0
    mkdir libtetra-1.0.0/debian
    date -R
Mon, 07 Feb 2011 11:03:58 -0500

    date -R
Mon, 07 Feb 2011 11:03:58 -0500

    chmod 755 libtetra-1.0.0/debian/rules
    debian/rules binary 2>&1
dh_testdir
dh_testdir
dh_testroot
dh_clean -k -d
dh_clean: No packages to build.
dh_installdirs
dh_installdocs
dh_installchangelogs
find . -maxdepth 1 -mindepth 1 -not -name debian -print0 | \
        xargs -0 -r -i cp -a {} debian/
dh_compress
dh_makeshlibs
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb

libtetra_1.0.0-2_i386.deb generated
    find libtetra-1.0.0 -type d -exec chmod 755 {} ;
    rm -rf libtetra-1.0.0

Auflösung

Naja. Es sieht so aus, als wäre es vielleicht ein Fehler? oder ich weiß es nicht. Ich habe einfach die 32-Bit-Version von Ubuntu in VirtualBox installiert und dort das Paket konvertiert. Aus irgendeinem Grund konnte ich das 32-Bit-Paket unter 64 Betriebssystemen nicht konvertieren. und das ist das

Wenn jemand jemals den Grund für dieses Verhalten findet - bitte. irgendwo in Kommentaren posten.

Vielen Dank

Stann
quelle
Gut. Diese Frage wurde nicht gelöst. Die einfache Verwendung eines anderen Architektur-Quellpakets ist für mich keine Option, da es keine gibt.
Stann
sollte dieses "sudo alien -k libtetra-1.0.0-2.i386.rpm" nicht dieses "sudo alien -k -d libtetra-1.0.0-2.i386.rpm" sein
RobotHumans
@ aking1012: afaik no. Man Alien sagt, dass es standardmäßig das .deb-Format verwendet, wenn es nicht explizit angegeben wird. Ich habe sowieso beide Möglichkeiten ausprobiert :) Vielen Dank für den Vorschlag
Stann
@Andre Warum hast du eine Antwort akzeptiert, wenn sie das Problem nicht löst?
M.Sameer

Antworten:

4

Es klingt fast so, als würde Alien mit der -iFlagge geführt:

-i, --install
    Automatically install each generated package, and remove the package
    file after it has been installed.

Aus Ihrer Frage geht jedoch hervor, dass dies nicht der Fall ist. Hier können unterschiedliche Architekturen das Problem sein. Versuchen Sie, den Prozess weiter zu debuggen, -voder wenn dies nichts ergibt : --veryverbose. Wenn Sie das Problem nicht anhand dieser Flags ermitteln können, geben Sie die Ausgabe der einzelnen Flags in Ihrer ursprünglichen Frage an.

Versuchen Sie schließlich, ein ia32-libsPaket zu installieren , das viele gängige 32-Bit-Bibliotheken auf Ihrem Computer platziert. Dies hilft beim Kompilieren und Ausführen von 32-Bit-Programmen auf 64-Bit-Computern.

Marco Ceppi
quelle
Ich habe eine ausführliche Ausgabe gepostet. auch ia32-libs war bereits auf der neuesten version. :) Irgendwelche anderen Vorschläge?
Stann
@Andre hinzufügen --veryverbose?
Marco Ceppi
@Andre Sie möglicherweise das werfen brauchen -iFlagge in. Prüfen Sie , ob es wird nach der Erzeugung installieren.
Marco Ceppi
1

Nicht der sexy Trick, aber Sie können Folgendes tun:

mv /bin/rm /bin/rm_renamed  
ln -s /bin/echo /bin/rm 
alien --scripts your_rpm.rpm
mv /bin/rm /bin/rm_bad_link 
mv /bin/rm_renamed /bin/rm 
rm /bin/rm_bad_link 
Ben
quelle