web-dev-qa-db-fra.com

Comment convertir un RPM x86 en un DEB x86 dans un système x64?

Dans mon cas, le logiciel que je tente de convertir est l’étiqueteuse Lacie Lightscribe.

1.- J'ai renommé le RPM

mv LaCie\ LightScribe\ Labeler\ 1.0\ Linux.rpm lacie-lightscribe-labeler-1.0.rpm

2.- Convertir le paquet avec alien

Sudo alien lacie-lightscribe-labeler-1.0.rpm

Erreur:

lacie-lightscribe-labeler-1.0.rpm is for architecture i386 ; the package cannot be built on this system

Je le sais:

  • Je pourrais le faire dans un système x86, puis le copier à partir de là.
  • Utilisez la simple étiqueteuse

Je suis curieux de savoir comment faire cette conversion en général.

11
givanse

Le processus est assez simple, en bref, vous devez modifier le fichier de contrôle et c'est tout.

Sudo alien -g package-name.rpm
cd package-dir/
Sudo vi debian/control

Maintenant, changez l'architecture (i386 dans mon cas) pour qu'elle soit celle dont vous avez besoin. Par exemple, j'ai ajouté l'archicture AMD64 et voici comment la ligne s'est terminée:

Architecture: i386, AMD64

Dernière étape:

Sudo debian/rules binary

Cela produira le fichier .deb.


Références:

14
givanse

Je l'ai fait fonctionner avec seulement cette commande:

fakeroot alien --target=AMD64 package.i586.rpm
9
Doeners

Cela devrait être un moyen facile de contourner le problème, comme indiqué sur https://www.maketecheasier.com/convert-32bit-rpm-to-deb-64bit/ - utiliser TGZ comme étape intermédiaire :

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

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

Le --to-deb est un paramètre par défaut, utilisé ici uniquement pour être explicite à propos des conversions.

Ensuite, installez avec dpkg comme d'habitude (en utilisant un fichier .deb brut de Alien).

1
Randall