IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

[Ubuntu 8.10-Lazarus 0.9.27-ZeosLib 6.6.3] Quelle libsqlite.so ? [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Invité
    Invité(e)
    Par défaut [Ubuntu 8.10-Lazarus 0.9.27-ZeosLib 6.6.3] Quelle libsqlite.so ?
    Bonjour,

    Problème curieux :
    • XP+lazarus 0.9.26+zeoslib 6.6.3+sqlite3 : OK
    • Ubuntu 8.04 + lazarus 0.9.26+zeoslib 6.6.3+sqlite3 : OK
    • Ubuntu 8.10 + lazarus 0.9.27+ zeoslib 6.6.3+sqlite3 : access violation

    Je ne dispose plus de l'Ubuntu 8.04. Ayant changé d'appareil, travaillant en gtk2, j'ai dû me résoudre à utiliser Ubuntu 8.10 + Lazarus 0.9.27. J'utilise la libsqlite.so disponible sur le site de SQlite (sqlite-3.6.10.so.gz) que j'ai placée dans le rép. de l'application, /usr/lib et /usr/share

    Problème déjà rencontré par qq'1 ?... et résolu ?

    Par contre, en Ubuntu 8.10 + Lazarus 0.9.27+ Zeoslib 6.6.3 avec une vieille libsqlite.so et une aussi vieille base, cela fonctionne avec le protocole sqlite (tout court - même pas le 2.8)... sauf qu'un DROP IF EXISTS table n'est pas géré... et qu'évidemment il ne gère pas mes bases sqlite3.

    Cordialement. Gilles
    Dernière modification par Invité ; 21/01/2009 à 16h05.

  2. #2
    Invité
    Invité(e)
    Par défaut Interrogation supplémentaire
    Re-bonjour,

    J'ai installé la lib sqlite-3.6.4.so (sans modifier son nom) dans le répertoire de l'application et cela fonctionne (mystère !?) sous l'IDE (Ubuntu 8.10+)Lazarus 0.9.27+Zeoslib 6.6.3 avec le protocole sqlite-3.
    Je compile. L'exécutable fonctionne.

    Je transfère l'intégralité du répertoire de l'application sur une autre station (de test) dotée elle aussi d'Ubuntu 8.10 (sans Lazarus). Je suis connecté en root (Le rép. est installé comme sur la station de développement dans /root - Droits sur le rép. OK). Je lance l'exécutable : plantage de la base !!!

    Je croyais que les libsql.so (et/ou sqlite-3.6.4.so ) dans le rép de l'exécutable suffisaient pour faire fonctionner l'appli ?

    Cordialement. Gilles
    Dernière modification par Invité ; 21/01/2009 à 16h01.

  3. #3
    Membre expérimenté
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Points : 1 688
    Points
    1 688
    Par défaut
    Bonjour Gilles,

    As tu vérifié si tu avais bien libsqlite.so dans le /usr/lib de ton ubuntu car zeos cherche un fichier de ce nom.
    -->voir le fichier ZPlainSqLite3.pas

    @+
    Chris

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour Chris37,

    En effet dans le ZPlainSqlite3.pas, il est indiqué que
    • WINDOWS_DLL_LOCATION = 'sqlite3.dll';
    • LINUX_DLL_LOCATION = 'libsqlite.so';
    • SQLITE_VERSION = '3.5.4';


    J'ai supposé (comme pour Windows) qu'une fois placée dans le rép. de l'exécutable, la libsqlite.so rebaptisée (c'est la libsqlite3.so en réalité) prenait le dessus sur le lien qui existe dans le /usr/lib : libsqllite.so (dont la cible est /usr/lib/libsqlite.so.0.8.6)... car c'est le lien libsqllite3.so dont la cible est /usr/lib/libsqlite3.so.0.8.6

    Sur mon poste de dév., comme mon rép. lazarus est placé (pour la version 0.9.27) dans /usr/share (alors qu'il est dans /usr/lib pour la version 0.9.26), j'ai placé également la "libsqlite.so rebaptisée" dans /usr/share et dans /usr/share/lazarus... me disant qu'il était nécessaire de procéder ainsi pour permettre les tentatives de connexions "directes" à la base à partir du Zconnect placé sur l'IDE.

    Les stations de dév. et de test présentent les mêmes liens dans /usr/lib. Mais si, ce sont bien les liens de /usr/lib qui permettent le fonctionnement sur la station de test, alors il y a un problème : le libsqllite.so ne pointe pas sur une sqlite3 mais sur une sqlite... Dans ce cas, comme la station de test est installée par défaut (sans aucun autre paramétrage que l'accès pour le root à Gnome), il va falloir modifier la ZPlainSqlite3.pas...

    Pourquoi pas ? Mais je répugne à modifier de trop les paquets car à chaque release, la MAJ devient de plus en plus difficile et en cas de nouveau(x) problème(s), il est difficile de déterminer les "responsabilités"... Reste la possibilité de "modifier" un peu mon Ubuntu de test... pour voir si en effet c'est ce lien qui est déterminant... Je vérifie et je te tiens au courant.

    Merci pour la réponse. Cordialement. Gilles
    Dernière modification par Invité ; 21/01/2009 à 18h42.

  5. #5
    Invité
    Invité(e)
    Par défaut
    C'est bien cela Chris37,

    Tu as tout à fait raison... En faisant pointer le lien /usr/lib/libsqlite.so vers le fichier libsqlite3.so.0.8.6, cela fonctionne immédiatement sur la station de test.

    Ceci n'est évidemment pas satisfaisant, j'ai donc remplacé LINUX_DLL_LOCATION = 'libsqlite.so'; par LINUX_DLL_LOCATION = 'libsqlite3.so'; dans le fichier ZPlainSqLite3.pas et reconstruit le paquet ZeosLib.

    En remettant les liens d'origine maintenant sur la station de travail [il n'est pas acceptable de les modifier. D'autres applications peuvent les utiliser.], cela fonctionne correctement. Par contre la libsqlite.so ne sert à rien dans le rép de l'exécutable sur la station de test (Je l'ai enlevée - RAS).

    Merci pour ton aide. A bientôt. Gilles
    Dernière modification par Invité ; 21/01/2009 à 18h53.

  6. #6
    Membre expérimenté
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Points : 1 688
    Points
    1 688
    Par défaut
    Gilles,

    Ne modifie pas les paquet de ZEOS Ce n'est pas nécessaire.

    Il te suffit juste de faire un lien symbolique (raccourci linux) nommé du même nom que dans le fichier ZEOS et pointant vers ta librairie et le tour est joué

    @+

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour Chris37,

    Oui, j'y avais pensé mais... cela ne m'a pas semblé cohérent :

    d'abord, il faut faire un lien de lien... la libsql3.so.0.8.6 changera probablement de nom à la prochaine mouture de linux... et "chez" Ubuntu cela change fréquemment (il n'y a qu'à voir le gtk2). Donc il faudrait faire un lien libsql.so sur le lien /usr/lib/libsql3.so... et le placer dans le rep du projet ?

    Mais dans ce cas,

    • sera-t-il prioritaire sur celui de la /usr/lib qui porte le même nom ? J'en doute. Il me semble que pour linux, un lien ou le fichier en dur du même nom, s'il est nommément appelé, aurait la même priorité et on reviendrait au dysfonctionnement qui fait l'objet de cette discussion.
    • d'autre part quand le lien libsql3.so n'existe pas dans le /user/lib (parce que sqlite3 n'est pas installé ou a été désinstallé), je suppose que c'est pour pallier ce problème qu'il faut récupérer une "vraie" libsql3.so et la placer dans le rep de l'exécutable... et dans ce cas elle devrait porter le même nom que le lien (libsql.so) qui lui aussi devrait figurer dans le rép. du programme...


    J'ai bien noté le : il est "postité" sur le mur (mais les post-it commencent à s'accumuler ).

    Cordialement. Gilles

  8. #8
    Membre expérimenté
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Points : 1 688
    Points
    1 688
    Par défaut
    Si tu veux mon avis

    Je pars du principe que moins on modifie les package et mieux ont se porte.
    Modifier un lien est le plus simple et moins risqué.(Ce n'est que mon avis)

    @bientôt

  9. #9
    Invité
    Invité(e)
    Par défaut
    oui mais... Extrait de : http://wiki.lazarus.freepascal.org/L...C_Libraries/fr
    Linux
    Un nom de fichier d'une bibliothèque dynamique a toujours la forme 'lib'+nom de paquet+'.so'+version. Par exemple : libz.so.1 and libz.so.1.2.2.
    Linux recherche une bibliothèque dans les chemins de la variable d'environnement LD_LIBRARY_PATH, puis dans /lib, puis /usr/lib et finalement les chemins de /etc/ld.so.conf. [...]


    Dans le cas présent, la modification du lien n'est pas anodine. D'après ce que je lis, on peut conclure que, où qu'on place le lien, le résultat sera le même : si un autre programme installé sur le PC Linux utilise le libsqlite.so, il risque de planter.

    Pour l'instant, j'ai constaté un plantage sous Ubuntu alors que le prog passe en XP. Mais je ne sais pas exactement si le problème est lié à Lazarus 0.9.27ou à mes modifs dans le paquet Zeos. Néanmoins, je considère le problème comme résolu ou très proche de l'être.

    Cordialement. Gilles
    Dernière modification par Invité ; 22/01/2009 à 17h47. Motif: Correctif après un plantage constaté sur un type de requête

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/03/2011, 10h31
  2. [Lazarus] [0.9.26/Ubuntu 8.10] Lazarus en gtk2
    Par thierrybo dans le forum Lazarus
    Réponses: 6
    Dernier message: 31/03/2009, 14h51
  3. [Lazarus] Lazarus 0.9.26 + ZeosLib 6.6.4 + Firebird Embedded 2.0.3.5
    Par matthius dans le forum Lazarus
    Réponses: 7
    Dernier message: 16/03/2009, 09h07
  4. [Lazarus] [Ubuntu 8.10 + Lazarus 0.9.27] Erreur à la compilation de librairies
    Par Invité dans le forum Lazarus
    Réponses: 2
    Dernier message: 23/01/2009, 16h12
  5. [Lazarus / Ubuntu] Quelle fonte pour l'EDI ?
    Par ChPr dans le forum Lazarus
    Réponses: 1
    Dernier message: 02/02/2008, 18h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo