Neden bazı uygulamalar yapılandırma verileri için ~ / .config / appname, diğerleri ~ / .appname kullanıyor?


37

Bazı uygulamaların yapılandırma dosyalarını koyduğunu, ~/.config/appnamediğerleri bunun için ~/.appname(klasik yöntem, AFAIK) kullandıklarını fark ettim . Bu ayrımın anlamı nedir ve benim bir uygulama için göz önünde bulundurulması gereken daha iyi ne olabilir?

GÜNCELLEME: (XUbuntu 11.10 varsayılan) $ XDG_CONFIG_HOME ayarlanmış ~/ve sistemimdeki uygulamaların çoğu (Mozilla Firefox, Adobe Flash Player, Midnight Komutanı, Opera, Şarap, vb.) Buna uyuyor. Ancak bunun yerine hala birçok uygulama (Compiz, Deadbeef, VLC, Qt Oluşturan, Google Chrome, XFCE vb.) Kullanılmaktadır ~/.config/. Başka bir şüpheli şey de, dizinlerin ~/.config/kendilerinin gizli olmadığıdır (adlarında nokta yoktur) - uygulama yapılandırma dizinlerinin, yere bağlı olmadan sabit kendi adlarına sahip olması beklenmez mi ($ XDG_CONFIG_HOME değeri)?

Yanıtlar:


44

Jasonwryan'ın cevaplarınızın tamamlayıcısı ve sorunlarınızın bazılarını ele alıyor:

  • Sizin $XDG_CONFIG_HOMEedilir değil ayarlı ~/. Sadece ayarlanmadı. Bu nedenle , XDG Spesifikasyonunu takip eden uygulamalar varsayılanı kullanır.~/.config

  • İçindeki kirler /.configgizli değil çünkü mecbur değiller. Bir ~/.configdir kullanmanın asıl amacı , kullanıcının dağınıklığını toplamaktır$HOME . Zaten ayrı, gizli bir dirde bulundukları için, içinde gizlenmeye gerek yoktur.

  • Spec (maalesef hala büyük çoğunluğu) takip etmez Yazılım onların ayarları için gizli dir kullanmak (gibi ~/.myapp) bir şekilde girişimi kullanıcının yığılmayı için değil $HOME. Çok çalışır, ancak örneğin ayarlarınızı ve "büyük verilerinizi" (Resimler, Videolar, Müzik gibi) ayrı ayrı yedeklemeye çalıştığınızda hala kötü bir yaklaşımdır. Tüm ayarların tek bir yerde, kullanıcının verileriyle karıştırılmadan yapılması, çok daha iyi bir yaklaşımdır

  • Gelince "nerede olursa olsun sabit isimlerini sahip XDG_CONFIG_HOMEişaret" , zaten yapın: o appname olmadan lider nokta. Unutmayın: kullanan olanlar $HOME/.appnameolanlardır görmezden XDG Spec. Sabit kodlu bir yol kullanıyorlar.

  • Başvurularınıza gelince, lütfen XDG Standardını kullanın ! Size yalvarıyorum ve kullanıcılarınız $ HOME'larını daha fazla karıştırmayacağınız için teşekkür edecek.


4
Sadece cevabın en mükemmel olduğunu söylemek istiyorum ! Geleneksel bilgelik özellikle yararlıdır ve puanlarınız çok iyi açıklanmıştır :) teşekkürler!
Steve Benner

HOME dizinindeki gizli dosyaların listesi ile gizli yapılandırma dizinindeki gizli olmayan dosyaların listesi arasındaki fark nedir? Benim için uzun olduğu kadar geniş.
17:58

aralık: 2 ana fark görüyorum, kozmetik ve pratik bir fark: bakış açınıza göre , birkaç, belki de onlarca kişi yerine $HOMEtek bir ~/.configgiriş. Ayrıca, ayarlarınızın yedeklenmesini (veya hariç tutmanızı) çok daha kolay hale getirir! Yazılım ayarlarınızı sizinkinden, örneğin kendinizden, nasıl ayırt ~/Documentsedebilirsiniz ~/.cache?
MestreLion

24

Çünkü yapılandırma dosyalarını yerleştiren uygulamalar , özellikle XDG Temel Dizin Belirtimi'ni$HOME görmezden geliyorlar :

