Quando si installano le applicazioni utente, dove le "migliori pratiche" suggeriscono di trovarle?

179

Ogni tanto installo le applicazioni manualmente, invece di usare apt o un altro gestore di pacchetti.

Quale posizione ( /usr/ , /usr/local/ , /opt/ , /home/ , ecc.) è suggerita da "best practice" per l'installazione di applicazioni utente?

    
posta citadelgrad 05.08.2010 - 16:42

6 risposte

161

Dipende, davvero. Se l'applicazione ha un makefile, (per le app python) usa distutils (ha un file setup.py ) o un sistema simile build / install, mettilo in /usr/local/ (comportamento predefinito).

Se hai solo bisogno di estrarre un tarball ed eseguire direttamente (ad esempio Thunderbird, Firefox), inseriscilo in /opt/ .

Perché? Da quanto ho capito, /usr/local/ ha una gerarchia simile a /usr/ . Quindi un programma che si aspetta di essere "installato" in /usr/ dovrebbe funzionare bene in /usr/local/ . Un programma che ha solo bisogno di una directory e otterrà tutti i file / le librerie relative a quella directory può ottenere una directory per se stessa in /opt/ .

    
risposta data Umang 05.08.2010 - 16:53
95

È bene ricordare che /usr non rappresenta utente ma piuttosto unix risorse di sistema .

Come tale, tendo a capire che ogni distribuzione ha il diritto di calpestare tutto il contenuto di /usr, e che le mie aggiunte specifiche al sistema vanno in /usr/local , che conservo prima di fare un aggiornamento.

Nel frattempo, le applicazioni e altre cose vanno in /opt .

Alcune persone si sentono a proprio agio nel mettere roba in /home , anche se raramente seguo questa convenzione.

Tutto ciò che ho detto, ho lasciato che il gestore dei pacchetti di distribuzione facesse le cose per primo, e poi fare quanto sopra quando rotoli a mano.

    
risposta data Walt Stoneburner 17.09.2010 - 19:39
30

Installa programmi instabili come firefox devel in / home / user / opt / rende molto più facile da rimuovere, e non confonde per gli altri utenti su quale versione dovrebbero usare ... Quindi se non è un programma per global usa, installalo in una sottocartella nella tua home directory.

Non installare mai programmi in / usr /, è probabile che causi il caos, le cose installate in / usr / sono pensate per essere solo per i pacchetti di distribuzione. / usr / local / è per i pacchetti compilati localmente. E la struttura funziona esattamente allo stesso modo! i file in / usr / local / avranno la priorità sui file in / usr /

/ opt / dovrebbe essere usato per l'installazione di pacchetti precompilati (binari) (Thunderbird, Eclipse, Netbeans, IBM NetSphere, ecc.) e simili. Ma se sono solo per un singolo utente dovrebbero essere messi nella tua directory home.

Se vuoi essere in grado di eseguire un programma installato in una posizione "strana" (come / home / user / opt / firefox /) senza digitare l'intero percorso che devi aggiungere alla variabile $ PATH, puoi fai questo aggiungendo una riga come questa nel tuo /home/user/.profile

export PATH=/home/user/opt/firefox:$PATH

Il nome della cartella dovrebbe essere quello in cui si trova il file eseguibile che devi eseguire.

    
risposta data LassePoulsen 07.08.2010 - 10:40
24

Lo standard di gerarchia del file system Linux indica /usr/local .

Da link :

  

L'idea originale alla base di "/ usr / local" era di avere un separato ("locale")   directory '/ usr' su ogni macchina oltre a '/ usr', che potrebbe essere solo   montato di sola lettura da qualche altra parte. Copia la struttura di   '/ Usr'. In questi giorni, '/ usr / local' è considerato un buon posto in   quale mantenere programmi auto-compilati o di terze parti. Il / usr / local   la gerarchia è utilizzata dall'amministratore di sistema durante l'installazione   software localmente. Deve essere sicuro di essere sovrascritto quando il   il software di sistema è aggiornato. Può essere usato per programmi e dati   sono condivisibili tra un gruppo di host, ma non si trovano in / usr. localmente   il software installato deve essere inserito in / usr / local piuttosto che in / usr   a meno che non venga installato per sostituire o aggiornare il software in / usr.

    
risposta data popey 05.08.2010 - 16:45
5

Di solito ho una cartella chiamata "Programmi" nella mia casa dove installo quei programmi, abbastanza strano (o meno) sono tutti roba java in questo momento.

Ho un grande vantaggio per me, quando reinstallo o cambio computer, mi commuovono con il resto della mia casa. Ha un chiaro svantaggio, quelle app sono disponibili solo per il mio utente.

    
risposta data Javier Rivera 05.08.2010 - 16:57
1

Usa "checkinstall" per convertire il tuo pacchetto alieno in un deb in modo che non sia installabile usando il gestore pacchetti.

Nota che i file di configurazione spesso non vengono gestiti come file di configurazione (forse ignorati, o forse trattati come parte dell'app), e che gli script di pre-installazione e post-installazione a volte diventano pasticciati, anche se di solito ti avvisano quando pensa che il deb abbia un brutto script di pre-installazione o post-installazione.

    
risposta data A Student at a University 16.08.2010 - 03:41

Leggi altre domande sui tag