web-dev-qa-db-fra.com

Alien supprime .deb lors de la conversion de .rpm

J'essaye de convertir. Rpm en .deb en utilisant alien.

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

Alien dit que:

libtetra-1.0.0-2.i386.deb generated

Mais quand je vérifie le dossier - il n'y a que le fichier .rpm d'origine et aucun fichier .deb. Aussi - je peux voir que pendant une fraction de seconde il y a un fichier .deb dans un dossier. il semble donc que alien crée .deb et le supprime immédiatement.

Je soupçonne que c'est peut-être parce que j'utilise un système d'exploitation 64 bits et que le paquet est 32?

Quelqu'un peut-il expliquer pourquoi alien supprime automatiquement .deb?

Sortie verbeuse:

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

sortie très verbeuse

    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

Résolution

Tant pis. On dirait que c'est peut-être un bug? ou je ne sais pas. J'ai simplement installé la version 32 bits d'Ubuntu dans VirtualBox et converti le paquet là-bas. Pour une raison quelconque, je ne pouvais pas convertir le paquet 32 ​​bits en 64 OS. et c'est ça.

Si quelqu'un trouve la raison de ce comportement - plz. poster quelque part dans les commentaires.

Merci

7
Stann

On dirait presque qu'Alien est exécuté avec le drapeau -i:

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

Cependant, d'après votre question, cela ne semble pas être vrai. Différentes architectures peuvent être le problème ici. Essayez de continuer à déboguer le processus avec -v ou si cela ne donne rien: --veryverbose. Si vous ne parvenez pas à déterminer le problème à partir de ces indicateurs, affichez le résultat de chacun dans votre question initiale.

Enfin, essayez d’installer le package ia32-libs qui place beaucoup de bibliothèques partagées communes 32 bits sur votre ordinateur. Cela aide à compiler et à exécuter des programmes 32 bits sur des ordinateurs 64 bits.

4
Marco Ceppi

pas le truc le plus sexy, mais vous pouvez faire ce qui suit:

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 
1
Ben