Gambas France BETA


Pas de compte ? Incription

Appimage?

Ce sujet est résolu.

1
AuteurMessages
valaquarus#1 Posté le 7/4/2022 à 14:58:18
-- Unus Ex Altera --Bonjour à tous,
le titre est significatif pour tous ceux qui s'y intéressent.
N'étant pas assez doué pour faire ce qu'il faut pour créer une appimage de mes programmes ne pourrait on pas espérer qu'un de nos programmeurs nous réalise une intégration dans l'IDE au même titre que l'empaquetage pour les distributions principales déjà réalisé, ce qui nous permettrait de nous affranchir des distributions Linux (ceci étant le seul intérêt de ces appimages)?
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
jeanyvon#2 Posté le 11/4/2022 à 13:45:57
Gambas? Ma! Et gustoBonjour!
Voilà une joyeuse lurette que tu as posté!
Je me disais je dois pas être le seul qui ne sait pas ce qu'est une appimage!
Ben, si
alors, c'est quoi? D'avance merci!
Vieillir? On peut retarder mais pas y échapper!
valaquarus#3 Posté le 11/4/2022 à 16:28:47
-- Unus Ex Altera --Bonjour JeanYvon,
plus qu'un grand discours voici de la lecture :
appimage

L'avantage est de créer un paquet qui est indépendant de toute distribution et donc utilisable sur "tout" ce qui existe comme Gnu/Linux, en tout cas c'est le but avoué.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
jeanyvon#4 Posté le 12/4/2022 à 13:47:14
Gambas? Ma! Et gustoMerci Philippe
Très intéressant
Vieillir? On peut retarder mais pas y échapper!
valaquarus#5 Posté le 12/4/2022 à 15:56:52
-- Unus Ex Altera --Bonjour, Jeayvon,
oui ce serait très pratique de s'affranchir du type de distribution mais je dois avouer que je ne comprends pas tout du site principal : appimage.org
même si cela parait plus simple que de faire un paquet debian.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
Foromus#6 Posté le 12/4/2022 à 17:39:51
Bonjour à tous,

L'idée peut paraître intéressante.
Mon témoignage :
Je répugne un peu à utiliser tous ces trucs "globaux" (flatpack, snap, appimage).
Je cherchais un logiciel de pilotage, j'ai trouvé quelque chose sous appimage, conseillé dans un forum. Face à ma résistance, j'ai eu des encouragements, du genre "tu télécharges le paquet, tu cliques dessus, l'application démarre !". Séduisant, non ?
Après, on peut toujours faire un lanceur, vu qu'il n'y a qu'à cliquer sur la paquet.
Par contre, au niveau volume, il faut bien reconnaître que ça prend énormément de place... Mais il paraît que maintenant, la place, ce n'est pas un problème. Telle n'est pas mon opinion, et j'ai horreur du gaspillage... Et du reste, + on a de place, moins on range... Tant et si bien qu'au bout d'un moment, c'est carrément le bordel ! Et ça, c'est vrai, autant pour la maison que pour l'ordinateur...
Bon, c'était juste histoire de causer, n'est-on pas entre amis ici ?..
valaquarus#7 Posté le 12/4/2022 à 18:16:55
-- Unus Ex Altera --Bonsoir Foromus,
j'apprécie ton argument sur le volume d'une application sous appimage car il faut tout ranger dedans puisqu'on veut une application intégralement autonome et donc la moindre dépendance est intégrée dans l'application mais dans un seul paquet donc si installation de deux programmes écrit en gambas on ressert deux fois la table avec gambas chaque paquet "programme" étant séparé et autonome ce qui est évité avec un paquet lié à une distribution car les dépendances sont "rangées" proprement au bon endroit, une fois pour toutes, pas besoin de les resservir.
J'ai ouvert cette discussion car des relations m'ont demandé avec une certaine insistance de leur fournir une version appimage de certains de mes programmes mais comme je n'ai pas tout compris sur la manière d'opérer, je cherchais de l'aide auprès de vous tous car comme tu le dis on est entre amis, ici.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
spheris#8 Posté le 14/4/2022 à 20:13:54
Pour répondre un peu à coté de ta question,
Je préfère livrer un fichier tar.gz de mon projet gambas super facile à compiler sur vos platesformes diverses et variées plutôt qu'utiliser appimage pour plusieurs raisons :

