Publié le 5 septembre 2018 - par

Installer la dernière version de Lazarus sur Raspberry Pi

Lazarus est un environnement de développement open source pour développer des programmes en langage pascal. Pour ceux qui ont connu TurboPascal et Delphi ils retrouveront un environnement familier. Cet article vous montre comment installer la dernière version (IDE 1.9.0)

J’aime particulièrement le Pascal pour développer rapidement des petits programmes de test avec une interface graphique y compris pour l’accès bas niveau (voir https://www.framboise314.fr/evaluation-du-lsm9ds1-un-capteur-9-degres-de-liberte/), et pour des programmes qui auront une longue durée de vie : si je dois revenir quelques années après sur un bout de code j’apprécie qu’il soit lisible,

Mais si, comme indiqué dans l’article ci-dessus, Lazarus s’installe en 2 commandes apt-get (sur Rpi3), il s’agit on aura qu’une version ancienne (1,2,4).

Pour avoir la dernière version il faudra compiler les sources. J’ai trouvé ici : https://www.tweaking4all.com/hardware/raspberry-pi/install-lazarus-pascal-on-raspberry-pi-2/ la démarche mais l’article étant assez ancien j’ai du tâtonner pour obtenir le résultat souhaité. J’espère donc que cet article vous fera gagner du temps,

Prérequis

Si vous n’avez pas déjà svn (logiciel de synchronisation pour les développements concurrents) :
sudo apt-get install -y subversion

Il est aussi prudent d’augmenter la taille du swap
sudo nano /etc/dphys-swapfile
puis si besoin changer la ligne CONF_SWAPSIZE pour allouer 1000 Mo,
CONF_SWAPSIZE=1000
Redémarrez votre Rpi.

Principe

Lazarus utilise fpc (Free Pascal Compiler) lui-même compilé avec… fpc, C’est le problème de l’œuf et de la poule : il nous faut un compilateur fonctionnant sur notre Pi pour compiler le compilateur et l’IDE Lazarus.

A partir de ce compilateur exécutable on compilera la dernière version du compilateur puis l’IDE.

Etape 1 : compilateur initial

En cherchant sur le site Freepascal j’ai repéré un binaire exécutable sur Raspberry en version 3.0.2

On va l’installer dans le répertoire /usr/local/fpc :

sudo mkdir /usr/local/fpc
cd /usr/local/fpc
sudo wget http://sourceforge.net/projects/freepascal/files/Linux/3.0.2/fpc-3.0.2.arm-linux-eabihf-raspberry.tar
sudo tar xvf fpc-3.0.2.arm-linux-eabihf-raspberry.tar
cd fpc-3.0.2.arm-linux

puis installation :
sudo ./install.sh
à la question Install prefix (/usr or /usr/local) [/usr] : répondre /usr/local
à la question mode IDE j’ai répondu y
pas besoin de la documentation ni des démos

On contrôle que le compilateur est bien installé en tapant :
fpc
Vérifier que la réponse est :
Free Pascal Compiler version 3.0.2 [2017/02/17] for arm
Copyright (c) 1993-2017 by Florian Klaempfl and others
/usr/local/bin/fpc [options] [options]
Only options valid for the default or selected platform are listed.
Put + after a boolean switch option to enable it, - to disable it.
@ Read compiler options from in addition to the default fpc.cfg
-a The compiler does not delete the generated assembler file
-al List sourcecode lines in assembler file
-an List node info in assembler file (-dEXTDEBUG compiler)
-ao Add an extra option to external assembler call (ignored for internal)
-ap Use pipes instead of creating temporary assembler files
-ar List register allocation/release info in assembler file
-at List temp allocation/release info in assembler file
-A Output format:
-Adefault Use default assembler
-Aas Assemble using GNU AS
-b Generate browser info
-bl Generate local symbol info
-B Build all modules
-C Code generation options:
-C3 Turn on ieee error checking for constants
-Ca Select ABI; see fpc -i or fpc -ia for possible values
*** press enter ***

Etape 2 : compilation de la dernière version du compilateur

On récupère les sources dans le dossier /usr/local/fpc :
cd /usr/local/fpc
sudo svn co http://svn.freepascal.org/svn/fpc/trunk source

Nota : la branche trunk pointe sur la dernière version stable, soit fpc 3.3.1

puis on compile et installe la dernière version :
cd source
sudo make all OPT=-dFPC_ARMHF
sudo make install OPT=-dFPC_ARMHF PREFIX=/usr/local
sudo make install sourceinstall OPT=-dFPC_ARMHF PREFIX=/usr/local

A ce stade 3.3.1 est compilé mais si nous faisons fpc nous avons toujours 3.0.2 par défaut

on peut voir avec
ls /usr/local/lib/fpc
3.0.2 3.3.1 lexyacc

Pour définir 3.3.1 comme version par défaut :
sudo rm -f /usr/local/bin/ppcarm
sudo ln -sf /usr/local/lib/fpc/3.3.1/ppcarm /usr/local/bin/ppcarm

Contrôle :
ls -l /usr/local/bin/ppcarm
doit répondre
lrwxrwxrwx 1 root root 31 sept. 1 11:22 /usr/local/bin/ppcarm -> /usr/local/lib/fpc/3.3.1/ppcarm
et
fpc
Free Pascal Compiler version 3.3.1 [2018/09/01] for arm
Copyright (c) 1993-2018 by Florian Klaempfl and others
/usr/local/bin/fpc [options] [options]
Only options valid for the default or selected platform are listed.
Put + after a boolean switch option to enable it, - to disable it.
@ Read compiler options from in addition to the default fpc.cfg
-a The compiler does not delete the generated assembler file
-a5 Don't generate Big Obj COFF files for GNU Binutils older than 2.25 (Windows, NativeNT)
-al List sourcecode lines in assembler file
-an List node info in assembler file (-dEXTDEBUG compiler)
-ao Add an extra option to external assembler call (ignored for internal)
-ap Use pipes instead of creating temporary assembler files
-ar List register allocation/release info in assembler file
-at List temp allocation/release info in assembler file
-A Output format:
-Adefault Use default assembler
-Aas Assemble using GNU AS
-b Generate browser info
-bl Generate local symbol info
*** press enter ***

Etape 3 : compilation de l’IDE

On peut passer à la compilation de l’IDE.
Au préalable on installe les paquets requis :
sudo apt-get install -y libx11-dev libgdk-pixbuf2.0-dev libcairo2-dev gir1.2-coglpango-1.0 libpangox-1.0-dev xorg-dev libgtk2.0-dev libpango1.0-dev

Récupération des sources dans le dossier /usr/local/lazarus:
sudo mkdir /usr/local/lazarus
cd /usr/local/lazarus
sudo svn co http://svn.freepascal.org/svn/lazarus/trunk source

A partir de là, la commande indiquée sur Tweaking4All (sudo make all OPT=-dFPC_ARMHF) échoue. A la place j’ai lancé la commande :
cd source
sudo make bigide

Puis j’ai quand même lancé la commande :
sudo make install OPT=-dFPC_ARMHF PREFIX=/usr/local
probablement inutile.

Enfin pour lancer l’ide la première fois
sudo ./lazarus

Au premier lancement il faut indiquer l’emplacement des sources de fpc :

La version de l’IDE au moment de cet article est la 1.9.0.

Le tout m’a pris environ 3h, j’ai donc commencé par faire une copie image de sauvegarde de la carte micro-SD.

Compléments

On pourra mettre dans le menu de programmation /usr/local/lazarus/source/startlazarus,

On supprimera le dossier fpc 3.0.2

Enfin j’ai gardé les sources fpc et lazarus car il suffira de faire un svn update pour récupérer les dernières versions.

 

Sources

How to install Lazarus Pascal on Raspberry Pi 2 (Raspbian)

Share Button

4 réflexions au sujet de « Installer la dernière version de Lazarus sur Raspberry Pi »

  1. yann

    Bonjour !

    Il est possible d’installer lazarus 1.8.4 en passant par le dépôt stretch-backports.

    Faire ceci :

    sudo leafpad /etc/apt/sources.list

    ‘ajouter à la fin du fichier
    deb http://ftp.debian.org/debian/ stretch-backports main

    ‘enregistrer le fichier et le fermer.

    ‘installer lazarus
    sudo apt-get install -t stretch-backports lazarus

    Par curiosité voici la liste des packages stretch-backports :
    https://packages.debian.org/stretch-backports/allpackages?format=txt.gz

    Grâce à ce dépôt vous pouvez installer libreoffice 6 …
    sudo apt-get install -t stretch-backports libreoffice

    Evidemment, Il faut sauvegarder votre carte SD avant d’expérimenter les packages de ce dépôt !

    Pour d’autres packages récents vous pouvez aussi tester cette méthode :
    https://flatpak.org/setup/

    Bonne mise à jour de votre Framboise !

    Répondre
  2. Denis Brion

    Tout d’abord, je dois vous féliciter pour avoir fait une copie de sauvegarde de votre carte.

    En effet, le passage par le swap implique un nombre assez élevé d’écritures, qui sont semble-t-il limitéessurla carte SD (stocker de temps en temps une vidéo ne l’usera pas; s’en servir, un nombre inconnu de fois, comme substitut lent à la RAM est un pari) .

    Pour des programmes nécessitant un swap (opencv >=3 + dlib) , la solution que je préconise -vieille d’au moins un siècle, que dis-je, du millénaire dernier, voire comme Hérode- consiste

    a) à retirer le miniswap de la carte SD (on gagne 100 M et on écarte le risque d’usure prématurée de la carte
    b) à brancher un disque externe rotatif, sans limitation d’écitures, sur le port USB
    c) sur une partition ext ou fat de ce disque, à créer un **fichier** de swap -util-linux le fait très bien)
    d) à n’activer ce fichier de swap que lorsqu’on en a besoin

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP * Time limit is exhausted. Please reload CAPTCHA.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.