Installation de Lazarus sous Ubuntu Dapper Drake

Présentation

Sous Windows®, Delphi est un environnement de développement rapide très puissant et performant qui permet de créer facilement des applications graphiques en se concentrant sur le code spécifique à l'application. Pour Linux, Borland diffusait gratuitement Kylix qui présentait les mêmes caractéristiques, à ce qu'il paraît. La version 3 est encore disponible sur le site de Borland mais ce logiciel n'est plus maintenu et son installation n'est pas facile. L'auteur de cette page n'a pas réussi à obtenir un fonctionnement correct sous Ubuntu, malgré beaucoup de temps passé à écumer les forums et autres sites webs.

Pour les fans du langage Pascal, une autre solution existe et elle semble se développer avec dynamisme : c'est Lazarus. Ce logiciel est en partie un clone libre de Delphi mais commence sans doute à vivre sa vie, en conservant l'exigence de compatibilité. C'est un environnement de développement rapide qui prend en charge la gestion de l'interface graphique et s'appuie, pour la construction de l'exécutable, sur un compilateur libre nommé "freepascal". Lazarus est en version beta mais son fonctionnement semble stable (d'après des utilisateurs s'exprimant sur des forums et aussi d'après un début d'expérience personnelle de l'auteur de cette page). On notera que l'application est francisée mais pas totalement ; certains messages ont échappé à la vigilance des développeurs et apparaissent en anglais.

Les explications trouvées sur le net n'étant pas toujours très nettes, cette page décrit une procédure d'installation complète du compilateur, de tous les outils associés et de lazarus.

Les paquets nécessaires

On trouve sur le site de sourceforge les paquets nécessaires, au format debian, qui s'installent directement et sans problème sous Ubuntu. On apprécie de ne pas avoir à compiler les sources ou à bricoler des fichiers de configuration.

A l'heure où cette page est écrite, les versions disponibles sont :
- la 0.9.18-0 pour Lazarus,
- la 2.0.4-1 pour freepascal.
Au besoin, adapter les noms de fichiers donnés ci-dessous pour tenir compte des éventuelles évolutions de numéros de version.

Il y a en fait deux fichiers à télécharger. Aller à cette adresse :http://sourceforge.net/project/showfiles.php?group_id=89339.
Cliquer sur le lien "Download" qui est à l'extrémité de la ligne "Linux Lazarus DEB". Ceci ouvre une nouvelle page avec une liste de paquets disponibles au téléchargement. En fait, on obtient tout ce qui est disponible en chargeant seulement deux paquets :
- l'archive tar qui contient tous les fichiers de freepascal, soit fp_all_deb.tar,
- l'archive de lazarus, soit, à l'heure où cette page est écrite :lazarus_0.9.18-0_i386.deb.

Télécharger ces deux fichiers et les ranger dans un répertoire commode.

Installation de freepascal

Le compilateur 32/64 bits freepascal est compatible avec Turbo Pascal 7.0 et avec Delphi. Il faut l'installer avant Lazarus.

L'archive fp_all contient 16 paquets deb .


qui contiennent divers outils. Tous les outils ne sont pas indispensables à tout le monde et, si vous savez ce que vous faites, vous pouvez choisir de n'installer que certains d'entre eux. Toutefois, la présente procédure décrit une installation complète.

En raison des dépendances à satisfaire, l'ordre d'installation des 16 paquets n'est pas quelconque. L'ordre donné ci-dessous est l'un de ceux qui fonctionne.

Le premier groupe à installer est formé des trois paquets qui ont leurs dépendances satisfaites d'emblée :

fp-units-rtl_2.0.4-1_i386.debC'est la bibliothèque d'exécution (runtime library), pleinement compatible avec Turbo Pascal 7.0.
fp-utils_2.0.4-1_i386.debCe paquet contient des utilitaires commodes à utiliser en conjonction avec freepascal :
* ppumove : place des unités multiples dans une bibliothèque partagée,
* ppufiles : montre les fichiers nécessaires à des unités,
* ppudump : exporte les informations stockées dans un fichier d'unité (.ppu),
* fpcmake : crée un Makefile à partir d'un fichier Makefile.fpc,
* h2pas : convertit des fichiers .h en unités pascal,
* ppdep : crée un fichier de dépendances qui peut être utilisé avec un Makefile,
* ptop : pour améliorer les sources,
* data2inc : convertit des données binaire/texte en fichier à inclure,
* plex/pyacc : implémentation Lex/Yacc sous Pascal.
fpc-crosswin32_2.0.4-060919_i386.debCe paquet contient des unités pascal et des utilitaires dont freepascal a besoin pour compiler sous linux un programme destiné à Windows 32 bits.

Une fois la rtl installée, il est possible d'installer un nouveau groupe de 7 paquets deb, qui ont leurs dépendances satisfaites :
fp-units-db Ce paquet contient des unités Pascal avec des liens pour MySQL, Interbase, PostgreSQL, Oracle, ODBC, GDBM, SQLite
fp-units-fv Fournit les unités Free Vision pour le compilateur freepascal.
fp-units-base Ce paquet apporte des unités Pascal pour des bibliothèques communes, dont certaines sont requises par FCL (Free Component Library) : X11 (Xlib, Xutil), NCurses, Zlib.
fp-ide Ce paquet contient l'environnement de développement intégré associé au compilateur.
fp-compiler Ce paquet contient le compilateur en ligne de commande.
fp-units-net Ce paquet contient des unités Pascal pour créer des outils réseau (NetDB pour TCP/IP, LibAsync).
fp-units-misc Unités Pascal diverses (pour Utmp, PasZlib).

NOTA : l'installation de fp-compiler ouvre un volet Terminal dans lequel s'affiche :

Paramétrage de fp-compiler (2.0.4-1) ...
Fichier de configuration " /etc/fpc.cfg "
==> Fichier du système créé par vous ou par un script.
==> Fichier également présent dans le paquet fourni par le responsable du paquet.
Que voulez-vous faire ? Vos options sont les suivantes :
Y ou I : installer la version du responsable du paquet
N ou O : garder votre version actuellement installée
D  : afficher les différences entre les versions
Z : suspendre ce processus pour examiner la situation
L'action par défaut garde votre version actuelle.
*** fpc.cfg (Y/I/N/O/D/Z) [défaut=N] ?

Ce message est dû au fait que fpc-crosswin a déjà installé un fichier fpc.cfg.
L'auteur de cette page a répondu Y pour donner la préférence au fichier du compilateur, ce qui n'a pas eu l'air de poser des problèmes...

A ce stade, sur les 5 restants, 2 nouveaux paquets voient leurs dépendances satisfaites :

fp-units-fcl Ce paquet contient FCL (Free component library), bibilothèque de composants libres pour freepascal.
fp units-gfx Ensemble d'unités Pascal pour la liaison avec Forms 0.88, Svgalib, GGI, OpenGL.

Il est ensuite possible d'installer :

fp-units-gtk Ensemble d'unités et d'exemples pour créer des programmes avec GTK 1.2.
fp-units-gtk2 Ensemble d'unités et d'exemples pour créer des programmes avec GTK 2.x

et enfin :

fp-units-gnome Ensemble d'unités et d'exemples pour créer des programmes pour GNOME 1.
fpc-src Contenant les sources du compilateur, des RTL, FCL et autres unités, ce paquet est indispensable à l'installation de Lazarus.

Installation de Lazarus

Il ne reste plus qu'à installer l'environnement de développement rapide graphique. A l'ouverture du paquet lazarus_0.9.18-0_i386.deb avec l'installateur de paquets GDebi, ce dernier peut signaler que Lazarus a besoin de quelques paquets supplémentaires. Cela dépend de l'histoire du système c'est-à-dire des logiciels installés antérieurement. Dans l'exemple suivant, il y en a eu 16:


GDebi récupère les paquets en ligne et termine l'installation.
Celle-ci ajoute une catégorie "Développement" au menu "Applications" de Gnome et place dedans le lanceur de Lazarus. Le programme se lance sans difficulté et fonctionne.

Ensuite, il ne reste plus qu'à savoir s'en servir... Les utilisateurs de Delphi n'auront pas trop de mal à s'en sortir.
Une précision : la taille des exécutables produits par Lazarus est un objet de vifs débats sur les forums... En effet, par défaut, Lazarus favorise la rapidité, la portabilité et les informations de dépannage au prix d'un certain embonpoint de l'exécutable. Une fois le programme mis au point, il y a cependant des moyens d'en réduire la taille. On pourra commencer par la lecture de ce site et en profiter pour admirer le beau logo animé de freepascal.