Alien exclui .deb ao converter de .rpm

7

Estou tentando converter o .rpm para .deb usando o alien.

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

Alien diz que:

libtetra-1.0.0-2.i386.deb generated

Mas quando eu verifico a pasta - há apenas .rpm original e não .deb. Também - eu posso ver que por um segundo, há um arquivo .deb em uma pasta. então parece que o alien criar o .deb e deletá-lo imediatamente.

Eu suspeito que talvez seja porque eu corro o sistema operacional de 64 bits e o pacote é 32?

Alguém pode explicar por que o alien exclui o .deb automaticamente?

Saída detalhada:

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

Saída muito verbosa

    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

Resolução

Oh bem. Parece que talvez seja um bug? ou eu não sei. Eu simplesmente instalei a versão de 32 bits do Ubuntu no VirtualBox e converti o pacote lá. Por algum motivo, não consegui converter o pacote de 32 bits em 64 OS. e é isso.

Se alguém encontrar o motivo para esse comportamento - plz. postar em algum lugar nos comentários.

Obrigado

    
por Stann 06.02.2011 / 16:26

2 respostas

4

Parece quase que Alien está sendo executado com o sinalizador -i :

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

No entanto, da sua pergunta, isso não parece ser verdade. Arquiteturas diferentes podem ser o problema aqui. Tente depurar o processo ainda mais com -v ou se isso não resultar em nada: --veryverbose . Se você não conseguir determinar o problema desses sinalizadores, poste a saída de cada um na sua pergunta original.

Por fim, tente instalar o ia32-libs package, que coloca muitas bibliotecas compartilhadas de 32 bits na sua máquina. Isso ajuda na compilação e execução de programas de 32 bits em máquinas de 64 bits.

    
por Marco Ceppi 06.02.2011 / 16:36
1

não é o truque mais sexy, mas você pode fazer o seguinte:

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 
    
por Ben 23.10.2012 / 15:25

Tags