2009-09-23 14 views
5

मैं समझता हूं कि लिनक्स/यूनिक्स पर एक सी ++ कमांड लाइन प्रोग्राम स्थापित करते समय, यह इसे मूल निर्देशिका में छोड़ने के बजाय परंपरागत है, इसे पहले से ही पथ पर चलने वाली निर्देशिका में ले जाने के लिए,लिनक्स/यूनिक्स डेटा फ़ाइलों को स्थापित करें

mv ayane /usr/local/bin 

आगे आगे एक सा देख रहे हैं, मैं एक निर्देशिका या दो विन्यास से भरा, डेटा और स्क्रिप्ट फ़ाइलें, जो कार्यक्रम में पढ़ने के लिए, कुछ की जरूरत के साथ खत्म करने जा रहा हूँ: मैं स्थापित प्रविष्टि एक मेकअप है स्टार्टअप, कुछ बाद में मांग पर, और कुछ मामलों में बाद में संशोधित और फिर से सहेजें।

इससे सवाल उठता है कि प्रोग्राम कैसे पता लगा सकता है कि इसकी डेटा फाइलें कहां स्थित हैं। मेरे उबंटू लिनक्स वर्चुअल मशीन पर/बिन में देख रहे हैं, ऐसा लगता है कि केवल बाइनरी फाइलों को रखने में इसके नाम पर लाइव लगता है, इसलिए डेटा फ़ाइलों को आम तौर पर प्रोग्राम के समान निर्देशिका में नहीं रखा जाता है।

डेटा फ़ाइलों को उस स्थान पर डालने का सामान्य समाधान क्या है जिसे प्रोग्राम के लिए जाना जा सकता है?

+0

प्रासंगिक: http://stackoverflow.com/questions/528399/what-should-linux-unix-make-install-consist-of – dmckee

उत्तर

7

कुछ फाइल सिस्टम मानक हैं, FHS पर पढ़ रहे हैं या ऐसा कुछ (ध्यान दें कि फाइल सिस्टम लेआउट के लिए अलग-अलग दृष्टिकोण हैं)।

मूल रूप से, आप अपने निष्पादन बाइनरी $prefix/bin/ में प्रति-मेजबान विन्यास चला जाता है $prefix/etc/ में, प्रति-उपयोगकर्ता उपयोगकर्ता के घर निर्देशिका, कट्टर स्वतंत्र $prefix/share में स्थिर डेटा, मेहराब-आधारित डेटा और पुस्तकालयों में $prefix/lib में परिवर्तनशील डेटा रखा, और आमतौर पर /var/lib/ में जाता है।

यह सामान संकलन-समय और रनटाइम पर कॉन्फ़िगर करने योग्य होना बेहतर है। और हाथों के साथ के साथ Makefiles लिखना भी परंपरागत नहीं है, आप autotools सूट या समान (स्वाद का विषय) देखना चाह सकते हैं।

+2

यह अधिक भावना $ उपसर्ग में डेटा डाल करने के लिए बनाता है/शेयर/ और $ उपसर्ग/lib/। और यदि एक से अधिक कॉन्फ़िगरेशन फ़ाइल हैं:/etc/ PiedPiper

+2

पाइडपाइपर, ठीक है, जब मैं '$ उपसर्ग/lib' और' $ उपसर्ग/साझा' का संदर्भ देता हूं, तो मुझे यह नहीं बताया गया कि फ़ाइलों को तत्काल तत्काल वंशज कहा जाना चाहिए निर्देशिका। –

2

आपको File System Hierarchy मानक देखना चाहिए।

संक्षेप में, यदि आपको प्रोग्राम को सिस्टम-व्यापी फाइलों की आवश्यकता है, तो कॉन्फ़िगर /etc में जाना चाहिए। संसाधन, जैसे स्क्रिप्ट और छवि फ़ाइलों /usr/share में जाते हैं। रनटाइम डेटा /var/run में चला जाता है।

प्रति उपयोगकर्ता फ़ाइलें उपयोगकर्ता की होम निर्देशिका में रहती हैं।

संबंधित मुद्दे