Convertir des .deb en .rpm avec alien
Convertir des .deb en .rpm
Parfois, les softs dont l'on peut avoir besoin ne sont pas distribués pour els pauvres utilisateurs de Fedora que nous sommes. On peut alors utiliser un outil formidable : alien.
On commence par l'installer :
<syntaxhighlight lang='bash'> dnf install alien </syntaxhighlight>
Conversion de parsec
Ici, je vais convertir parsec, un client servant à jouer sur l'ordinateur d'un ami via du streaming.
Je commence par télécharger la dernière version du .deb. Ensuite :
<syntaxhighlight lang="bash"> $ sudo alien --to-rpm --scripts parsec-linux.deb
- --script essaiera de traduire les éventuels scripts d'installation présents
- Ensuite, l'installation renverra des erreurs:
$ sudo dnf localinstall ./parsec-147-10.x86_64.rpm [...] Erreur : Erreur du contrôle de transaction :
le fichier / de l'installation de parsec-147-10.x86_64 entre en conflit avec le fichier du paquet filesystem-3.10-1.fc30.x86_64 le fichier /usr/bin de l'installation de parsec-147-10.x86_64 entre en conflit avec le fichier du paquet filesystem-3.10-1.fc30.x86_64
</syntaxhighlight>
Il va falloir remodifier le .rpm obtenu, à l'aide de l'outil rpmrebuild.
<syntaxhighlight lang='bash'> $ rpmrebuild -pe parsec-147-10.x86_64.rpm </syntaxhighlight>
Il faut se rendre dans la section %files et supprimer les fichiers qui posent problème :
<syntaxhighlight lang="bash"> %files %dir %attr(0755, root, root) "/" #Supprimer %dir %attr(0755, root, root) "/usr" %dir %attr(0755, root, root) "/usr/bin" #Supprimer
- Puis :wq pour enregistrer
- Choisir Y pour rebuild
$ rpmrebuild -pe parsec-147-10.x86_64.rpm Voulez-vous continuer ? (y/N) y attention : Explicit %attr() mode not applicable to symlink: /home/justine/.tmp/rpmrebuild.10606/work/root/usr/lib/.build-id/05/c677162032d21e9516703b6edd3db252671950 attention : Explicit %attr() mode not applicable to symlink: /home/justine/.tmp/rpmrebuild.10606/work/root/usr/lib/.build-id/4d/ae7f539d85aa0514d4ea39d5cf958f2b0bd418 attention : Fichier listé deux fois : /usr/lib/.build-id attention : Fichier listé deux fois : /usr/lib/.build-id/05/c677162032d21e9516703b6edd3db252671950 attention : Fichier listé deux fois : /usr/lib/.build-id/4d/ae7f539d85aa0514d4ea39d5cf958f2b0bd418 result: /home/justine/rpmbuild/RPMS/x86_64/parsec-147-10.x86_64.rpm </syntaxhighlight>
Attention, le rpm est généré ailleurs ! Regardez la ligne finale "result". Plus qu'à installer :
<syntaxhighlight lang="bash"> $ sudo dnf localinstall /home/justine/rpmbuild/RPMS/x86_64/parsec-147-10.x86_64.rpm </syntaxhighlight>