Alien не может создать пакет для архитектуры "Ubuntu AMD64"

Я использую Ubuntu I686.
Необходимо установить пакеты i386 .rpm.
попробовал этот код:

alien -i [file.i386.rpm]

Пытался установить ia32-libs...

apt-get install ia32-libs 

... и попробовал чужой снова, но не получилось.

любое предложение? Спасибо.

[РЕДАКТИРОВАТЬ]
[предложение № 1: запустить инопланетянин с помощью sudo -c -v ...]
Ваше предложение не сработало. Та же ошибка сообщается:

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

Строка над ошибкой является командой chmod:

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

любое другое предложение? Спасибо.

5 ответов

Как можно найти на https://www.maketecheasier.com/convert-32bit-rpm-to-deb-64bit/, это хороший простой обходной путь - после преобразования в TGZ в качестве промежуточного этапа просто снова выполните преобразование в.deb:

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

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

--to-deb это значение по умолчанию, используемое здесь только для того, чтобы явно указывать преобразования.

У меня была такая же проблема, и я решил ее следующим образом:

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

RPM преобразуется в файл TGZ. Имейте в виду, что ".386" отсутствует в имени файла TGZ.

Запустите Alien с параметрами sudo и -c -v:

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

Параметр -c (--scripts) Включить скрипты в пакет

Параметр -v (--verbose) Отображает каждую команду, запускаемую инопланетянином, чтобы вы могли видеть, что происходит не так.

Текущие ответы говорят о преобразовании в .tgz, но это не сработало для меня, поскольку во время этого двухэтапного процесса преобразования были исключены необходимые метаданные. Я хотел напрямую преобразовать некоторые RPM в файлы deb с помощью Alien.

Первым шагом было увидеть, как инопланетяне обнаруживают архитектуру моей системы, а затем я мог найти способ отключить ее. С небольшой помощью отdpkg -L alienи grep я нашел код, ответственный за эту ошибку. Он начинается на строке 552/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";
    }
}

Просто добавь--target=allк вашей команде.

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

8086 = 8 бит

80186 = 8 бит

80286 = 16 бит

80386 = 32-разрядный

80486 = 32-разрядный

80586 = 32-битный = Pentium, Pentium MMX, K5, K6, K6-II, K6-III

80686 = 32-разрядный = Pentium Pro, Pentium II, Pentium III, Athlon, Athlon XP, Opteron *, Athlon FX-51 *, Athlon FX-53 *, Athlon 64 *

80786 = 32-битный = Pentium 4

  • = 32-бит /64-бит

Если вы скомпилировали программу для 386 архитектур, ее могут выполнять только процессоры, равные ей или выше.

Таким образом, i386.rpm не может работать на вашей Ubuntu i686

Другие вопросы по тегам