Empaquetage et fichier control avec appel à des lib i386 sous amd64

Bonjour
J’essaye d’empaqueter un logiciel pour architecture amd64 et i386
Il utilise des librairies i386
Aussi dans le fichier control j’ai mis ces entrées :

=================================
Architecture: all
Depends: multiarch-support, libglib2.0-0:i386, libgail-common:i386, libnss3:i386, libstdc++6:i386, libgcc1:i386, libgconf-2-4:i386, libpangocairo-1.0-0:i386, libxi6:i386, libxcursor1:i386, libxss1:i386, libatk1.0-0:i386, libxcomposite1:i386, libxtst6:i386, libxrandr2:i386, libcups2:i386, libgtk2.0-0:i386, libfreetype6:i386 
================================

Avce l’espoir qu’il installe automatiquement les librairies i386 nécessaires

Mais ça ne marche pas…

dpkg: des problèmes de dépendances empêchent la configuration de XXX :
 XXX dépend de libglib2.0-0:i386.
 XXX dépend de libgail-common:i386.
 XXX dépend de libnss3:i386.
 XXX dépend de libstdc++6:i386.
 XXX dépend de libgcc1:i386.
 XXX dépend de libgconf-2-4:i386.
 XXX dépend de libpangocairo-1.0-0:i386.
 XXX dépend de libxi6:i386.
 XXX dépend de libxcursor1:i386.
 XXX dépend de libxss1:i386.
 XXX dépend de libatk1.0-0:i386.
 XXX dépend de libxcomposite1:i386.
 XXX dépend de libxtst6:i386.
 XXX dépend de libxrandr2:i386.
 XXX dépend de libcups2:i386.
 XXX dépend de libgtk2.0-0:i386.
 XXX dépend de libfreetype6:i386.

dpkg: erreur de traitement du paquet XXX (--install) :
 problèmes de dépendances - laissé non configuré

Si je fais ensuite un
apt-get install -f

Il m’installe bien les dépendances, mais je voudrais qu’il le fasse automatiquement.
(ou alors peut être passer cette commande dans le postinst ???
mais dans ce cas, les retirera t il automatiquement lors de la suppression du paquet ?
Ou faudra t il lui demande dans le postrm ?)

J’ai essayé la variante
Archtitecture: any
et dans Depends cette écriture
libglib2.0-0 [i386] mais là j’ai un problème lors de la construction du paquet (dpkg-deb --build) avec erreur de syntaxe…

Donc je tourne en rond… J’ai lu des trucs sur l’entrée Multi-Arch: Allow du control mais je n’ai pas tout bien compris…

Concrètement, est il possible d’installer automatiquement des librairies i386 si l’utilisateur tourne en amd64 à l’aide du fihcier control ?

Enfin, beaucoup de questions, mais je cherche la méthode la plus propre …

D’avance merci,

Salut,

Que donne la commande dpkg --print-foreign-architectures ?
Si tu n’as rien, il serait bien de lancer dpkg --add-architecture i386, puis apt-get update.

dpkg --print-foreign-architectures 
i386

Sinon oui l’architecture i386 est bien installée et l’installation manuelle des libraires fait fonctionner le programme

Ce que je cherche c’est d’automatiser tout cela dans le script d’install.

Pour info, le paquet en question est ici : https://www.cbiot.fr/calculatice-deb/

Je voudrais qu’un user amd64 ou i386 puisse l’installer en toute transparence

Mais en tout cas merci de ton intérêt :wink:

Salut

je n’ai jamais pratiqué mais des infos ici

J’ai du mal à concevoir que tu puisses forcer le passage en multi-arch et l’installation de lib 32 bits sur une installation 64 bits sans le dire à l’utilisateur.

Ne serait il pas plus simple de faire un mode d’emploi sous forme de script indiquant:

  • vous devez être en multiarch
  • vous devez installez les libs suivantes…
  • si vous êtes d’accord tapez Y et le tu déroules ton script qui fait le boulot automatiquement puis qui installe ton paquet deb, ce qui pouurrait être une sorte de pre-install script

OK merci beaucoup pour ton aide,
ce sera en effet plus propre, je vais suivre tes conseils,
un grand merci aussi pour les docs :wink: