Come organizzare / optare?

Aug 27 2020

Vorrei posizionare uno script fatto a mano nella sua posizione e struttura di cartelle convenzionali. Si trova attualmente in /opt/chkobm/chkobm, ma sembra una cattiva pratica poiché richiede $PATHdi includere percorsi con caratteri jolly ( /opt/*/)

Da TLDP (sezione "Linux Filesystem Hierarchy"):

I programmi che devono essere invocati dagli utenti si trovano nella directory / opt / 'package' / bin.

In primo luogo, esiste una regola consensuale su dove posizionare tali file? ( /usr/binmi sembra un posto alternativo praticabile) In secondo luogo, dovrei inserire script fatti a mano /opt/*/bin/ed esportare questo percorso in $PATH?

Risposte

Stewart Aug 27 2020 at 18:15

/usr/local/bin è il posto idiomatico per metterlo.

Secondo la gerarchia del filesystem Linux :

L'idea originale alla base /usr/localera quella di avere una /usrdirectory separata ('locale') su ogni macchina inoltre /usr, che potrebbe essere semplicemente montata in sola lettura da qualche altra parte. Copia la struttura di /usr. In questi giorni, /usr/localè ampiamente considerato come un buon posto in cui mantenere programmi autocompilati o di terze parti. La gerarchia / usr / local deve essere utilizzata dall'amministratore di sistema durante l'installazione del software in locale. Deve essere protetto dalla sovrascrittura quando il software di sistema viene aggiornato. Può essere utilizzato per programmi e dati condivisibili tra un gruppo di host, ma non trovati in / usr. Il software installato localmente deve essere posizionato in / usr / local anziché in / usr a meno che non venga installato per sostituire o aggiornare il software in / usr.

Tendo a fare affidamento su FHS come definito essere Debian. Debian è abbastanza brava a far rispettare gli standard. Questo è quello che hanno da dire sull'opt :

Le directory / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib e / opt / man sono riservate all'uso da parte dell'amministratore di sistema locale. I pacchetti possono fornire file "front-end" destinati ad essere inseriti (collegando o copiando) queste directory riservate dall'amministratore di sistema locale, ma devono funzionare normalmente in assenza di queste directory riservate.

...

In generale, tutti i dati richiesti per supportare un pacchetto su un sistema devono essere presenti all'interno di / opt /, inclusi i file destinati ad essere copiati in / etc / opt / e / var / opt / così come le directory riservate in / opt.

...

La struttura delle directory sotto / opt / è lasciata al confezionatore del software, sebbene si consiglia di installare i pacchetti in / opt // e seguire una struttura simile alle linee guida per / opt /. Un motivo valido per divergere da questa struttura è per i pacchetti di supporto che possono avere file installati in / opt // lib o / opt // bin.

La definizione di Debian di /usr/localè identica alla definizione precedente dal collegamento TLDP.