Instructions pour compiler Electron (Linux)
Suivez les instructions ci-dessous pour compiler **Electron lui même **, afin d'obtenir une version personnalisée d'Electron. Pour regrouper et distribuer le code de votre application avec les binaires précompilés d'Electron, reportez-vous au guide de la distribution d'applications.
Prérequis
- Au moins 25GB d'espace disque et 8 Go de RAM.
- Python >= 3.7.
- Node.js. Il existe différentes façons d’installer Node. Vous pouvez soit télécharger le code source depuis nodejs.org et le compiler vous-même, permettant ansi l’installation de Node sur votre propre répertoire comme un utilisateur standard, ou bien essayer les dépôts tels que NodeSource.
- clang 3.4 ou plus.
- En-têtes de développement de GTK+ et libnotify.
Sur Ubuntu >= 20.04, installez les bibliothèques suivantes :
$ sudo apt-get install build-essential clang libdbus-1-dev libgtk-3-dev \
libnotify-dev libasound2-dev libcap-dev \
libcups2-dev libxtst-dev \
libxss1 libnss3-dev gcc-multilib g++-multilib curl \
gperf bison python3-dbusmock openjdk-8-jre
Sur Ubuntu < 20.04, installez les bibliothèques suivantes :
$ sudo apt-get install build-essential clang libdbus-1-dev libgtk-3-dev \
libnotify-dev libgnome-keyring-dev \
libasound2-dev libcap-dev libcups2-dev libxtst-dev \
libxss1 libnss3-dev gcc-multilib g++-multilib curl \
gperf bison python-dbusmock openjdk-8-jre
Sur RHEL / CentOS, installez les bibliothèques suivantes :
$ sudo yum install clang dbus-devel gtk3-devel libnotify-devel \
libgnome-keyring-devel xorg-x11-server-utils libcap-devel \
cups-devel libXtst-devel alsa-lib-devel libXrandr-devel \
nss-devel python-dbusmock openjdk-8-jre
Sur Fedora, installez les bibliothèques suivantes :
$ sudo dnf install clang dbus-devel gperf gtk3-devel \
libnotify-devel libgnome-keyring-devel libcap-devel \
cups-devel libXtst-devel alsa-lib-devel libXrandr-devel \
nss-devel python-dbusmock
Sur les architectures Linux / Manjaro, installez les bibliothèques suivantes :
$ sudo pacman -Syu base-devel clang libdbus gtk2 libnotify \
libgnome-keyring alsa-lib libcap libcups libxtst \
libxss nss gcc-multilib curl gperf bison \
python2 python-dbusmock jdk8-openjdk
D'autres distributions peuvent proposer des paquets similaires à installer via des gestionnaires de paquets tels que pacman. Ou on peut compiler à partir du code source.
Multi-compilation
Si vous voulez compiler une version arm
, vous devez installer les dépendances suivantes :
$ sudo apt-get install libc6-dev-armhf-cross linux-libc-dev-armhf-cross \
g++-arm-linux-gnueabihf
De même pour arm64
, installez ce qui suit :
$ sudo apt-get install libc6-dev-arm64-cross linux-libc-dev-arm64-cross \
g++-aarch64-linux-gnu
Et pour effectuer une compilation croisée pour les cibles arm
ou une autre cible, vous devez passer le paramètre target_cpu
avec la valeur gn gen
:
$ gn gen out/Testing --args='import(...) target_cpu="arm"'
Compilation
Voir les Instructions de compilation : GN
Résolution de problème
Erreur lors du chargement Shared Libraries : libtinfo.so.5
clang
prebuilt essaiera de créer un lien vers libtinfo.so.5
. Selon l'architecture de l'hôte, cela créera un lien symbolique vers le libncurses
approprié :
$ sudo ln -s /usr/lib/libncurses.so.5 /usr/lib/libtinfo.so.5
Sujets Avancés
La configuration par défaut de la compilation cible les principales distributions Linux de bureau. Les informations suivantes pourront vous aider à compiler pour une distribution ou un périphérique spécifique,.
Utiliser le système clang
au lieu des fichiers binaires téléchargés clang
Par défaut, Electron est compilé avec les binaires précompilés de clang
fournis par le projet Chromium. Si pour une raison quelconque, vous souhaitez construire avec le clang
installé dans votre système, vous pouvez spécifier l'argument clang_base_path
dans le GN args.
Par exemple, si vous avez installé clang
sous /usr/local/bin/clang
:
$ gn gen out/Testing --args='import("//electron/build/args/testing.gn") clang_base_path = "/usr/local/bin"'
Utiliser un compilateur autre que clang
La construction d'électrons avec des compilateurs autres que clang
n'est pas prise en charge.