Ir al contenido

Compilar en Linux

En Linux, pyzed build crea una carpeta, dist/Shop/, con un ejecutable llamado Shop y todo lo que necesita. No hace falta firmarla.

  1. Instala uv si no lo tienes:

    Ventana de terminal
    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. En la carpeta del proyecto, compila:

    Ventana de terminal
    uv run pyzed build
  3. Pruébala:

    Ventana de terminal
    ./dist/Shop/Shop

La app enlaza con la biblioteca de C (glibc) del sistema donde se compiló, y funciona en esa versión o en una más nueva. Compila en la distribución más antigua que quieras soportar. Por ejemplo, una app compilada en Ubuntu 22.04 funciona en Ubuntu 22.04, 24.04 y posteriores, y en otras distribuciones con glibc 2.35 o más nueva, pero no en Ubuntu 20.04.

Los wheels de Pyzed necesitan glibc 2.28 o más nueva (manylinux_2_28), así que esa es la base más antigua posible. Alpine y otros sistemas basados en musl necesitan una compilación hecha en ellos.

La app lleva Python y Pyzed consigo, pero usa las bibliotecas gráficas y de ventanas del sistema: una sesión de escritorio con X11 o Wayland, libxkbcommon y un driver de Vulkan u OpenGL (Mesa en la mayoría de sistemas). Todas las distribuciones de escritorio los tienen; las imágenes mínimas de servidor puede que no.

La forma más sencilla: un archivo comprimido de la carpeta. La gente lo descomprime donde quiera y ejecuta ./Shop/Shop.

Ventana de terminal
tar -czf Shop-linux-x86_64.tar.gz -C dist Shop
# o un zip, que es lo que usa la autoactualización:
(cd dist && zip -qr ../Shop-linux-x86_64.zip Shop)

Llama al zip <app>-linux-<arq>.zip si piensas actualizar la app sola.

Un archivo .desktop hace que la app aparezca en el menú de aplicaciones del escritorio, con su icono. Instálalo por usuario, sin root:

~/.local/share/applications/com.acme.shop.desktop
[Desktop Entry]
Type=Application
Name=Shop
Exec=/home/tu/.local/share/shop/Shop
Icon=/home/tu/.local/share/shop/icon.png
Categories=Office;
Terminal=false

El instalador de Pyzed Design para Linux hace exactamente esto: descarga el zip de la versión, lo comprueba con el SHA256SUMS de la versión, lo descomprime en ~/.local/share/pyzed-design, enlaza un comando en ~/.local/bin y añade la entrada al menú. Su script, docs/public/install.sh, es una buena plantilla para tu propio instalador curl ... | sh.

  • Arquitectura: la app se compila para la máquina donde se compila: x86_64, o aarch64 en ARM (GitHub también ofrece máquinas ARM, mira CI).
  • Sin GPU: en máquinas virtuales sin GPU, arranca la app con el renderizador por CPU si la ventana queda en blanco; mira Solución de problemas.
  • Bit de ejecución: los zip creados en Windows pierden el bit de ejecución. Compila y comprime las apps de Linux en Linux.