Préparer Windows pour créer des applications Desktop avec Elixir et Phoenix

Notre objectif est de créer une version Desktop de Hello Phoenix. Dans la version Desktop, nous n’avons pas de serveur distant. Le serveur est intégré à l’application Desktop. L’application intègre les pages html/javascript pour l’interface utilisateur. La solution recherchée est comparable à ce qui se fait dans Electron.

Un projet Elixir Desktop existe, créé par Dominic Letz et présenté lors du Code Beam EU 2021. Nous allons tester la mise en place de ce projet pour la version Hello-Phoenix et créer une application toute simple qui affiche la page officielle Phoenix, comme pour notre projet hello_phoenix.

Analyse du projet Desktop et de ses pré-requis

Mise en place de l’environnement

Nous commençons par mettre en place l’environnement conseillé.

Regardons si d’autres articles existent

liste de projet d’étude sur elixir

repertoire avec des projets

conversation sur le projet hello

correction d’un projet humbrella

exemple mobile phone

projet ios expliquant comment commencer

projet android comment commencer

transformation en desktop d’une application phoenix

elixir desktop forum

début des tests

on va commencer par vérifier qu’on a les pre-requis

puis on va modifier l’application selon la description ci-jointe

pour connaitre MSYS2

pour vérifier la présence de node et autre voir ce commentaire

Installation des pré-requis

La description des prérequis du projet Elixir-Desktop à installer :

  • Erlang et Elixir
  • Msys2
  • Node et npm
  • Nsis

Installation de Erlang et Elixir

Le projet Elixir-Desktop demande une version d’Erlang postérieure à la version OTP/24.

PS C:\Users\berou> elixir -v
Erlang/OTP 25 [erts-13.0.4] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit:ns]

Elixir 1.14.3 (compiled with Erlang/OTP 25)
PS C:\Users\berou>

La version que nous avons installée pour Elixir/Erlang est conforme aux attentes du projet Elixir-Desktop

Installation de MSYS2

MSYS2 est un ensemble d’outil permettant de construire des application natives Windows. Un terminal en ligne de commande appelé mintty permet de réaliser l’ensemble des actions dans un environnement windows selon les même méthodes que celles que nous utilisons dans un environnement linux ou macOS. En particulier l’utilisation de pacman inclus dans msys2 est similaire à ce que nous faisons avec homebrew sur macOs

Nous suivons les instruction d’installation de la page msys2.

Nous téléchargeons puis exécutons le logiciel d’installation :

  • msys2-x86_64-20230718.exe
Desktop windows pour hello phoenix#1-Lancement de l'installeur MSYS2
Desktop windows pour hello phoenix#1-Lancement de l’installeur MSYS2
Desktop windows pour hello phoenix#2-Choix du répertoire d'installation de MSYS2
Desktop windows pour hello phoenix#2-Choix du répertoire d’installation de MSYS2
Desktop windows pour hello phoenix#3-Option du menu démarrer de MSYS2
Desktop windows pour hello phoenix#3-Option du menu démarrer de MSYS2
Desktop windows pour hello phoenix#4-Installation de MSYS2
Desktop windows pour hello phoenix#4-Installation de MSYS2
Desktop windows pour hello phoenix#5-Installation terminée pour MSYS2
Desktop windows pour hello phoenix#5-Installation terminée pour MSYS2

Nous conservons l’option d’exécuter le terminal MSYS2 pour continuer l’installation en ligne de commande.

Desktop windows pour hello phoenix#6-Le terminal en ligne de commande MSYS2
Desktop windows pour hello phoenix#6-Le terminal en ligne de commande MSYS2

La documentation de Elixir-Desktop nous demande d’installer les packages suivants :

  • pacman -Syu
  • pacman -S –noconfirm pacman-mirrors pkg-config
  • pacman -S –noconfirm –needed base-devel autoconf automake make libtool mingw-w64-x86_64-toolchain mingw-w64-x86_64-openssl mingw-w64-x86_64-libtool git

Réalisation de la commande pacman -Syu :

