कुछ एप्लिकेशन अपने कॉन्फिग डेटा के लिए ~ / .config / appname का उपयोग क्यों करते हैं जबकि अन्य ~ / .appname का उपयोग करते हैं?


37

मैंने देखा है कि कुछ एप्लिकेशन अपनी कॉन्फ़िगरेशन फ़ाइलों को डालते हैं ~/.config/appnameजबकि अन्य इसके लिए ~/.appname(क्लासिक तरीका, AFAIK) का उपयोग करते हैं । इस अंतर में क्या समझ है और मेरा आवेदन करने के लिए क्या बेहतर हो सकता है?

अद्यतन: मेरा (XUbuntu 11.10 डिफ़ॉल्ट) $ XDG_CONFIG_HOME ~/मेरे सिस्टम में (जैसे मोज़िला फ़ायरफ़ॉक्स, एडोब फ्लैश प्लेयर, मिडनाइट कमांडर, ओपेरा, वाइन, आदि) के अधिकांश अनुप्रयोगों के लिए सेट है । लेकिन ~/.config/इसके बजाय अभी भी कई एप्लिकेशन (जैसे Compiz, Deadbeef, VLC, Qt Creator, Google Chrome, XFCE, आदि) का उपयोग किया जा रहा है। एक और संदेहास्पद बात यह है कि निर्देशिकाएँ ~/.config/स्वयं छिपी नहीं हैं (उनके नाम में कोई डॉट नहीं) - क्या एप्लिकेशन कॉन्फ़िगरेशन डायर की अपेक्षा स्थान के आधार पर (बिना XDG_CONFIG_HOME मान के) के बिना निरंतर स्वयं के नाम की अपेक्षा की जाती है?

जवाबों:


44

अपने कुछ मुद्दों को संबोधित करते हुए, जस्नोवरीयन के शानदार जवाब के पूरक:

  • आपका $XDG_CONFIG_HOMEहै नहीं करने के लिए सेट ~/। यह बस सेट नहीं है। तो XDG विनिर्देश का पालन ​​करने वाले अनुप्रयोग डिफ़ॉल्ट का उपयोग करते हैं~/.config

  • अंदर की डायरियां /.configछिपी नहीं हैं, क्योंकि उनके पास नहीं है। उपयोगकर्ता को अव्यवस्थित~/.config करने के लिए dir का उपयोग करने का पूरा बिंदु है । चूंकि वे पहले से ही एक अलग, छिपे हुए डायर में हैं, इसलिए वहां अंदर छिपे रहने की कोई जरूरत नहीं है।$HOME

  • सॉफ्टवेयर जो कल्पना का पालन नहीं करता है (दुर्भाग्य से अभी भी विशाल बहुमत) अपनी सेटिंग्स (जैसे ~/.myapp) के लिए उपयोगकर्ता को अव्यवस्थित नहीं करने के प्रयास के लिए एक छिपे हुए डायर का उपयोग करता है $HOME। यह (थोड़े) काम करता है, लेकिन यह तब भी एक बुरा तरीका है जब, उदाहरण के लिए, आप अपनी सेटिंग्स और अपने "बड़े डेटा" (जैसे पिक्चर्स, वीडियो, म्यूजिक) को अलग से बैकअप देने का प्रयास करते हैं। उपयोगकर्ता के डेटा के साथ मिश्रण किए बिना एक ही स्थान पर सभी सेटिंग्स होना, एक बेहतर दृष्टिकोण है

  • के रूप में "जहां की परवाह किए बिना निरंतर नाम होने XDG_CONFIG_HOMEके लिए अंक" , वे पहले से ही कार्य करें: यह है appname बिना प्रमुख डॉट। याद रखें: उपयोग $HOME/.appnameकरने वाले वे हैं जो XDG कल्पना की उपेक्षा करते हैं । वे एक हार्डकोड मार्ग का उपयोग करते हैं।

  • अपने अनुप्रयोगों के लिए, कृपया XDG मानक का उपयोग करें ! मैं आपसे विनती करता हूं, और आपके उपयोगकर्ता कहेंगे कि आपके $ HOME को किसी भी हाल में बंद नहीं करने के लिए धन्यवाद।


4
बस आपका जवाब सबसे उत्कृष्ट कहना चाहता हूँ ! पारंपरिक ज्ञान विशेष रूप से उपयोगी है और आपके बिंदुओं को बहुत अच्छी तरह से समझाया गया है :) धन्यवाद!
स्टीव बेनर

गृह निर्देशिका में छिपी हुई फ़ाइलों की सूची और छिपी कॉन्फ़िगरेशन निर्देशिका में गैर छिपी हुई फ़ाइलों की सूची के बीच अंतर कहां है? मेरे लिए यह उतना ही व्यापक है जितना लंबा है।
ceving

@ एसेविंग: मुझे 2 मुख्य अंतर दिखाई देते हैं, एक कॉस्मेटिक और एक व्यावहारिक: आपके $HOMEदृष्टिकोण से, यह ~/.configकई के बजाय एक एकल प्रविष्टि है, शायद उनमें से दर्जनों। और यह आपकी सेटिंग्स का बैकअप बनाता है (या उन्हें छोड़कर) बहुत आसान है! आप कैसे कह सकते हैं सॉफ्टवेयर सेटिंग्स से, कहते हैं, अपने ~/Documentsया अपने ~/.cache?
मेस्ट्रेलियन

24

क्योंकि जो अनुप्रयोग विन्यास फाइल रखते $HOMEहैं वे XDG बेस डायरेक्टरी विनिर्देश की अनदेखी कर रहे हैं , विशेष रूप से:

