Gambas France BETA


Pas de compte ? Incription

configuration des paquets

Ce sujet est résolu.

12
AuteurMessages
gambix#16 Posté le 24/2/2018 à 07:50:42
Faire simple !Sinon la base peu même être dans l'archive d'exectuable si elle n'est pas trop grosse et copiée a la dernière minute... c'est aussi une solution :

IF NOT exist("~/.local/share/Monprog/mabase.kexi") THEN

COPY "base/mabase.kexi" TO "~/.local/share/Monprog/mabase.kexi"

ENDIF


(ici mise dans le dossier base créé par vous même dans l'arborescence des sources
Moins de texte dans une signature c'est agrandir son espace.
valaquarus#17 Posté le 24/2/2018 à 09:55:08
-- Unus Ex Altera --Merci Gambix pour vos réponses,
et j'ai deux choses en retour :

1 °) le tilde dans ~/.local/share/monProg/Mabase n'est pas reconnu, chez moi dans la programmation, gambas ne sait pas de quoi il s'agit et ne recommait pas l'adresse.
Donc obligé de changer pour User.home/.local/share/monProg/mabase qui fonctionne localement sur ma machine.

2°) copy to n'est pas accepter car je n'ai pas les droits d'accès, il faut donc passer par un sudo, comment fait on pour toutes les distributions :
Copy "/usr/share/monProg/mabase.kexi" To "User.home/.local/share/monProg/mabase.kexi". Dans gambas le message d'erreur est "accès interdit"
Sinon à la main ça fonctionne.

