2010-07-30 11 views
17

Çapraz platform betiği geliştirmeyi planlıyorum. Linux ve diğer işletim sistemlerinde XDG_CONFIG_HOME ve XDG_DATA_HOME veri dosyalarında (özellikle indirilen eklentiler) yapılandırmayı depolar. Windows'ta, her ikisi için APPDATA kullanacaktır (birisi daha iyi bir fikri olmadığı sürece). Bununla birlikte, Mac OS X'te yapılması gereken şey ne olurdu?XDG_CONFIG_HOME ve XDG_DATA_HOME eşdeğerleri?

Kullanışlı bir Macbook'un ~/Library dizini aracılığıyla ilk bakışta, Preferences ve Application Support klasörlerini gördüm. Orijinal olarak bunları kullanmayı düşünüyordum, ancak Preferences yalnızca com.apple.foo.bar.baz.plist gibi ters etki alanı adları içeren plists içerdiği ve Application Support'daki her klasör /Applications'daki bir pakete tekabül ediyor gibi görünüyor, bu yüzden sistemin donmadığı dosyalara ne kadar iyi tepki vereceğinden emin değilim standartlarına uymuyor. Onları doğrudan ~/Library içinde saklamak bir seçenek olabilir, ancak bunun için daha iyi bir yer varsa, bir myscript.conf dosyayla kirletmek istemiyorum.

Bu dosyaları nerede saklamalıyım? (Ve lütfen sadece ~/.myscript deme. Unix geleneğini biliyorum, ama ev dizinindeki rastgele nokta dosyalarını görmemi sıkıyor.)

+0

bir komut satırı aracı veya başka geliştiriciler tarafından kullanılırsa, * * sadece XDG dizinleri kullanmak lütfen, lütfen. Ya da en azından, eğer varsa, ~ ~/.config' et al. – OJFord

cevap

4

~/Library/Application Support/script_name/'u kullanırdım. Application Support'un içindeki alt dizinler, Apple'ın kendi yazılımları dahil olmak üzere çeşitli uygulamalar tarafından geleneksel olarak kullanılır. Ancak, işletim sistemi tarafından zorlanmaz ve /Applications'un içindeki uygulamalara bağlı değildir. Yani kendi dizini oluşturmak için tamamen özgürsünüz.

Genel olarak OS X'in dizin yapısı için bkz. this Apple document.

+0

Tamam, havalı. Bu, yapılandırma için de uygun mu, yoksa sadece veri dosyaları mı? – LeafStorm

+0

Her ikisi de iyi. Cevap olarak resmi bir belgeyi referans olarak ekledim. – Yuji

+1

Bağlantı güncel değil, belki de bu: https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672-CH2 -SW1 –

24

XDG Base Directory özelliklerine çeşitli yolları için Apple'ın belgelerine karşılaştırılması aşağıdaki konumlara yaklaşır:

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

XDG Tabanı Eşleme Mac OS X üzerinde "My App" için dizin Şartname yerleri aşağıdaki gibi görünebilir:

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

Bu eşleşmeler görünüyor Oldukça makul ama kesin değil. Bazı önbellek veya veriler ~/Library/Application Support/My App için uygun olabilir ve diğerleri geçici konumlarda veya Uygulama paketinde en iyisi olabilir. Tüm bu kurallar gereğidir ve en iyi XDG_ konumlarını kullanmanın aynı nedenleri Mac OS X sistemindeki en iyi konumların kullanılması için geçerlidir.

~/.myscript adresindeki sıkıntınız, Apple'ın yönergeleriyle uyumludur: "Kullanıcı alanını kirletme".

Referanslar:

+3

XDG _ * _ HOME uygulamaya özgü değil - örnekleriniz muhtemelen "XDG_CONFIG_HOME -> ~/Library/Preferences /", "XDG_DATA_HOME -> ~/Library /", & "XDG_CACHE_HOME -> ~/Library/Caches /". (Mesajınız işe yarayacaktı! Sadece bu ufak tefecilik düzeltmesini sağladım) –

+0

Örnekler "Uygulamam" için konumlardı. Uygulamaya özgü olmayan yerleri gösteren cevabı bir genel haritalama ekledim. Teşekkürler. – jla

+0

Bağlantılar eski gibi görünüyor, şunun gibi: https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672 -CH2-SW1 –

İlgili konular