एक एकल आधार निर्देशिका है जिसके संबंध में उपयोगकर्ता-विशिष्ट कॉन्फ़िगरेशन फ़ाइलें लिखी जानी चाहिए। इस निर्देशिका को पर्यावरण चर $ XDG_CONFIG_HOME द्वारा परिभाषित किया गया है ...

यदि $ XDG_CONFIG_HOME या तो सेट या खाली नहीं है, तो डिफ़ॉल्ट रूप से $ HOME / .config के बराबर का उपयोग किया जाना चाहिए।

ऐसा लगता है कि मेरा (XUbuntu 11.10 डिफ़ॉल्ट) $XDG_CONFIG_HOMEसेट है ~/, लेकिन अभी भी कई एप्लिकेशन का उपयोग कर रहे हैं~/.config/
इवान

3
यह उत्तर पूर्ण से दूर है। अर्थात्, यह प्रतीत होता है कि विनिर्देश एक दिन के बाद से है, और यह सिर्फ उन ऐप्स हैं जिन्होंने शुरुआत से ही इसे अनदेखा किया है। लेकिन वास्तव में काफी कुछ ऐप हैं जो अपने विनिर्देश के साथ XDG की तुलना में बहुत अधिक समय तक रहे हैं।
रुस्लान

एक संस्करण 0.7 Poettering मानक। यह वास्तव में महत्वपूर्ण होना चाहिए। क्या कोई समझा सकता है कि मानक हल में कौन सी समस्या है?
छत

@Ruslan: यह 2003 के बाद से है। यह 15 साल पहले की बात है! सच है, यह एक दिन नहीं है और इससे पहले कई सॉफ्टवेयर बनाए गए थे। लेकिन इस तरह के किसी भी सॉफ़्टवेयर में सबसे अधिक संभावना थी कि आज भी इसका उपयोग करने के लिए बहुत से अपडेट हैं, इसलिए यह कहना सुरक्षित है कि XDG मानक पर माइग्रेट नहीं किया गया था जो जानबूझकर इसे अनदेखा करने के लिए चुना गया था।
MestreLion

@ एसेसिंग: यह उपयोगकर्ता के डायर को व्यवस्थित करने की समस्या को हल करता है उसी तरह /से व्यवस्थित किया जाता है: कॉन्फ़िगरेशन के साथ निष्पादन के साथ डेटा का मिश्रण नहीं। ~/.configउपयोगकर्ता का प्रतिरूप है /etc, और यह उदाहरण के लिए बैकअप में बहुत मदद करता है। इसके बिना /.config, किसी भी सेटिंग बैकअप को या तो मैन्युअल रूप से सभी ऐप डायर को शामिल करना होगा या मैन्युअल रूप से सभी उपयोगकर्ताओं को "बड़े डेटा" डायर (वीडियो, संगीत, और उनके द्वारा बनाए गए किसी भी अन्य व्यक्तिगत डायर) को बाहर करना होगा।
MestreLion

7

एक और विवादास्पद जवाब है:

  • ~/.configXDG मानक के लिए डिफ़ॉल्ट है, जो केवल FreeDesktop.org मानकों ( $XDG_CONFIG_HOMEचर के उपयोग के माध्यम से ) का पालन करने वाले अनुप्रयोगों पर भी लागू होता है ।
  • ~/.appname Freedesktop मानक से पहले मौजूद
  • सभी को फ्रीडेसटॉपटॉप मानक पसंद नहीं है
  • $HOMEमेरी राय में "अव्यवस्था" एक समस्या नहीं है।

2
यह एक विवादास्पद जवाब नहीं है, यह एक भ्रामक और सादा गलत है: - वर्तमान में मेरे पास 120 निर्देशिकाएं हैं ~/.config, ऐसे अनुप्रयोगों से जिनका FreeDesktop.org से कोई संबंध नहीं है, जैसे लिब्रे ऑफिस, क्रोमियम, डेल्यूज, बहुत सारे गेम (सहित) केवल सभी Unity3D का उपयोग कर खेल), Google एप्लिकेशन (क्रोम, पृथ्वी), अजगर सामान (IPython, एरिक), एम्युलेटर्स (Muppen 64, Desmune)। FreeDesktop.org के पास खुद बहुत कम एप्लिकेशन हैं। - ~/.appnameएक सम्मेलन है जो XDG से पहले अस्तित्व में था, लेकिन आज भी अधिकांश सॉफ्टवेयर मानक के बाद भी उपयोग किए जाते हैं ।
MestreLion

5
- एक सॉफ्टवेयर डेवलपर के नजरिए से, एक निर्देशिका मानक में पसंद या नापसंद करने के लिए कुछ भी नहीं है, यह बस आपके सेव डायर को लगातार बदलता $HOME/.myappहै${XDG_CONFIG_HOME:-$HOME/.config}/myapp
MestreLion

अभी भी एक फ्रीडेकटॉप मानक है, जिसे यहां परिभाषित किया गया है: विनिर्देशों .freedesktop.org/basedir-spec/… और कौन से एप्लिकेशन मुफ्त हैं, वे इसका उपयोग नहीं करना चाहते हैं। हर कोई अलगाव को आवश्यक नहीं मानता है।
डेविड गार्डनर

यह सच है, लेकिन मानक के अनुसार आने वाले अनुप्रयोग किसी भी तरह "FreeDesktop.org अनुप्रयोग" बहुत भ्रामक हैं।
MestreLion

2
~/.appखत्म करने के लिए कोई लाभ हैं ~/.config/app?
सैम बोसालिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.