माउंटेन लायन में सिस्टम पर्यावरण चर कहाँ स्थापित किए जाते हैं?


46

लायन (और पिछली रिलीज़) में था .MacOSX/environment.plist। 10.8 में अपग्रेड करने के बाद, फ़ाइल अभी भी है, लेकिन चर नहीं ले रहे हैं।

मैंने उन्हें जोड़ने का भी प्रयास किया है /etc/launchd.confऔर वे टर्मिनल में दिखाई देंगे, लेकिन GUI एप्लिकेशन (मेरी आईडीई की तरह) नहीं।


क्या आपने बदलने के बाद रिबूट किया /etc/launchd.conf?
nohillside

मैंने किया था, और सभी चर अब किसी भी टर्मिनल में उपलब्ध हैं, लेकिन मेरी आईडीई के लिए मौजूद नहीं हैं।
फेलिक्स

हो सकता है कि IDE आपके लिए पर्यावरण को उजागर न करे (मेरा उत्तर देखें )? क्या आईडीई है? यह खोजक या स्पॉटलाइट द्वारा सीधे लॉन्च किया जाता है?
halloleo

जवाबों:


22

मैंने Apple डेवलपर फ़ोरम पर भी यह सवाल पूछा था और आधिकारिक प्रतिक्रिया, यह वापस मिल गया।

.App के Info.plist को बदलें, जिसमें आप चाहते हैं कि पर्यावरण चर के साथ एक "LSEnvironment" शब्दकोश हो।
~ / .MacOSX / environment.plist अब समर्थित नहीं है।


2
वह कहाँ स्थित है?
ओरोम डेस

एक अधिक विशिष्ट उदाहरण के लिए एक लिंक प्रदान करना उपयोगी होगा।
Blaisorblade

1
अद्यतन: मैंने सिंटैक्स (मुझे लगता है) का पता लगाने के बाद, उस फ़ाइल को बदलने की कोशिश की, लेकिन यह मेरे लिए बिल्कुल भी काम नहीं करता है।
ब्लेज़ोरब्लेड

4
WhatEver.app/Content/Info.plist में प्रति एप्लिकेशन एक Info.plist होगा। आप इसे XCode के साथ संपादित कर सकते हैं। सूचना संपत्ति सूची पर "+" पर क्लिक करें और LSEnvironment नामक एक शब्दकोश जोड़ें। यदि आप इसे सही ढंग से टाइप करते हैं तो यह पर्यावरण चर पर नाम बदल देगा। फिर आप उस "+" पर क्लिक करें जिसके द्वारा प्रत्येक पर्यावरण चर को आप जोड़ना चाहते हैं।
फेलिक्स

2
यह एक अच्छा समाधान है, लेकिन यह अब Yosemite 10.10.5 के रूप में काम नहीं करता है।
डालमज़ियो

21

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मुझे लगा कि मैं बताऊंगा कि योसेमाइट /etc/launchd.confअब काम नहीं करता (जैसा कि मैन पेज द्वारा पुष्टि की गई है)। तो यहाँ एक विकल्प है।

AppleScript एडिटर लॉन्च करें, इस तरह एक कमांड दर्ज करें:

do shell script "launchctl setenv variablename value"

(आप की तरह के रूप में कई लाइनों जोड़ें)

अब फाइल फॉर्मेट: एप्लीकेशन के रूप में (saveS) सेव करें । अंत में सिस्टम सेटिंग्स खोलें → उपयोगकर्ता और समूहआइटम लॉग इन करें और अपना नया एप्लिकेशन जोड़ें।


ध्यान दें कि यह अन्य ऐप के साथ काम नहीं कर सकता है जो लॉगिन आइटम के रूप में खोले जाते हैं और शायद आप लॉगिन के बाद जल्दी से खोलते हैं
user151019

इसने मेरे लिए काम किया। बहुत बहुत धन्यवाद। यह सारा दिन पागल हो रहा है!
व्होलडाय

2
अब तक एकमात्र और सार्वभौमिक समाधान की तरह दिखता है। लेकिन इसे ऊपर जाने और पहले जवाब बनने के लिए 9 और अपवोट चाहिए। : c
सर्ज बोर्स्च

यह मेरे लिए एल Capitan पर काम किया। जैसा कि @ मर्क द्वारा ऊपर उल्लेख किया गया है, आदेश देने के साथ समस्याएँ हैं (उदाहरण के लिए फिर से शुरू किए गए अनुप्रयोगों में पर्यावरण हो सकता है या नहीं भी हो सकता है), लेकिन एक बार इस काम में लॉग इन करें जैसा कि आप उम्मीद करेंगे। यही है, स्पॉटलाइट या डॉक से शुरू किए गए एप्लिकेशन में सही वातावरण है।
एलेक थॉमस

@Mark लॉन्च एजेंट का उपयोग करके, आप इस उत्तर को आजमा सकते हैं । मेरे मामले में लॉन्च एजेंट लॉगिन आइटम के बाद शुरू होता है, इसलिए मैं लॉगिन आइटम से लॉन्च एजेंट तक लक्ष्य एप्लिकेशन (जैसे ग्रहण) को स्थानांतरित करता हूं, ताकि उन्हें इस विशेष एप्लिकेशन सेटिंग पर्यावरण चर के बाद शुरू किया जाएगा।
फ्रैंकलिन यू

10

जैसा कि आपने पता लगाया है, पर्यावरण का उपयोग किया जाता है। फाइल फ़ाइल का पालन नहीं किया जाता है, Info.plist में LSEnvironment के तार के रूप में संग्रहीत चर केवल लॉन्च द्वारा निर्धारित किए जाते हैं

यदि आप अपने प्रोग्राम को सीधे टर्मिनल / शेल से कॉल करते हैं, तो आप उन पर निर्भर नहीं कर सकते हैं कि टर्मिनल एक सामान्य वातावरण चर सेट करेगा। अच्छी खबर यह है कि open -aकमांड लॉन्चिंग को लॉन्च करने के लिए ट्रिगर लॉन्च करता है, इसलिए चर को ऐप पर्यावरण के लिए लगातार सेट किया जाएगा यदि स्थानीय शेल पर्यावरण के लिए नहीं।


4

पर्यावरण चर को सेट /etc/launchd.confकरने का तरीका है: स्थानीय गोले द्वारा रिबूट के बाद शुरू किया गया प्रत्येक अनुप्रयोग , खोजक या स्पॉटलाइट को इन चर मिलते हैं - मैंने इसे माउंटेन लायन के साथ बड़े पैमाने पर परीक्षण किया है 10.8.3।

2 कैविएट:


1
/etc/launchd.confYosemite के बाद से अब समर्थित नहीं है। देखें apple.stackexchange.com/questions/106355/...
फ्रेंकलिन यू

3

कोशिश करो launchctl setenv NAME VALUE। मुझे पता नहीं है कि क्या यह संपादन से अलग तरीके से करता है / है launchd, लेकिन यह मेरे लिए टर्मिनल और जीयूआई ऐप दोनों में काम करता है। अधिक जानकारी।

ध्यान दें कि यह एक रिबूट भर में नहीं बचता है। इसे ठीक करने का एक तरीका है


3
यह काफी लंबा पृष्ठ है जिसे आप यहां लिंक कर रहे हैं। प्रासंगिक भाग कहाँ है? क्या आप इसे हर किसी के लिए आसान बनाने के लिए सीधे अपने उत्तर में शामिल कर सकते हैं?
nohillside

2
उफ़, अच्छी बात है, सोचा कि मैं उस यूआरएल में एक टुकड़े के अधिक शामिल होगा। तय की।
राणे १

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