Perché dovrei spostare tutto in / opt?


16

Ogni volta che leggo i suggerimenti per l'installazione di un SDK, IDE, alcune estensioni e così via, si dice che dovrei decomprimerli nella /optcartella. Perché devo farlo?

Durante l'installazione di Ubuntu, ho letto che avrei dovuto impostare solo 10-20 GiB per il /file system e lo spazio rimanente impostato per /home. Quindi dovrei estendere lo spazio per la cartella principale o lasciare tutto in /home? C'è qualche differenza?


1
Hai due domande qui. È consentita una sola domanda per post. Modifica il tuo post e, se lo desideri, puoi pubblicare un'altra domanda relativa alle dimensioni o alla cartella home
Sergiy Kolodyazhnyy,


Risposte:


20

Innanzitutto, capire che qualsiasi directory che non è esplicitamente un punto di montaggio per una partizione separata (o una sottodirectory di tale punto di montaggio) è memorizzata nella /partizione root ( ). Quindi, se hai root ( /) e /home, e non ci sono altre partizioni, la tua /optdirectory è semplicemente una directory su root ( /). Allo stesso modo per /tmp, /sbine qualsiasi altra cosa. Pertanto, la domanda iniziale si basa sul presupposto falso che siano necessarie partizioni separate per ogni directory che porta fuori da root (/ ), e quindi non è possibile rispondere direttamente.

In secondo luogo, /optviene utilizzato per software di terze parti, che nel contesto di Ubuntu, significa software precompilato che non è distribuito tramite pacchetti Debian. Occasionalmente vedrai la documentazione ufficiale del programma a cui fa riferimento /opt, ma sono disponibili pacchetti Debian che rilasciano questi file altrove. In questi casi, quando si usa il pacchetto Debian, si dovrebbe ignorare la documentazione ufficiale, o almeno ignorarne i riferimenti alla posizione del file. Inoltre, se hai la scelta di usare un pacchetto precompilato tramite un tarball o un pacchetto Debian, è generalmente meglio usare il pacchetto Debian. Tutto sommato, l'uso di /optè piuttosto raro in questi giorni. Se pensi ancora di dover inserire i file/opt , potresti fare bene a nominare il software, dal momento che le persone qui potrebbero sapere se un pacchetto Debian è disponibile per quel software.

Infine, combinando i due punti precedenti, è molto raro che le installazioni di Ubuntu si dividano /optin una partizione separata perché è raro che vengano archiviate quantità significative di dati. La maggior parte del software Ubuntu entra /usre in altre posizioni. Una volta era comune dividere /usrin una partizione separata, ma quella pratica è piuttosto rara oggi. Se ti capita di dover installare un sacco di software /opt, potrebbe essere necessario creare una partizione separataha senso, ma in molti casi questo non sarà davvero utile. Le partizioni separate hanno senso se è necessario gestire la sicurezza in modo diverso, se saranno utili diverse funzionalità del file system, per condividere i dati tra più installazioni del sistema operativo in una configurazione multi-boot e per altri motivi. È probabile che l'installazione del software di routine non tragga beneficio da una partizione separata; in effetti, la creazione di una partizione separata per /optpotrebbe causare problemi se la dimensione utilizzata dal software memorizzato cambia o se inizialmente si sbaglia la stima della dimensione.


1
Ri "l'uso di / opt è abbastanza raro in questi giorni" Sei sicuro?
Pacerier

@Pacerier per qualche motivo / opt sembra tornare, / usr / local era sicuramente più popolare in Ubuntu qualche anno fa. Ad ogni modo, IMHO, / opt e / usr / local sono equivalenti. Vedi anche linuxjournal.com/magazine/pointcounterpoint-opt-vs-usrlocal e tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html "In questi giorni," / usr / local "è ampiamente considerato come un buon posto in cui mantenere programmi compilati o di terze parti. "
Pantera

8

Fai?

Il fatto è che non è necessario farlo. utilizzando/opt è una convenzione. Consiglierei di usarlo ma non è strettamente necessario.

A partire dal gerarchia dei filesystem Linux: Capitolo 1. Gerarchia dei filesystem Linux :

1.13. /optare

Questa directory è riservata a tutti i pacchetti software e aggiuntivi che non fanno parte dell'installazione predefinita. Ad esempio, i pacchetti StarOffice, Kylix, Netscape Communicator e WordPerfect si trovano normalmente qui. Per ottemperare a FSSTND, tutte le applicazioni di terzi devono essere installate in questa directory. Qualsiasi pacchetto da installare qui deve individuare i suoi file statici (ad es. Caratteri extra, clipart, file di database) deve individuare i suoi file statici in un albero di directory separato / opt / 'package' o / opt / 'provider' (simile al modo in cui Windows installerà il nuovo software nel proprio albero di directory C: \ Windows \ Progam Files \ "Nome programma"), dove "pacchetto" è un nome che descrive il pacchetto software e "fornitore" è il nome registrato LANANA del fornitore.