Philippe.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
valaquarus#18 Posté le 24/2/2018 à 10:19:48
-- Unus Ex Altera --J'avais aussi pensé lors de la création des paquets de demander à l'assistant de modifier les droits d'accès à la base en l'installant dans /usr/share/monMprog/mabase.kexi par une commande rajouté du style : sudo chmod -R u=rwX, g=rwX, o=rwX /usr/share/monProg dans le panneau 6 de l'assistant mais ça ne fonctionne pas, ou la commande n'est pas bonne ou elle ne s'effectue pas lors de l'installation.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
valaquarus#19 Posté le 24/2/2018 à 11:04:02
-- Unus Ex Altera --Un petit retour vite fait :
1
2
3
4
5
6
7
8
9
10
11
IF NOT Exist(User.home & "/.local/share/MonProg") THEN
MKDIR (User.home & "/.local/share/MonProg")
COPY "/usr/share/MonProg/mabase.kexi" TO (User.home & "/.local/share/MonProg/mabase.kexi")
Message.Info("la base n'existe pas elle va être copiée!"
ELSE
Message.Info("la base existe bien, pas de copie!")
ENDIF
maconnexion.Type = "sqlite"
maconnexion.Host = User.home & "/.local/share/MonProg"
maconnexion.Name = "mabase.kexi"
maconnexion.Open()

Ce code fonctionne sur ma machine avec l'assistant qui réalise l'installation de base dans /usr/share/monProg de tout ce qu'il faut pour fonctionner (les sons et la base). Au premier démarrage la présence du répertoire (User.home & "/.local/share/MonProg") est testée et la base copiée à partir de /usr/share/monProg dans User.home & "/.local/share/MonProg".
Bon reste à tester sur une autre machine...

Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
valaquarus#20 Posté le 24/2/2018 à 15:18:03
-- Unus Ex Altera --Un petit retour d'expérience :
j'ai testé l'installation sur une autre machine. J'ai d'abord installé le runtime gbx3 (celui du site de l'équipe de maintien (ppa) pas celui d'ubuntu) ensuite mon paquet. L'installateur pointe bien les dépendances et les installe. quand je lance ensuite le programme ça mouline dur et plus rien. Je regarde dans le répertoire /usr/share/monProg les éléments supplémentaires sont bien installés mais la base n'est pas copiée dans ~/.local/share/monProg. Ça s'arrête donc avant.

Comprends pas tout, le vieux monsieur.

Philippe.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
valaquarus#21 Posté le 24/2/2018 à 16:05:32
-- Unus Ex Altera --Vague question :
peut on empaqueter le runtime et si oui comment?
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
linuxos#22 Posté le 24/2/2018 à 16:14:50
Un peu de sel, de poivre et la crevette sera... Bonjour valaquarus,

Je comprends tous tes désarrois visa vis de tout ça.
- Pour commencer, le "~" est bien un convention UNIX, ou plutôt un raccourcis pour indiquer le HOMEDIR d'un utilisateur mais c'est reconnu que dans un SHELL comme /bin/bash, /bin/sh, etc... et pas dans Gambas.

-Concernant le paquet que tu crées par l'IDE de Gambas, il te manque l'accès aux mécanismes inclus dans un paquet a savoir les scripts de PRE-installation, POST-installation, PRE-desinstalation, POST-desinstallation.
Ce sont eux qui permettent toute la magie que tu souhaites faire en copiant ta base de données dans le HOMEDIR de l'utilisateur X. C'est comme ça que des comptes utilisateur sont crées pour un paquet spécifique et supprimés a la désinstallation du dit paquet, etc...
Malheureusement, a l'heure actuelle cela n'a pas été implémenté dans l'assistant de Gambas.
Et dans ton cas, tu te retrouves pris dans un dilemme, a savoir que l'installation d'un paquet se fait en tant que 'root' donc le systeme a ce moment la ne sait pas que tu veux copier/installer ta base de données dans /home/<utilisateur>/... car il est 'root' a ce moment la (a moins qu'un des scripts du paquet le demande lors de l'installation, mais c'est pas l'idéal).
Donc cela ne peut se faire que quand ton application démarre sous un utilisateur X car elle peut identifier quel utilisateur est en cours...

-Enfin, il existe aussi la possibilité de spécifier les droits des fichiers du paquet lors de son installation, mais la aussi cela n'a pas été implémenté pour le moment dans Gambas.

-Pour ton histoire d'installation de paquet sur la 2eme machines qui ne se passe pas bien, comme cela semble être un pb coté de ton application, je t'invite a tracer dans un simple fichier texte les étapes de la copie de la base de données dans le répertoire de ton utilisateur, comme ça tu pourra comprendre ce que ne fonctionne pas.
C'est ce que je fais systématiquement pour faciliter le deboggage d'un projet dans mon cas. Tu peux jeter un oeil sur le composant gb.logging qui permet de faire ça.

En espérant que cela t'aidera a comprendre mieux.
Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
valaquarus#23 Posté le 24/2/2018 à 19:37:52
-- Unus Ex Altera --Merci Linuxos de ta réponse qui m'éclaire car en fait je pensais mal paramétrer l'assistant donc je vais reprendre la partie avec d'autres façon d'envisager la chose au niveau installation ne sachant pas du tout faire un paquetage par moi même (va bien falloir s'y mettre) je vais utiliser des stratagèmes de programmation pour contourner tout ça.
Merci encore et bon week-end à tous.
Philippe.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
valaquarus#24 Posté le 25/2/2018 à 00:18:43
-- Unus Ex Altera --Petit retour justifié :
Bon ça marche. le moulinage venait du fait que j'avais oublié de rajouter gb.qt4 qui ne fait pas partie des dépendances obligatoires pour l'installation mais la machine d'installation étant sous kubuntu ... Petite astuce que je n'avais pas compris, il faut retirer le nom de la connection dans l'IDE pour les datasource qu'on utilise, une fois qu'on a établi les fields et la table pour ne pas avoir le problème d'adressage absolue renvoyant vers la machine de conception du programme.
Maintenant il faut que je m'oriente vers un tutoriel sur la gestion du format des containers en fonction des différents réglages des écrans. Si vous avez je suis preneur. Heureusement, il faut toujours et toujours apprendre.
Bon dimanche.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
12