Delphi sous Linux : Par où commencer?

Nov 17, 2022

Développer en Delphi sous Linux. Depuis la version 10.2 Tokyo, cela est désormais possible. 

Mais quand on veut passer à l’action et que l’on n’a aucune expérience en la matière, nombreuses sont les questions dont on a beaucoup de mal à trouver les réponses. Cet article va vous expliquer, par étape, comment installer et paramétrer les prérequis pour pouvoir développer sous Linux.

Besoin d'un accompagnement dans vos développements?

Préambule

Les opérations de cet article, ainsi que les captures ont été réalisées sous l’environnement suivant:

  • Windows 10
  • Delphi 11.1 ( lors de l’installation, l’option développement sous Linux a été coché )
  • Linux – Debian 11.5 ( Bullseye ) installé sur un serveur OVH ( le nom de session que nous allons utiliser est « debian » )

Logique de base d’une compilation d’un programme destiné au monde de Linux :

  •  Le développement du programme reste inchangé, il se passe toujours sur le tandem  Delphi / Windows.
  • Lors de son exécution, Delphi déploie le programme sur le serveur Linux via un utilitaire nommé paserver. Ce dernier doit se trouver sur le poste Linux et doit être en cours d’exécution.
  • Dès la fin de la réception de l’exécutable via paserver, ce dernier sauvegarde le fichier reçu dans un répertoire spécifique puis lance son exécution.

Pour me connecter sur le serveur Linux, je vais utiliser PuTTY qui permet une connexion distante en SSH.

Légende pour les captures d’écrans

Installation de PuTTY + PSCP

Nous allons commencer par installer et configurer PuTTY pour permettre l’accès au serveur Linux et pouvoir réaliser les étapes suivantes.

Téléchargement de Putty

Ce dernier est disponible gratuitement ( open source ) à cette adresse : https://www.putty.org/

L’outil pscp est inclus dans le même kit.

Installation de Putty

Une fois téléchargé, on lance l’installation

Configuration de Putty

Configuration de PuTTY

Connexion sur le serveur Linux…

La console s’ouvre…

 

Installation de l’outil Server Platform Assitant

Maintenant que l’accès sur le serveur est possible, nous allons voir ici comment installer et configurer paserver afin de déployer notre executable.

Copie de PAServer sur le serveur

PaServer est directement disponible au niveau de l’installation Delphi. Dans notre exemple, la source se situe  à l’emplacement suivant :

« C:\Program Files (x86)\Embarcadero\Studio\22.0\PAServer\LinuxPAServer22.0.tar.gz »

Nous allons utiliser l’utilitaire pscp qui permet le transfert de fichiers entre windows et Linux. Depuis windows, lancer l’invite de commandes et saisir la ligne de commande suivante

Syntaxe de pscp : pspc <source> <destination>

Dans notre exemple, la destination sera : « debian@vps-xxxxxxxxxxx.vps.ovh.net:/home/debian/. »

Une fois la connexion établie avec le serveur Linux, l’outil vous réclamera le password de la session. Ensuite la copie du fichier se lance. Veuillez bien attendre la fin de la copie.

Installation de PAServer

Depuis windows via la l’outil PuTTY, vérifiez que le fichier est bien présent

Décompresser l’archive « LinuxPAServer22.0.tar.gz » via la commande tar -xf LinuxPAServer22.0.tar.gz

Aller ensuite dans le répertoire PAServer-22.0 et démarrer PAServer via la commande ./paserver 

Détail important au sujet de ce mot de passe, appelé profile password. Par défaut, il n’y en a pas. Si au moment de créer le profil de connexion depuis Delphi, vous désirez en mettre un, il faudra le saisir également ici à chaque lancement de PAServer.

 

Félicitations, l’outil PAServer est opérationnel sous Linux!

Ne refermez pas la console PuTTY pour l’instant, nous allons passer au paramétrage de Delphi.

Paramétrage de la plateforme cible sous Delphi 11