Sebbene la maggior parte delle distribuzioni trascuri di creare le directory / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib e / opt / man, sono riservate all'uso dell'amministratore di sistema locale. I pacchetti possono fornire file "front-end" destinati a essere inseriti (tramite collegamento o copia) in queste directory riservate dall'amministratore di sistema, ma devono funzionare normalmente in assenza di queste directory riservate. I programmi che devono essere richiamati dagli utenti si trovano nella directory / opt / 'package' / bin. Se il pacchetto include pagine di manuale UNIX, si trovano in / opt / 'package' / man e deve essere utilizzata la stessa sottostruttura di / usr / share / man. I file del pacchetto variabili devono essere installati in / var / opt. I file di configurazione specifici dell'host sono installati in / etc / opt.

In nessun caso esistono altri file di pacchetto al di fuori delle gerarchie / opt, / var / opt e / etc / opt, ad eccezione di quei file di pacchetto che devono risiedere in posizioni specifiche all'interno dell'albero del filesystem per funzionare correttamente. Ad esempio, i file di blocco dei dispositivi in ​​/ var / lock e i dispositivi in ​​/ dev. Le distribuzioni possono installare il software in / opt, ma non devono modificare o eliminare il software installato dall'amministratore di sistema locale senza il consenso dell'amministratore di sistema locale.

L'uso di / opt per il software aggiuntivo è una pratica consolidata nella comunità UNIX. L'interfaccia binaria dell'applicazione System V [AT&T 1990], basata sulla definizione dell'interfaccia System V (terza edizione) e sullo standard di compatibilità binaria Intel v. 2 (iBCS2) fornisce una struttura / opt molto simile a quella qui definita.

In generale, tutti i dati richiesti per supportare un pacchetto su un sistema devono essere presenti all'interno di / opt / 'package', inclusi i file che devono essere copiati in / etc / opt / 'package' e / var / opt / 'package', nonché directory riservate in / opt. Le restrizioni minori sulle distribuzioni che utilizzano / opt sono necessarie perché sono possibili conflitti tra la distribuzione installata e il software installato localmente, specialmente nel caso di percorsi fissi trovati in alcuni software binari.

La struttura delle directory sottostanti / opt / 'provider' è lasciata al packager del software, sebbene si raccomanda che i pacchetti siano installati in / opt / 'provider' / 'package' e seguano una struttura simile alle linee guida per / opt / package. Un motivo valido per divergere da questa struttura è per i pacchetti di supporto che possono avere file installati in / opt / 'provider' / lib o / opt / 'provider' / bin.


Questo è strano, perché la maggior parte delle persone consiglia di dividere il piccolo spazio nella directory principale e ho pensato perché non cambierà molto. Sembra che devo ricordare a quei consigli di seguire le convenzioni?
Praytic,

2
@Praytic Non proprio. In passato /optera spesso un'unità separata. Sarebbe usato per installare software proprietario, che spesso aveva enormi requisiti di spazio su disco a causa del raggruppamento di tutte le librerie richieste e altre risorse. Nei tempi moderni, le unità sono così grandi che è possibile e più semplice utilizzare una sola radice su una singola unità.
Guadagnare il

4

/optè usato per applicazioni esterne (a volte proprietarie) che non sono considerate parte della distribuzione Linux. Queste applicazioni potrebbero avere percorsi con codice fisso e quindi funzioneranno correttamente solo se installate su /opt- ma se non ci sono percorsi con codice fisso, è possibile installarli su qualsiasi percorso. Un programma installato /optdovrebbe essere autonomo.

Il motivo principale per l'utilizzo /optè di fornire un percorso standard comune in cui è possibile installare software esterno senza interferire con il resto del sistema installato. /optnon appare nei percorsi standard del compilatore o del linker ( gcc -print-search-dirso /etc/ld.so.confecc.), quindi le intestazioni e le librerie installate sono in qualche modo isolate dal sistema principale e non dovrebbero interferire con i programmi già installati.

L'uso di /optè specificato dal Filesystem Hierarchy Standard : / opt , che rileva che /optoriginariamente proveniva da Unix.

/ opt: pacchetti software applicativi aggiuntivi

Scopo

/ opt è riservato per l'installazione di pacchetti software applicativi aggiuntivi.

Un pacchetto da installare in / opt deve individuare i suoi file statici in una struttura di directory separata / opt / <package> o / opt / <provider>, dove <pacchetto> è un nome che descrive il pacchetto software e <provider> è il nome registrato LANANA del provider.

Requisiti

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

I programmi che devono essere richiamati dagli utenti devono trovarsi nella directory / opt / <package> / bin o nella gerarchia / opt / <provider>. Se il pacchetto include pagine di manuale UNIX, devono trovarsi in / opt / <package> / share / man o nella gerarchia / opt / <provider> e deve essere utilizzata la stessa sottostruttura di / usr / share / man.

