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


Ogni tanto installo le applicazioni manualmente, piuttosto che usando apt o un altro gestore di pacchetti.

Quale posizione (/usr/, /usr/local/, /opt/, /home/, ecc.) è suggerito dalle "migliori pratiche" per l'installazione di applicazioni utente?


184
2017-08-05 14:42


origine


Mi è piaciuto installare cose dalla fonte ogni tanto, ho scritto un piccolo strumento per farlo che esegue da solo le modifiche al file di avvio della shell (e modifica anche il prefisso della libreria, se lo chiedi, per i programmi che dipendono da librerie condivise). Non molto ricco di funzionalità, ma funziona il 99% delle volte. - new123456
Post correlati: askubuntu.com/q/138547/62483 - Lucio
Grande discussione sulla distinzione tra /opt e /usr/local : unix.stackexchange.com/q/11544/11917 - blong


risposte:


Dipende, davvero. Se l'applicazione ha un makefile, (per applicazioni python) usa distutils (ha a setup.py file) o un sistema simile di installazione / installazione, inseriscilo /usr/local/ (comportamento predefinito).

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

Perché? Da quello che capisco, /usr/local/ ha una gerarchia simile a /usr/. Quindi un programma in attesa di essere "installato" in /usr/ dovrebbe funzionare bene /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 in sé /opt/.


163
2017-08-05 14:53



Sembra che così tante persone si dimentichino opt/ - secondo me hai centrato l'unghia sulla testa come per il suo scopo. - Marco Ceppi♦
Ho scaricato eclipse ed estratto in / opt. Come posso farlo girare da terminale come con altri programmi come javac, java. Ho fatto con update-alternative come segue, sudo update-alternatives --install "/ usr / bin / eclipse" "eclipse" "/ opt / eclipse / eclipse" 1 MA NON DICE COMANDO NON TROVATO I TYPE sudo eclissi - Deepen
Crea un link simbolico da / usr / bin o aggiungilo a PATH in ~ / .bashrc - Alex


È bello ricordarlo /usr non sta per utente ma piuttosto unix risorse di sistema.

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

Nel frattempo, entrano applicazioni e altre cose /opt.

Alcune persone si sentono a proprio agio nel mettere cose /home, anche se raramente seguo quella convenzione.

Detto ciò, lascio che il gestore dei pacchetti di distribuzione faccia le cose per primo, e poi faccia quanto sopra quando rotola a mano.


99
2017-09-17 17:39



Vale la pena ricordare che "risorse di sistema unix" è stata aggiunta a un nuovo nome assegnato a "/ home". Nei vecchi, vecchi e vecchi tempi (Unix Version 6 et.al.) si vedevano le directory come / usr / jimmy, / usr / siobhan, / usr / ahmed, ecc. Perché le directory "utente" erano memorizzate in / usr . - Mark Leighton Fisher
OK morderò: cosa significa opt? - Seth
@Seth Penso che sia "opzionale" - originariamente per software che non faceva parte di un'installazione predefinita. - Carl H
/ usr è User. Questo perché gli utenti linux erano sviluppatori. Per prima cosa ha iniziato a dividere in sviluppatori e utenti /home è stata introdotta la dir. E poi qualcuno ha avuto l'idea di dire che significa Unix System Resources, che non ha davvero senso, perché abbiamo il Unix system Resources in /dev - Info-Screen
Corretto, / usr è un backronym. Lo scopo è cambiato dai tempi in cui Unix era in esecuzione su un PDP-7 nel 1969. - Walt Stoneburner


Installa programmi instabili come firefox devel in / home / user / opt / rende molto più facile da rimuovere, e non confonde gli altri utenti sulla versione che dovrebbero usare ... Quindi se non è un programma per uso globale, installa 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 home directory.

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

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

Il nome della cartella deve essere quello in cui si trova il file eseguibile da eseguire.


30
2017-08-07 08:40





Lo standard per la gerarchia del filesystem Linux indica /usr/local.

A partire dal http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html:

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.


25
2017-08-05 14:45



Sembra contraddire questo / usr / locale con le informazioni sulla pagina opt: tldp.org/LDP/Linux-Filesystem-Hierarchy/html/opt.html "" Questa directory è riservata a tutto il software e ai pacchetti aggiuntivi che non fanno parte dell'installazione predefinita. Ad esempio, i pacchetti StarOffice, Kylix, Netscape Communicator e WordPerfect si trovano normalmente qui. Per conformarsi a FSSTND, tutte le applicazioni di terze parti dovrebbero essere installate in questa directory. "..." (simile al modo in cui Windows installerà un nuovo software nella propria directory C: \ Windows \ Progam Files \ "Nome programma ")" - Pod


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.

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


5
2017-08-05 14:57



Come posso reinstallare Ubuntu 16.04 senza perdere i dati nella cartella principale? Ho provato a fare da formate / la directory solo allora digita lo stesso vecchio nome utente e password ma ho trovato che Ubuntu crea un'altra cartella home. - Ibrahim Disouki


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

Si noti 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 talvolta vengono sminuiti, sebbene di solito vi avviserà quando pensa che il deb avrà un brutto script di pre-installazione o post-installazione.


1
2017-08-16 01:41