2010-07-30 12 views
17

Estoy planeando desarrollar una secuencia de comandos multiplataforma. En Linux y otros sistemas operativos, almacenará la configuración en XDG_CONFIG_HOME y los archivos de datos (específicamente, los complementos descargados) en XDG_DATA_HOME. En Windows, usará APPDATA para ambos (a menos que alguien tenga una idea mejor). Sin embargo, ¿qué sería lo correcto en Mac OS X?¿Equivalentes de XDG_CONFIG_HOME y XDG_DATA_HOME en Mac OS X?

En mi primera ojeada a través del útil directorio de Macbook ~/Library, vi Preferences y Application Support carpetas. Originalmente estaba planeando usarlos, pero Preferences parece contener listas con nombres de dominio inversos como com.apple.foo.bar.baz.plist, y cada carpeta en Application Support corresponde a un paquete en /Applications, así que no estoy seguro de qué tan bien reaccionaría el sistema ante los archivos que don No coincide con sus estándares. Almacenarlos directamente en ~/Library podría ser una opción, pero no quiero contaminarlo con un archivo extraviado myscript.conf si hay un lugar mejor para él.

¿Dónde debo almacenar estos archivos? (Y por favor no digas solo ~/.myscript. Sé que es la tradición de Unix, pero me molesta ver archivos duales aleatorios en el directorio de inicio.)

+0

Si se trata de una herramienta de línea de comandos, o de otra forma utilizado por los desarrolladores, * por favor por favor por favor * sólo tiene que utilizar los directorios XDG. O al menos utilícelos si existen, incluso si recurre a '~/Library' como valor predeterminado en lugar de' ~/.config' et al. – OJFord

Respuesta

4

Yo usaría ~/Library/Application Support/script_name/. Los subdirectorios dentro de Application Support son usados ​​convencionalmente por varias aplicaciones, incluido el propio software de Apple. Pero no se aplica por el sistema operativo y no está vinculado a las aplicaciones dentro de /Applications. Entonces eres perfectamente libre de crear tu propio directorio en él.

Para la estructura de directorios de OS X en general, consulte this Apple document.

+0

De acuerdo, genial. ¿Es adecuado para la configuración también, o solo archivos de datos? – LeafStorm

+0

Ambos están bien. Agregué a la respuesta un documento oficial como referencia. – Yuji

+1

El enlace parece estar desactualizado, quizás este: https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672-CH2 -SW1 –

24

Al comparar la documentación de Apple para las distintas rutas de acceso a las especificaciones XDG directorio base se aproxima a los siguientes lugares:

  • XDG_CONFIG_HOME ▶ ︎ ~/Library/Preferences/
  • XDG_DATA_HOME ▶ ︎ ~/Library/
  • XDG_CACHE_HOME ▶ ︎ ~/Library/Caches/

Mapping XDG Base ubicaciones Especificación de directorio para "Mi App" en Mac OS X podría tener este aspecto:

  • XDG_CONFIG_HOME ▶ ︎ ~/Library/Preferences/name.often.with.domain.myapp.plist
  • XDG_DATA_HOME ▶ ︎ ~/Library/My App/
  • XDG_CACHE_HOME ▶ ︎ ~/Library/Caches/My App/

Estas asignaciones parecen bastante razonable, pero no son exactos. Algunos tipos de caché o datos pueden ser apropiados para ~/Library/Application Support/My App, y otros pueden ser mejores en las ubicaciones temporales o en el paquete de aplicaciones. Todo es por convención y las mismas razones para usar las mejores ubicaciones de XDG_ se aplican al uso de las mejores ubicaciones en el sistema Mac OS X.

Su molestia en ~/.myscript está en línea con las directrices de Apple: "No contaminar el espacio del usuario".

Referencias:

+3

XDG _ * _ HOME no son específicos de la aplicación: sus ejemplos probablemente deberían leer "XDG_CONFIG_HOME -> ~/Library/Preferences /", "XDG_DATA_HOME -> ~/Library /", & "XDG_CACHE_HOME -> ~/Library/Caches/". (¡Tu publicación fue útil! Estoy proporcionando esta corrección menor para la posteridad) –

+0

Los ejemplos fueron ubicaciones para "Mi aplicación". Agregué una asignación genérica a la respuesta que muestra las ubicaciones no específicas de la aplicación. Gracias. – jla

+0

Los enlaces parecen estar desactualizados, ¿era algo como esto ?: https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672 -CH2-SW1 –