Kullanıcıya özel yapılandırma dosyalarının yazılması gereken tek bir temel dizin var. Bu dizin $ XDG_CONFIG_HOME ortam değişkeni ile tanımlanır ...

$ XDG_CONFIG_HOME ayarlanmamış veya boş ise, $ HOME / .config değerine eşit bir varsayılan kullanılmalıdır.

Benim (XUbuntu 11.10 varsayılan) $XDG_CONFIG_HOMEolarak ayarlanmış gibi görünüyor ~/, ama yine de kullanan birçok uygulama var~/.config/
Ivan

3
Bu cevap tam olmaktan uzak. Yani, şartnamenin ilk günden beri orada olduğu ve sadece başlangıçtan beri onu görmezden gelen uygulamalar olduğu anlaşılıyor. Fakat aslında XDG'den daha uzun süredir var olan bazı özellikleri var.
Ruslan

Bir sürüm 0.7 Şair standardı. Bu gerçekten önemli olmalı. Standardın hangi problemi çözdüğünü açıklayan var mı?
17'de ceving

@Ruslan: 2003'ten beri orada. 15 yıl önce! Doğru, bugün ilk gün değil ve bundan önce birçok yazılım oluşturuldu. Ancak bu tür herhangi bir yazılımın bugün hala kullanımda olması gereken birçok güncellemesi vardı, bu yüzden XDG standardına geçmemiş olanları kasıtlı olarak görmezden seçtiklerini söylemek güvenli.
MestreLion

@ceving: Kullanıcı dizinlerini aynı şekilde organize etme problemini çözer /: Verileri çalıştırılabilirlerle konfigürasyonla karıştırmamak. ~/.configKullanıcının karşılığıdır /etcve bu, örneğin yedeklemelerde muazzam bir şekilde yardımcı olur. Bu durumda /.config, herhangi bir ayar yedeğinin manuel olarak tüm uygulama dizinlerini içermesi veya tüm kullanıcıların "büyük veri" dizinlerini (Videolar, Müzik ve oluşturmuş olabileceği diğer kişisel dizinler) manuel olarak hariç tutması gerekir.
MestreLion

7

Daha tartışmalı bir cevap:

  • ~/.configyalnızca FreeDesktop.org standartlarına uyan uygulamalar için geçerli olan XDG standardı için varsayılandır (ayrıca $XDG_CONFIG_HOMEdeğişken kullanılarak da).
  • ~/.appname freedesktop standardından önce vardı
  • Herkes freedesktop standardını sevmiyor
  • "Dağınıklık" bence $HOMEbir sorun değil.

2
Bu tartışmalı bir cevap değil, yanıltıcı ve yanlış bir cevap: - Şu anda ~/.configFreeDesktop.org ile hiçbir ilişkisi olmayan uygulamalardan Libre Office, Chromium, Deluge gibi pek çok oyundan (dahil olmak üzere değil) 120 dizinim var sadece Unity3D kullanan tüm oyunlar, Google uygulamaları (Chrome, Earth), Python sayfalar (IPython, Eric), Emülatörler (Muppen 64, Desmune). FreeDesktop.org'un kendisinde çok az uygulama var. - ~/.appnameXDG'den önce var olan bir kongredir, ancak günümüzde hala kullanımda olan çoğu yazılım standarttan sonra oluşturulmuştur .
MestreLion

5
- Bir yazılım geliştiricinin bakış açısından, bir dizin standardında gibi bir şey veya beğenmemek var, sadece gelen dir sabit Yaptığınız değişiklikleri $HOME/.myappiçin${XDG_CONFIG_HOME:-$HOME/.config}/myapp
MestreLion

Burada tanımlanan bir freedesktop'un standart, hala mı: specifications.freedesktop.org/basedir-spec/... ve hangi uygulamaları istemeyen onlar kullanımına ücretsiz değildir. Herkes gerekli .config ile ayrımı düşünmez.
David Gardner

Doğru, ancak standardı takip eden uygulamaların bir şekilde "FreeDesktop.org uygulamaları" olduğunu ima etmek çok yanıltıcıdır.
MestreLion

2
~/.appüzerinde herhangi bir yararı var ~/.config/appmı?
sam boosalis
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.