ビルド手順 (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 gen
にtarget_cpu
パラメーターを渡す必要があります。
$ gn gen out/Testing --args='import(...) target_cpu="arm"'
ビルド
ビルド手順: GNを参照してください。
トラブルシューティング
共有ライブラリの読み込みエラー: libtinfo.so.5
プリビルドされたclang
はlibtinfo.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/clang
にclang
をインストールした場合
$ gn gen out/Testing --args='import("//electron/build/args/testing.gn") clang_base_path = "/usr/local/bin"'
clang
以外のコンパイラを使用する
clang
以外のコンパイラでElectronをビルドすることはサポートされていません。