Alien deletes .deb when converting from .rpm

I'm trying to convert .rpm to .deb using alien.

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

Alien says that:

libtetra-1.0.0-2.i386.deb generated

But when I check the folder - there is just original .rpm and no .deb. Also - I can see that for a split second there is a .deb file in a folder. so it looks like alien create .deb and deletes it right away.

I suspect that it's maybe because I run 64 bit os and package is 32?

Can somebody explain why alien deletes .deb automatically?

Verbose output:

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

Very Verbose output

 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 :
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

Resolution

Oh well. It looks like it's perhaps a bug? or I don't know. I simply installed 32-bit version of Ubuntu in VirtualBox and converted package there. For some reason I couldn't convert 32-bit package in 64 OS. and that is that.

If someone ever finds the reason ffor this behavior - plz. post somewhere in comments.

Thanks

6

2 Answers

It almost sounds like Alien is being run with the -i flag:

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

However, from your question that doesn't appear to be true. Different architectures may be the issue here. Try debugging the process further with -v or if that doesn't yield anything: --veryverbose. If you're unable to determine the issue from those flags post the output of each in your original question.

Lastly, try installing ia32-libs package which places a lot of common 32bit shared libraries on your machine. This assists in compiling and running 32bit programs on 64bit machines.

3

not the most sexy trick, but you can do the following:

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 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like