Gambas France BETA


Pas de compte ? Incription

création deb => impossible de satisfaire les dépendances

Ce sujet est résolu.

12
AuteurMessages
jibi#1 Posté le 16/12/2019 à 20:01:48
codergambas.jimdofree.comBonjour à vous tous ! :-)

J'essaie en vain de faire un paquet deb pour debian et ubuntu !
C'est un projet gambas avec comme composants : gb form, gui et image, le plus simple possible

A l'étape 3 je sélection debian et ubuntu mais il y a l'indication que makepkg est introuvable , je continue quand même : l'erreur vient elle de là ?
et jusqu'à la dernière étape je laisse l'IDE faire.

toute un série de fichiers et un dossier sont créés :
1 dossier avec les sources
46 fichiers divers dont 9 paquets deb.

De ces paquets deb créés, 1 seul a une taille de 650 ko environ et les autres de 1,4 ko ?!
Le deb de 650ko ok mais a quoi servent les autres deb ?

Quoiqu'il en soit, peu importe la machine, ( mis à part la mienne ) sur lequel le deb est lancé, il y a toujours l'erreur => impossible de satisfaire les dépendances !
Je vérifie que sur chaque machine gambas3 est disponible en accès par les dépôts : ce qui est le cas !

Qu'est ce que je n'ai pas fait correctement ?

Debian GNU/Linux 11 64-bit

jeanyvon#2 Posté le 17/12/2019 à 10:12:39
Gambas? Ma! Et gustoSalut tous

Je n'ai jamais pu faire un paquet qui fonctionne une fois installé sur une autre machine.
Alors, j'installe gambas et je copie mon projet sur la bécane en question et je le compile et là: miracle tout ce passe au mieux.....
Enfin quand les composants sont dispos pour le système en question.
Vieillir? On peut retarder mais pas y échapper!
jibi#3 Posté le 17/12/2019 à 10:40:07
codergambas.jimdofree.comjeanyvon, merci de ta réponse ! :)
ta solution au problème est bien mais quand les machines ne sont pas à toi , pas possible ! Le deb répond à cela surtout si les personnes destinataires n'ont pas envie de bidouiller dans leur machine linux !

Il doit bien y avoir une façon de réussir à faire des paquets qui fonctionnent, je suis sûr que certains y arrivent sans soucis, non ?
Debian GNU/Linux 11 64-bit

spheris#4 Posté le 17/12/2019 à 12:10:20
Je ne fais jamais de paquet DEB. je livre seulement un exécutable zippé sur la machine à utiliser.
Je n'ai même jamais lancé cette fonction.
Alors j'ai commencé à bidouiller.
premier résultat :

Le deb est bien créé et fonctionne très bien (gb 3.14)
en type mime j'ai mis text



;)
jibi#5 Posté le 17/12/2019 à 13:02:55
codergambas.jimdofree.comBonjour Sphéris,

un exécutable sur une machine n'ayant pas les dépendances gambas3 peut il fonctionner ?

Oui pour moi les DEB se créent bien mais sur une autre machine que la mienne, ils ne trouvent pas les dépendances !
Pourquoi as tu mis en type mime text ? a quoi cela sert t'il de spécifier des types mimes ?

Combien de fichiers cela t'a créé ? en sélectionnant Debian et Ubuntu uniquement ?

Beaucoup de questions , désolé ! :scratch:
Debian GNU/Linux 11 64-bit

valaquarus#6 Posté le 18/12/2019 à 12:27:33
-- Unus Ex Altera --Bonjour jibi,
en plus des fichiers purement gambas comme le runtime il faut que les machines "recevantes" soit équipées de ce qu'il faut pour compiler de tout ce qui est nécessaire et de plus il faut fournir l'adresse du site pour que la machine d'installation retrouve les fichiers gambas car ceux ci ne font pas partie des installations "normales" des distributions Linux comme Ubuntu ou autres.



Donc l'adresse pour les fichiers gambas3 :
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update

