メインコンテンツへスキップ

ビルド手順 (Linux)

カスタムElectronバイナリを作成するために、Linux上で**Electron自体**をビルドする際のガイドラインを以下に示します。プリビルドされたElectronバイナリを使用してアプリコードをバンドルおよび配布する場合は、アプリケーション配布ガイドを参照してください。

前提条件

  • ディスク容量25GB以上、RAM 8GB以上。
  • Python >= 3.7。
  • Node.js。Nodeをインストールするにはいくつかの方法があります。nodejs.orgからソースコードをダウンロードしてコンパイルできます。これにより、標準ユーザーとして自分のホームディレクトリにNodeをインストールできます。または、NodeSourceなどのリポジトリを試すこともできます。
  • clang 3.4以降。
  • GTK 3とlibnotifyの開発用ヘッダー。

Ubuntu >= 20.04では、以下のライブラリをインストールします。

$ 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

Ubuntu < 20.04では、以下のライブラリをインストールします。

$ 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

RHEL/CentOSでは、以下のライブラリをインストールします。

$ 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

Fedoraでは、以下のライブラリをインストールします。

$ 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

Arch Linux/Manjaroでは、以下のライブラリをインストールします。

$ 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

他のディストリビューションでは、pacmanなどのパッケージマネージャーを使用して同様のパッケージをインストールできる場合があります。または、ソースコードからコンパイルすることもできます。

クロスコンパイル

armターゲット向けにビルドする場合は、以下の依存関係もインストールする必要があります。

$ sudo apt-get install libc6-dev-armhf-cross linux-libc-dev-armhf-cross \
g++-arm-linux-gnueabihf

同様に、arm64の場合は、以下をインストールします。

$ sudo apt-get install libc6-dev-arm64-cross linux-libc-dev-arm64-cross \
g++-aarch64-linux-gnu

そして、armまたは他のターゲット向けにクロスコンパイルするには、gn gentarget_cpuパラメーターを渡す必要があります。

$ gn gen out/Testing --args='import(...) target_cpu="arm"'

ビルド

ビルド手順: GNを参照してください。

トラブルシューティング

共有ライブラリの読み込みエラー: libtinfo.so.5

プリビルドされたclanglibtinfo.so.5にリンクしようとします。ホストアーキテクチャに応じて、適切なlibncursesにシンボリックリンクします。

$ sudo ln -s /usr/lib/libncurses.so.5 /usr/lib/libtinfo.so.5

高度なトピック

デフォルトのビルド構成は、主要なデスクトップLinuxディストリビューションを対象としています。特定のディストリビューションまたはデバイス向けにビルドするには、以下の情報が役立つ場合があります。

ダウンロードしたclangバイナリではなく、システムのclangを使用する

デフォルトでは、ElectronはChromiumプロジェクトによって提供されるプリビルドされたclangバイナリを使用してビルドされます。何らかの理由でシステムにインストールされているclangを使用してビルドする場合は、GN引数でclang_base_path引数を指定できます。

たとえば、/usr/local/bin/clangclangをインストールした場合

$ gn gen out/Testing --args='import("//electron/build/args/testing.gn") clang_base_path = "/usr/local/bin"'

clang以外のコンパイラを使用する

clang以外のコンパイラでElectronをビルドすることはサポートされていません。