Saltar al contenido principal

Instrucciones de compilación (Linux)

Siga las siguientes pautas para la construcción de Electron en sí mismo en Linux, con el fin de crear binarios personalizados de Electron. For bundling and distributing your app code with the prebuilt Electron binaries, see the application distribution guide.

Prerequisites

  • Al menos 25 GB de espacio en disco y 8 GB de RAM.

  • Python 2.7.x. Algunas distribuciones como CentOS 6.x todavía usan Python 2.6.x por lo que es posible que deba verificar su versión de Python con python -V.

    Asegúrese también de que su sistema y la versión de Python admitan al menos TLS 1.2. Para una prueba rápida, ejecuta el siguiente script:

    $ npx @electron/check-python-tls

    If the script returns that your configuration is using an outdated security protocol, use your system's package manager to update Python to the latest version in the 2.7.x branch. Alternatively, visit https://www.python.org/downloads/ for detailed instructions.

  • Node.js. Hay varias formas de instalar Node. Puede descargar el código fuente de nodejs.org y compilarlo. Doing so permits installing Node on your own home directory as a standard user. O intente repositorios como NodeSource.

  • clang 3.4 o superior.

  • Development headers of GTK 3 and libnotify.

En Ubuntu, instale las siguientes librerias:

$ 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

En RHEL / CentOS, instala las siguientes librerías:

$ 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

En Fedora, instala las siguientes librerías:

$ 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

En Arch Linux/Manjaro, instala las siguientes librerías:

$ 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

Otras distribuciones pueden ofrecer paquetes similares para la instalación mediante administradores de de paquetes como pacman. O uno puede compilar desde el código fuente.

Compilación cruzada

If you want to build for an arm target you should also install the following dependencies:

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

Del mismo modo para arm64, instale los siguientes:

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

Y para compilar de forma cruzada para arm o ia32, debería pasar el parámetro target_cpu a gn gen:

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

Compilando

Ver Build Instructions: GN

Problemas

Error al cargar las bibliotecas compartidas: libtinfo.so.5

Prebuilt clang will try to link to libtinfo.so.5. Depending on the host architecture, symlink to appropriate libncurses:

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

Tópicos Avanzados

The default building configuration is targeted for major desktop Linux distributions. Para compilar para una distribución o dispositivo específico, la siguiente información puede ayudarte.

Usando el sistema clang en vez del binario descarado clang

Por defecto, Electron se compila con archivos binarios clang predefinidos por el proyecto Chromium. If for some reason you want to build with the clang installed in your system, you can specify the clang_base_path argument in the GN args.

Por ejemplo si usted instaló clang en /usr/local/bin/clang:

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

Using compilers other than clang

Building Electron with compilers other than clang is not supported.