I file del pacchetto che sono variabili (modifica nel normale funzionamento) devono essere installati in / var / opt. Vedi la sezione su / var / opt per maggiori informazioni.

I file di configurazione specifici dell'host devono essere installati in / etc / opt. Vedi la sezione su / etc per maggiori informazioni.

Non possono esistere altri file di pacchetto al di fuori delle gerarchie / opt, / var / opt e / etc / opt, ad eccezione di quei file di pacchetto che devono risiedere in posizioni specifiche all'interno dell'albero del filesystem per funzionare correttamente. Ad esempio, i file di blocco del dispositivo devono essere posizionati in / var / lock e i dispositivi devono essere posizionati in / dev.

Le distribuzioni possono installare il software in / opt, ma non devono modificare o eliminare il software installato dall'amministratore di sistema locale senza il consenso dell'amministratore di sistema locale.

Fondamento logico

L'uso di / opt per il software aggiuntivo è una pratica consolidata nella comunità UNIX.L'interfaccia binaria dell'applicazione System V [AT&T 1990], basata sulla definizione dell'interfaccia System V (terza edizione), prevede una struttura / opt molto simile a quella qui definita.

Intel Binary Compatibility Standard v. 2 (iBCS2) fornisce anche una struttura simile per / opt.

In generale, tutti i dati richiesti per supportare un pacchetto su un sistema devono essere presenti all'interno di / opt / <package>, inclusi i file che devono essere copiati in / etc / opt / <package> e / var / opt / <package> e directory riservate in / opt.

Le restrizioni minori sulle distribuzioni che utilizzano / opt sono necessarie perché sono possibili conflitti tra software installato nella distribuzione e installato localmente, specialmente nel caso di percorsi fissi trovati in alcuni software binari.

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


3

Non c'è nulla di sacro /opt, è solo pratica comune mettere software precompilato che dovrebbe essere accessibile a tutti gli utenti di un sistema in questa directory. Se sei l'unico utente del sistema, non c'è nulla di sbagliato nell'estrarlo nella tua home directory. E anche se ci sono diversi utenti sul sistema che hanno bisogno di accedere a questo software ma vuoi usare lo spazio sulla tua /homepartizione, non c'è nulla di sbagliato nel creare una /home/softwarenamedirectory accessibile pubblicamente e nell'estrarre il tuo software lì (l'unica avvertenza è se ti capita per avere un nome utente softwarename, non potrai usarlo nella home directory dell'utente).


2

Le risposte dettagliate sono molto buone, ma (a parte il software che può contenere percorsi assoluti codificati, non la migliore pratica di programmazione), il punto principale è che il software non di sistema / non di distribuzione non deve essere archiviato mescolato con il file di sistema regolari.

Inserire /opto /usr/localmantenere le cose pulite e più sicure.

In particolare, il percorso di ricerca del software ($ PATH) determina l'ordine in cui vengono ricercate le posizioni quando si cerca un programma con un nome specifico da eseguire. Di solito, posti come /opte /usr/localsono verso la fine dell'elenco.

Se installi un pacchetto con un programma chiamato cp, l'ordine di ricerca predefinito fornito con la tua distribuzione troverà quello normale perché la directory in cui è memorizzato viene cercata prima di posti simili /opt.

Se non ha funzionato in questo modo, chissà cosa potrebbe rompere o aprire una falla di sicurezza se un programma chiamato cpche fa qualcos'altro viene eseguito quando pensi di provare a copiare alcuni file.

Se succede qualcosa del genere, potrebbe volerci un po 'prima che qualcuno pensi di eseguire un comando come type cp(che potrebbe non essere sufficiente per mostrare che qualcosa non va) per scoprire che ciò che viene eseguito non è ciò che pensi che sia. Fino a quel momento, sei bloccato su "Tutto è esattamente come dovrebbe essere a parte il piccolo dettaglio che non funziona!"

Fondamentalmente aiuta a evitare che accadano cose inaspettate ed evita anche situazioni in cui gli aggiornamenti di sistema potrebbero rimuovere o sostituire alcuni o tutti i pacchetti installati "personalizzati". Oppure, al contrario, alcuni programmi "personalizzati" potrebbero sovrascrivere i programmi forniti dal sistema su cui molti altri programmi o script potrebbero fare affidamento.

Da un punto di vista amministrativo, la combinazione di programmi / file "di sistema" e "opzionali" nelle stesse posizioni pone il sistema in uno stato "indefinito" o almeno "ambiguo".

Se hai un problema con il tuo sistema o un programma e hai bisogno di aiuto, una delle prime domande che ti vengono poste è "Cosa hai cambiato?" e "Possiamo disabilitare temporaneamente alcune di tutte queste modifiche in modo da sapere che stiamo guardando il vero problema e non solo un sintomo di qualcos'altro".

Con posizioni separate, queste modifiche possono essere identificate rapidamente e tutto ciò che devi fare (almeno per i programmi stessi) è rimuovere temporaneamente le loro directory dal percorso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.