it-swarm-eu.dev

Qual è il percorso di installazione chiave per le versioni in Linux?

Attualmente sto installando NetBeans e la directory di installazione predefinita è /home/thomasowens/netbeans-6.8. Non sono un fan di quella posizione, quindi guardo /etc, /bin, /usr/bin e /sbin. Linux ha un posto che, per convenzione, è lo stesso della directory C:\Program Files di Windows?

70
Thomas Owens

In base al Fileystem Hierarchy Standard , ci sono diversi posti che sono accettabili, a seconda dell'applicazione. Sto citando ampiamente qui.

  • bin è l'abbreviazione di "binario", ovviamente
  • sbin è l'abbreviazione di "server binary", altrimenti definito come:

    Utilità utilizzate per l'amministrazione del sistema (e altri comandi solo root)

  • /usr è per dati condivisibili e di sola lettura e deve essere condivisibile tra vari host compatibili con FHS (se sulla rete sono presenti molti computer e sono tutti della stessa architettura, dovresti essere in grado di condividere un singolo/usr cartella con ogni macchina sulla rete)

  • /usr/local è utilizzato dall'amministratore di sistema durante l'installazione del software in locale (ovvero, per le applicazioni installate solo su questa macchina, non su ogni macchina sulla rete).

Prendendo questi insieme:

  • /usr/bin è la directory principale dei comandi eseguibili sul sistema.
  • /usr/sbin è per qualsiasi binario non essenziale utilizzato esclusivamente dall'amministratore di sistema.
  • I programmi di amministrazione del sistema necessari per la riparazione del sistema, il ripristino del sistema, il montaggio/usr o altre funzioni essenziali devono invece essere inseriti in /sbin (cioè, le cose a cui è necessario accedere per montare /usr/sbin andare in /sbin)
  • Allo stesso modo, i comandi utente essenziali che possono essere necessari prima che /usr sia montato, vanno in /bin
  • Qualsiasi cosa installata solo sulla macchina locale dovrebbe andare in /usr/local/bin o /usr/local/sbin

C'è un altro uso per/usr/local però. La maggior parte delle cose che si installano tramite il gestore di pacchetti della distro verranno posizionate in/usr; molte persone mettono invece le cose che hanno compilato a mano sotto/usr/local. Questo li tiene fuori dal sistema di gestione dei pacchetti e ti consente di individuare ciò che hai installato dalla distribuzione (e non è necessario eseguire il backup perché puoi recuperarlo di nuovo) e ciò che hai compilato a mano; consente inoltre di eseguire versioni diverse contemporaneamente (ad es./usr/bin/firefox vs/usr/local/bin/firefox).


Proprio quando pensavi che le cose fossero risolte, c'è un altro posto, che è probabilmente l'equivalente più vicino di c:\Program Files - /opt:

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

/opt è probabilmente l'equivalente più vicino a c:\program files, in quanto è l'unico posto in cui ci si aspetterebbe di trovare un'applicazione con tutti i suoi file insieme in una cartella, piuttosto che sparsi tra /usr/bin, /var e /etc. Solitamente è usato solo da pacchetti molto grandi, ma in questo caso, dato che Netbeans vuole avere una propria cartella, probabilmente ha più senso metterlo in/opt/netbeans

95
James Polley

In realtà si tratta di preferenze personali. Spiegherò il mio per quello che vale.

/ usr,/usr/bin sono solitamente posti per software installato dal sistema da installare. Quando installo le cose da solo, le installo in uno dei diversi punti:

  1. Se è solo uno script o un piccolo programma che userò, lo installerò in ~/bin - questo è il posto dove finisce la maggior parte delle mie cose.
  2. Se è qualcosa come hai descritto (NetBeans) con un albero di file completo a sé stante, lo installo in/opt
  3. Se è un singolo eseguibile, lo installo in/usr/local/bin

Perché faccio distinzione tra # 2 e # 3? Non ho idea, è solo un'abitudine che ho sviluppato nel tempo. Funziona che/opt di solito finisce per diventare un albero profondo di file, ma ha solo 2 o 3 "cose" effettive installate. In questo momento, ho installato le note di Lotus e Lampp in opt, 2 directory che hanno alberi piuttosto grandi al di sotto di esse. In/usr/local/bin, ho 20 o 30 voci, ma nessuna sottodirectory.

Non installo cose in/usr/bin o/usr/sbin perché mi piace mantenere le cose che aggiungo manualmente (non facente parte semplicemente dell'installazione dal repository standard) separate.

5
DaveParillo

Mentre il Fileystem Hierarchy Standard fornisce alcune indicazioni. Ho scoperto che la maggior parte delle distribuzioni amano installare i pacchetti in /usr/share.

Per questo motivo, ho adottato la pratica di installare qualsiasi applicazione non installata tramite il gestore pacchetti (rpm/apt-get/emerge) in /usr/local. Ciò mi consente di mantenere le applicazioni e le librerie che non sono gestite tramite la gestione dei pacchetti separatamente da quelle che sono.

È una tecnica che mi ha aiutato a gestire il mio sistema con Fedora Core e Gentoo.

1

Mi piace usare/app per la maggior parte delle app aggiuntive che installo su più server. Conservo una copia della cartella in/installs/apps sul mio server nfs. Quando creo un nuovo server Linux, monto la cartella di installazione e copia/app e ho molte app comuni differenti sul nuovo server. Cancellare quelle voci che non mi servono per questo nuovo server e ho finito. Beh, forse ho bisogno di eseguire uno script o tre per impostare variabili di ambiente o istruzioni di percorso, ma questo è praticamente ciò che serve per configurare molti nuovi server.

Vengo da uno sfondo Windows e .net. Una delle promesse di .net era che la maggior parte delle app potevano essere installate usando Windows xcopy. Cerco la stessa cosa in Linux. Dove disponibile, scelgo il tarball sull'RPM o su yum, ecc. Quindi posso eseguire il deployment in/apps con cp -r e aggiungere l'app al mio server nfs per future distribuzioni.

0
Dale

Avrei pensato che il percorso predefinito fosse /bin, è dove praticamente tutto viene installato di default se si usa apt-get o simile ...

... Tuttavia, quando si tratta di programmi più moderni (o di quelli senza un programma di installazione) che hanno molti file aggiuntivi, mi piace metterli nella propria directory all'interno di /bin.

0
William Hilsum

Di solito si installano in più cartelle, principalmente/usr,/local,/bin, ecc. Puoi scoprire dove si installa il programma dal programma di installazione di GDebi (nella scheda File). Se hai intenzione di spostare Netbeans, ti suggerirei di spostarlo su/opt, perché è lì che Google sembra installare le sue cose.

0
digitxp

Accordo con la risposta di James Polley, ma in realtà la directory predefinita ha molto senso a meno che non sia necessario condividere l'applicazione tra più account. Io, ad esempio, avevo bisogno di installare Eclipse 3.0 (obsoleto) per far funzionare Flex su Linux, e lo metto in $ HOME/Eclipse3.

0
CarlF