Altre novità in arrivo per Fedora 40: assisteremo all’unificazione delle directory /usr/bin e /usr/sbin?

5

Vi siete mai chiesti all’interno di quello che è definito il Linux Hieracy Standard quale sia il significato delle varie directory? Fare un ripassino, prima di raccontare la notizia di oggi, torna molto utile, in particolare citando quella che dovrebbe essere la funzione delle varie directory che contengono i comandi che vengono utilizzati normalmente in tutte le distribuzioni Linux:

  • /bin: comandi di sistema essenziali per l’utente non privilegiato (ls , grep , cat).
  • /sbin: comandi di sistema essenziali, ma per l’utente root (fsck, mount, etc).
  • /usr/bin/: comandi per tutti gli utenti.
  • /usr/sbin/: comandi per l’utente root.
  • /usr/local/bin: comandi per tutti gli utenti non forniti dal sistema operativo.
  • /usr/local/sbin: comandi per l’utente root non forniti dal sistema operativo.

Ora, si fa in fretta a capire come questa struttura rischi di diventare in breve tempo un marasma difficilmente gestibile, sebbene ad oggi un tipico $PATH di un sistema Linux li contenga tutti. Se prendo ad esempio il mio laptop, che è Linux Mint 21.2 (quindi Ubuntu 22.04) ho:

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Quindi la sequenza è esattamente invertita rispetto all’elenco presentato sopra, ma la sostanza non cambia: i path sono quelli e, almeno in teoria, dovrebbero far riferimento alle funzioni sopra illustrate. Nelle distribuzioni moderne è in corso da lungo tempo un processo di semplificazione almeno per quanto riguarda /bin e /sbin che sono rispettivamente dei link simbolici a /usr/bin e /usr/sbin, questo avviene in tutte le distribuzioni, da Debian ad AlmaLinux, fino a Fedora.

Chiarito lo stato attuale delle cose, arriviamo alla notizia che racconta della proposta per Fedora 40 di unificare /bin e /sbin quindi di compiere un passo ulteriore verso un’unificazione totale delle directory contenenti gli eseguibili di sistema.

La proposta viene riassunta così:

The /usr/sbin directory becomes a symlink to bin, which means paths like /usr/bin/foo and /usr/sbin/foo point to the same place. /bin and /sbin are already symlinks to /usr/bin and /usr/sbin, so effectively /bin/foo and /sbin/foo also point to the same place. /usr/sbin will be removed from the default $PATH.

La directory /usr/sbin diventa un symlink a bin, significa che path come /usr/bin/foo e /usr/sbin/foo punteranno alla stessa posizione. /bin and /sbin sono già symlink a /usr/bin e /usr/sbin, quindi effettivamente /bin/foo e /sbin/foo punteranno anch’essi alla stessa posizione. /usr/sbin verrà rimossa dal $PATH di default.

La ragione del cambiamento risiede nella volontà di rendere Fedora il più compatibile con le altre distribuzioni (qualsiasi cosa voglia dire), e come ulteriore spiegazione viene posto questo esempio:

  • Fedora ha /sbin/ip mentre Debian ha /bin/ip
  • Fedora ha /bin/chmem e /bin/isosize, ma Debian ha /sbin/chmem e /sbin/isosize
  • Fedora ha anche /sbin/{addpart,delpart,lnstat,nstat,partx,ping,rdma,resizepart,ss,udevadm,update-alternatives}, mentre Debian li ha in /bin, ecc.
  • Fedora diventa più compatibile con Arch, che ha effettuato la stessa fusione qualche anno fa.

Quindi, chiaramente, avere tutto nella stessa directory permetterà una gestione certamente più semplice di tutto, con i symlink a garantire la retro-compatibilità. In termini di effort richiesto, anche se la modifica sembra qualcosa di estremamente minimale (è solo la creazione di un symlink del resto) in realtà ha diverse implicazioni, poiché coinvolge tutti i gestori di pacchetti e gli sviluppatori, poiché la nuova politica andrà adattata in tutti gli rpm che installeranno pacchetti nel sistema in modo che si riferiscano ai nuovi path.

Una cosa è certa: Fedora 40, dopo quanto abbiamo raccontato su Wayland, potrebbe presentare ancor più sorprese del previsto, sempre che la proposta di cui abbiamo raccontato venga accettata.

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

5 risposte a “Altre novità in arrivo per Fedora 40: assisteremo all’unificazione delle directory /usr/bin e /usr/sbin?”

  1. Avatar JustATiredMan
    JustATiredMan

    mmm non sarei molto d’accordo. E’ vero che la suddivisione esiste su basi storiche, ma c’è una certa logica. Tutt’al più, unificherei solo /usr/sbin e /usr/local/sbin, come per /usr/bin con /usr/local/bin, e lascerei le /bin e /sbin.

  2. Avatar amedeo lanza
    amedeo lanza

    Penso che mantenere local permetterebe di personalizzare il sistema senza interferire con i pacchetti installati dai vari APT, yast e compagnia bella: se ho la necessità di installare un pacchetto personalizzato (quindi con opzioni varie e make), mettendolo in local potrei anche installare quello ufficiale e non rischiare di fare un merge potenzialmente disastroso di eseguibili e configurazioni.
    La separazione di bin e sbin probabilmente aveva senso quando era necessario sopperire allo spazio limitato spargendo il sistema su più dischi.

  3. Avatar JaK
    JaK

    Io ci ho riflettuto per un po’ e l’articolo è decisamente chiarificatore. Dopotutto, come indicato dal buon Amedeo Lanza, la separazione aveva senso all’epoca in cui non c’erano dischi capienti E veloci e quindi i programmi non essenziali finivano in un disco “secondario”.

    Riguardo la possibilità di sperimentare pacchetti con i cari vecchi “make configure && make install”, ricordiamo che possiamo pur sempre editare il nostro $PATH personale e fare in modo che una directory non di sistema possa essere usata per i test di cui abbiamo bisogno.

    Senza dimenticare che, nel peggiore dei casi, possiamo sempre utilizzare /opt 😉

  4. Avatar Raoul Scarazzini

    Il problema è che al momento il posizionamento degli eseguibili è assolutamente casuale, nel senso che niente appare in linea con quelle che erano le intenzioni iniziali di quelle cartelle, in nessuna distribuzione. Perché `ip` sta sotto `/sbin` in Fedora e `resizepart` invece sta in `/bin` in Debian?
    Se l’intento è davvero quello di uniformare le vari distro io sarei per una solo cartella `/bin`, perché cercare discriminanti oggi per la presenza (o non) di un eseguibile è alquanto arduo.

  5. Avatar Black_Codec

    È da molto tempo che si parla di una ridefinizione del FSH… Cioè ci portiamo dietro molte cose veramente anacronistiche…
    E anche dire “facciamo un symlink” a mio parere non è la soluzione… Rivediamo sta cavolo di struttura e leviamo inutili pippe mentali… Ad oggi la divisione in path per autorizzazioni diverse non ha molto senso…
    Inoltre una ristrutturazione ben fatta spianerebbe la strada anche alla compatibilità dei vari Build dei vari package manager… Banalmente le istruzioni prese da un pkgbuild le puoi eseguire pari pari su debian a patto di avere delle versioni software dipendente compatibili.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *