I'm using ubuntu i686.
Need to install i386 .rpm packages.
tried this code:

alien -i [file.i386.rpm]

Tried to install ia32-libs...

apt-get install ia32-libs 

...and tried alien again but didn't work.

any suggestion? thx.

[suggestion #1: run alien with sudo -c -v ...]
your suggestion didn't work. Same error reported:

file.i386.rpm is for architecture i386 ; the package cannot be built on this system.  

The line above the error is the command chmod:

chmod 755 ["name of directory"/debian/rules]

any other suggestion? thx.

5 Answers 5


As found on https://www.maketecheasier.com/convert-32bit-rpm-to-deb-64bit/, this is a nice easy workaround - after converting to TGZ as an intermediate stage, just convert again to the .deb:

sudo alien --scripts --to-tgz <package.rpm>

sudo alien --scripts --to-deb <package.tgz>

The --to-deb is a default, used here only to be explicit about the conversions.


I had the same problem and solved it this way:

alien --to-tgz --scripts file.i386.rpm
mkdir unpack
cd unpack
tar -xpzf ../file.tgz
mv install ..
cp -rv * /
cd ../install

The RPM is converted to a TGZ file. Be aware that the ".386" is not in the name of the TGZ file.


Run alien with sudo and -c -v parameters:

sudo alien -i -c -v file.i386.rpm

The -c (--scripts) parameter Include scripts in package

The -v (--verbose) parameter Display each command alien runs so you can see what is going wrong.


The current answers say to convert to .tgz, but that did not work for me as it was leaving out necessary metadata during this two-step conversion process. I wanted to directly convert some RPMs to deb files with alien.

First step was to see how alien was detecting my system architecture, then I could find a way to disable it. With a bit of help from dpkg -L alien and grep, I located the code responsible for this error. It starts on line 552 of /usr/share/perl5/Alien/Package/Deb.pm.

# Detect architecture mismatch and abort with a comprehensible
# error message.
my $arch=$this->arch;
if ($arch ne 'all') {
    my $ret=system("dpkg-architecture", "-i".$arch);
    if ($ret != 0) {
        die $this->filename." is for architecture ".$this->arch." ; the package cannot be built on this system"."\n";

Just add --target=all to your command.

alien --target=all -i file.i386.rpm

8086 = 8-bit

80186 = 8-bit

80286 = 16-bit

80386 = 32-bit

80486 = 32-bit

80586 = 32-bit = Pentium, Pentium MMX, K5, K6, K6-II, K6-III

80686 = 32-bit = Pentium Pro, Pentium II, Pentium III, Athlon, Athlon XP, Opteron*, Athlon FX-51*, Athlon FX-53*, Athlon 64*

80786 = 32-bit = Pentium 4

  • = 32-bit/64-bit

If you have compiled a program for 386 architectures, only the processors equal to it or above it can execute it.

So the i386.rpm cannot run to your ubuntu i686

  • ok. but in theory i can with ia32-libs. run x86 bin on x64 architecture. right?
    – Raffaello
    Nov 13, 2012 at 11:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .