लिनक्स पर सिस्टम वाइड वातावरण चर सेटअप करने के लिए सबसे अच्छी जगह कौन सी है?


26

मैं रूट उपयोगकर्ता सहित सभी उपयोगकर्ताओं केJAVA_HOME लिए सिस्टम वाइड वातावरण चर सेटअप करना चाहता हूं ।

आवश्यकताएँ:

  • सामान्य उपयोगकर्ताओं के लिए सुलभ
  • जड़ तक पहुँचा जा सकता है
  • हमेशा भरी हुई, न केवल बैश के लिए (सूक्ति-टर्मिनल डिफ़ॉल्ट रूप से बैश शुरू नहीं करता है)
  • उबंटू, डेबियन और वैकल्पिक रूप से रेड हैट पर काम करना
  • महान अगर इसके अलावा आसानी से पटकथा हो सकती है

इंटरैक्टिव गोले के लिए यह ubuntu थ्रेड बाहर पूछें
क्विकशिफ्टिन

जवाबों:


26

जैसा कि किसी ने भी एक पूर्ण उत्तर नहीं जोड़ा है कि मैं वर्तमान में सबसे अच्छा मानता हूं, कम से कम उबंटू के लिए लेकिन मैं अन्य * निक्स प्लेटफार्मों के लिए उत्तर को अनुकूलित करने के लिए खुला हूं।

# **create**: /etc/profile.d/java.sh
export JAVA_HOME=/usr/lib/jvm/default-java

अन्य विकल्प जिन्हें पहले ही माना गया था, लेकिन उन्हें खारिज कर दिया गया:

  • /etc/environment काम करता है लेकिन अन्य उपकरणों के रूप में बनाए रखना कठिन है या लोग इसे संपादित कर सकते हैं।
  • /etc/profile - ऊपर की तरह

11

डेबियन / उबंटू पर जो / आदि / पर्यावरण होगा

मैं Red Hat के समकक्ष नहीं जानता।


1
मेरा मानना ​​है कि / etc / पर्यावरण को हटा दिया गया है
Pat James

@PatJames क्या आपको इसके बारे में अधिक जानकारी है? मैंने मशीन को रिबूट करने के बाद भी रूट के लिए / etc / पर्यावरण को लोड नहीं किया है।
सोरिन

@SorinSbarnea कुछ जानकारी यहाँ है: wiki.debian.org/Locale संकेत / आदि / पर्यावरण अब नए रिलीज में इस्तेमाल नहीं किया जाता है
पैट जेम्स

1
वह पेज केवल यही कहता है कि आपको संबंधित वैरिएबल में लोकेल नहीं चाहिए /etc/environment। यह भी देखें serverfault.com/a/584072/26218
फ्लो

11

मुझे समझ नहीं आ रहा है कि आपने / etc / प्रोफाइल से इंकार क्यों किया। यह सही स्थान है।


9

कुछ ने उत्तर दिया है कि /etc/environmentअब डेबियन में उपयोग नहीं किया गया है और / या नहीं, और यह (संस्करण 7 के अनुसार) गलत है।

फ़ाइल को वास्तव में PAM द्वारा पढ़ा जाता है - विशेष pam_env(8)रूप से, envfileध्वज को डिफ़ॉल्ट रूप से । मैनपेज भी इस डिफ़ॉल्ट को FILES अनुभाग के अंतर्गत बताता है।

विकी ने उद्धृत किया (विशेष रूप से स्थानीय एक) केवल यह बताता है कि स्थानीय-आधारित पर्यावरण चर अब अंदर होने के लिए हैं /etc/profile। उनका कथन "(डेबियन के पुराने संस्करणों में भी / आदि / पर्यावरण)" अस्पष्ट है, और स्थानों के संदर्भ में है।

/etc/pam.dशो के माध्यम से एक त्वरित grep :

root@box:/etc/pam.d# grep pam_env.so *
atd:auth        required        pam_env.so
cron:session       required   pam_env.so
cron:session       required   pam_env.so envfile=/etc/default/locale
login:session       required   pam_env.so readenv=1
login:session       required   pam_env.so readenv=1 envfile=/etc/default/locale
sshd:auth       required     pam_env.so # [1]
sshd:auth       required     pam_env.so envfile=/etc/default/locale
su:session       required   pam_env.so readenv=1
su:session       required   pam_env.so readenv=1 envfile=/etc/default/locale

वे कॉन्फ़िगरेशन लाइनें एडिटिव हैं, और जैसा कि पहले गायब है envfile, यह इस तरह से चूकता है /etc/environment

यह सब, ज़ाहिर है, crondपीएएम के खिलाफ संकलित किए गए बाइनरी ( लॉगिन गोले आदि) जो भी उपयोग कर रहे हैं, उस पर निर्भर करता है ।

अंत में, इसका तात्पर्य यह है कि PAM (जैसे RedHat) का उपयोग करने वाली अन्य प्रणालियाँ, वैसा ही व्यवहार करती हैं, जैसा कि यह संबंधित मैनपेज में देखा जा सकता है।


2

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


1

/etc/profileकार्य करना चाहिए। मैं तो बस अब यह सुनिश्चित करने का परीक्षण किया, डाल export SOMETEST=1234करने के लिए /etc/profileऔर बाद में फिर से प्रवेश echo $SOMETESTमुझे दिया 1234अपेक्षा के अनुरूप। से भीgnome-terminal


1

/etc/enviromentपिछले डेबियन स्थिर रिलीज में उपयोग नहीं किया जाता है। सोरिन एस ने कहा कि इस porpuose के लिए पुनर्संयोजन आपकी खुद की *.shफ़ाइल /etc/profile.d/बनाता है। Https://wiki.debian.org/EnvironmentVariables देखें


0

आप इस मामले में किसी भी ~ विशिष्ट फ़ाइलों का उपयोग नहीं कर सकते। इसलिए....

/etc/profileइस मामले में इसके लिए उचित स्थान होगा। वर्तमान में लॉग इन किए गए उपयोगकर्ताओं को एक नया लॉगिन सत्र प्राप्त करना होता है, लेकिन यह समस्या का इतना बड़ा नहीं होना चाहिए।

@ wk01: /etc/profileडिफ़ॉल्ट रूप से नॉनग्लिन शेल द्वारा लोड नहीं किया जाता है। अपने .bashrc शायद यह लोड कर रहा है ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.