メインコンテンツへ飛ぶ

ビルド手順 (Linux)

カスタム Electron バイナリの作成にあたって Linux で Electron そのもの をビルドするには、以下のガイドラインに従ってください。 アプリのコードをビルド済み Electron バイナリにバンドルして頒布する場合は、アプリケーション頒布 のガイドを参照してください。

必要な環境

  • 25 GB 以上のディスク空き容量と 8 GB 以上の RAM。
  • 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 引数を指定します。

例えば clang/usr/local/bin/clang にインストールされている場合はこのようにします。

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

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

clang 以外のコンパイラを用いた Electron のビルドはサポートされていません。