berou@LAPTOP-0SQHKMMQ UCRT64 ~
$ pacman -Syu
:: Synchronizing package databases...
 clangarm64                      1722.5 KiB  2.19 MiB/s 00:01 [################################] 100%
 mingw32                         1797.1 KiB  1878 KiB/s 00:01 [################################] 100%
 mingw64                         1936.8 KiB  2.12 MiB/s 00:01 [################################] 100%
 ucrt64                          1976.7 KiB  2.05 MiB/s 00:01 [################################] 100%
 clang32                         1776.2 KiB  1430 KiB/s 00:01 [################################] 100%
 clang64                         1934.2 KiB  8.87 MiB/s 00:00 [################################] 100%
 msys                             460.1 KiB  2.39 MiB/s 00:00 [################################] 100%
:: Starting core system upgrade...
warning: terminate other MSYS2 programs before proceeding
resolving dependencies...
looking for conflicting packages...

Packages (2) msys2-runtime-3.4.8-1  pacman-6.0.2-8

Total Download Size:    7.99 MiB
Total Installed Size:  44.86 MiB
Net Upgrade Size:       0.53 MiB

:: Proceed with installation? [Y/n] Y
:: Retrieving packages...
 msys2-runtime-3.4.8-1-x86_64    1834.5 KiB  2012 KiB/s 00:01 [################################] 100%
 pacman-6.0.2-8-x86_64              6.2 MiB  3.32 MiB/s 00:02 [################################] 100%
 Total (2/2)                        8.0 MiB  4.01 MiB/s 00:02 [################################] 100%
(2/2) checking keys in keyring                                [################################] 100%
(2/2) checking package integrity                              [################################] 100%
(2/2) loading package files                                   [################################] 100%
(2/2) checking for file conflicts                             [################################] 100%
(2/2) checking available disk space                           [################################] 100%
:: Processing package changes...
(1/2) upgrading msys2-runtime                                 [################################] 100%
(2/2) upgrading pacman                                        [################################] 100%
:: To complete this update all MSYS2 processes including this terminal will be closed. Confirm to proceed [Y/n]

Suite de l’installation :

berou@LAPTOP-0SQHKMMQ MSYS ~
$ pacman -Syu
:: Synchronizing package databases...
 clangarm64 is up to date
 mingw32 is up to date
 mingw64 is up to date
 ucrt64 is up to date
 clang32 is up to date
 clang64 is up to date
 msys is up to date
:: Starting core system upgrade...
 there is nothing to do
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (15) bsdtar-3.7.1-1  curl-8.2.1-1  file-5.45-1  gmp-6.3.0-1  gzip-1.13-1  less-643-1
              libcurl-8.2.1-1  libgnutls-3.8.1-1  libgpgme-1.22.0-1  liblzma-5.4.4-1
              libopenssl-3.1.2-1  libxml2-2.11.5-1  mpfr-4.2.1-1  openssl-3.1.2-1  xz-5.4.4-1

Total Download Size:    7.82 MiB
Total Installed Size:  27.52 MiB
Net Upgrade Size:       0.34 MiB

:: Proceed with installation? [Y/n] Y
:: Retrieving packages...
 libopenssl-3.1.2-1-x86_64       1641.3 KiB  5.45 MiB/s 00:00 [################################] 100%
 openssl-3.1.2-1-x86_64           663.7 KiB  2.04 MiB/s 00:00 [################################] 100%
 libxml2-2.11.5-1-x86_64          512.6 KiB  1363 KiB/s 00:00 [################################] 100%
 curl-8.2.1-1-x86_64              857.4 KiB  2.01 MiB/s 00:00 [################################] 100%
 xz-5.4.4-1-x86_64                505.9 KiB  5.37 MiB/s 00:00 [################################] 100%
 gmp-6.3.0-1-x86_64               386.9 KiB  3.07 MiB/s 00:00 [################################] 100%
 bsdtar-3.7.1-1-x86_64            324.1 KiB  3.20 MiB/s 00:00 [################################] 100%
 libgnutls-3.8.1-1-x86_64        1394.1 KiB  1851 KiB/s 00:01 [################################] 100%
 file-5.45-1-x86_64               408.3 KiB   725 KiB/s 00:01 [################################] 100%
 mpfr-4.2.1-1-x86_64              380.6 KiB   724 KiB/s 00:01 [################################] 100%
 libgpgme-1.22.0-1-x86_64         362.9 KiB   682 KiB/s 00:01 [################################] 100%
 libcurl-8.2.1-1-x86_64           268.8 KiB   807 KiB/s 00:00 [################################] 100%
 gzip-1.13-1-x86_64                90.5 KiB   754 KiB/s 00:00 [################################] 100%
 liblzma-5.4.4-1-x86_64            85.0 KiB   787 KiB/s 00:00 [################################] 100%
 less-643-1-x86_64                121.9 KiB   192 KiB/s 00:01 [################################] 100%
 Total (15/15)                      7.8 MiB  5.16 MiB/s 00:02 [################################] 100%
(15/15) checking keys in keyring                              [################################] 100%
(15/15) checking package integrity                            [################################] 100%
(15/15) loading package files                                 [################################] 100%
(15/15) checking for file conflicts                           [################################] 100%
(15/15) checking available disk space                         [################################] 100%
:: Processing package changes...
( 1/15) upgrading liblzma                                     [################################] 100%
( 2/15) upgrading libopenssl                                  [################################] 100%
( 3/15) upgrading bsdtar                                      [################################] 100%
( 4/15) upgrading openssl                                     [################################] 100%
( 5/15) upgrading gmp                                         [################################] 100%
( 6/15) upgrading less                                        [################################] 100%
( 7/15) upgrading gzip                                        [################################] 100%
( 8/15) upgrading libxml2                                     [################################] 100%
( 9/15) upgrading libcurl                                     [################################] 100%
(10/15) upgrading curl                                        [################################] 100%
(11/15) upgrading file                                        [################################] 100%
(12/15) upgrading libgnutls                                   [################################] 100%
(13/15) upgrading libgpgme                                    [################################] 100%
(14/15) upgrading mpfr                                        [################################] 100%
(15/15) upgrading xz                                          [################################] 100%
:: Running post-transaction hooks...
(1/1) Updating the info directory file...

berou@LAPTOP-0SQHKMMQ MSYS ~
$

Réalisation de la seconde commande : pacman -S –noconfirm pacman-mirrors pkg-config

berou@LAPTOP-0SQHKMMQ MSYS ~
$ pacman -S --noconfirm pacman-mirrors pkg-config
warning: pacman-mirrors-20221016-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...

Packages (2) pacman-mirrors-20221016-1  pkgconf-2.0.2-1

Total Download Size:   0.06 MiB
Total Installed Size:  0.30 MiB
Net Upgrade Size:      0.29 MiB

:: Proceed with installation? [Y/n]
:: Retrieving packages...
 pacman-mirrors-20221016-1-any      4.1 KiB  8.74 KiB/s 00:00 [################################] 100%
 pkgconf-2.0.2-1-x86_64            61.6 KiB  85.8 KiB/s 00:01 [################################] 100%
 Total (2/2)                       65.7 KiB  84.9 KiB/s 00:01 [################################] 100%
(2/2) checking keys in keyring                                [################################] 100%
(2/2) checking package integrity                              [################################] 100%
(2/2) loading package files                                   [################################] 100%
(2/2) checking for file conflicts                             [################################] 100%
(2/2) checking available disk space                           [################################] 100%
:: Processing package changes...
(1/2) reinstalling pacman-mirrors                             [################################] 100%
(2/2) installing pkgconf                                      [################################] 100%

berou@LAPTOP-0SQHKMMQ MSYS ~
$

Réalisation de la 3ème commande :

berou@LAPTOP-0SQHKMMQ MSYS ~
$ pacman -S --noconfirm --needed base-devel autoconf automake make libtool mingw-w64-x86_64-toolchain mingw-w64-x86_64-openssl mingw-w64-x86_64-libtool git
:: There are 19 members in group mingw-w64-x86_64-toolchain:
:: Repository mingw64
   1) mingw-w64-x86_64-binutils  2) mingw-w64-x86_64-crt-git  3) mingw-w64-x86_64-gcc
   4) mingw-w64-x86_64-gcc-ada  5) mingw-w64-x86_64-gcc-fortran  6) mingw-w64-x86_64-gcc-libgfortran
   7) mingw-w64-x86_64-gcc-libs  8) mingw-w64-x86_64-gcc-objc  9) mingw-w64-x86_64-gdb
   10) mingw-w64-x86_64-gdb-multiarch  11) mingw-w64-x86_64-headers-git
   12) mingw-w64-x86_64-libgccjit  13) mingw-w64-x86_64-libmangle-git
   14) mingw-w64-x86_64-libwinpthread-git  15) mingw-w64-x86_64-make  16) mingw-w64-x86_64-pkgconf
   17) mingw-w64-x86_64-tools-git  18) mingw-w64-x86_64-winpthreads-git
   19) mingw-w64-x86_64-winstorecompat-git

Enter a selection (default=all):
resolving dependencies...
looking for conflicting packages...

Packages (105) autoconf2.13-2.13-6  autoconf2.69-2.69-3  autoconf2.71-2.71-2  automake1.11-1.11.6-6
               automake1.12-1.12.6-6  automake1.13-1.13.4-7  automake1.14-1.14.1-6
               automake1.15-1.15.1-4  automake1.16-1.16.5-1  binutils-2.41-2  bison-3.8.2-5
               diffstat-1.65-1  diffutils-3.10-1  dos2unix-7.5.0-1  flex-2.6.4-3  heimdal-7.8.0-4
               libcbor-0.10.2-1  libfido2-1.13.0-1  libltdl-2.4.7-3  m4-1.4.19-2
               mingw-w64-x86_64-bzip2-1.0.8-2  mingw-w64-x86_64-expat-2.5.0-1
               mingw-w64-x86_64-gettext-0.21.1-2  mingw-w64-x86_64-gmp-6.3.0-1
               mingw-w64-x86_64-isl-0.26-1  mingw-w64-x86_64-libffi-3.4.4-1
               mingw-w64-x86_64-libiconv-1.17-3  mingw-w64-x86_64-libltdl-2.4.7-2
               mingw-w64-x86_64-libsystre-1.0.1-4  mingw-w64-x86_64-libtre-git-r128.6fb7206-2
               mingw-w64-x86_64-mpc-1.3.1-1  mingw-w64-x86_64-mpdecimal-2.5.1-1
               mingw-w64-x86_64-mpfr-4.2.1-1  mingw-w64-x86_64-ncurses-6.4.20230708-1
               mingw-w64-x86_64-python-3.11.5-2  mingw-w64-x86_64-readline-8.2.001-6
               mingw-w64-x86_64-sqlite3-3.43.0-1  mingw-w64-x86_64-tcl-8.6.12-2
               mingw-w64-x86_64-termcap-1.3.1-6  mingw-w64-x86_64-tk-8.6.12-2
               mingw-w64-x86_64-tzdata-2023c-1  mingw-w64-x86_64-windows-default-manifest-6.4-4
               mingw-w64-x86_64-xxhash-0.8.1-2  mingw-w64-x86_64-xz-5.4.4-1
               mingw-w64-x86_64-zlib-1.3-1  mingw-w64-x86_64-zstd-1.5.5-1  openssh-9.4p1-1
               patch-2.7.6-2  perl-Authen-SASL-2.16-3  perl-Clone-0.46-1  perl-Convert-BinHex-1.125-2
               perl-Encode-Locale-1.05-2  perl-Error-0.17029-1  perl-File-Listing-6.16-1
               perl-HTML-Parser-3.81-1  perl-HTML-Tagset-3.20-3  perl-HTTP-Cookies-6.10-2
               perl-HTTP-Daemon-6.16-1  perl-HTTP-Date-6.05-1  perl-HTTP-Message-6.44-1
               perl-HTTP-Negotiate-6.01-3  perl-IO-HTML-1.004-2  perl-IO-Socket-SSL-2.081-1
               perl-IO-Stringy-2.113-1  perl-LWP-MediaTypes-6.04-1  perl-MIME-tools-5.510-1
               perl-MailTools-2.21-1  perl-Net-HTTP-6.23-1  perl-Net-SMTP-SSL-1.04-2
               perl-Net-SSLeay-1.92-4  perl-TermReadKey-2.38-5  perl-TimeDate-2.33-2
               perl-Try-Tiny-0.31-1  perl-URI-5.19-1  perl-WWW-RobotRules-6.02-2  perl-libwww-6.67-1
               texinfo-7.0.3-3  texinfo-tex-7.0.3-3  autoconf-wrapper-20221207-1
               automake-wrapper-20221207-1  base-devel-2022.12-2  git-2.42.0-2  libtool-2.4.7-3
               make-4.4.1-1  mingw-w64-x86_64-binutils-2.41-1
               mingw-w64-x86_64-crt-git-11.0.0.r124.ge89de847d-1  mingw-w64-x86_64-gcc-13.2.0-2
               mingw-w64-x86_64-gcc-ada-13.2.0-2  mingw-w64-x86_64-gcc-fortran-13.2.0-2
               mingw-w64-x86_64-gcc-libgfortran-13.2.0-2  mingw-w64-x86_64-gcc-libs-13.2.0-2
               mingw-w64-x86_64-gcc-objc-13.2.0-2  mingw-w64-x86_64-gdb-13.2-3
               mingw-w64-x86_64-gdb-multiarch-13.2-3
               mingw-w64-x86_64-headers-git-11.0.0.r124.ge89de847d-1
               mingw-w64-x86_64-libgccjit-13.2.0-2
               mingw-w64-x86_64-libmangle-git-11.0.0.r124.ge89de847d-1
               mingw-w64-x86_64-libtool-2.4.7-2
               mingw-w64-x86_64-libwinpthread-git-11.0.0.r124.ge89de847d-1
               mingw-w64-x86_64-make-4.4-2  mingw-w64-x86_64-openssl-3.1.2-1
               mingw-w64-x86_64-pkgconf-1~2.0.2-1
               mingw-w64-x86_64-tools-git-11.0.0.r124.ge89de847d-1
               mingw-w64-x86_64-winpthreads-git-11.0.0.r124.ge89de847d-1
               mingw-w64-x86_64-winstorecompat-git-11.0.0.r124.ge89de847d-1

Total Download Size:    184.19 MiB
Total Installed Size:  1197.03 MiB

:: Proceed with installation? [Y/n]
:: Retrieving packages...
 mingw-w64-x86_64-python-3.1...    23.1 MiB  16.7 MiB/s 00:01 [################################] 100%
 mingw-w64-x86_64-gcc-objc-1...    13.0 MiB  8.46 MiB/s 00:02 [################################] 100%
 mingw-w64-x86_64-libgccjit-...    10.4 MiB  17.0 MiB/s 00:01 [################################] 100%
 mingw-w64-x86_64-openssl-3....     7.3 MiB  11.8 MiB/s 00:01 [################################] 100%
 mingw-w64-x86_64-gdb-multia...     6.8 MiB  8.70 MiB/s 00:01 [################################] 100%
 mingw-w64-x86_64-binutils-2...     6.1 MiB  15.0 MiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-headers-gi...     5.9 MiB  15.5 MiB/s 00:00 [################################] 100%
 git-2.42.0-2-x86_64                6.4 MiB  3.10 MiB/s 00:02 [################################] 100%
 mingw-w64-x86_64-gcc-ada-13...    20.6 MiB  4.61 MiB/s 00:04 [################################] 100%
 mingw-w64-x86_64-gdb-13.2-3-any    4.3 MiB  12.5 MiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-gcc-13.2.0...    28.8 MiB  5.21 MiB/s 00:06 [################################] 100%
 binutils-2.41-2-x86_64             5.4 MiB  3.35 MiB/s 00:02 [################################] 100%
 mingw-w64-x86_64-crt-git-11...     3.3 MiB  3.24 MiB/s 00:01 [################################] 100%
 mingw-w64-x86_64-gettext-0....     3.3 MiB  3.54 MiB/s 00:01 [################################] 100%
 mingw-w64-x86_64-tcl-8.6.12...     2.7 MiB  5.45 MiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-ncurses-6....  1799.5 KiB  5.34 MiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-tk-8.6.12-...  2006.6 KiB  2.91 MiB/s 00:01 [################################] 100%
 mingw-w64-x86_64-isl-0.26-1-any 1442.0 KiB  5.77 MiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-sqlite3-3....  1669.8 KiB  2.03 MiB/s 00:01 [################################] 100%
 mingw-w64-x86_64-gcc-libs-1...   965.0 KiB  3.67 MiB/s 00:00 [################################] 100%
 texinfo-7.0.3-3-x86_64          1344.6 KiB  2.02 MiB/s 00:01 [################################] 100%
 mingw-w64-x86_64-gcc-libgfo...   881.5 KiB  3.42 MiB/s 00:00 [################################] 100%
 openssh-9.4p1-1-x86_64           971.3 KiB  1180 KiB/s 00:01 [################################] 100%
 bison-3.8.2-5-x86_64             777.2 KiB  1650 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-gcc-fortra...    11.3 MiB  1584 KiB/s 00:07 [################################] 100%
 mingw-w64-x86_64-libiconv-1...   719.8 KiB  1180 KiB/s 00:01 [################################] 100%
 mingw-w64-x86_64-gmp-6.3.0-...   577.8 KiB  2.01 MiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-xz-5.4.4-1-any  672.1 KiB   951 KiB/s 00:01 [################################] 100%
 heimdal-7.8.0-4-x86_64           543.5 KiB  1349 KiB/s 00:00 [################################] 100%
 automake1.16-1.16.5-1-any        526.3 KiB  1487 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-zstd-1.5.5...   621.6 KiB   968 KiB/s 00:01 [################################] 100%
 automake1.15-1.15.1-4-any        513.4 KiB  1380 KiB/s 00:00 [################################] 100%
 automake1.14-1.14.1-6-any        503.1 KiB  2004 KiB/s 00:00 [################################] 100%
 make-4.4.1-1-x86_64              505.9 KiB  1105 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-readline-8...   504.9 KiB   793 KiB/s 00:01 [################################] 100%
 automake1.12-1.12.6-6-any        503.1 KiB  1227 KiB/s 00:00 [################################] 100%
 dos2unix-7.5.0-1-x86_64          440.9 KiB  1592 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-mpfr-4.2.1...   429.8 KiB  1885 KiB/s 00:00 [################################] 100%
 automake1.13-1.13.4-7-any        501.5 KiB   748 KiB/s 00:01 [################################] 100%
 automake1.11-1.11.6-6-any        490.2 KiB   838 KiB/s 00:01 [################################] 100%
 libtool-2.4.7-3-x86_64           397.2 KiB  1735 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-libtool-2....   394.5 KiB  1578 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-mpdecimal-...   321.9 KiB  2.56 MiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-tools-git-...   316.7 KiB  2.33 MiB/s 00:00 [################################] 100%
 flex-2.6.4-3-x86_64              303.8 KiB  2.18 MiB/s 00:00 [################################] 100%
 diffutils-3.10-1-x86_64          379.8 KiB   922 KiB/s 00:00 [################################] 100%
 autoconf2.69-2.69-3-any          284.5 KiB  1674 KiB/s 00:00 [################################] 100%
 m4-1.4.19-2-x86_64               238.1 KiB  1676 KiB/s 00:00 [################################] 100%
 autoconf2.71-2.71-2-any          328.6 KiB   554 KiB/s 00:01 [################################] 100%
 mingw-w64-x86_64-tzdata-202...   228.4 KiB   903 KiB/s 00:00 [################################] 100%
 perl-Net-SSLeay-1.92-4-x86_64    209.4 KiB   914 KiB/s 00:00 [################################] 100%
 perl-MIME-tools-5.510-1-any      183.6 KiB   927 KiB/s 00:00 [################################] 100%
 perl-IO-Socket-SSL-2.081-1-any   157.2 KiB   629 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-expat-2.5....   155.8 KiB   660 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-make-4.4-2-any  135.1 KiB   872 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-xxhash-0.8...   106.1 KiB  1117 KiB/s 00:00 [################################] 100%
 perl-libwww-6.67-1-any           129.8 KiB   646 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-mpc-1.3.1-...   104.4 KiB   835 KiB/s 00:00 [################################] 100%
 autoconf2.13-2.13-6-any          137.4 KiB   342 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-zlib-1.3-1-any  104.1 KiB   646 KiB/s 00:00 [################################] 100%
 patch-2.7.6-2-x86_64              96.8 KiB   629 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-bzip2-1.0....    89.1 KiB   373 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-libtre-git...    84.2 KiB   378 KiB/s 00:00 [################################] 100%
 perl-URI-5.19-1-any               80.3 KiB   436 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-pkgconf-1~...    83.7 KiB   301 KiB/s 00:00 [################################] 100%
 perl-MailTools-2.21-1-any         81.0 KiB   247 KiB/s 00:00 [################################] 100%
 perl-HTML-Parser-3.81-1-x86_64    80.2 KiB   461 KiB/s 00:00 [################################] 100%
 perl-HTTP-Message-6.44-1-any      77.1 KiB   419 KiB/s 00:00 [################################] 100%
 libfido2-1.13.0-1-x86_64          76.4 KiB   306 KiB/s 00:00 [################################] 100%
 perl-IO-Stringy-2.113-1-any       66.4 KiB   324 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-libltdl-2....    50.6 KiB   320 KiB/s 00:00 [################################] 100%
 perl-LWP-MediaTypes-6.04-1-any    40.7 KiB   357 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-libffi-3.4...    42.5 KiB   116 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-winpthread...    39.9 KiB   150 KiB/s 00:00 [################################] 100%
 perl-Error-0.17029-1-any          39.4 KiB   171 KiB/s 00:00 [################################] 100%
 libltdl-2.4.7-3-x86_64            39.1 KiB   186 KiB/s 00:00 [################################] 100%
 perl-Authen-SASL-2.16-3-any       37.9 KiB   152 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-libwinpthr...    29.0 KiB   382 KiB/s 00:00 [################################] 100%
 diffstat-1.65-1-x86_64            29.2 KiB   185 KiB/s 00:00 [################################] 100%
 perl-HTTP-Date-6.05-1-any         28.9 KiB   192 KiB/s 00:00 [################################] 100%
 perl-Convert-BinHex-1.125-2-any   29.8 KiB   124 KiB/s 00:00 [################################] 100%
 perl-TimeDate-2.33-2-any          35.6 KiB   134 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-libsystre-...    24.0 KiB   228 KiB/s 00:00 [################################] 100%
 texinfo-tex-7.0.3-3-x86_64        26.1 KiB   184 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-termcap-1....    28.0 KiB  98.0 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-winstoreco...    23.1 KiB   114 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-libmangle-...    22.2 KiB  99.5 KiB/s 00:00 [################################] 100%
 perl-Net-HTTP-6.23-1-any          22.8 KiB  57.4 KiB/s 00:00 [################################] 100%
 perl-HTTP-Cookies-6.10-2-any      21.9 KiB   104 KiB/s 00:00 [################################] 100%
 perl-TermReadKey-2.38-5-x86_64    20.5 KiB  90.2 KiB/s 00:00 [################################] 100%
 perl-Try-Tiny-0.31-1-any          19.8 KiB  80.1 KiB/s 00:00 [################################] 100%
 perl-HTTP-Daemon-6.16-1-any       18.7 KiB   107 KiB/s 00:00 [################################] 100%
 libcbor-0.10.2-1-x86_64           18.1 KiB  88.0 KiB/s 00:00 [################################] 100%
 perl-IO-HTML-1.004-2-any          14.4 KiB  67.4 KiB/s 00:00 [################################] 100%
 perl-HTTP-Negotiate-6.01-3-any    12.1 KiB  60.9 KiB/s 00:00 [################################] 100%
 perl-WWW-RobotRules-6.02-2-any    12.2 KiB  41.4 KiB/s 00:00 [################################] 100%
 perl-HTML-Tagset-3.20-3-any       10.9 KiB  50.3 KiB/s 00:00 [################################] 100%
 perl-Encode-Locale-1.05-2-any     10.7 KiB  59.9 KiB/s 00:00 [################################] 100%
 perl-Clone-0.46-1-x86_64          10.4 KiB  62.4 KiB/s 00:00 [################################] 100%
 autoconf-wrapper-20221207-1-any    5.0 KiB  39.7 KiB/s 00:00 [################################] 100%
 perl-File-Listing-6.16-1-any      10.3 KiB  46.6 KiB/s 00:00 [################################] 100%
 automake-wrapper-20221207-1-any    4.4 KiB  26.5 KiB/s 00:00 [################################] 100%
 perl-Net-SMTP-SSL-1.04-2-any       4.9 KiB  24.3 KiB/s 00:00 [################################] 100%
 mingw-w64-x86_64-windows-de...     3.1 KiB  20.5 KiB/s 00:00 [################################] 100%
 base-devel-2022.12-2-any           2.4 KiB  20.3 KiB/s 00:00 [################################] 100%
 Total (105/105)                  184.2 MiB  13.9 MiB/s 00:13 [################################] 100%
(105/105) checking keys in keyring                            [################################] 100%
(105/105) checking package integrity                          [################################] 100%
(105/105) loading package files                               [################################] 100%
(105/105) checking for file conflicts                         [################################] 100%
(105/105) checking available disk space                       [################################] 100%
:: Processing package changes...
(  1/105) installing binutils                                 [################################] 100%
(  2/105) installing m4                                       [################################] 100%
(  3/105) installing bison                                    [################################] 100%
(  4/105) installing diffstat                                 [################################] 100%
(  5/105) installing diffutils                                [################################] 100%
(  6/105) installing dos2unix                                 [################################] 100%
(  7/105) installing flex                                     [################################] 100%
(  8/105) installing texinfo                                  [################################] 100%
(  9/105) installing texinfo-tex                              [################################] 100%
( 10/105) installing make                                     [################################] 100%
( 11/105) installing patch                                    [################################] 100%
Optional dependencies for patch
    ed: for patch -e functionality
( 12/105) installing base-devel                               [################################] 100%
( 13/105) installing autoconf2.71                             [################################] 100%
( 14/105) installing autoconf2.69                             [################################] 100%
( 15/105) installing autoconf2.13                             [################################] 100%
( 16/105) installing autoconf-wrapper                         [################################] 100%
( 17/105) installing automake1.11                             [################################] 100%
( 18/105) installing automake1.12                             [################################] 100%
( 19/105) installing automake1.13                             [################################] 100%
( 20/105) installing automake1.14                             [################################] 100%
( 21/105) installing automake1.15                             [################################] 100%
( 22/105) installing automake1.16                             [################################] 100%
( 23/105) installing automake-wrapper                         [################################] 100%
( 24/105) installing libltdl                                  [################################] 100%
( 25/105) installing libtool                                  [################################] 100%
( 26/105) installing mingw-w64-x86_64-libwinpthread-git       [################################] 100%
( 27/105) installing mingw-w64-x86_64-gcc-libs                [################################] 100%
( 28/105) installing mingw-w64-x86_64-zstd                    [################################] 100%
( 29/105) installing mingw-w64-x86_64-binutils                [################################] 100%
( 30/105) installing mingw-w64-x86_64-headers-git             [################################] 100%
( 31/105) installing mingw-w64-x86_64-crt-git                 [################################] 100%
( 32/105) installing mingw-w64-x86_64-gmp                     [################################] 100%
( 33/105) installing mingw-w64-x86_64-isl                     [################################] 100%
( 34/105) installing mingw-w64-x86_64-libiconv                [################################] 100%
( 35/105) installing mingw-w64-x86_64-mpfr                    [################################] 100%
( 36/105) installing mingw-w64-x86_64-mpc                     [################################] 100%
( 37/105) installing mingw-w64-x86_64-windows-default-man...  [################################] 100%
( 38/105) installing mingw-w64-x86_64-winpthreads-git         [################################] 100%
( 39/105) installing mingw-w64-x86_64-zlib                    [################################] 100%
( 40/105) installing mingw-w64-x86_64-gcc                     [################################] 100%
( 41/105) installing mingw-w64-x86_64-gcc-ada                 [################################] 100%
( 42/105) installing mingw-w64-x86_64-gcc-libgfortran         [################################] 100%
( 43/105) installing mingw-w64-x86_64-gcc-fortran             [################################] 100%
( 44/105) installing mingw-w64-x86_64-gcc-objc                [################################] 100%
( 45/105) installing mingw-w64-x86_64-expat                   [################################] 100%
( 46/105) installing mingw-w64-x86_64-gettext                 [################################] 100%
( 47/105) installing mingw-w64-x86_64-libtre-git              [################################] 100%
( 48/105) installing mingw-w64-x86_64-libsystre               [################################] 100%
( 49/105) installing mingw-w64-x86_64-ncurses                 [################################] 100%
( 50/105) installing mingw-w64-x86_64-bzip2                   [################################] 100%
( 51/105) installing mingw-w64-x86_64-libffi                  [################################] 100%
( 52/105) installing mingw-w64-x86_64-mpdecimal               [################################] 100%
( 53/105) installing mingw-w64-x86_64-openssl                 [################################] 100%
Optional dependencies for mingw-w64-x86_64-openssl
    mingw-w64-x86_64-ca-certificates
( 54/105) installing mingw-w64-x86_64-termcap                 [################################] 100%
( 55/105) installing mingw-w64-x86_64-readline                [################################] 100%
( 56/105) installing mingw-w64-x86_64-tcl                     [################################] 100%
( 57/105) installing mingw-w64-x86_64-sqlite3                 [################################] 100%
( 58/105) installing mingw-w64-x86_64-tk                      [################################] 100%
( 59/105) installing mingw-w64-x86_64-xz                      [################################] 100%
( 60/105) installing mingw-w64-x86_64-tzdata                  [################################] 100%
( 61/105) installing mingw-w64-x86_64-python                  [################################] 100%
( 62/105) installing mingw-w64-x86_64-xxhash                  [################################] 100%
( 63/105) installing mingw-w64-x86_64-gdb                     [################################] 100%
Optional dependencies for mingw-w64-x86_64-gdb
    mingw-w64-x86_64-python-pygments: for syntax highlighting
( 64/105) installing mingw-w64-x86_64-gdb-multiarch           [################################] 100%
Optional dependencies for mingw-w64-x86_64-gdb-multiarch
    mingw-w64-x86_64-python-pygments: for syntax highlighting
( 65/105) installing mingw-w64-x86_64-libgccjit               [################################] 100%
( 66/105) installing mingw-w64-x86_64-libmangle-git           [################################] 100%
( 67/105) installing mingw-w64-x86_64-make                    [################################] 100%
( 68/105) installing mingw-w64-x86_64-pkgconf                 [################################] 100%
( 69/105) installing mingw-w64-x86_64-tools-git               [################################] 100%
( 70/105) installing mingw-w64-x86_64-winstorecompat-git      [################################] 100%
( 71/105) installing mingw-w64-x86_64-libltdl                 [################################] 100%
( 72/105) installing mingw-w64-x86_64-libtool                 [################################] 100%
( 73/105) installing heimdal                                  [################################] 100%
( 74/105) installing libcbor                                  [################################] 100%
( 75/105) installing libfido2                                 [################################] 100%
( 76/105) installing openssh                                  [################################] 100%
( 77/105) installing perl-Error                               [################################] 100%
( 78/105) installing perl-Authen-SASL                         [################################] 100%
( 79/105) installing perl-Encode-Locale                       [################################] 100%
( 80/105) installing perl-HTTP-Date                           [################################] 100%
( 81/105) installing perl-File-Listing                        [################################] 100%
( 82/105) installing perl-HTML-Tagset                         [################################] 100%
( 83/105) installing perl-Clone                               [################################] 100%
( 84/105) installing perl-IO-HTML                             [################################] 100%
( 85/105) installing perl-LWP-MediaTypes                      [################################] 100%
( 86/105) installing perl-URI                                 [################################] 100%
( 87/105) installing perl-HTTP-Message                        [################################] 100%
( 88/105) installing perl-HTML-Parser                         [################################] 100%
( 89/105) installing perl-HTTP-Cookies                        [################################] 100%
( 90/105) installing perl-HTTP-Daemon                         [################################] 100%
( 91/105) installing perl-HTTP-Negotiate                      [################################] 100%
( 92/105) installing perl-Net-HTTP                            [################################] 100%
( 93/105) installing perl-WWW-RobotRules                      [################################] 100%
( 94/105) installing perl-Try-Tiny                            [################################] 100%
( 95/105) installing perl-libwww                              [################################] 100%
Optional dependencies for perl-libwww
    perl-LWP-Protocol-https: for https:// url schemes
( 96/105) installing perl-TimeDate                            [################################] 100%
( 97/105) installing perl-MailTools                           [################################] 100%
( 98/105) installing perl-IO-Stringy                          [################################] 100%
( 99/105) installing perl-Convert-BinHex                      [################################] 100%
module test... pass.
(100/105) installing perl-MIME-tools                          [################################] 100%
(101/105) installing perl-Net-SSLeay                          [################################] 100%
(102/105) installing perl-IO-Socket-SSL                       [################################] 100%
(103/105) installing perl-Net-SMTP-SSL                        [################################] 100%
(104/105) installing perl-TermReadKey                         [################################] 100%
(105/105) installing git                                      [################################] 100%
Optional dependencies for git
    python: various helper scripts
    subversion: git svn
:: Running post-transaction hooks...
(1/1) Updating the info directory file...

berou@LAPTOP-0SQHKMMQ MSYS ~
$

Installation de la dernière version d’Elixir dans le dossier $HOME/elixir

Nous installation avec msys2 la version d’Elixir selon les instructions de la documentation de Elixir-Desktop

  • mkdir $HOME/elixir && cd $HOME/elixir
  • wget https://github.com/elixir-lang/elixir/releases/download/v1.12/Precompiled.zip
  • unzip Precompiled.zip
  • echo « export PATH=\ »$HOME/elixir/bin:\$PATH\ » » >> ~/.bashrc
  • export PATH= »$HOME/elixir/bin:$PATH »

Dans la liste des instructions ci-dessus :

  • $HOME est le répertoire : /home/berou
  • / est le dossier de msys64 soit : c:\msys64

Nous prenons la photo de la variable d’environnement path windows, ne sachant pas si le PATH msys2 modifiera ou utilisera ce path ou encore dispose d’un path propre.

Desktop windows pour hello phoenix#7-Variable d'environnement path avant installation
Desktop windows pour hello phoenix#7-Variable d’environnement path avant installation

La variable msys2 $PATH avant installation :

berou@LAPTOP-0SQHKMMQ MSYS /
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

berou@LAPTOP-0SQHKMMQ MSYS /

Nous exécutons les 2 premières commandes :

berou@LAPTOP-0SQHKMMQ MSYS ~
$ mkdir $HOME/elixir && cd $HOME/elixir

berou@LAPTOP-0SQHKMMQ MSYS ~/elixir
$ wget https://github.com/elixir-lang/elixir/releases/download/v1.12/Precompiled.zip
--2023-08-30 12:47:37--  https://github.com/elixir-lang/elixir/releases/download/v1.12/Precompiled.zip
Loaded CA certificate '/usr/ssl/certs/ca-bundle.crt'
Resolving github.com (github.com)... 140.82.121.4
Connecting to github.com (github.com)|140.82.121.4|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2023-08-30 12:47:37 ERROR 404: Not Found.

berou@LAPTOP-0SQHKMMQ MSYS ~/elixir
$

La version download/v1.12/Precompiled.zip n’est plus disponible. Nous devons trouver une version plus récente.

La dernière version que nous trouvons en Precompiled.zip est la version v1.13.4 :

  • wget https://github.com/elixir-lang/elixir/releases/download/v1.13.4/Precompiled.zip

La numérotation des versions précompilées a changé. Nous avons la liste des versions disponibles :

Nous pouvons prendre la dernière version :

  • wget https://github.com/elixir-lang/elixir/releases/download/v1.14.5/elixir-otp-25.zip

Execution de wget :

berou@LAPTOP-0SQHKMMQ MSYS ~/elixir
$ wget https://github.com/elixir-lang/elixir/releases/download/v1.14.5/elixir-otp-25.zip
--2023-08-30 13:54:52--  https://github.com/elixir-lang/elixir/releases/download/v1.14.5/elixir-otp-25.zip
Loaded CA certificate '/usr/ssl/certs/ca-bundle.crt'
Resolving github.com (github.com)... 140.82.121.3
Connecting to github.com (github.com)|140.82.121.3|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/1234714/53b2f24e-3cdd-40d3-9c99-e61643ee5b19?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230830%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230830T115453Z&X-Amz-Expires=300&X-Amz-Signature=b2b4689e4566c37847f5ab9bcc0e31801820fefb571ce2b40ee3d79b667cb553&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=1234714&response-content-disposition=attachment%3B%20filename%3Delixir-otp-25.zip&response-content-type=application%2Foctet-stream [following]
--2023-08-30 13:54:53--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/1234714/53b2f24e-3cdd-40d3-9c99-e61643ee5b19?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230830%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230830T115453Z&X-Amz-Expires=300&X-Amz-Signature=b2b4689e4566c37847f5ab9bcc0e31801820fefb571ce2b40ee3d79b667cb553&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=1234714&response-content-disposition=attachment%3B%20filename%3Delixir-otp-25.zip&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.110.133, 185.199.108.133, 185.199.109.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6684758 (6.4M) [application/octet-stream]
Saving to: 'elixir-otp-25.zip'

elixir-otp-25.zip         100%[===================================>]   6.38M  33.5MB/s    in 0.2s

2023-08-30 13:54:53 (33.5 MB/s) - 'elixir-otp-25.zip' saved [6684758/6684758]


berou@LAPTOP-0SQHKMMQ MSYS ~/elixir
$

Nous poursuivons l’installation :

  • unzip elixir-otp-25.zip
berou@LAPTOP-0SQHKMMQ MSYS ~/elixir
$ unzip  elixir-otp-25.zip
-bash: unzip: command not found

berou@LAPTOP-0SQHKMMQ MSYS ~/elixir
$

Nous devons installer unzip dans msys2 : pacman -S unzip

berou@LAPTOP-0SQHKMMQ MSYS ~/elixir
$ pacman -S unzip
resolving dependencies...
looking for conflicting packages...

Packages (1) unzip-6.0-2

Total Download Size:   0.09 MiB
Total Installed Size:  0.45 MiB

:: Proceed with installation? [Y/n] Y
:: Retrieving packages...
 unzip-6.0-2-x86_64                93.1 KiB   123 KiB/s 00:01 [################################] 100%
(1/1) checking keys in keyring                                [################################] 100%
(1/1) checking package integrity                              [################################] 100%
(1/1) loading package files                                   [################################] 100%
(1/1) checking for file conflicts                             [################################] 100%
(1/1) checking available disk space                           [################################] 100%
:: Processing package changes...
(1/1) installing unzip                                        [################################] 100%

berou@LAPTOP-0SQHKMMQ MSYS ~/elixir
$

Nous relançons la commande unzip elixir-otp-25.zip :

Desktop windows pour hello phoenix#8- Installation Elixir_OTP_25
Desktop windows pour hello phoenix#8- Installation Elixir_OTP_25

Nous réalisons l’enregistrement d’elixir dans le path :

berou@LAPTOP-0SQHKMMQ MSYS ~
$ elixir -v
-bash: elixir: command not found

berou@LAPTOP-0SQHKMMQ MSYS ~
$ echo "export PATH=\"$HOME/elixir/bin:\$PATH\"" >> ~/.bashrc

berou@LAPTOP-0SQHKMMQ MSYS ~
$ export PATH="$HOME/elixir/bin:$PATH"

berou@LAPTOP-0SQHKMMQ MSYS ~
$ elixir -v
/home/berou/elixir/bin/elixir: line 248: exec: erl: not found

berou@LAPTOP-0SQHKMMQ MSYS ~
$ 

Nous vérifions le path :

berou@LAPTOP-0SQHKMMQ MSYS ~
$  echo $PATH
/home/berou/elixir/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

berou@LAPTOP-0SQHKMMQ MSYS ~
$

Le dossier /home/berou/elixir/bin est bien ajouté au $PATH avec $HOME en /home/berou

Nous devons regarder l’erreur :

  • elixir/bin/elixir: line 248: exec: erl: not found
berou@LAPTOP-0SQHKMMQ MSYS ~
$ erlang -v
-bash: erlang: command not found

berou@LAPTOP-0SQHKMMQ MSYS ~
$

Nous devons soit installer erlang sous msys2 soit ajouter le chemin vers Erlang\bin dans le $PATH :

  • C:\Program Files\Erlang OTP\bin

Cela donnera l’accès à erl.exe

Nous devons convertir le format windows du path en format Msys2 :

  • cygpath -u C:\\ »Program Files »\\ »Erlang OTP »\\bin
berou@LAPTOP-0SQHKMMQ MSYS ~
$ cygpath -u C:\\"Program Files"\\"Erlang OTP"\\bin
/c/Program Files/Erlang OTP/bin

berou@LAPTOP-0SQHKMMQ MSYS ~
$

et pour ajouter le path :

  • export PATH= »/c/Program Files/Erlang OTP/bin:$PATH »
  • echo « export PATH=\ »/c/Program Files/Erlang OTP/bin:\$PATH\ » » >> ~/.bashrc

Maintenant nous avons bien la version d’Elixir qui s’affiche :

berou@LAPTOP-0SQHKMMQ MSYS ~
$ export PATH="/c/Program Files/Erlang OTP/bin:$PATH"

berou@LAPTOP-0SQHKMMQ MSYS ~
$ echo "export PATH=\"/c/Program Files/Erlang OTP/bin:\$PATH\"" >> ~/.bashrc

berou@LAPTOP-0SQHKMMQ MSYS ~
$  echo $PATH
/c/Program Files/Erlang OTP/bin:/home/berou/elixir/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

berou@LAPTOP-0SQHKMMQ MSYS ~
$ elixir -v
Erlang/OTP 25 [erts-13.0.4] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit:ns]

Elixir 1.14.5 (compiled with Erlang/OTP 25)

berou@LAPTOP-0SQHKMMQ MSYS ~
$

Il est possible que nous aurions pu utiliser cette méthode plutôt que de réinstaller elixir sous msys2.

Installation de Nodejs

Msys2 peut installer nodejs avec pacman

  • pacman -S mingw-w64-x86_64-nodejs
berou@LAPTOP-0SQHKMMQ MSYS ~
$ pacman -S mingw-w64-x86_64-nodejs
resolving dependencies...
looking for conflicting packages...

Packages (5) mingw-w64-x86_64-c-ares-1.19.1-1  mingw-w64-x86_64-icu-73.2-1
             mingw-w64-x86_64-libuv-1.46.0-1  winpty-0.4.3-1  mingw-w64-x86_64-nodejs-18.17.0-2

Total Download Size:    36.74 MiB
Total Installed Size:  195.43 MiB

:: Proceed with installation? [Y/n] Y
:: Retrieving packages...
 mingw-w64-x86_64-c-ares-1.1...   210.8 KiB   357 KiB/s 00:01 [################################] 100%
 mingw-w64-x86_64-libuv-1.46...   231.3 KiB   286 KiB/s 00:01 [################################] 100%
 winpty-0.4.3-1-x86_64            500.5 KiB   577 KiB/s 00:01 [################################] 100%
 mingw-w64-x86_64-nodejs-18....    13.6 MiB  7.14 MiB/s 00:02 [################################] 100%
 mingw-w64-x86_64-icu-73.2-1-any   22.3 MiB  11.2 MiB/s 00:02 [################################] 100%
 Total (5/5)                       36.7 MiB  17.5 MiB/s 00:02 [################################] 100%
(5/5) checking keys in keyring                                [################################] 100%
(5/5) checking package integrity                              [################################] 100%
(5/5) loading package files                                   [################################] 100%
(5/5) checking for file conflicts                             [################################] 100%
(5/5) checking available disk space                           [################################] 100%
:: Processing package changes...
(1/5) installing mingw-w64-x86_64-c-ares                      [################################] 100%
(2/5) installing mingw-w64-x86_64-icu                         [################################] 100%
(3/5) installing mingw-w64-x86_64-libuv                       [################################] 100%
(4/5) installing winpty                                       [################################] 100%
(5/5) installing mingw-w64-x86_64-nodejs                      [################################] 100%

berou@LAPTOP-0SQHKMMQ MSYS ~
$

Nous avons le chemin vers nodejs/bin :

Desktop windows pour hello phoenix#9- Installation Nodejs
Desktop windows pour hello phoenix#9- Installation Nodejs

je prends le chemin de node.exe

  • C:\msys64\mingw64\bin que nous mettons au format
  • /c/msys64/mingw64/bin

Nous ajoutons le répertoire dans le path

  • export PATH= »/c/msys64/mingw64/bin:$PATH »
  • echo « export PATH=\ »/c/msys64/mingw64/bin:\$PATH\ » » >> ~/.bashrc

Et nous retestons l’installation de node :

berou@LAPTOP-0SQHKMMQ MSYS ~
$ node -v
-bash: node: command not found

berou@LAPTOP-0SQHKMMQ MSYS ~
$ export PATH="/c/msys64/mingw64/bin:$PATH"

berou@LAPTOP-0SQHKMMQ MSYS ~
$ echo "export PATH=\"/c/msys64/mingw64/bin:\$PATH\"" >> ~/.bashrc

berou@LAPTOP-0SQHKMMQ MSYS ~
$ node -v
v18.17.0

berou@LAPTOP-0SQHKMMQ MSYS ~
$

Utilisation de nsis comme outil pour créer un installeur pour notre application

Nsis est un outil open source pour créer des logiciel d’installation Windows.

Sur la page de nsis, nous pouvons télécharger le logiciel d’instalaltion de nsis :

  • nsis-3.09-setup.exe
Desktop windows pour hello phoenix#10- Installation de NSIS
Desktop windows pour hello phoenix#10- Installation de NSIS
Desktop windows pour hello phoenix#11- Acceptation de la licence de NSIS
Desktop windows pour hello phoenix#11- Acceptation de la licence de NSIS
Desktop windows pour hello phoenix#12- Choix des composants à installer pour NSIS
Desktop windows pour hello phoenix#12- Choix des composants à installer pour NSIS
Desktop windows pour hello phoenix#13- Choix du repertoire d installation de NSIS
Desktop windows pour hello phoenix#13- Choix du repertoire d installation de NSIS
Desktop windows pour hello phoenix#14- Installation terminée pour NSIS
Desktop windows pour hello phoenix#14- Installation terminée pour NSIS

Nous avons installé l’ensemble des pré-requis pour utiliser Elixir-Desktop

Conclusion

L’installation des prérequis a été assez longue. Pour simplifier la démarche d’installation des prérequis, après avoir vérifié qu’Elixir et Erlang sont installés, nous pouvons simplement ajouter le path de ces 2 logiciels dans $PATH de MSYS2.

Si vous avez aimé l'article vous êtes libre de le partager :-)

Laisser un commentaire