puis les dépendances supplémentaires, dans la création de paquet, écran N°7 il faut rajouter :
gambas3-runtime
gambas3-dev
build-essential
fakeroot
checkinstall
liqtcore4 (car j'utilise qt)
et peut être d'autres en fonction de ce que tu utilises dans tes programmes.

Je ne sais si l'image apparaîtra (je ne crois pas, ça ne marche jamais) c'est pourquoi je te détaille ce que je fais pour ne plus avoir les mêmes soucis que ceux que tu as décris.

Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
jibi#7 Posté le 18/12/2019 à 13:04:53
codergambas.jimdofree.comMerci valaquarus
Je vais tester cela dans la journée

le dernier projet que j'ai fait contient simplement gb;form ; gb;gui et gb.image donc je suppose que dans le panneau n°7
gambas3-runtime
gambas3-dev
build-essential
fakeroot
checkinstall
liqtcore4 (car j'utilise qt)
suffiront !

Pour les adresses
Donc l'adresse pour les fichiers gambas3 :
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
dans quel panneau faut il les rentrer ?

:-)
Debian GNU/Linux 11 64-bit

valaquarus#8 Posté le 18/12/2019 à 14:00:23
-- Unus Ex Altera --Et malheureusement dans aucun panneau il faut transmettre l'information à ceux qui veulent utiliser ton programme.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
jeanyvon#9 Posté le 19/12/2019 à 11:56:38
Gambas? Ma! Et gusto
Et malheureusement dans aucun panneau il faut transmettre l'information à ceux qui veulent utiliser ton programme.
Philippe

Salut
Et c'est là tout le problème, autant faire l'install soi même...
Jibi le disait plus haut, les gens refusent de mettre les mains dans le cambouis. C'est la limite de Linux
Vieillir? On peut retarder mais pas y échapper!
linuxos#10 Posté le 20/12/2019 à 03:05:19
Un peu de sel, de poivre et la crevette sera... Bonjour Jibi,

Voici quelques informations qui pourront t'aider a choisir la méthode la plus appropriée a tes besoins.
Tout d’abord il faut bien comprendre comment fonctionne Gambas avant de poursuivre.
Gambas fait partie des langages dit interprétés ce qui signifie que lorsqu'un programme Gambas est exécuté, vu que ce sont des commandes qui sont lu et non du code machine directement compréhensible pour l'ordinateur, il faut les interpréter et les convertir a la volé (pour faire simple comme explication)
Cette interprétation a la volé est consommatrice de ressource ce qui fait qu'en général un programme écrit dans un langage interprété est un peu plus lent qu'un programme compilé du genre C ou C++, etc...

De ce fait un programme compilé (C, C++, etc...), du fait qu'il est directement en code machine, sera plus difficile a faire fonctionner sur différent linux car trop proche de la machine dans son état. De plus si il y a besoin de le recompiler sur une nouvelle distribution, il faudra installer toutes l’environnement nécessaire à cela: compilateur, sources du programme, sources de toutes les libraires utilisée dans le dit programme, et prier pour que la compilation se passe bien.

Dans le cas d'un programme écrit dans un langage interprété, seul l’interpréteur devra être présent sur la machine destination, ce qui est souvent le cas sur la majorité des distribution GNU/Linux pour les langages Python, Perl, et autres...
Les auteurs des dites distributions ont déjà fait le travail de compilation (pénible) pour nous dont je parle plus haut.
Malheureusement Gambas n'est pas encore en standard dans la majorité des distributions, ou du moins rarement disponible dans la dernière version stable en paquet tout prêt.

Donc a ce jour, il existe des dépôts de logiciels indépendants qui propose régulièrement les dernières version de Gambas mais pas pour toutes les distributions. L'un de ces dépôts depuis longtemps s'adresse aux distributions Ubuntu, Linux Mint, et autres basées sur Ubuntu ou dérivées d'Ubuntu.

- Un dépôt propose des paquets .deb des versions stables de Gambas
- Un dépôt propose des paquets .deb des version de Développement de Gambas (pour avoir toutes les dernières corrections, mais potentiellement instable)

A ce jour je ne connais pas d'autre dépôt officiel indépendant (merci a son mainteneur). Rien pour Fedora, Redhat, Suse, etc... (corrigez moi si je me trompe)
Nota: j'avais justement fait un article ici même expliquant comment créer soit même les paquets .rpm pour la distribution Fedora (doit pouvoir s'adapter facilement a d'autre distributions)

Donc si tu as une version basée sur Ubuntu ou dérivée, voici les commandes pour ajouter ces dépôts sur ta machine:
Un seul des 2 dépôts doit étre installé sous peine de conflit de paquets Gambas par la suite.
Ce sont les commandes a taper dans un 'Terminal' sur la machine destination.

Dépôt version stables:
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt install gambas3


Dépôt version de Développment:
sudo add-apt-repository ppa:gambas-team/gambas-daily
sudo apt-get update
sudo apt install gambas3


- Pour résumé, pour executer un programme Gambas, il faudra que l'interpréteur soit présent sur la machine destination. Dans le cas de Gambas, il s'agit du 'runtime gambas' ainsi que les composants gambas utilisés par le dit programme. Il n'est pas nécessaire d'installer tous les composants si juste certains sont utilisés.
A ce stade, la question est comment sera installé Gambas sur une distribution Linux, soit par paquets .deb, .rpm, ou autres..., ou a partir des sources de Gambas + compilation.
Si l'on a de la chance on trouvera la version que l'on souhaite directement disponible avec la distribution, ou dans le cas de Ubuntu ou dérivée grace a l'ajout de dépôt externes tels que: ppa:gambas-team/gambas3 ou ppa:gambas-team/gambas-daily

- Une fois que l'on s'est assuré d'avoir Gambas installé sur la machine destination, comment installer son projet Gambas (généralement développé sur sa machine personnelle) sur cette autre machine.

1) Soit en copiant, de maniere brute, son projet d'une machine a l'autre (copie de fichiers, ou par archives, etc...) en ayant bien pris soin de créer l'executable 'NomDeMonProjet.gambas' par l'IDE de Gambas, car ce sera lui qui sera exécuté par l'interpreteur Gambas (le runtime+composants) sur la machine destination. J'aurais tendance a dire que seul 'NomDeMonProjet.gambas' serait a copié sur la machine distante mais il peut y avoir des fichiers annexes nécessaires au fonctionnement du projet.

