Installer Free Pascal et Lazarus sur Ubuntu 18.04 avec fpcupdeluxe
2018-08-17
Updating Free Pascal and Lazarus with fpcupdeluxe on Ubuntu 17.10

En février, je mis à jour le compilateur Free Pascal et l'environnent de développent intégré (EDI) Lazarus avec le script codebot de getlazarus sur un ordinateur dont le système d'exploitation était Ubuntu 17.10. Dernièrement, j'ai installé Free PascalFree Pascal/Lazarus à partir de zéro avec l' outil fpcupdeluxe sur le même ordinateur après avoir passé à Ubuntu 18.04. Comme expliqué ci-dessous, ce fut un peu plus compliqué d'installer au lieu de mettre à jour avec ce logiciel.

Il a eu des bavures, de ma part il va sans dire, et le système d'exploitation Ubuntu 18.04 fraîchement installé a dû être réinstallé non sans difficulté. J'ai ajouté des avertissements dans le billet original : Installation de Ubuntu 18.04.1. Je tiens à souligner ici que les problèmes n’ont rien à voir avec fpcupdeluxe et Free Pascal/Lazarus. J'ai tout gâché en essayant de déterminer quelle bibliothèque OpenGL devait être installée.

Table des matières

  1. Programme d'installation de Lazarus : fpcedeluxe
  2. Disposition de l'EDI Lazarus
  3. La bibliothèque Open GL
  4. Compilation croisée

  1. Programme d'installation de Lazarus : fpcedeluxe
  2. Lorsque j'ai passé à Ubuntu 17.10, en novembre de l'année dernière, j'ai réinstallé le compilateur Free Pascal et l'EDI Lazarus avec le programme fpcupdeluxe que j'ai compilé à partir du code source obtenu de son dépôt github. Cependant, quand il était temps d'installer Free Pascal et Lazarus sur une nouvelle copie d' Ubuntu 18.04.1 , je devais utiliser un binaire compilé fpcupdeluxe-x86_64-linux (version v1.6.1g). Attention, un correctif était annoncé alors autant utiliser la dernière version: https://github.com/newpascal/fpcupdeluxe/releases.

    Ma première tentative d'utilisation de fpcupdeluxe

    michel@hp:~$ sudo apt-get install libx11-dev libgtk2.0-dev libcairo2-dev libpango1.0-dev libxtst-dev libgdk-pixbuf2.0-dev libatk1.0-dev libghc-x11-dev Lecture des listes de paquets... Fait ... 0 mis à jour, 99 nouvellement installés, 0 à enlever et 3 non mis à jour. Il est nécessaire de prendre 74,2 Mo dans les archives. Après cette opération, 708 Mo d'espace disque supplémentaire seront utilisés. Souhaitez-vous continuer ? [O/n] o (y for yes in English systems)

    C'était un ajout assez important, mais ce n'était pas complet comme on le verra. J'ai ensuite installé FPC et Lazarus là où je voulais. En plus de changer le répertoire d'installation (cliquez sur le bouton Set InstallDir), la seule autre chose que j'ai faite a été d'appuyer sur le bouton Trunk comme indiqué sur l'image ci-dessous).

    That was quite a large addition, but it was not complete as will be seen. I then proceeded to install FPC and Lazarus where I wanted it. Beside changing the installation directory (click on the button, the only other thing I did was to press on the Trunk button as shown on the image below.

    L'installation du compilateur Free Pascal (version 3.1.1) et l'EDI Lazarus (version 1.9.0) s'est terminée avec succès. Le seul autre changement que j'ai fait a été de copier le fichier d'application .desktop créé sur le bureau vers répertoire caché .local.

    michel@hp:~$ cp Bureau/fpcup-Lazarus_fpl.desktop .local/share/applications

    Le nom « Bureaud » dépend bien sûr des paramètres régionaux du système et il serait « Desktop » si le paramètre était en-XX par exemple. J'ai ensuite cliqué sur le bouton Afficher les applications au bas du lanceur et recherché Lazarus. Le nom réel sera Lazarus_dirdir est le répertoire dans lequel Lazarus a été installé. J'ai cliqué sur l'icône avec le bouton droit de la souris puis sur l'Ajouter aux favoris. De cette façon, l'EDI Lazarus peut être démarré en cliquant sur l'icône dans le lanceur.

  3. Disposition de l'EDI Lazarus
  4. Lorsque démarré, l'IDE affiche tout de manière classique: dans des fenêtres séparées.

    Je n'aime pas cette multitude de fenêtres, alors j'ai ajouté le paquet anchordockin avec fpcupdeluxe.

    L'image ci-dessous montre l'apparence de l'EDI après l'installation de ce composant et quelques modifications des options. L'éditeur de la fiche est derrière l'éditeur de code. Les onglets situés au bas de ces éditeurs servent à les sélectionner.

  5. La bibliothèque Open GL
  6. Je voulais aussi installer synapse et bgrabitmap de la même manière (cela doit être fait un module à la fois). Cependant, bgrabitmap ne s'installait et, de plus, je ne pouvais pas reconstruire l'EDI (menu : Outils/Créer Lazarus avec le profil: Normal IDE, menu anglais :Tools/Build Lazarus with Profile: Normal IDE). Enfin, j'ai vu avec Installer/désinstaller des paquets (menu: Paquet, menu anglais: Install/Uninstall Packages/Package) que le paquet lazopenglcontext était marqué pour l’installation, mais n’était pas installé. Clairement, il y avait un problème avec OpenGL. La fenêtre de sortie de fpcupdeluxe montrait que la bibliothèque GL était introuvable lors de la liaison.

    (9015) Linking ../lazarus /usr/bin/ld: cannot find -lGL make[1]: *** [idepkg] Error 2 make: *** [idepkg] Error 2 /home/michel/ED/fpl/lazarus/ide/lazarus.pp(167,1) Error: (9013) Error while linking /home/michel/ED/fpl/lazarus/ide/lazarus.pp(167,1) Fatal: (10026) There were 1 errors compiling module, stopping Fatal: (1018) Compilation aborted Error: /home/michel/ED/fpl/fpc/bin/x86_64-linux/ppcx64 returned an error exitcode

    Il est signalé dans un certain nombre de messages dans le forum Lazarus que la bibliothèque libgl-dev doit nécessairement être présente dans les systèmes Linux. D'ailleurs il me semblait que j'avais dû faire cela auparavant, mais la bibliothèque n'est plus disponible dans Ubuntu.

    michel@hp:~$ sudo apt-cache policy libgl-dev libgl-dev: Installé : (aucun) Candidat : (aucun) Table de version :

    En regardant le Web, j'ai trouvé une référence (que je ne trouve plus) suggérant que la bibliothèque libgl1-mesa-dev fonctionnerait. D'ailleurs, le gestionnaire de paquets Synaptic en suggère tout autant : libglx-mesa0 - free implemetation of the OpenGL API - GLX vendor library. Mesa is a 3-D graphics library with an API which is very similar to that of OpenGL. J'ai donc installé cette bibliothèque.

    michel@hp:~$ sudo apt install libgl1-mesa-dev ...Après cette opération, 6 600 ko d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer ? [O/n] o

    Le paquet lazopenglcontext.lpk pouvait être enfin compilé et installé. Une fois cela fait, le paquet OpenGL pourrait être installé et conséquemment l'onglet OpenGL avec le composant TOpenGLControl a été ajouté à la palette des composants. Il était également possible d'installer le paquet bgrabitmap avec fpcupdeluxe.

    AVERTISSEMENT

    En essayant de trouver la référence manquante mentionnée ci-dessus, j'ai trouvé un sujet dans le forum askubuntu, /usr/bin/x86_64-linux-gnu-ld: cannot find -lGL, qui suggère que l'installation du paquet libgl1 aurait été suffisante. Pour vérifier, j'ai enlevé libgl1-mesa-dev et installé libgl1 avec Synaptic. Il était encore possible de recompiler l'EDI de Lazarus.

    Ensuite, j'ai essayé de nettoyer la distribution avec le commandement sudo apt autoremove.

    Ce fut une grave erreur!

    Cela a complètement ruiné la nouvelle installation d'Ubuntu 18.04.1

    . Je n'arrivais pas récupérer et j'ai dû supprimer le système d'exploitation et tout installer à nouveau.

    Avant d'installer libgl1-mesa-dev la deuxième fois, j'ai vérifié et constaté que la bibliothèque libgl1 était déjà installée par défaut dans la distribution (ou bien installé avec un autre paquet). Cette seule bibliothèque n'était donc pas suffisante pour installer le paquet de contexte OpenGL et libgl1-mesa-dev était effectivement nécessaire.

  7. Compilation croisée
  8. Comme mentionné ci-dessus, l'utilitaire fpcupdeluxe peut également être utilisé pour ajouter des chaînes d'outils de compilation croisée. Il suffit de choisir le processeur et le système d'exploitation cibles, puis de cliquer sur le bouton pour installer un compilateur croisé Install cross-compiler

    .

    Avant le fiasco mentionné à la section précédente, j'avais installé le compilateur croisé dont la cible était Windows 64 bits(CPU = x8664, OS = Windows) j'ai compilé un petit programme j'ai testé.


    Application Linux (GTK2)


    Application Windows 10

    Il était trop difficile d'installer le compilateur croisé pour la cible Darwin (MacOS).

    J'ai décidé de ne pas refaire cette étape à la deuxième installation de Ubuntu 18.04. Étant donné que j'ai un système à amorçage double, je devrais vraiment nettoyer ma partition Windows 10, puis ajouter la dernière version de Free Pascal/Lazarus.