OVH Cloud OVH Cloud

encore soucis de dépendance

4 réponses
Avatar
Math
Bonjour,

J'ai fais un package debian d'un script perl. Quand j'installe ce
package sur une autre machine, il ne retrouve pas une d=E9pendance alors
que je l'ai inclue dans mon package et que les fichiers se retrouvent
bien sur cette machine.

D'o=F9 peux venir le probleme ? les droits sur les fichiers me semblent
ok...


L'installation du package ne donne aucune erreur :
sudo dpkg -i script.deb

Message d'erreur =E0 l'ex=E9cution du script :
Can't locate loadable object for module Gtk2::MozEmbed in @INC (@INC
contains: /etc/perl /usr/local/lib/perl/5.8.7
/usr/local/share/perl/5.8.7 /usr/lib/perl5 /usr/share/perl5
/usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl
/usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 .) at iris-gtk.pl
line 5
Compilation failed in require at script.pl line 5.
BEGIN failed--compilation aborted at script.pl line 5.

Or :
ls -l /usr/local/lib/perl/5.8.4/Gtk2/
total 8
drwxr-xr-x 3 root root 4096 2006-11-22 17:40 MozEmbed
-rwxr-xr-x 1 root root 1630 2006-11-22 17:39 MozEmbed.pm

Merci de votre aide...

4 réponses

Avatar
Jogo
Sur fr.comp.lang.perl, Math disait :

Message d'erreur à l'exécution du script :
Can't locate loadable object for module Gtk2::MozEmbed in @INC

Or :
ls -l /usr/local/lib/perl/5.8.4/Gtk2/
-rwxr-xr-x 1 root root 1630 2006-11-22 17:39 MozEmbed.pm


Ce n'est pas le module qu'il cherche, c'est la librairie que le module
tente de charger. Un truc en .so donc, pas en .pm.

--
So many women; so little nerve.

Avatar
Math
Ce n'est pas le module qu'il cherche, c'est la librairie que le module
tente de charger. Un truc en .so donc, pas en .pm.


Ah, ok...
J'imagine qu'il s'agit de gtkmozembed.so
Je viens d'essayer de l'inclure dans mon package .deb, au même niveau
que mon script perl

Quand je lis :
in @INC (@INC
contains: /etc/perl /usr/local/lib/perl/5.8.7
/usr/local/share/perl/5.8.7 /usr/lib/perl5 /usr/share/perl5
/usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl
/usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 .)

j'en déduis qu'il devrait chercher dans le répertoire "." (juste
avant la fin de la parenthese).
Or, cela ne fonctionne toujours pas, même message d'erreur.

Faut-t-il que je le place autre part ?

Avatar
Jogo
Sur fr.comp.lang.perl, Math disait :

J'imagine qu'il s'agit de gtkmozembed.so
Je viens d'essayer de l'inclure dans mon package .deb, au même niveau
que mon script perl


Amha ce n'est pas comme cela qu'il faut faire. Essaie plutôt d'utiliser
les options -l et/ou -a de pp pour lier statiquement ces librairies.
Utilise ldd pour vérifier que toutes les librairies dynamiques de ton
exécutable sont sur la machine "destinataire".

--
Halaud, enhoiré ! Le GCU passe encore mais le GNU, jamais.
-+- BL in Guide du Neuneu Usenet : A l'infu de fon flein gré.-+-

Avatar
Math
Bon, merci beaucoup, cela fonctionne maintenant, en fait, ce n'était
pas gtkmozembed.so qu'il fallait inclure, mais c'était : mozembed.so

Donc je n'ai plus d'erreur à ce niveau. Par contre, l'application
plante au démarrage.
C'est une appli Gtk2, donc je vois apparaitre une fenetre, enfin le
cadre simplement.. puis un message d'erreur générique :
"Erreur de l'application, vous pouvez informer les développeurs,
etc..."

Et aucun message dans la console...
Je soupçonne une incompatibilité au niveau de la version de Gtk...
une autre idée ?