Инструкции по сборке (Linux)
Следуйте приведенным ниже рекомендациям для сборки Electron на Linux с целью создания собственных библиотек Electron. Для объединения и распространения кода вашего приложения с предварительно собранными бинарниками Electron см. руководство по распространению приложений.
Предварительные условия
- Не менее 25 ГБ дискового пространства и 8 ГБ оперативной памяти.
- Python >= 3.7.
- Node.js. Существует несколько способов установки Node.js. Вы можете скачать исходный код с 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 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
В 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 или других целей, вы должны передать параметр target_cpu в gn gen.
$ gn gen out/Testing --args='import(...) target_cpu="arm"'
Сборка
Отладка
Ошибка при загрузке динамических библиотек: 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 собирается с предварительно собранными clang бинарниками, предоставленными проектом Chromium. Если по какой-либо причине вы хотите скомпилировать с clang установленным в вашей системе, вы можете указать аргумент clang_base_path в аргументах GN.
Например, если вы установили clang в /usr/local/bin/clang:
$ gn gen out/Testing --args='import("//electron/build/args/testing.gn") clang_base_path = "/usr/local/bin"'
Использование компиляторов, отличных от clang
Сборка Electron с компиляторами, отличными от clang, не поддерживается.
© GitHub Inc.
Licensed under the MIT license.
https://www.electronjs.org/docs/latest/development/build-instructions-linux