~/.bash_profile
පහත දැක්වෙන ස්නිපටයේ ඔබට සමාන පරිසර විචල්ය අර්ථ දැක්වීම් ඇති බව උපකල්පනය කරමු :
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
export GOPATH="$HOME/go"
export PATH="$PATH:/usr/local/opt/go/libexec/bin:$GOPATH/bin"
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"
අපට දියත් කිරීමේ නියෝජිතයෙක් අවශ්යයි එය එක් එක් පිවිසුම් මත ක්රියාත්මක වන අතර ඕනෑම වේලාවක ඉල්ලුමට අනුව මෙම විචල්යයන් පරිශීලක සැසියට පටවනු ඇත. මෙම නිර්වචන විග්රහ කිරීමට සහ නියෝජිතයා විසින් ක්රියාත්මක කිරීමට අවශ්ය විධානයන් තැනීමට අපට ෂෙල් ස්ක්රිප්ට් අවශ්ය වේ.
පහත සඳහන් අන්තර්ගතයන් සමඟ නාමාවලියෙහි plist
උපසර්ගය සහිත (උදා: නම් osx-env-sync.plist
) ගොනුවක් සාදන්න ~/Library/LaunchAgents/
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>osx-env-sync</string>
<key>ProgramArguments</key>
<array>
<string>bash</string>
<string>-l</string>
<string>-c</string>
<string>
$HOME/.osx-env-sync.sh
</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
-l
පරාමිතිය මෙහි තීරණාත්මක ය; එය සමග ෂෙල් තිර රචනය ක්රියාත්මක කිරීම සඳහා අවශ්ය වේ පිවිසුම් ෂෙල් එසේ~/.bash_profile
මෙම විධානාවලිය ක්රියාත්මක කිරීමට පෙර පළමු ස්ථානයේ මූලාශ්ර වේ.
දැන්, ෂෙල් පිටපත. ~/.osx-env-sync.sh
පහත සඳහන් අන්තර්ගතයන් සමඟ එය සාදන්න :
grep export $HOME/.bash_profile | while IFS=' =' read ignoreexport envvar ignorevalue; do
launchctl setenv ${envvar} ${!envvar}
done
ෂෙල් ස්ක්රිප්ට් ක්රියාත්මක කළ හැකි බවට වග බලා ගන්න:
chmod +x ~/.osx-env-sync.sh
දැන්, වත්මන් සැසිය සඳහා දියත් කිරීමේ නියෝජිතයා පටවන්න:
launchctl load ~/Library/LaunchAgents/osx-env-sync.plist
(නැවත) GUI යෙදුමක් දියත් කර එයට පරිසර විචල්යයන් කියවිය හැකි බව තහවුරු කරන්න.
සැකසුම අඛණ්ඩව පවතී. එය නැවත ආරම්භ කිරීම සහ නැවත සකස් කිරීම නොනැසී පවතිනු ඇත.
ආරම්භක සැකසුමෙන් පසු (ඔබ දැන් කළ පරිදි), ~/.bash_profile
ඔබේ මුළු පරිසරයේම යම් වෙනසක් නැවත පිළිබිඹු කිරීමට ඔබට අවශ්ය නම් , launchctl load ...
විධානය නැවත ක්රියාත්මක කිරීමෙන් ඔබට අවශ්ය දේ සිදු නොවේ. ඒ වෙනුවට ඔබට පහත සඳහන් පරිදි අනතුරු ඇඟවීමක් ලැබෙනු ඇත:
<$HOME>/Library/LaunchAgents/osx-env-sync.plist: Operation already in progress
ලොග්අවුට් / පිවිසුම් ක්රියාවලිය හරහා නොගොස් ඔබේ පරිසර විචල්යයන් නැවත පූරණය කිරීම සඳහා පහත සඳහන් දේ කරන්න:
launchctl unload ~/Library/LaunchAgents/osx-env-sync.plist
launchctl load ~/Library/LaunchAgents/osx-env-sync.plist
අවසාන වශයෙන් ඔබ දැනටමත් ක්රියාත්මක වන යෙදුම් (Terminal.app ඇතුළුව) නැවත ආරම්භ කිරීමට වග බලා ගන්න.
මම මෙහි කේතය සහ පැහැදිලි කිරීම් GitHub ව්යාපෘතියකට තල්ලු කර ඇත: osx-env-sync .
අවම වශයෙන් OS X (යොස්මයිට් සහ එල් කැපිටන්) හි නවතම සංස්කරණ සඳහා මෙය අවසාන විසඳුම වනු ඇතැයි මම බලාපොරොත්තු වෙමි.
env "switch.1.disabled=true" open -n /Applications/Eclipse.app/
නව කට්ටල පද්ධති පරිසරයක් සමඟ GUI යෙදුම දියත් කිරීමට.