A) sécurité et droit admin.
B) Taille de l'appimage
C) Respect du gestionnaire de paquetages linux

Un exemple tout simple:

Toutes mes applis classiques sont dans /usr/bin, ou /usr/share/bin.
J'ai installé Viber un logiciel propriétaire genre whatsapp, et il est dans /opt/bin, allez savoir pourquoi...
Excès de zèle de la part du programmeur ou simplement compatibilité venant de win$????, je ne sais pas mais comme a dit Foromus avec élégance, cela devient vite le bord..

Maintenant pour répondre à ta question première,
comment créer une appimage de ton appli gambas
, cela sous entendrait que les runtimes gambas soient dans l'appimage ainsi que toutes les dépendances de ton programme qt ou gtk, et les dépendances des composants gb liées à ton appli.
Autrement dit, si un utilisateur, qui télécharge ton appli appimage, a puppy linux sous jwm avec roxfiler par exemple, un linux complètement dégraissé, ton appimage de tom prog gambas pèserait pas loin de 70Mega.

ça fait lourd le 'Hello world'.
;)

Mais bon....trève de bavardage, la solution est ici :
Comment creer un appimage sous nux.
valaquarus#9 Posté le 15/4/2022 à 13:06:48
-- Unus Ex Altera --Bonjour Spheris et merci de ta réponse,
je suis totalement d'accord avec toi à un détail près :
- les fichiers tar.gz sont fait pour contenir la source et dans certains cas je ne veux pas livrer les sources. Le travail de programmation n'est pas en cause mais certaines données sont personnelles et je ne les partage pas (oh le vilain).
Pour tout le reste je te suis, complètement et il est bien dommage de ne pas trouver d'harmonisation totale entre les diverses distributions. Quant à ton lien, je l'avais déjà consulté sans rien comprendre, je sais je suis limité mais en tant que prof à la retraite je me suis toujours efforcé de faire en sorte que même le plus idiot de mes élèves comprenne ce que j'expliquais et là la traduction automatique par Traductor n'est pas la meilleure que j'ai lue et je n'ai pas tout compris.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
linuxos#10 Posté le 19/4/2022 à 00:51:37
Un peu de sel, de poivre et la crevette sera... Bonjour a tous,

Alors qu'est-ce donc qu'une AppImage, en voilà une bonne question...

Revenons au départ pour bien comprendre une AppImage.
En fait ce n'est rien d'autre qu'une application mise dans un conteneur a la manière de Docker, d'ailleurs Docker est requis pour créer une appImage, car une AppImage est un conteneur Docker.
Donc si une AppImage est un conteneur Docker, ce conteneur est basé sur une 'image' et c'est la que le bas blaisse car les images de base 'Docker' sont relativement lourde en taille car c'est en fait un mini-système Linux mis dans un conteneur, isolé du système.

D'habitude les conteneurs 'Docker' ne sont pas utilisé pour des applications/programmes ayant une partie graphique s'affichant sur l'écran de l'utilisateur car vous l'aurez compris, si une image Docker est un mini systeme Linux, isolé du reste du vrai Linux fonctionnant sur votre machine, si l'application a besoin du nécessaire pour utiliser la partie graphique, il sera nécessaire d'installer dans le conteneur tous les composants graphiques classiques d'un bureau Linux: X11/Waylan, librairies graphiques, etc...

Et ceci est valable pour toute application nécessitant des librairies/packages particuliers pour son fonctionnement, ainsi que que vous ajoutez quelques choses dans votre image 'Docker', ben elle grossit, grossit...

Donc, revenons en à notre AppImage, l'idée est intéressante, mais gourmande en place, car en plus de notre programme que l'on ajoute a une image 'Docker' de base (déja grosse), il faudra ajouter toutes les dépendances de paquet necessaire a notre programme:

Ex: Pour une application Gambas graphique qui affiche une fenêtre avec un 'Hello' + un bouton 'Quitter', il faudra s'attendre a une AppImage de 52Mo au minimum... ça laisse reveur.

