Desde Código Fuente

Compilar Vallumix desde el código fuente te da control total sobre las optimizaciones, parches y arquitecturas objetivo. Este método es el recomendado para desarrolladores, mantenedores de distribuciones o entornos con requisitos de compilación cruzada.

Requisitos previos

  • Rust toolchain ≥ 1.75 (MSRV). Recomendado: latest stable via rustup.
  • cargo y rustc funcionando.
  • Para compilación cruzada: cross o docker.
  • Sistema operativo Linux con acceso root (para ejecutar, no para compilar).
Vallumix no requiere dependencias de sistema en runtime, pero necesita un toolchain Rust completo para compilar. No intentes compilarlo con el rustc de los repositorios de la distribución si está desactualizado; usa rustup.

Compilación nativa

1. Clona el repositorio

git clone https://github.com/jorgealonsodev/vallumix.git
cd vallumix

2. Compila en modo release

cargo build --release

El binario resultante se encuentra en target/release/vallumix.

3. Instala en el sistema

sudo cp target/release/vallumix /usr/local/bin/
sudo chmod +x /usr/local/bin/vallumix

Compilación estática con musl

Para producir un binario completamente estático sin dependencias de glibc:

# Añade el target musl
rustup target add x86_64-unknown-linux-musl

# Compila
cargo build --release --target x86_64-unknown-linux-musl

El binario estático se genera en target/x86_64-unknown-linux-musl/release/vallumix.

El binario musl es el que se distribuye en los releases oficiales. Es ligeramente mayor que el binario glibc pero garantiza compatibilidad universal entre distribuciones sin preocuparse por versiones de libc.

Compilación cruzada

Para compilar desde tu máquina de desarrollo x86_64 hacia ARM64 (por ejemplo, para AWS Graviton o Raspberry Pi):

# Instala cross
cargo install cross --git https://github.com/cross-rs/cross

# Compila para ARM64
cross build --release --target aarch64-unknown-linux-musl

cross utiliza contenedores Docker con los toolchains necesarios, evitando que instales cadenas de compilación cruzada en tu sistema anfitrión.

Verificación

Tras compilar, ejecuta los tests y verifica el binario:

cargo test --workspace
cargo clippy --workspace -- -D warnings
./target/release/vallumix --version

Si cargo test pasa y clippy no reporta warnings, tu compilación es válida.