Envoyé par
BeanzMaster
Bonjour Eric très intéressant
Serais-tu partant pour faire un tuto détaillé sur la procédure d'installation ?
Bonjour Jérôme.
Je ne ferai pas de tuto. (pas de temps disponible). Par contre, je vais tenter d'aller jusqu'au bout de ce fil en étant aussi didactique que possible.
Envoyé par
BeanzMaster
Est-ce différent (plus simple) sous Windows ?
Tout d'abord, cela dépend beaucoup des outils avec lesquels on travaille sous Ubuntu.
▪ Pour être aussi confortable que possible, j'ai installé sous Ubuntu 18.04 le gestionnaire de fichiers de "Cinnamon" appelé "Nemo" (je n'utilise donc plus "Nautilus") pour plusieurs raisons:
- on peut naviguer dans l'arborescence certes, mais on peut surtout copier le chemin où l'on est depuis l'en-tête (comme sous l'explorateur de fichiers de Windows)! ==> C'est pratique pour les coller comme paramètres dans les lignes de commandes, plutôt que de taper chaque chemin manuellement.
- on peut ouvrir les répertoires comme root: c'est pratique avec Lazarus, vu que Lazarus et FPC (qui est installé dans mon /home) mettent des droits root:root sur tous leurs fichiers d'installation et parfois sur leur compilation. On peut donc naviguer visuellement dans une arborescence de fichiers root:root, éditer\copier\déplacer ces fichiers comme on veut. En plus, par sécurité, j'ai aussi installé BackInTime pour prendre des clichés de mon poste (façon point de restauration Windows) juste avant l'installation de Lazarus + FCP avec FCPupDeluxe (déjà plusieurs réinstallations à mon actif).
▪ J'ai aussi mentionné que j'avais installé "Midnight Commander". Là, ça me fait gagner du temps pour voir\changer des droits, faire des recherches, avec cette interface semi-graphique très utilisée par les développeurs de sites web (qui n'ont pas de bureau visuel, eux).
==> Pour en revenir à mes tests en pointillés, je me suis fait une petite base avec FlameRobin (sous /var/lib/firebird/3.0/data/): 3 tables, avec 1 table maître (et 2 tables détails qui ont une "foreign key" pointant dessus). J'ai fait une petite appli., avec un "Form" principale qui ouvre la table maître avec les composants SQLdb (la copie d'écran ci-dessous est effectuée quand je lance l'appli. depuis L'EDI Lazarus: tout fonctionne):
J'ai posé dans mon répertoire de compilation (projet nommé project1) les fichiers qui forment l’arborescence suivante:
/home/.../project1
|-- ma base *.fb
|-- project1 (l'exécutable)
|-- firebird.conf
|-- firebird.msg
|-- @libfbclient.so (raccourci "soft" pointant sur @libfbclient.so.2)
|-- @libfbclient.so.2 (raccourci "soft" pointant sur libfbclient.so.3.0.3)
|-- libfbclient.so.3.0.3 (la véritable librairie)
|
└--/intl
| |-- fbintl.conf
|
└--/plugins
| |-- libEngine12.so
|
Alors, je vais expliquer ce que j'ai quand je lance l'eXécutable "project1" en double cliquant dessus. Mais avant, voici mes "pré-requis":
- je suis sûr que ni le service fbguard, ni le service Firebird ne tournent avec la cmd...:
/etc/init.d/firebird3.0 stop
...puisque top -b -n1 | grep [f]irebird ne me renvoie aucune ligne.
- dans mon fichier ~/.bashrc, j'ai rajouté à la fin:
1 2 3
| # ajout: var. envir. pour Firebird embedded
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/...[SNIP].../rep_project_1:/home/...[SNIP].../rep_project_1/plugins
export FIREBIRD=/home/...[SNIP].../rep_project_1 |
et j'ai vérifié que de reboot en reboot, que la cmd...
... me renvoie bien mes chemins. Bon, ci-dessous, ce sont mes vrais chemins (en lieu et place de "/home/...[SNIP].../rep_project_1") pointant sur le rép. qui contient l'eXécutable "project1" .
Alors, le but est maintenant de savoir à quel point l'appli. "project1" est embarquée (embedded). Par ça, quand je lance la cmd...
pidof /home/guepard/SauveWinE_etc/a_projetsLaz/dir_des_divers_boutons_test_all_projets/project1
qui me renvoie, mettons 3093, et que je lance derrière la cmd...
... pour savoir quelles librairies sont chargées\nécessaires par "project1" lancé par double-clic (Lazarus étant fermé), j'ai un résultat mitigé:
❶ ce qui me va, c'est que la *.so libfbclient.so.3.0.3 est bien chargée depuis le rép. où est créée mon appli.:
❷ ce qui me va pas, c'est que libtrace.so et libengine12.so sont chargées depuis /usr/.../..., et non pas depuis le rép. où est créé mon appli.
☞ Du coup, j'ai revérifié mon /home/guepard/SauveWinE_etc/a_projetsLaz/dir_des_divers_boutons_test_all_projets/firebird.conf.
J'ai fait les modifications suivantes dedans:
- RootDirectory=/home/guepard/SauveWinE_etc/a_projetsLaz/dir_des_divers_boutons_test_all_projets
- DatabaseAccess = Full
- ExternalFileAccess = Full
- UdfAccess = Full
- ServerMode = Classic
==> Ça n'a rien changé.
☞ Avec MC, j'ai renommé /usr/lib/x86_64-linux-gnu/firebird/3.0/.../... en /usr/lib/x86_64-linux-gnu/firebird/6.0/.../..., en pensant le forcer à utiliser les *.so posées dans le rép. où est l'appli. project1.
==> L'appli. refuse d'ouvrir la cnx avec une Exception, que je pose d'ailleurs ces *.so, et dans le rép.-même de l'appli., et dans le sous-rép. .../project_1/plugins.
Voilà. J'ai une appli. semi-embarquée ( pas terrible pour créer un paquet d'installation: poser les fichiers dans les différents chemins n'est pas compliqué; par contre aller mettre des droits 777 sur tout ce qui est chargé dont des rép. /usr/.../..., c'est "pas glop" :-\. J'aimerais que tout soit chargé depuis mon rép. /home/.../project_1 ).
Je suis preneur de toute idée...
Partager