Occasionalmente installo le applicazioni manualmente, anziché utilizzare apt
o un altro gestore pacchetti.
Che posizione ( /usr/
, /usr/local/
, /opt/
, /home/
, etc.) è suggerito da "buone pratiche" per l'installazione di applicazioni utente?
Occasionalmente installo le applicazioni manualmente, anziché utilizzare apt
o un altro gestore pacchetti.
Che posizione ( /usr/
, /usr/local/
, /opt/
, /home/
, etc.) è suggerito da "buone pratiche" per l'installazione di applicazioni utente?
Risposte:
Dipende davvero. Se l'applicazione ha un makefile o, ad esempio, per le app Python se l'applicazione utilizza distutils (ad esempio, ha un setup.py
file) o un sistema simile build / install, è necessario installarlo in /usr/local/
. Questo è spesso il comportamento predefinito.
Da quello che ho capito, /usr/local/
ha una gerarchia simile /usr/
. Tuttavia, le directory come /usr/bin/
e di /usr/lib/
solito sono riservate per l'installazione dei pacchetti tramite apt
. Quindi un programma che si aspetta di essere "installato" /usr/
dovrebbe funzionare bene /usr/local/
.
Se devi solo estrarre un tarball ed eseguire direttamente (ad esempio Firefox), inseriscilo /opt/
. Un programma che ha solo bisogno di una directory e otterrà tutti i file / librerie relativi a quella directory può ottenere una directory per sé /opt/
.
opt/
- secondo me hai colpito l'unghia sulla testa per il suo scopo.
~/.local/share
? @Marco
~
(la tua home directory), ma ciò renderà un'applicazione accessibile solo a un utente. Altri utenti sul tuo sistema dovranno installare e mantenere le proprie installazioni di quel software. Per quanto riguarda le migliori pratiche sull'installazione delle applicazioni, installa la tua home directory, credo che non ci siano linee guida così forti perché non interferirai con i pacchetti di sistema.
È bene ricordare che /usr
non rappresenta l' utente ma piuttosto unix le risorse di sistema .
In quanto tale, tendo a capire che qualsiasi distribuzione ha il diritto di calpestare tutti i contenuti /usr,
e che le mie specifiche aggiunte al sistema entrano /usr/local
, che conservo prima di fare un aggiornamento.
Nel frattempo, applicazioni e altre cose entrano /opt
.
Alcune persone si sentono a proprio agio nel mettere le cose /home
, anche se raramente seguo quella convenzione.
Detto questo, ho lasciato prima che il gestore dei pacchetti di distribuzione facesse le cose a modo suo, e poi facesse quanto sopra quando rotolava le cose a mano.
User
. Questo perché gli utenti di Linux erano sviluppatori. Innanzitutto, quando ha iniziato a dividere in sviluppatori e utenti, è /home
stata introdotta la directory dir. E poi qualcuno ha avuto l'idea di dire che significa Unix System Resources
, il che non ha davvero senso, perché abbiamo l' Unix system Resources
in/dev
Installa programmi instabili come firefox devel in / home / user / opt / rende molto più facile la rimozione e non c'è confusione per gli altri utenti su quale versione dovrebbero usare ... Quindi se non è un programma per uso globale, installa in una sottocartella nella tua home directory.
Non installare programmi in / usr /, è probabile che causi caos, le cose installate in / usr / sono destinate esclusivamente ai 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à rispetto ai 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 inseriti 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 che devi aggiungere alla tua variabile $ PATH, puoi farlo aggiungendo una linea 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.
Lo standard della gerarchia del filesystem Linux indica /usr/local
.
Da http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html :
L'idea originale dietro '/ usr / local' era di avere una directory ('local') '/ usr' separata su ogni macchina oltre a '/ usr', che poteva essere montata in sola lettura da qualche altra parte. Copia la struttura di '/ usr'. In questi giorni, "/ usr / local" è ampiamente considerato come un buon posto in cui conservare programmi autocompilati o di terze parti. La gerarchia / usr / local è utilizzata dall'amministratore di sistema durante l'installazione del software in locale. Deve essere sicuro di non essere sovrascritto quando il software di sistema viene aggiornato. Può essere utilizzato per programmi e dati condivisibili tra un gruppo di host, ma non presenti in / usr. Il software installato localmente deve essere posizionato in / usr / local anziché / usr a meno che non sia installato per sostituire o aggiornare il software in / usr.
Di solito ho una cartella denominata "Programmi" nella mia casa in cui installo quei programmi, abbastanza strano (o no) sono tutti roba java in questo momento.
Ha un grande vantaggio per me, quando reinstallo o cambio computer vengono spostati con il resto della mia casa. Ha un chiaro svantaggio, quelle app sono disponibili solo per il mio utente.
/
directory formate solo dopo aver digitato lo stesso vecchio nome utente e password ma ho scoperto che Ubuntu crea un'altra cartella home.
Usa "checkinstall" per convertire il tuo pacchetto alien in un deb in modo che non sia installabile usando il gestore pacchetti.
Tieni presente che i file di configurazione spesso non verranno gestiti come file di configurazione (forse ignorati o forse trattati come parte dell'app) e che gli script pre e post installazione a volte vengono confusi, anche se in genere ti avvisa quando pensa che il deb avrà uno script pre o post installazione errato.