遵循下面的引導,在 Linux 上構建 Electron .
Prerequisites
Python 2.7.x. 一些發行版如 CentOS 仍然使用 Python 2.6.x ,所以或許需要 check 你的 Python 版本,使用?
python -V
.Node.js v0.12.x. 有很多方法來安裝 Node. 可以從?Node.js下載原文件并且編譯它 .也可以作為一個標準的用戶在 home 目錄下安裝 node .或者嘗試使用倉庫?NodeSource.
Clang 3.4 或更新的版本.
GTK+開發頭文件和libnotify.
在 Ubuntu, 安裝下面的庫 :
$ sudo apt-get install build-essential clang libdbus-1-dev libgtk2.0-dev \ libnotify-dev libgnome-keyring-dev libgconf2-dev \ libasound2-dev libcap-dev libcups2-dev libxtst-dev \ libxss1 libnss3-dev gcc-multilib g++-multilib
在 Fedora, 安裝下面的庫 :
$ sudo yum install clang dbus-devel gtk2-devel libnotify-devel libgnome-keyring-devel \ xorg-x11-server-utils libcap-devel cups-devel libXtst-devel \ alsa-lib-devel libXrandr-devel GConf2-devel nss-devel
其它版本的也許提供了相似的包來安裝,通過包管理器,例如 pacman. 或一個可以編譯源文件的.
使用虛擬機
如果在虛擬機上構建 Electron,你需要一個固定大小的設備,至少需要 25 gigabytes .
獲取代碼
$ git clone https://github.com/electron/electron.git
Bootstrapping
bootstrap 腳本也是必要下載的構建依賴,來創建項目文件.需要使用 Python 2.7.x 來讓腳本成功執行.正確下載文件會花費較長的時間. 注意我們使用的是?ninja
?來構建 Electron,所以沒有生成?Makefile
?項目.
$ cd electron
$ ./script/bootstrap.py -v
交叉編譯
如果想創建一個?arm
?target ,應當還要下載下面的依賴 :
$ sudo apt-get install libc6-dev-armhf-cross linux-libc-dev-armhf-cross \ g++-arm-linux-gnueabihf
為了編譯?arm
?或?ia32
?targets, 你應當為?bootstrap.py
?腳本使用?--target_arch
?參數:
$ ./script/bootstrap.py -v --target_arch=arm
構建
創建?Release
?、?Debug
?target:
$ ./script/build.py
這個腳本也許會在目錄?out/R
?下創建一個巨大的可執行的 Electron . 文件大小或許會超過 1.3 gigabytes. 原因是 Release target 二進制文件包含了 調試符號 .運行?create-dist.py
?腳本來減小文件的 size :
$ ./script/create-dist.py
這會在?dist
?目錄下創建一個有大量小文件的工作空間. 運行 create-dist.py 腳本之后, 或許你想刪除仍然在?out/R
?下的 1.3+ gigabyte 二進制文件.
可以只創建?Debug
?target:
$ ./script/build.py -c D
創建完畢, 可以在?out/D
下面找到?electron
.
Cleaning
刪除構建文件 :
$ ./script/clean.py
解決問題
確保你已經安裝了所有的依賴 .
Error While Loading Shared Libraries: libtinfo.so.5
預構建的?clang
?會嘗試鏈接到?libtinfo.so.5
. 取決于 host 架構, 適當的使用?libncurses
:
$ sudo ln -s /usr/lib/libncurses.so.5 /usr/lib/libtinfo.so.5
Tests
測試你的修改是否符合項目代碼風格,使用:
$ ./script/cpplint.py
測試有效性使用:
+
$ ./script/test.py