2) Soit en créant a partir de l'IDE de Gambas le paquet de votre projet correspondant a la distribution de la machine destination bien sur. Lors de la création du paquet, L'IDE
ajoutera les dépendances aux paquets de Gambas nécessaires ('runtime+composants utilisés dans le projet). Attention les dépendances des paquets Gambas seront sur la version utilisée par la présente IDE, donc il sera impératif d'avoir les mémes version de paquets Gambas installés sur la machine destination. C'est un prérequis indispensable.
Sur la machine destination, lors de l'installation manuelle du paquets de ton projet, l'installeur de ta distribution vérifira si toutes les dépendances sont satisfaites et installera au besoin les paquets manquants donc les paquets du 'runtime' + ses composants. Dans le cas de Ubuntu ou distributions dérivées, il faudra au préalable peut-etre ajouter les dépôts externe (ppa:gambas-team/gambas3 ou ppa:gambas-team/gambas-daily) si ce sont ces versions qui sont utilisées.
Si Gambas n'est pas installé ou non disponible en paquet, dans la bonne version, sur la machine destination; alors l'instaleur de ta distribution ne sera pas quoi faire pour satisfaire les dépendances et l'installation de ton projet ne pourra pas se faire. Il en va de même si tu essayes d'installer le paquet de ton projet mais avec une version de Gambas installé a partir des sources+compilation. L'instaleur de ta distribution ne sera pas au courant et ne fera pas le lien donc même echec.

Pour ma part, j'utilise presque toujours la derniere version de Developpement dans mes projets et je copie le répertoire de mon projet sur la machine destination.
Dans le cas de projets plus officiels, je créer les paquets par l'IDE et je les installe sur une machine préparée avec la meme version de Gambas en paquet (principalement Linux Mint ou Ubuntu, mais aussi Centos).

Pour information, j'utilise Gambas depuis 2005, la version 1.0 (environ), et mon plus gros projet utilisé en entreprise est un systeme de supervision informatique et réseau dépassant les 100 000 lignes de code. Je précise que je ne suis pas développeur de métier et donc ce projet n'est surrement pas optimisé comme cela ce fait professionellement, ce qui reduirait le nombre de ligne de code bien sur.

Voila, j'espere ne pas avoir été trop brouillon dans mes explications.

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.
jibi#11 Posté le 20/12/2019 à 11:26:14
codergambas.jimdofree.comBonjour,

Bon , ben je cours toujours après la réalisation du paquet et les dépendances.. :scratch:
C'est quand même un sacré travail ! : ce que je n'arrive pas encore ! y a toujours des dépendances de dépendances !

faut il inscrire les n° de version des dépendances nécessaires ? ou écrire juste le nom de la dépendance ?

Par exemple sur cette capture d'écran, il y a toujours l'erreur "cannot satisfy dependencies"

l'import d'image ne fonctionne pas ici , alors voici un lien googleDrive
Debian GNU/Linux 11 64-bit

linuxos#12 Posté le 20/12/2019 à 13:26:45
Un peu de sel, de poivre et la crevette sera... Ok je comprends le trouble, c'est ma faute je n'ai pas été assez précis.
Commençons par le debut, peux tu me donner ceci:
- La version de la distribution de départ (la ou il y a l'IDE pour généré les paquets) + la version de Gambas installé dessus
- La version de la distribution destination ( et si il y a deja Gambas installé, dans quelle version ?)
- le message complet que te renvois l'IDE lors de la création de ton paquet

Le panneau des 'dépendances supplémentaires' de ta capture d'ecran ne sert que pour les paquets que toi tu voudrais être sur d'avoir pour faire fonctionner ton projet.
Imaginons que ton projet lance une commande X installée sur ton Linux (Ex: player musique, player video, etc...) qui n'est pas installé de base sur une distribution, alors tu vas ajouter sa dépendance pour être sur que ton projet fonctionne au bout. Mais normalement tu n'as pas besoin de remplir ce panneau, L'IDE ajoutera dans le paquet les dépendances nécessaires tout seul.

Une fois le paquet créer voici 2 commandes qui pourront t'aider a comprendre:

cd /repertoire/du/paquet/creer/
dpkg -I ./mon_paquet.deb
dpkg -c ./mon_paquet.deb


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.
jibi#13 Posté le 20/12/2019 à 16:05:09
codergambas.jimdofree.comlinuxos merci ,
si j'ai bien compris, il ne fallait pas remplir le panneau 7

Effectivement je suis à côté de la plaque ....!
Alors ma machine c'est Debian 10 Buster avec gambas3.12.2 et les machines réceptrices : il y en a une avec ubuntu ubuntu mate 18.04 lts et une autre avec kubuntu 14.04 lts !

j'ai donné le nom du dépôt à la machine ubuntu mate 18.04 puisque gambas n'est plus dans les dépôts ubuntu
Et
pour la 14.04 il me semble que gambas3 est dans les dépôts par défaut !


Effectivement avec les commande dpkg -T et -c on voit bien les versions des paquets qui sont donc
EDIT
Depends: gambas3-runtime (>= 3.12), gambas3-runtime (<< 3.99.0), gambas3-gb-image (>= 3.12), gambas3-gb-image (<< 3.99.0), gambas3-gb-form (>= 3.12), gambas3-gb-form (<< 3.99.0)



l'erreur pour ubuntu mate c'est "cannot satisfy dependencies"
Et, pour 14.04 je n'ai pas encore de retour
Debian GNU/Linux 11 64-bit

linuxos#14 Posté le 20/12/2019 à 19:32:44
Un peu de sel, de poivre et la crevette sera... Ok maintenant pourrais tu me donner la version des paquets Gambas installés/ou disponible sur la machine destination (Ubuntu si je comprends bien)

sudo apt list gambas3*


Je pense que le probleme vient de la.

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.
jibi#15 Posté le 21/12/2019 à 11:20:58
codergambas.jimdofree.comBonjour,

Résultat des courses pour la machine réceptrice Ubuntu mate :
- J'ai refait un paquet debian/ubuntu de monprog sans rien inscrire dans le panneau 7
- sur la machine réceptrice le PPA a bien été rajouté aux sources
- l'installation du paquet monprog.deb se lance et s'effectue sans erreur MAIS le programme ne se lance pas et aucune erreur n’apparaît !
- vérification avec synpatic des paquets installés lors de cette installation : gambas3-runtime, gambas3-gb-image et gambas3-gb-form
Je ne comprends pas pourquoi le prog ne se lance pas alors que les paquets nécessaires ont été trouvés et installés à partir du le PPA !

Donc , ensuite
- suppression des paquets gambas3 et de monprog installés
- installation de gambas3 au complet sur la machine réceptrice.
- l'installation du paquet monprog.deb se lance et s’exécute sans erreurs
- ET monprog se lance et s'exécute sans soucis

DONC il faut absolument que gambas3 dans son entièreté soit installé pour que un deb soit installé correctement et que le prog fonctionne ! pourquoi ?
Debian GNU/Linux 11 64-bit

12