जवाबों:
सिस्टम निर्देशिकाओं में स्थानीय इंस्टॉल करने से बचें। सिस्टम निर्देशिका जैसे /usr
, पैकेज प्रबंधन प्रणाली का उपयोग करने के लिए आरक्षित हैं। परिभाषा के अनुसार, यदि आप ऐसा कर रहे हैं make install
तो इसका मतलब है कि आप एक स्थानीय इंस्टॉल कर रहे हैं, और यदि आपको ऐसा करने की आवश्यकता है, तो sudo make install
इसका मतलब है कि आपके पास जहां भी आप लिख रहे हैं, उसके लिए आपके पास अनुमति नहीं है।
इसलिए, यदि आपको अनुमति संबंधी त्रुटियां मिल रही हैं, तो make install
जांचें और देखें कि क्या आप सिस्टम निर्देशिका में स्थापित करने की कोशिश कर रहे हैं, और /usr/local
इसके बजाय या इसी तरह स्थापित करें । /usr/local
स्थानीय प्रतिष्ठानों के लिए आरक्षित है। आपको अपने आप को लिखने की अनुमति देने की आवश्यकता हो सकती है /usr/local
, लेकिन यह आमतौर पर आसानी से किया जाता है। डेबियन पर यह staff
समूह में खुद को जोड़कर किया जा सकता है । बेहतर अभी भी, एक बाइनरी पैकेज ढूंढें या बनाएं, और इसके बजाय इसे स्थापित करें। इस तरह आप आसानी से स्थापित संकुल का ट्रैक रख सकते हैं और पैकेज प्रबंधन के अन्य लाभ प्राप्त कर सकते हैं।
ध्यान दें कि पैकेज प्रबंधन प्रणाली /usr/local
सामान्यतः FHS के अनुसार स्थापित नहीं होती है । डेबियन पॉलिसी मैनुअल की धारा 9.1 देखें- फाइल सिस्टम पदानुक्रम अवलोकन के लिए।
यहाँ आदेशों का एक बुनियादी ठहरनेवाला प्रश्न है:
चूंकि sudo कमांड आपको कमांड को रूट के रूप में चलाती है, इसका मतलब है कि मेक कमांड के पास सुपर-उपयोगकर्ता विशेषाधिकार हैं। इसका मतलब यह है कि अगर मेकफाइल दुर्भावनापूर्ण है, या कोई भी स्क्रिप्ट जिसे वह कॉल कर सकता है दुर्भावनापूर्ण है, तो यह आपके सिस्टम से समझौता कर सकता है।
संक्षेप में, यदि आप सॉफ़्टवेयर पर भरोसा नहीं करते हैं, तो इसे स्थापित न करें। यदि आप सॉफ़्टवेयर पर भरोसा करते हैं, तो रूट के रूप में चलने से कुछ भी नहीं होना चाहिए।
ध्यान दें:
sudo make install
su; make install
ज्यादातर मामलों में ऐसा ही है ।
जैसा कि ऊपर उत्तर दिया गया है, sudo make install
आपको उन निर्देशिकाओं में फ़ाइलें स्थापित करने देता है जो अन्यथा केवल एक उपयोगकर्ता के रूप में आपके लिए पढ़ी जाती हैं।
समस्या मैं समझ सकता हूं कि बाद की तारीख में आप प्रोग्राम को अनइंस्टॉल या अपग्रेड करना चाह सकते हैं। यदि आपके पास अभी भी सोर्स कोड डायरेक्टरी ट्री है, तो make uninstall
आपके लिए प्रोग्राम को अनइंस्टॉल कर देगा, लेकिन अगर, कई अन्य विशिष्ट उपयोगकर्ताओं के रूप में, आपने सोर्स कोड डायरेक्टरी ट्री को डिलीट कर दिया है, तो आप किस्मत से बाहर हैं। और जब से आपने पैकेज मैनेजमेंट सिस्टम का उपयोग करके प्रोग्राम इंस्टॉल नहीं किया है, तो आप उस तरह से प्रोग्राम को अनइंस्टॉल करने में भी असमर्थ हो सकते हैं।
ऐसे कार्यक्रमों को स्थापित करने का सबसे अच्छा तरीका उन्हें अपने घर निर्देशिका में स्थापित करना हो सकता है। --prefix=/home/<user>/<some>/<directory>
करने का विकल्प पास करें ./configure
। यह आपको make install
इसके बजाय उपयोग करने की अनुमति देगा sudo make install
क्योंकि /home/<user>/<some>/<directory>
यह आपके द्वारा लिखने योग्य है। इसके अलावा स्थापना रद्द एक तस्वीर है -rm -rf /home/<user>/<some>/<directory>