Il rilascio di Ubuntu 25.10 ha introdotto un cambiamento significativo nella gestione delle utilità di sistema: alcune delle classiche utilità GNU sono state sostituite dalle analoghe riscritte in linguaggio Rust, provenienti dal progetto uutils. Abbiamo parlato di recente del nuovo sudo-rs e di come la sicurezza della memoria entri in Ubuntu dalla porta principale.
L’obiettivo di Canonical è valutare la stabilità e la sicurezza delle versioni Rust delle utility per eventuali integrazioni nella prossima release LTS (Long-term support) prevista per aprile 2026.
Il fatto che non tutto andasse secondo le più rosee previsioni era quasi scontato e dopo alcuni imprevisti iniziali, un bug più rilevante si è abbattuto sui sistemi Ubuntu 25.10.
Impossibile verificare gli aggiornamenti software su Ubuntu: bug nel comando “date”
Il team di Canonical ha confermato l’esistenza di un bug che ha avuto un impatto diretto sugli aggiornamenti automatici del sistema.
La versione Rust del comando date conteneva un’imperfezione, adesso risolta, che impediva l’arrivo degli aggiornamenti di Ubuntu 25.10. Per verificare se il sistema in uso risulta interessato dalla problematica, basta aprire la finestra del terminale e impartire il seguente comando:
dpkg -l rust-coreutils
Le installazioni che riportano un numero di versione del pacchetto rust-coreutils inferiore a 0.2.2-0ubuntu2 possono essere aggiornate in modo manuale usando il comando che segue:
sudo apt install --update rust-coreutils
Se si fosse aggiornato manualmente il sistema utilizzando apt o in altro modo, è altamente probabile che il problema con date non sussista.
Cause tecniche del bug
L’errore deriva dal mancato supporto per l’opzione -r <file> nel comando date.
L’accaduto evidenzia una debolezza nella gestione del parsing degli argomenti in Rust, dove flag non implementati non generano errori in fase di compilazione né avvisi runtime, a differenza di ciò che accadrebbe in C.
Reazioni della comunità
La comunità Linux ha reagito in modo eterogeneo:
- Sostegno al progetto Rust: alcuni sviluppatori vedono la riscrittura di alcuni tra i più noti comandi base in Rust come un investimento a lungo termine, migliorando la sicurezza e la manutenibilità, specialmente per dispositivi embedded.
- Critiche pragmatiche: molti utenti sottolineano che riscrivere utilità ormai consolidate introduce rischi immediati, come dimostrato dal bug del comando
date. Alcuni suggeriscono che un approccio incrementale alla manutenzione del codice C esistente sarebbe più sicuro. - Performance: test preliminari mostrano un overhead superiore dei binari Rust rispetto ai corrispettivi GNU, principalmente a causa della gestione multicall binary e della dimensione delle librerie caricate dinamicamente.
Osservazioni finali
Il bug emerso nel comando date in Ubuntu 25.10 rappresenta un esempio concreto dei rischi legati alla riscrittura di software maturo usando un nuovo linguaggio. Sebbene la comunità Linux accolga con interesse l’uso di Rust, soprattutto con l’obiettivo di una migliore sicurezza della memoria, la gestione attenta di test, compatibilità e performance rimane essenziale per garantire che l’innovazione non comprometta la stabilità dei sistemi.
Il caso porta nuovamente a riflettere sul ruolo delle licenze software e sul confronto tra software libero di lungo corso e nuove implementazioni, considerando non solo la sicurezza ma anche la sostenibilità della manutenzione a lungo termine.