Sviluppo

Distribuire un programma su Linux dovrebbe essere la parte facile del lavoro: si compila il codice, si prepara un archivio e lo si mette il file a disposizione degli utenti. In realtà, per chi sviluppa software destinato a più distribuzioni del pinguino, il packaging può trasformarsi in un secondo progetto da mantenere. È il problema raccontato dall’autore di Fresh, editor di testo e ambiente di sviluppo per terminale scritto in Rust, dopo aver provato praticamente tutte le strade disponibili: npm, Cargo, AppImage, Flatpak, pacchetti DEB e RPM, AUR, Nix, mise, Homebrew per Linux, Gentoo GURU e semplici archivi contenenti binari precompilati.

La difficoltà non nasce da una mancanza di strumenti. Semmai, al contrario, Linux ha sviluppato nel tempo molti modelli di distribuzione del software, spesso legati alla storia delle singole famiglie di distribuzioni: Debian e derivate ruotano attorno a DEB e APT, Fedora e Red Hat utilizzano RPM e DNF, Arch Linux ha i repository ufficiali affiancati da AUR. A questi si sono aggiunti formati indipendenti dalla distribuzione, gestori orientati agli sviluppatori e sistemi dichiarativi come Nix. Per un progetto relativamente piccolo, mantenerli tutti significa però moltiplicare build, metadati, procedure di pubblicazione e possibili punti di rottura.