Maintenant que le serveur est configuré, nous allons paramétrer Delphi afin de définir notre serveur comme plateforme cible.

Création du projet

On crée un nouveau projet de type « Application console ».

 

Par défaut, seule la plate-forme Windows 32 bits est présente. Nous allons donc ajouter notre nouvelle plateforme.

 

Ajout de la plateforme Linux

Nous allons donc ajouter une nouvelle plateforme à notre projet.

Nous sélectionnons Linux 64 bits et on valide.

 

 

 

 

Configuration de la plateforme

Lors d’une première fois, il va falloir tout paramétrer, en commençant par ajouter un SDK et un profil. Pour cela cliquer sur les propriétés de la plateforme.

Cliquez sur ajouter un nouveau SDK, puis un nouveau profil comme sur les images ci-dessous.

Saisissez un nom de profil et cliquez sur suivant.

 

 

Il va falloir désormais saisir les informations de connexion à notre serveur Linux.

Saisissez l’adresse du serveur Linux lié à ce profil.

Détail important au sujet du mot de passe. Il s’agit du fameux profile password demandé lors de chaque lancement de paserver.  Il n’est pas obligatoire d’en mettre un, vous pouvez laisser vide. Puis cliquez sur Terminer.

Delphi peut se mettre à charger des fichiers manquants.

C’est terminé, il n’y a plus qu’à valider et à vérifier si la plate-forme est bien présente.

 

Test de déploiement

Un petit bout de code très technique, on s’assure que la cible est bien la plate-forme Linux et on lance le tout.

La victoire est totale!

Les pièges que j’ai rencontrés

 

  • Gérer plusieurs versions de Delphi :

Sur mon pc, à cause de plusieurs projets, je suis obligé de conserver plusieurs versions de Delphi (10.3.2, 10.4.2, 11.1, 11.2, … ).  Je me suis aperçu que malgré le fait que le kit LinuxPAServerxxxx.tar.gz soit bien présent dans chaque version, le kit est différent à chaque fois et l’exécutable Linux également. Pour parler simplement, impossible de tenter un accès depuis un Delphi 10.4.2 sur une version PAServer installé via un kit Delphi 11.1. L’inverse est également vrai. Un Delphi 11.1 ne marchera pas sur une version PAServer installée via un kit Delphi 10.4.2.

Vous pouvez malgré tout mettre en  place sur le serveur Linux plusieurs versions de paserver, il suffira de les placer dans des répertoires séparés. Par exemple : ~/PAServer10.3.2/, ~/PAServer10.4.2/ , ~/PAServer11.1/ , …

  • Kit d’installation de Delphi 11.2 :

A ce jour, malgré que le kit s’installe comme les autres, j’ai systématiquement une erreur lors de la tentative d’exécution ( soucis avec la librairie libgcc_s ). J’ai essayé avec le patch de novembre 2022, même phénomène… affaire à suivre.

  • Au sujet de la console PuTTY :

Si vous avez lancé un programme depuis Delphi sur PAServer et que vous fermez la console alors que le programme tourne toujours ( debug ou release ) sur le serveur Linux, l’application sera « kill process ». En effet, l’application étant lancé via PAServer ( la petite main de Delphi ), si on ferme la console PuTTY, vu que c’est depuis cette dernière que nous avons lancé PAServer, tous les processus « enfants » sont stoppés. Le programme « hello world » est l’enfant de paserver qui lui-même est l’enfant de la session ouverte via PuTTY.

C’est contournable par exemple en créant un Deamon ( alias service sous windows ). Dans ce cas là, le processus parent est le noyau Linux, et non la session ouverte par la console PuTTY.

Liens associés :

Webinaire :  Comment développer pour Linux avec Delphi 

 

Vous recherchez des compétences en Delphi ? Nos équipes restent également à votre écoute, n’hésitez pas à nous contacter dès aujourd’hui.

 

Article proposé par

Cyrille Chautemps
Développeur Delphi