Au final, voici le décompte grossier du contenu de l'AppImage:

- Une Image 'Docker' de base
- Tous les packages de Gambas + dépendances, Ex: gambas-runtime, gambas-form, etc... + toutes les librairies dont dépendendes ces composants Gambas...
- Et bien d'autres paquets par-ci par-la...

Autre exemple, j'ai récemment créé une AppImage pour le logiciel PhpWeathermapEditor que j'ai développé (il est disponible dans la Forge de Gambas) qui utilise Mysql, SSH, etc...

J'ai dû me battre pour créer et faire fonctionner cette AppImage, après des heures de bataille, j'ai enfin réussi: Bilan, une AppImage qui pèse 226Mo

De plus j'ai dû créer cette AppImage sur une VM Ubuntu 20.04 car l'exemple de base fournit sur le site est basée sur Debian/Ubuntu. Je pense qu'avec de l'huile de coude et de la persévérance, il serait possible de créer une AppImage sur n'importe quel distrib Linux, mais là, je n'avais pas le temps donc j'ai fait au plus simple.

En ce qui concerne, les paquets SNAP, Flatpak, se sont aussi des conteneurs, basé ou non sur le mécanisme de Docker, mais ils n'en restent pas moins des genres de mini écosystèmes isolés de l'OS sur lequel il fonctionne, ainsi il faut mettre tout le nécessaire dedans pour que cela fonctionne, d'où des AppImages/Snap/Flatpak empreint de boulimie.

Pour ma part, Benoit a fait un excellent travail en permettant de créer des paquets RPM, DEB, etc, directement dans l'IDE et cela fonctionne vraiment bien.
Bien sûr, cela nécessite pour installer ce dit paquets créé par l'IDE, d'avoir installé Gambas à partir des paquets de la distribution, car les paquets créés par l'IDE dépendent de cela.

Dans le cas ou c'est un programme pour vous, même à mettre sur plusieurs de vos PC, la solution de copier le répertoire de l'application sur chaque PC reste pour moi le plus simple et le plus efficace.

Voilà, ce n'est qu'un aperçu de ce qu'est une AppImage et il resterait assurément beaucoup à dire dessus...

J'espère ne pas avoir été trop confu 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.
valaquarus#11 Posté le 19/4/2022 à 11:38:17
-- Unus Ex Altera --Merci encore Linuxos (Olivier),
comme d'habitude tes interventions sont toujours adaptées et constructives.
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
spheris#12 Posté le 27/4/2022 à 06:42:18
Après une solution à laquelle j'ai pensé pour avoir une application la plus petite possible à livrer sans les sources comme demandait Valaquarus, serait un simple script bash ou gambas qui réaliserait les actions suivantes :

A) Vérification si gambas installé sur la machine hôte.
B) Téléchargement du tar.gz d'internet.
C) Décompression du fichier dans un répertoire caché.
D) Compilation en ligne de commande par gb3 ou gx3.
E) Effacement du répertoire source.
F) Création d'un lien symbolique vers la nouvelle application.

... une sorte de création à la volée pour une taille de l'appli minimale adaptée à la machine qui la reçoit.

Qu'en pensez-vous?

Certains me diront:
Oui mais, pour pirater les sources, on peut ouvrir le script en mode texte et chercher le lien de téléchargement(etc....)
Dans ce cas faire un script qui télécharge un script qui télécharge un script etc...
On a déplacé le problème vers de la sécurité.
;)
valaquarus#13 Posté le 8/5/2022 à 12:52:44
-- Unus Ex Altera --Oui, spheris j'opterai volontiers pour un script gambas :

A) la vérification présuppose que j'effectue une version du test pour chaque type de distribution avec les limites des versions pour chaque distro. (voir ici : http://gambas.sourceforge.net/en/main.html le packaging status)
B) OK, facile
C) OK mais un répertoire caché n'est pas un véritable obstacle pour un méchant
D) OK, réalisable
E) OK, mais le méchant est déjà passé
F) OK, plus pratique

Par contre pour le script qui télécharge un script ....

Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
1