जवाबों:
"यूनिक्स आधारित सिस्टम" किसी भी तरह के आम तौर पर लागू होने वाले दृढ़ संकल्प को बनाने के लिए बहुत सामान्य श्रेणी है जो सभी यूनिक्स आधारित प्रणालियों पर लागू होगी । समस्या यह है कि फाइलसिस्टम संरचना (और "उचित" / "पारंपरिक" चीजों को रखने के लिए जगह) "यूनिक्स" के विभिन्न स्वादों के बीच बेतहाशा अलग है (यदि आप इसे कॉल भी कर सकते हैं) तो आपको इसे संभालने के लिए बहुत अधिक है मामला दर मामला आधार पर।
कुछ उदाहरण:
इसका उत्तर यह है कि किसी भी ऑपरेटिंग सिस्टम पर कुछ भी स्टोर करने के लिए विहित, सामाजिक रूप से स्वीकार्य, अच्छी तरह से एकीकृत सम्मेलन, चाहे वह लिनक्स, बीएसडी, सोलारिस, एचपी-यूएक्स आदि का डिस्ट्रो हो, सटीक परिस्थितियों पर निर्भर है । विशेष रूप से:
apt-get
या yum
इसे सीधे इंस्टॉल कर सकें?सभी कारकों पर विचार किए बिना इसके लिए कोई सीधा जवाब नहीं है। हालाँकि, उबंटू 12.04 के लिए, विशेष रूप से , यदि आप .deb
एक पीपीए में वितरित की जाने वाली फ़ाइल में अपने पैकेज का निर्माण कर रहे हैं या उबंटू के अपने पैकेज रिपॉजिटर्स ( main
या universe
) में जमा करने के लिए , तो मैं आपको सलाह दूंगा कि कैश को स्टोर किया जाए /var/cache
। लेकिन यह केवल उबंटू के लिए है और आपको निश्चित रूप से इस धारणा को लागू नहीं करना चाहिए कि हर डिस्ट्रो या यूनिक्स-आधारित ओएस इस स्वीकार्य पर विचार करेगा।
इसके अलावा, अगर सिस्टम के बूटों में कैश डेटा को बचाने के कोई फायदे नहीं हैं, तो मुझे लगता है कि यह / tmp में भी हो सकता है।
ध्यान दें कि आप अपने प्रोग्राम का उपयोग करने वाली हर प्रकार की फ़ाइल के लिए इन पाथिंग कन्वेंशन की समस्याओं में भाग लेने जा रहे हैं : साझा डेटा, निष्पादन योग्य फाइलें, लाइब्रेरीज़, फ़ाइल्स, इमेज, साउंड, वेब पेज और ऑन और ऑन। इसलिए मुझे आश्चर्य होगा, यदि आप कैश फ़ाइलों के बारे में पूछ रहे हैं, तो आप अन्य फ़ाइल प्रकारों को संभालने की योजना कैसे बना रहे हैं। क्या आप सिर्फ भोली धारणाएं बना रहे हैं और उम्मीद कर रहे हैं कि कोई भी आपसे असहमत नहीं है? यदि आपने कोई उबंटू डॉक्स या मानकों को नहीं पढ़ा है, जिसमें यह सुझाव दिया गया है कि उन्हें कहाँ रखा जाए, तो यह केवल एक बात या किसी अन्य बात को मान लेना एक बुरा विचार है। उदाहरण के लिए, हमेशा / usr / lib में लाइब्रेरीज़ चिपके रहना एक गलती हो सकती है, क्योंकि स्थिति के आधार पर वे कहीं और हो सकती हैं।
इसके अतिरिक्त, एक सॉफ्टवेयर डेवलपर के रूप में, मुझे लगता है कि करने के लिए सबसे ज़िम्मेदार चीज़ एंड-यूज़र को यह तय करने की अनुमति है कि उनकी फ़ाइलों को कहाँ रखा जाए। आप डिफॉल्ट सेट कर सकते हैं, लेकिन उपयोगकर्ता (और वितरक) बिल्ड को अपने डिस्ट्रो के साथ फिट करने के लिए अनुकूलित और कर सकते हैं।
ऐसा करने का सबसे आसान तरीका जीएनयू ऑटोकॉन्फ़ का उपयोग करके अपने कार्यक्रम का निर्माण करना है । ऑटोकॉन्फ़ एक बिल्ड सिस्टम है जहाँ उपयोगकर्ता डिफॉल्ट से दूर विभिन्न "डायरेक्टरी टाइप्स" के रास्तों को बदलने के लिए बिल्ड स्क्रिप्ट को कमांड-लाइन आर्ग्युमेंट पास कर सकता है। लगभग हर डिस्ट्रीब्यूशन में हर ऑटोकॉन्फ़ पैकेज के लिए एक बिल्ड स्क्रिप्ट होती है जो प्रत्येक प्रकार के लिए डिस्ट्रो-उपयुक्त पारंपरिक निर्देशिकाओं को सेट करती है। यहां तक कि उनके पास विशेष रूप से कैश के लिए एक निर्देशिका प्रकार है: शेयर्डस्टेडिर ।
gem
उपकरण द्वारा रत्न स्थापित किए जाते हैं । हालाँकि, संभवत: उसी निर्देशिका के भीतर रनटाइम पर फाइलें बनाना उचित नहीं होगा जहां आपका एप्लिकेशन रत्न द्वारा डाउनलोड किया गया हो। दूसरी ओर, यदि आप एक उपयोगकर्ता के रूप में ऐप चला रहे हैं, तो आपको एक निर्देशिका की आवश्यकता है जो उपयोगकर्ताओं के लिए रीड-राइट हो , और इसका अर्थ है कि अनुमतियों को बदलना (जिसमें समूह बनाने के लिए इंस्टॉल-टाइम पर और भी अधिक सिस्टम एकीकरण कार्य करने की आवश्यकता है आदि), या एक वैश्विक पठन-लेखन निर्देशिका का उपयोग कर, जैसे / tmp।
/usr
, /lib
या /bin
आपके आवेदन से।
/tmp
फ़ोल्डर होगा । आपके प्रश्नों के उत्तर होंगे (डाउनलोड, नहीं, नहीं, नहीं, नहीं, नहीं, नहीं)। संभवतः अधिकांश लोगों के लिए निष्कर्ष निकालना सामान्य लगता है,/tmp
लेकिन मैं यूनिक्स सिस्टम के लिए नया हूं और ubuntu ओएस आधारित सम्मेलन मेरे लिए अपरिचित हैं। यह रत्न के लिए दिलचस्प विचार को खोलता है ताकि अज्ञेय डिस्क कैशिंग (उपयोगकर्ता अज्ञेयवादी) की अनुमति दे सके। धन्यवाद, +1 मुझसे।