Saltar al contenido

Debian

El paquete Debian estándar generado por el empaquetador de Tauri tiene todo lo que necesitas para enviar tu aplicación a distribuciones de Linux basadas en Debian, definiendo los iconos de tu aplicación, generando un archivo Desktop y especificando las dependencias libwebkit2gtk-4.1-0 y libgtk-3-0, junto con libappindicator3-1 si tu aplicación usa la bandeja del sistema (system tray).

Las bibliotecas fundamentales como glibc frecuentemente rompen la compatibilidad con sistemas más antiguos. Por esta razón, debes compilar tu aplicación Tauri utilizando el sistema base más antiguo que pretendas admitir y que también proporcione los paquetes requeridos de WebKitGTK 4.1 para Tauri v2. Ubuntu 22.04 y Debian 12 son ejemplos adecuados de referencia porque proporcionan libwebkit2gtk-4.1-dev desde sus repositorios estándar de paquetes. Compilar en un sistema base más nuevo puede aumentar la versión mínima de glibc requerida por tu aplicación, por lo que al ejecutarla en un sistema más antiguo, podrías enfrentarte a un error de tiempo de ejecución como /usr/lib/libc.so.6: version 'GLIBC_2.33' not found. Recomendamos usar un contenedor Docker o GitHub Actions para compilar tu aplicación Tauri para Linux.

Consulta los problemas tauri-apps/tauri#1355 y rust-lang/rust#57497, además de la guía de AppImage para obtener más información.

Tauri ofrece algunas configuraciones para el paquete Debian en caso de que necesites más control.

Si tu aplicación depende de dependencias adicionales del sistema, puedes especificarlas en tauri.conf.json > bundle > linux > deb.

Para incluir archivos personalizados en el paquete Debian, puedes proporcionar una lista de archivos o carpetas en tauri.conf.json > bundle > linux > deb > files. El objeto de configuración mapea la ruta dentro del paquete Debian a la ruta del archivo en tu sistema de archivos, relativa al archivo tauri.conf.json. Aquí tienes un ejemplo de configuración:

{
"bundle": {
"linux": {
"deb": {
"files": {
"/usr/share/README.md": "../README.md", // copies the README.md file to /usr/share/README.md
"/usr/share/assets": "../assets/" // copies the entire assets directory to /usr/share/assets
}
}
}
}
}

Compilación cruzada para dispositivos basados en ARM

Sección titulada “Compilación cruzada para dispositivos basados en ARM”

Esta guía cubre la compilación manual. Consulta nuestra guía de GitHub Actions para ver un ejemplo de flujo de trabajo que aprovecha QEMU para compilar la aplicación. Esto será mucho más lento pero también podrá compilar AppImages.

La compilación manual es adecuada cuando no necesitas compilar tu aplicación con frecuencia y prefieres una configuración de una sola vez. Los siguientes pasos asumen que usas una distribución de Linux basada en Debian/Ubuntu.

  1. Instalar los targets de Rust para la arquitectura deseada

    Sección titulada “Instalar los targets de Rust para la arquitectura deseada”
    • Para ARMv7 (32 bits): rustup target add armv7-unknown-linux-gnueabihf
    • Para ARMv8 (ARM64, 64 bits): rustup target add aarch64-unknown-linux-gnu
  2. Instalar el linker correspondiente para la arquitectura elegida

    Sección titulada “Instalar el linker correspondiente para la arquitectura elegida”
    • Para ARMv7: sudo apt install gcc-arm-linux-gnueabihf
    • Para ARMv8 (ARM64): sudo apt install gcc-aarch64-linux-gnu
  3. Abre o crea el archivo <project-root>/.cargo/config.toml y añade las siguientes configuraciones según corresponda

    Sección titulada “Abre o crea el archivo <project-root>/.cargo/config.toml y añade las siguientes configuraciones según corresponda”
    [target.armv7-unknown-linux-gnueabihf]
    linker = "arm-linux-gnueabihf-gcc"
    [target.aarch64-unknown-linux-gnu]
    linker = "aarch64-linux-gnu-gcc"
  4. Habilitar la arquitectura respectiva en el gestor de paquetes

    Sección titulada “Habilitar la arquitectura respectiva en el gestor de paquetes”
    • Para ARMv7: sudo dpkg --add-architecture armhf
    • Para ARMv8 (ARM64): sudo dpkg --add-architecture arm64
  5. En Debian, este paso no debería ser necesario, pero en otras distribuciones, es posible que necesites editar /etc/apt/sources.list para incluir la variante de arquitectura ARM. Por ejemplo, en Ubuntu 22.04 añade estas líneas al final del archivo (Recuerda reemplazar jammy por el nombre en código de tu versión de Ubuntu):

    deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports jammy universe
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates universe
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports jammy multiverse
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates multiverse
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports jammy-backports main restricted universe multiverse
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports jammy-security main restricted
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports jammy-security universe
    deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports jammy-security multiverse

    Luego, para evitar problemas con los paquetes principales, debes añadir la arquitectura principal correcta a todas las demás líneas que el archivo contenía previamente. Para sistemas estándar de 64 bits necesitas añadir [arch=amd64], el archivo completo en Ubuntu 22.04 se verá similar a esto:

  6. Actualizar la información de los paquetes: sudo apt-get update && sudo apt-get upgrade -y

    Sección titulada “Actualizar la información de los paquetes: sudo apt-get update && sudo apt-get upgrade -y”
  7. Instalar la biblioteca webkitgtk requerida para la arquitectura elegida

    Sección titulada “Instalar la biblioteca webkitgtk requerida para la arquitectura elegida”
    • Para ARMv7: sudo apt install libwebkit2gtk-4.1-dev:armhf
    • Para ARMv8 (ARM64): sudo apt install libwebkit2gtk-4.1-dev:arm64
  8. Esto no siempre es obligatorio, por lo que puedes continuar primero y verificar si ves errores como Failed to find OpenSSL development headers.

    • Either install the development headers system-wide:
      • Para ARMv7: sudo apt install libssl-dev:armhf
      • Para ARMv8 (ARM64): sudo apt install libssl-dev:arm64
    • O habilita la característica vendor para el crate de OpenSSL en Rust, lo cual afectará a todas las demás dependencias de Rust que usen la misma versión menor. Puedes hacerlo añadiendo esto a la sección de dependencias en tu archivo Cargo.toml:
    openssl-sys = {version = "0.9", features = ["vendored"]}
  9. Establece la variable PKG_CONFIG_SYSROOT_DIR en el directorio adecuado según la arquitectura elegida

    Sección titulada “Establece la variable PKG_CONFIG_SYSROOT_DIR en el directorio adecuado según la arquitectura elegida”
    • Para ARMv7: export PKG_CONFIG_SYSROOT_DIR=/usr/arm-linux-gnueabihf/
    • Para ARMv8 (ARM64): export PKG_CONFIG_SYSROOT_DIR=/usr/aarch64-linux-gnu/
  10. Compilar la aplicación para la versión de ARM deseada

    Sección titulada “Compilar la aplicación para la versión de ARM deseada”
    • Para ARMv7: cargo tauri build –target armv7-unknown-linux-gnueabihf
    • Para ARMv8 (ARM64): cargo tauri build –target aarch64-unknown-linux-gnu

    Elige el conjunto de instrucciones adecuado en función de si quieres realizar una compilación cruzada de tu aplicación Tauri para ARMv7 o ARMv8 (ARM64). Ten en cuenta que los pasos específicos pueden variar según tu distribución de Linux y configuración.


© 2026 Colaboradores de Tauri. CC-BY / MIT