0 Installation et configuration de GNU Octave et des packages Octave-Forge
Cette page s'adresse à toute personne (étudiant, enseignant, chercheur...) souhaitant installer sur sa machine le logiciel libre GNU Octave et ses extensions Octave-Forge qui constituent le seul environnement de calcul scientifique/numérique et visualisation entièrement compatible avec MATLAB ("clone" MATLAB).
Installation de GNU Octave ou MATLAB
6:35 min
Installation de GNU Octave ou MATLAB sur votre machine
Si vous êtes pressé, vous pouvez vous contenter de suivre les instructions d'installation ci-après qui sont mises en évidence sur fond jaune dans les chapitres respectifs relatifs à Linux, Windows ou macOS.
0.1 Avant-propos
Les étudiants peuvent généralement se procurer sur leur campus une licence personnelle "MATLAB Student Version" (DVD d'installation de MATLAB, Simulink avec quelques toolboxes, vendu au prix d'une centaine de CHF environ) permettant l'installation de MATLAB sur leur machine privée et l'utilisation dans le cadre de leurs études. À l'EPFL, cela est même possible sans bourse délier, l'école finançant la licence couvrant ce type d'usage académique.
Mais pour les adeptes du "logiciel libre", GNU Octave représente actuellement la meilleure alternative libre/open-source à MATLAB, donc utilisable gratuitement et sans aucune restriction, permettant aussi de participer à sa communauté de développement.
Il existe encore d'autres logiciels libres dans le domaine du calcul scientifique, mais non compatibles avec MATLAB (autre syntaxe, donc code MATLAB non réutilisable tel quel). Ces alternatives sont mentionnées au chapitre "Qu'est-ce que MATLAB et GNU Octave ?".
GNU Octave se compose d'un noyau de base (Octave Core, https://www.gnu.org/software/octave/) ainsi que d'extensions implémentées sous la forme de packages (concept analogue aux toolboxes MATLAB) distribués via la plateforme SourceForge (https://octave.sourceforge.io/). Nous décrivons ci-après l'installation de GNU Octave sur les trois systèmes d'exploitation principaux :
Concernant l'évolution des différentes versions de GNU Octave, vous pouvez utiliser le menu News > Release Notes ou la commande news qui affichent les dernières "release notes". Vous pouvez également voir ici :
versions mineures (correction de bugs) : voir ici (la dernière étant la 6.3.0)
0.2 Installation de Octave sous GNU/Linux
0.2.0 Généralités concernant Octave sous GNU/Linux
Octave étant né dans le monde Unix, son installation sous Linux est très aisée. Il est en effet "packagé" pour la plupart des distributions Linux (paquets *.deb, *.rpm...), de même que pour Gnuplot (ancien backend graphique de Octave) ainsi que d'autres outils annexes, tous distribués via les "dépôts" (repositories) officiels de ces distributions.
De façon générale, les étapes de base d'installation de Octave sous Linux sont "classiques" et consistent donc à installer, au moyen du "gestionnaire de paquets" de votre distribution (apt sous Debian et dérivés tels que Ubuntu, yum sous RedHat et Fedora...), le noyau de base Octave (paquet octave et ses dépendances), puis les packages Octave-Forge dont vous avez besoin (généralement packagés sous le nom octave-package), et optionnellement gnuplot (qui vient en général automatiquement en dépendance de octave). Il est aussi possible de compiler/installer vous-même des packages Octave-Forge au sein même de Octave (voir chapitre "Packages Octave-Forge").
Pour un aperçu des portages Octave sur les différentes distributions Linux, voyez le wiki Octave. La distribution la plus utilisée dans notre école étant Ubuntu, c'est sur celle-ci que nous nous concentrons dans le chapitre qui suit.
0.2.1 Installation et configuration de Octave sous Ubuntu
Introduction
Il existe différentes approches d'installation de GNU Octave sous Ubuntu :
Installation standard basée sur les dépôt de Canonical (éditeur de Ubuntu) : méthode la plus simple que nous préconisons et présentons au chapitre suivant, mais n'offrant cependant pas forcément la version la plus récente de Octave (selon la version de Ubuntu)
Méthodes alternatives, qui offrent souvent des versions plus récentes que le packaging Canonical, mais nécessitent davantage d'espace-disque :
Installation basée sur les dépôts standards de Canonical
Selon la version de Ubuntu, en ne citant ici que ses releases actuellement supportés sur le long terme (LTS), on dispose des versions suivantes de Octave :
Si vous avez besoin d'une version plus récente de Octave et ne voulez/pouvez pas upgrader votre Ubuntu, tournez-vous vers l'une des "méthodes alternatives" citées au chapitre précédent !
Installation en ligne de commande
Procédure d'installation de base sous Linux/Ubuntu :
Installation du noyau de base Octave : sudo apt install octave
Cela installe : Octave Core, Octave GUI, documentation au format PDF (package octave-doc), backends graphiques Qt/OpenGL, Gnuplot (package gnuplot-qt) et FLTK/OpenGL (redirigeant vers Gnuplot).
Installation de la documentation Octave aux formats HTML et info : sudo apt install octave-htmldoc octave-info
Pour installer ensuite les packages Octave-Forge dont vous avez besoin, nous vous recommandons ceux qui sont déjà "packagés" au niveau de l'OS par Debian/Canonical (c-à-d. offerts par les dépôts Canonical), l'avantage étant que les paquets dépendants (au niveau Linux et/ou Octave) seront automatiquement installés !
Nous vous suggérons ainsi l'installation de la sélection de packages suivante en passant cette commande (en une seule ligne) : sudo apt install
octave-communications
octave-communications-common
octave-data-smoothing
octave-divand
octave-fpl
octave-general
octave-geometry
octave-image
octave-io
octave-linear-algebra
octave-ltfat
octave-ltfat-common
octave-mapping
octave-miscellaneous
octave-missing-functions
octave-msh
octave-nan
octave-netcdf
octave-nurbs
octave-octclip
octave-optim
octave-optiminterp
octave-parallel
octave-signal
octave-sockets
octave-sparsersb
octave-specfun
octave-splines
octave-statistics
octave-stk
octave-strings
octave-struct
octave-tsa
octave-zenity
Installation complémentaire pour pouvoir réaliser des Notebook Jupyter basés Octave :
Il vous faut préalablement disposer de Jupyter, ce qui est le cas si vous avez procédé à l'installation d'un environnement Python complet selon ces instructions
Il ne reste alors qu'à installer le noyau Octave pour Jupyter par la commande : pip3 install --user octave_kernel
Remarque concernant le packaging Octave Debian/Canonical : les commandes de base, à passer dans un shell Linux (et non pas dans la fenêtre de commandes Octave !), sont :
pour lister les packages Octave-Forge disponibles dans les dépôts Canonical : apt search octave-forge
ou lister plus largement tous les paquets de l'OS relatifs à Octave : apt-cache search ^octave- (i.e. paquets dont le nom commence par octave-)
pour afficher les informations relatives à un package donné : apt show octave-package
pour l'installation proprement dite du package spécifié : sudo apt install octave-package
Si le package Octave-Forge dont vous avez besoin n'est pas "packagé" par Debian/Canonical ou qu'il est disponible dans une version trop ancienne, vous pouvez récupérer son code source sur SourceForge et le compiler/installer vous-même au sein d'Octave. Pour cela il vous faut (pour plus de détails voir chapitre "Packages Octave-Forge") :
commencer par installer les header-files Octave et l'outil mkoctfile avec la commande : sudo apt install liboctave-dev
puis procéder à l'installation proprement dite du package en démarrant d'abord Octave en mode super-utilisateur avec : sudo octave
puis en passant dans Octave la commande : pkg install -forge package (où package ne doit ici pas être précédé de octave-)
Notez que mkoctfile est l'outil Octave qui vous permet de compiler et rendre accessibles à Octave des fonctions programmées dans les langages C++ (oct-files), C ou Fortran (mex-files).
Puis configuration de Octave sous Linux et autres remarques
Si vous utilisez Octave GUI sous Linux et que votre espace de travail se trouve sur un serveur SMB/CIFS distant (c'est le cas dans les salles ENAC-SSIE sous Linux/Ubuntu), chaque fois que vous sauvegardez un script ou une fonction, une fenêtre de dialogue perturbante apparaît, indiquant "It seems that 'your_file.m' has been modified by another application. Do you want to reload it ?NoYes". Vous pouvez répondre ce que vous voulez (ça n'a aucune importance), mais pour éviter ce message vous pouvez modifier la préférence suivante : Edit > Preferences > Editor et activer l'option "Reload externally changed files without prompt".
Si vous utilisez le backend Gnuplot, en définissant dans votre prologue Octave ~/.octaverc la commande : setenv('GNUTERM','wxt'), vous aurez une autre barre d'outils au haut des fenêtres graphiques !
Ce point n'est utile que si vous utilisez Octave-CLI (Octave en mode commande dans une fenêtre terminal) : l'éditeur de M-files configuré par défaut étant emacs, si vous souhaitez plutôt utiliser Gedit (éditeur de texte standard sous GNOME), il vous faut :
introduire, dans votre prologue Octave ~/.octaverc, la commande : EDITOR('gedit')
0.3.0 Généralités sur les différentes distributions Octave sous Windows
Octave a fait l'objet de nombreux "portages" sous Windows : d'abord sous l'environnement libre d'émulation Linux Cygwin, puis compilé sous Microsoft Visual Studio C++, ensuite avec l'environnement de compilation libre MinGW/gcc (Minimalist GNU for Windows) (2009), pour déboucher en 2014 sur un environnement de build unifié Octave MXE. C'est la raison pour laquelle on trouve plusieurs paquets et méthodes d'installation Octave.
L'état des différents portages binaires de Octave sous Windows est décrit sur le wiki Octave. La situation actuelle est la suivante (été 2021) :
L'environnement de build cross-platform appelé Octave MXE a vu le jour en 2013 et débouché sur la première distribution binaire Octave 3.8 MXE pour Windows en 2014, puis 4.x dès 2015, et 5.x dès 2019. C'est celle-ci que nous vous recommandons et dont nous décrivons l'installation au chapitre suivant.
Le portage "traditionnel" basé Cygwin que l'on installe ainsi (technique nécessitant du temps, des compétences et davantage d'espace-disque) :
installer Cygwin (intégrant le compilateur C++ gcc)
ensuite soit installer les différents packages binaires Octave pour Cygwin
soit télécharger les packages sources de Octave et les compiler soi-même
À moins que vous utilisiez déjà Cygwin, nous ne vous recommandons pas cette méthode.
Avec l'avènement de Octave MXE, le développement des 2 distributions Octave traditionnelles pour Windows, qui étaient diffusées via la plateforme open-source SourceForge.net, est arrêté depuis 2013. SourceForge se limite donc aujourd'hui à la distribution des packages Octave-Forge (ou voir ici).
0.3.1 Caractéristiques, installation et configuration de Octave 6.3.0 pour Windows
Caractéristiques
La version 6.3.0 d'Octave, datant du 11.7.2021, est un release mineur corrigeant les bugs de la dernière version majeure 6.1.0. Elle intègre les composants suivants :
outils de compilation MinGW GCC 9.3.0 , l'outil mkoctfile 6.3.0 (permettant la compilation de fonctions écrites en C++, C ou Fortran en oct-files ou mex-files accessibles sous Octave)
Ghostscript 9.50 , Pstoedit 3.75 (conversion PDF/Postscript en différents formats), Fig2dev 3.2.7b (conversion de figures en différents formats), GraphicsMagick 1.3.35
éditeur Notepad++ 7.8.9 (utilisé par Octave CLI seulement)
documentation GNU Octave aux formats PDF et HTML
Procédure d'installation
A) Procédure d'installation de base sous Windows :
Téléchargez l'installeur depuis la page https://www.gnu.org/software/octave/download.html (onglet "Windows") en utilisant le lien nommé "octave-6.3.0-w64-installer.exe" (fichier de 325 MB), ou depuis ici, ou encore depuis notre site miroir. Notez qu'il est aussi proposé des distributions "portables" (archives .zip ou .7z) que nous vous déconseillons d'utiliser, car vous devriez alors notamment créer vous-même les raccourcis de lancement d'Octave et d'accès à la documentation. Il existe par ailleurs une version "w32" (32 bits), qui n'est plus d'actualité pour les machines modernes tournant généralement toutes Windows 64 bits, ainsi qu'une version spécifique "w64-64" pour des machines 64 bits disposant de plus de 32 GB de RAM.
Exécutez cet installeur :
Acceptez la licence (GNU General Public License Version 3)
Install Options :
- laissez activé "Install for anyone using this computer"
- laissez activé "Create desktop shortcuts" (dépôt sur le bureau des 2 raccourcis de lancement "Octave CLI" et "Octave GUI")
- laissez activé "Register .m file type with Octave" (à moins que vous ayez aussi installé MATLAB sur votre machine et souhaitiez lui donner la priorité pour l'ouverture de M-files)
- menu "BLAS library implementation" : laissez activé "OpenBLAS"
Destination folder : nous vous suggérons de conserver C:\Program Files\GNU Octave\Octave-version
Cliquez ensuite sur [Install]
Au terme de l'installation, l'option "Run GNU Octave" lance Octave GUI, et l'option "Show Readme" ouvre le fichier README.html
Le dossier de raccourcis "GNU Octave version" a en outre été mis en place dans le menu Démarrer.
Il contient notamment :
Octave (GUI) : lancement de Octave en mode interface graphique
Octave (CLI) : lancement de Octave en mode commande
Bash Shell : ouverture d'une fenêtre Shell Bash
les liens vers la documentation :
Octave (HTML),
Octave (PDF),
Octave C++ Classes (HTML),
et Octave C++ Classes (PDF)
"Uninstall" : permettrait de désinstaller Octave
Installation complémentaire pour pouvoir réaliser des Notebook Jupyter basés Octave :
Il vous faut préalablement disposer de Jupyter, ce qui est le cas si vous avez procédé à l'installation d'un environnement Python complet selon ces instructions
Il ne reste alors qu'à installer le noyau Octave pour Jupyter ainsi : à documenter...
B)Packages embarqués dans cette distribution, installation de packages Octave-Forge supplémentaires :
sous Octave, la commande pkg list vous affiche la liste des packages préinstallés dans cette distribution
d'autres packages Octave-Forge peuvent être compilés/installés avec pkg install -forge package (voir chapitre "Packages Octave-Forge")
pour utiliser un package, vous devez ensuite le charger avec la commande pkg load package
C) Définition du dossier de travail de base :
Pour Octave GUI, le dossier de travail au démarrage se définit dans : Edit > Preferences, onglet "General", champ "Initial working directory of Octave"
Octave GUI et Octave CLI démarrent par défaut dans le dossier défini par la variable Windows %USERPROFILE%, ce qui correspond à C:\Users\votre_username. Si cela ne vous convient pas, faites ceci :
- accédez aux Propriétés des 2 raccourcis Octave (GUI) et Octave (CLI) (en cliquant souris-droite sur ces raccourcis)
- sous l'onglet "Raccourci", dans le champ "Démarrer dans" (Start in), remplacez %USERPROFILE% par le chemin de
votre dossier de travail de base (home) où sera aussi recherché votre éventuel prologue de démarrage personnel .octaverc
- dans les salles ENAC-SSIE et ENAC-SGC nous avons défini Z:\
Quelques remarques concernant cette version de Octave
Le backend graphique par défaut est Qt (ayant fait son apparition sous Octave 4.0, basé sur la librairie Qt et s'appuyant sur OpenGL).
Si vous désirez utiliser plutôt FLTK/OpenGL ou Gnuplot, il faudra passer la commande graphics_toolkit('fltk') ou graphics_toolkit('gnuplot')
Lorsque le répertoire de travail est la racine d'un lecteur Windows (par exemple Z:\), les M-files créés au cours de la session ne sont pas directement utilisables (considérés comme s'ils étaient invisibles), et il est nécessaire de relancer Octave pour qu'ils soient accessibles. Pour ne pas souffrir de cet inconvénient, travaillez donc toujours dans un sous-répertoire (ou plus profond) de lecteur (p.ex. Z:\exos_octave).
0.4 Installation de Octave sous macOS
0.4.0 Généralités sur les différentes distributions de Octave sous macOS
Sous macOS, Octave fait aussi l'objet de différents "portages" (voir le wiki Octave). On distingue ainsi les procédures suivantes :
Installer une version pré-compilée de Octave ("bundle", basé Homebrew), méthode la plus simple que nous préconisons et présentons au chapitre suivant.
Recourir à l'un des packages managers du monde Mac :
À moins que vous n'utilisiez déjà l'un de ces packages managers, nous vous déconseillons ces méthodes, car les systèmes de packaging nécessitent l'installation préalable de l'environnement de développement Apple Xcode (lourd, ~2 GB). Dans le futur, le macOS gcc Installer devrait pouvoir se substituer à Xcode.
Installer et exécuter Octave sur votre Mac dans une machine virtuelle (Ubuntu ou Windows)
0.4.1 Caractéristiques et installation du bundle Octave 6.2.0 pour macOS
Caractéristiques
Notez que ce bundle Octave nécessite que votre machine tourne macOS ≥ 10.14 !
Releasé le 16.4.2021, il intègrent notamment les composants suivants :
Ouvrez ce fichier-image, acceptez les différentes licences libres citées en cliquant sur [Agree]
Faites un glisser-déposer de l'icône de l'application Octave sur l'icône de dossier Applications (dans lequel Octave occupera ~2.5 GB)
Une fois l'installation terminée, vous pouvez éjecter/démonter l'image-disque, puis jeter le fichier-image Octave-version.dmg qui se trouve dans votre dossier de Téléchargements
ATTENTION : si, la première fois que vous lancerez Octave par double-clic sur son icône dans le dossier Applications, vous recevez le message d'erreur "Impossible d'ouvrir Octave car le développeur ne peut pas être vérifié...", faites alors plutôt un ctrl-clic sur cette icône et choisissez Ouvrir dans le menu déroulant, puis acceptez...
Installation complémentaire pour pouvoir réaliser des Notebook Jupyter basés Octave :
Il vous faut préalablement disposer de Jupyter, ce qui est le cas si vous avez procédé à l'installation d'un environnement Python complet selon ces instructions
Il ne reste alors qu'à installer le noyau Octave pour Jupyter ainsi : à documenter...
Quelques remarques concernant cette version de Octave
Cette distribution ne contenant aucun package Octave pré-installé, si vous devez en installer, suivez la procédure décrite dans notre chapitre "Packages Octave-Forge", en utilisant typiquement les commandes : pkg list -forge (affichage de la liste des packages disponibles via SourceForge) et pkg install -forge package (installation locale du package spécifié). Si vous ne disposez pas de Apple Xcode, Octave vous demandera automatiquement de l'installer.
L'usage des caractères accentués dans les scripts Octave est désormais possible !
0.4.2 Installation d'un éditeur de programmation pour macOS
Octave GUI intègre désormais un très bon éditeur. Si vous souhaitez cependant disposer d'un éditeur de programmation indépendant sous macOS, lisez les indications ci-après.
Installation de l'éditeur libre Atom
Atom est un éditeur de programmation et IDE récent qui est libre, multiplateforme et très évolutif, élaboré par la société GitHub Inc.
Si vous êtes intéressé par cet éditeur :
Son installation sous macOS s'effectue comme suit :
Téléchargement à partir du site atom.io , lien "Download For Mac"
Puis ouvrir l'archive atom-mac.zip, et glisser le dossier "Atom" dans le dossier Applications
Un peu de configuration afin que cet éditeur soit accessible avec la commande edit sous Octave-CLI (Octave en mode commande dans une fenêtre terminal) :
dans une fenêtre terminal, passer la commande : sudo mkdir /usr/local/bin (répertoire qui n'existe bizarrement pas sous OS X 10.9)
puis lancer Atom, et faire : Atom > Install Shell Commands (qui va créer un lien symbolique dans le répertoire ci-dessus)
dans votre prologue Octave /Users/votre_username/.octaverc, insérez la commande : EDITOR('atom')
Dans Atom, activation de la coloration syntaxique MATLAB/Octave :
sous Atom > Preferences > Packages, saisir Octave dans le champ "Search packages", puis sélectionner le package "Language Matlab - MATLAB/Octave language support for Atom" et cliquer sur Install
pour que ce ne soit pas le langage Objective C qui soit activé avec les M-files MATLAB/Octave, sous Atom > Preferences, saisir Objective dans le champ "Filter packages", puis sélectionner le package "Language Objective C" et cliquer sur Disable
Installation de l'éditeur gratuit TextWrangler
Si vous êtes intéressé par cet éditeur :
Gratuit mais non libre, l'éditeur de programmation TextWrangler (de la société BareBones, dérivé du célèbre BBedit) s'installe ainsi :
Téléchargement de TextWrangler à partir de ce lien, puis installation de celui-ci selon la procédure Mac habituelle
Puis installation du Command-Line Tool à partir de ce lien, sous "Command-Line Tools Installer... download here"
=> archive tw-cmdline-tools-version.zip qu'il s'agit d'ouvrir et exécuter (il vous demandera votre mot de passe)
(cela met en place un lien /usr/local/bin/edit permettant de lancer TextWrangler en ligne de commande ainsi que depuis Octave)
Il faut finalement redéfinir, dans votre prologue de démarrage Octave, l'éditeur par défaut avec la commande EDITOR('edit') ;
vous pourrez alors éditer des M-files (scripts et fonctions) en passant, sous Octave, la commande edit fichier.m
Pour que cet éditeur fasse de la coloration syntaxique, vous pouvez encore installer le module TextWrangler/BBEdit que vous trouvez sous ce lien (en suivant les instructions de cette page)