Accueil - Informatique - Programmation - Outils

MSYS2 : des outils de développement UNIX sous Windows

Publié le samedi 4 novembre 2017.


Mise à jour : 04/11/2017

Introduction


À l’origine, MSYS2 est une réécriture moderne et indépendante de MSYS, basée sur Cygwin (couche de compatibilité POSIX) et MinGW-w64 dans le but d’une meilleure interopérabilité avec les logiciels Windows natifs. Il fournit un shell, des systèmes de contrôle de codes sources pour créer des applications Windows natives à l’aide des chaînes d’outils de compilations MinGW-w64.

Il dispose d’un système de gestion des paquets basé sur Pacman (ArchLinux) pour faciliter l’installation des paquetages. Il apporte de nombreuses fonctionnalités puissantes telles que la résolution des dépendances et de mises à niveau du système.

L’installation de MSYS2 sur un PC sous Windows 7 nous permettra d’avoir à disposition un shell Unix (bash) dans une console (ConEmu de préférence) ainsi que les interpréteurs nécessaires aux traitement de données (Perl, Python). L’édition de programmes pourra être réalisée avec Visual Studio Code (VSC) et la compilation d’exécutables (C/C++/Go) directement dans la fenêtre terminal de VSC avec des outils comme make.

Installation de MSYS2


Télécharger l’exécutable depuis la page "MSYS2 installer" et suivre les instructions (en Anglais) puis les différentes étapes de mise à jour de la distribution. Pas de réelle difficultés jusque la.
Personnellement, j’installe les outils opensource sous c :\opt, donc le répertoire d’installation de MSYS2 sera sous C:\opt\msys64.

Mettre à jour la distribution avec les commandes suivantes :

puis installer les paquetages nécessaires pour notre environnement de développement sous Windows.

Installation des paquetages supplémentaires
Par exmple, pour compiler un programme utilisant la librairies NetCDF nativement sous Windows, nous aurons besoin du programme pkg-config pour spécifier au compilateur gcc l’emplacement des fichiers d’entête et librairies. Pour vérifier si pkg-config est déjà installé sur le système, nous allons interroger le gestionnaire de paquets pacman :

Le programme pkg-config dépend du paquetage base-devel, il est alors possible d’installer uniquement le programme voulu avec ses dépendances :

Une alternative peut consister à installer l’ensemble des programmes du paquet ou de ne sélectionner que ceux strictement nécessaires comme ci-dessous :

Il est également possible de spécifier la liste des programmes à installer sur la ligne de commande :

Configuration


Une fois installé, lorsque nous exécutons MSYS2 depuis le menu "démarrer/tous les programmes", nous obtenons un shell dans une console DOS comme ceci :

Je conseille d’utiliser ConEmu comme alternative à l’antique console Windows qui n’a quasiment pas évoluée depuis 20 ans.
ConEmu est un logiciel qui permet d’ouvrir plusieurs consoles dans une seule et même fenêtre grâce à des onglets. Il est facilement personnalisable et on peut l’utiliser pour ouvrir des consoles DOS, PowerShell, Bash, Putty, voir Docker. Il permet une meilleure intégration du presse papier comme c’est le cas avec les console Linux (touche shift+Insert ou clic droit avec la souris).
Pour utiliser MSYS2 avec ConEmu, rajouter une entrée depuis le menu "Setting/Startup/Tasks" en cliquant sur le bouton "+". Modifier son nom par "Bash::Msys2-64" et entrer la ligne suivante dans la fenêtre "commands" en adaptant le chemin d’accès à votre configuration, ici : %ConEmuDrive%\opt

Par défaut, MSYS2 n’hérite pas de la variable %PATH% de Windows.
Rajouter la ligne suivante qui se trouve dans le fichier msys64\msys2_shell.cmd :

Utilisation de pkg-config :

PKG_CONFIG_PATH definie dans le fichier C :\opt\msys64\etc\makepkg_mingw64.conf
dans son env (C :\opt\msys64\home\jgrelet)
PKG_CONFIG_PATH=$PKG_CONFIG_PATH :/c/Qt/qt-5.4.1/qt-5.4.1-x64-mingw492r1-seh-opengl-rev1/lib/pkgconfig :/c/opt/netCDF/lib/pkgconfig

test :

Liens utiles