In quale directory devo installare i programmi in Linux?


44

Voglio installare un programma su Linux ed eseguirlo come demone. (Il Team parla 3 in questo caso, ma la domanda è di natura generale). Non viene fornito alcun pacchetto, solo binari tarred. Dove nella struttura di directory dovrei mettere un tale programma per convenzione?

Sul web ho scoperto che / opt è per "app di componenti aggiuntivi opzionali", mentre / usr è per "programmi utente". Ho trovato un tutorial che suggerisce / opta mentre l'altro ha suggerito / usr.

Quindi quale è "più corretto"?


1
Il "più corretto" dipende dalla tua distribuzione. Dovresti controllare le linee guida della tua distribuzione su dove mettere il software che non è gestito dal gestore dei pacchetti (spesso /usr/local) O su come creare il tuo pacchetto per esso.
Leiaz,

Grazie Leiaz. Il tuo commento mi ha aiutato a trovare la risposta ( askubuntu.com/questions/1148/… ). Quindi suppongo che dovrebbe essere / optare nel mio caso (utilizzando Linux Mint, che si basa su Ubuntu) e l'applicazione utilizza una singola cartella. Se converti il ​​tuo commento in una risposta, lo accetterò.
Eiver

Risposte:


27

Il "più corretto" dipende dalla tua distribuzione. Dovresti controllare le linee guida della tua distribuzione su dove mettere il software che non è gestito dal gestore dei pacchetti (spesso /usr/local) O su come creare il tuo pacchetto per esso.

Come hai detto, TeamSpeak ha messo tutto in una cartella (e potrebbe non essere facile riorganizzarlo), /opt/probabilmente è meglio.

(Ad esempio, in Archlinux, il gestore di pacchetti può installare lì, quindi farei comunque un PKGBUILD da installare /opt.)

Inoltre, le distribuzioni di solito cercano di seguire lo standard di gerarchia dei filesystem , quindi questo è dove cercare una convenzione più generica.


c'è qualche alias per sapere dove si trovano ciascuna directory in base all'utilizzo? (ad esempio, dove mettere le configurazioni di root, dove mettere i binari, le dipendenze, i template ...)
Sandburg,

5

Se compilerai il tuo software, alla fine controllerai la posizione di installazione. Per convenzione, il software compilato e installato manualmente (non tramite un gestore di pacchetti, ad esempio apt, yum, pacman) è installato in /usr/local. Alcuni pacchetti (programmi) creeranno una sottodirectory /usr/localin cui archiviare tutti i loro file rilevanti, come /usr/local/openssl. Altri pacchetti installeranno i file necessari in directory esistenti come /usr/local/sbine /usr/local/etc. Queste sono semplicemente posizioni predefinite e possono essere modificate durante la compilazione.

Durante la compilazione del software, è possibile specificare il percorso di installazione utilizzando l' --prefix=opzione durante l'esecuzione ./configure. Si consiglia vivamente di esaminare tutte le opzioni disponibili per il pacchetto in esecuzione $ ./configure --help | less. Inoltre, consultare i documenti INSTALL e README forniti con il pacchetto è una buona idea. Tendono a includere istruzioni di installazione e informazioni sulla dipendenza specifiche del pacchetto.

Va anche notato che sebbene sia possibile archiviare software ovunque, secondo l' FHS , il codice sorgente per il software installato localmente dovrebbe essere archiviato in /usr/local/src Standardizzazione in cui si archiviano gli alberi di origine che consentirà di individuare facilmente un albero se è necessario copiare uno stock file di configurazione o binario. Anche se alcuni pacchetti lo utilizzano, il codice sorgente non deve essere archiviato in /usr/srcquanto designato per software di sistema come il kernel.

Infine, devi assicurarti che il percorso di installazione sia incluso nel tuo $PATH. Se decidi di installare il tuo pacchetto /optma non è nella tua $PATHshell non troverai gli eseguibili e dovrai usare il percorso assoluto per invocare i tuoi programmi. Ecco alcune grandi discussioni di AU sulla configurazione di$PATH

Letture addizionali: man hier


5

Il Linux Standard Base e il Filesystem Hierarchy Standard sono senza dubbio gli standard di dove e come si dovrebbe installare il software su un sistema Linux e il software suggerirebbero ponendo che non è incluso nella vostra distribuzione sia in /opto /usr/local/anzi sottodirectory in esso ( /opt/<package> /opt/<provider> /usr/local/bin).

La migliore pratica è convertire il software scaricato in un pacchetto software installabile nativo nella propria distribuzione, ad esempio i formati dpkg o rpm. Ciò faciliterà la segnalazione, l'aggiornamento e la rimozione pulita del software.


Praticamente questo ribadisce la domanda piuttosto che rispondervi. Il PO era consapevole che /opte /usr/local/erano le due opzioni disponibili, ma voleva informazioni specifiche su cui uno di tali opzioni da utilizzare. Questa potrebbe essere una risposta valida se invece affermasse che le due posizioni sono intercambiabili (anche se contesterei che sarebbe una risposta corretta in tal caso).
JBentley,

1

I binari vanno nella bincartella secondo le convenzioni comuni, il modo in cui organizzare la struttura del pacchetto dipende da te, posso pensare /opt/<prog_name>/se è solo un elenco di binari.


Temo che Team Speak 3 ragazzi abbia creato il programma in modo tale che tutto ciò di cui ha bisogno si trovi in ​​una cartella (file binari, file di configurazione, registri), quindi non usa / bin o / etc o / var / log
Eiver

1

Ho avuto la stessa domanda durante l'installazione di Eclipse tramite il programma di installazione di Eclipse.

Ho notato che Gimp, Perl e Vim sono installati nella /usr/sharecartella e ho deciso di installarlo lì.


0

Esistono due modi in cui i programmi possono essere installati, a seconda di come sono impacchettati.

  1. Tramite il software manager (apt, synaptic, Gdebi ecc.) - il programma è in forma di pacchetto, di solito .deb o rpm. I gestori software nella maggior parte dei casi gestiscono le dipendenze e installano i file binari in genere /usr/bin, configurano i file /etce così via. Possono anche creare un file di configurazione per il programma in casa, di solito ~/.foo. Se è possibile modificare questo file, è anche possibile modificare facilmente le impostazioni per la sessione in questo modo. Quando rimuovi il pacchetto, il gestore troverà tutti i file e li rimuoverà in modo pulito (memorizza tutte le posizioni in un file di testo speciale). Ma può conservare alcuni file di configurazione, ad esempio quello nella cartella principale.

  2. Si scarica un programma (generalmente compresso) sotto forma di file binari precompilati per la propria architettura. Il file eseguibile del programma si trova in genere in una singola cartella accanto ad altri file (librerie collegate dinamicamente ecc.). L'intera cartella può essere copiata, con i privilegi di root, in /opto /usr/bine, se le autorizzazioni lo consentono, può essere utilizzata da qualsiasi utente. Io stesso ho inserito le cartelle con file binari nella mia cartella home ~/bin. Ora dovresti essere in grado di eseguire il programma invocando il suo file bin.

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.