Esiste documentazione ufficiale su directory come ~ / .config e ~ / .cache?


13

Ho visto queste directory utilizzate da molte applicazioni e ora sto pensando di usarle per la mia app. Come faccio a sapere se si tratta di una cartella ufficialmente supportata e non solo di un sapore della posizione del mese per una cache / configurazione per utente?

Sono stato su Google e ho cercato qualcosa di ufficiale da Ubuntu, ma senza successo, forse qualcun altro conosce i termini di ricerca appropriati o la posizione di questa documentazione. È qualcosa che dovrei semplicemente accettare come luogo di pratica standard non dichiarato?


"forse qualcun altro conosce i termini di ricerca appropriati": non sono sicuro della documentazione ufficiale per il loro uso, ma questi sono considerati dotfile, più specificamente cartelle di punti in quegli esempi. Sono nascosti per impostazione predefinita e sono comunemente usati per salvare le preferenze dell'utente (~ / .config) e altri file di "supporto" come cache (~ / .cache).
Nmath,

2
"ufficiale da Ubuntu" posto sbagliato. È definito dall'organizzazione freedesktop in modo da -desktop- dipendente. Non solo Ubuntu. Oh e queste sono LINEE GUIDA.
Rinzwind,

1
@SergiyKolodyazhnyy è interessante discutere la storia di come sono arrivati ​​i dotfile, ma in pratica i dotfile / dotfolder sono nascosti (non visibili) di default dai file manager e dai comandi bash come dir. In questo modo, sì, sono assolutamente "nascosti". Nascondere i file in questo modo ha un buon scopo per impedire che vengano modificati o eliminati accidentalmente dall'utente finale, ecco perché sono ancora usati in modo così diffuso. Concordo sul fatto che i dotfile non debbano essere utilizzati per la sicurezza, nel senso che non sono impossibili da trovare / leggere / modificare.
Nmath,

3
@SergiyKolodyazhnyy pochi metodi sono efficaci al 100% da soli. Per quanto riguarda affermare che i dotfile siano "in alcun modo nascosti" è evidentemente falso, poiché questo è il motivo principale per cui vengono utilizzati e l'unico vantaggio per l'aggiunta del precedente .. Sono totalmente invisibili? No, e non dovrebbero esserlo. Possono ancora essere letti / scritti? Sì, e dovrebbero. Sono invisibili (nascosti) nella maggior parte dei casi? Sì, questo è il punto
Nmath,

1
@Nmath Bene, accettiamo di non essere d'accordo :) Inoltre la sezione dei commenti non è per discussioni approfondite.
Sergiy Kolodyazhnyy,

Risposte:


19

Sì, esiste uno standard: questi sono specificati da freedesktop.org e fanno parte delle specifiche della directory di base XDG .

config-spec delinea solo i requisiti di base, ma i dettagli sono nelle Specifiche della directory di base. Le directory ~/.confige ~/.cachesono predefinite se non diversamente configurato:

Esiste una serie di directory di base ordinate per le preferenze relative a quali file di configurazione devono essere cercati. Questo set di directory è definito dalla variabile di ambiente $ XDG_CONFIG_DIRS.

Esiste una singola directory di base relativa alla quale devono essere scritti i dati non essenziali (memorizzati nella cache) specifici dell'utente. Questa directory è definita dalla variabile d'ambiente $ XDG_CACHE_HOME.

...

$ XDG_CONFIG_HOME definisce la directory di base relativa a quali file di configurazione specifici dell'utente devono essere memorizzati. Se $ XDG_CONFIG_HOME non è impostato o vuoto, deve essere utilizzato un valore predefinito uguale a $ HOME / .config.

...

$ XDG_CACHE_HOME definisce la directory di base relativa a quali file di dati non essenziali specifici dell'utente devono essere memorizzati. Se $ XDG_CACHE_HOME non è impostato o vuoto, deve essere utilizzato un valore predefinito pari a $ HOME / .cache.

È possibile notare che queste specifiche indicano principalmente dove devono essere archiviati i dati, quali variabili di ambiente utilizzate e in che modo (neutri per il desktop, efficienti, ecc.), Ma la maggior parte dei desktop sono liberi di implementare la parte "how" di essi. I desktop basati su GNOME useranno gsettingsdove gli utenti di KDE possono usare lo stesso tramite kwriteconfig, ma entrambi faranno affidamento sulla ~/.configdirectory nel processo


Domanda punti chiave

Come faccio a sapere se si tratta di una cartella ufficialmente supportata e non solo di un sapore della posizione del mese per una cache / configurazione per utente?

Queste directory compaiono nella documentazione ufficiale e anche il Filesystem Hierarchy Standard le menziona. Questa è documentazione ufficiale, quindi le cartelle sono ufficialmente supportate.

È qualcosa che dovrei semplicemente accettare come luogo di pratica standard non dichiarato?

Dipende dall'app che stai creando. Si suppone che l'app sia configurabile per utente o funzioni in modo coerente attraverso il sistema? FHS ci dice che per cose a livello di sistema dovremmo usare /etco /usr/local, ma le directory XDG dovrebbero essere usate per configurazioni specifiche dell'utente - ~/.cachee ~/.config. Naturalmente, se l'applicazione non dipende da impostazioni specifiche dell'utente, è possibile utilizzare / var / cache anziché la directory per utente. Certo, potresti sempre avere un singolo ~/.appname.conffile, una ~/.appname.db o una ~/.appname/directory per mantenere le configurazioni e la cache lì, ma sarebbe non standard; non "cattivo" - solo non standard.

Guarda anche


ehm hai postato questo prima di me? o durante? > :)
Rinzwind il

@Rinzwind Proprio prima della tua risposta :) Guarda la linea temporale askubuntu.com/posts/1151791/timeline
Sergiy Kolodyazhnyy,

Ti
faccio

Ah fantastico, avrei dovuto scavare più a fondo, grazie per l'informazione.
Danny A

Quale parte di POSIX parla dell'utilizzo delle directory?
Chepner,
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.