Mac OS X Lion에서 환경 변수 설정
누군가 ".plist 파일 편집"또는 "your .profile"또는 ".bash_profile"등을 말하면 혼동됩니다. 나는이 파일들이 어디에 있는지, 어떻게해야하는지 어떻게 만드는지, 그리고 왜 그렇게 많은 다른 파일들이 보이는지 모르겠다 (왜? 그들은 다른 일을 하는가?)
그렇다면 누군가가 이전 Windows 사용자에게 (OS X 세계가 다소 혼란 스러울 경우 유쾌하게 익숙해지기를 간절히 원합니다)이 인내심을 설명해 줄 수 있습니까?
GUI 응용 프로그램과 명령 줄 응용 프로그램 모두에 변수를 설정해야하며 현재 변수가 필요한 개미 스크립트에 대한 변수이지만 다른 요구도있을 것입니다.
인터넷에 대한 답변 중 상당수가 라이온에게는 구식 인 것 같습니다.
또한 터미널 사용 경험이 거의 없습니다. 나는 기꺼이 배우고 싶지만 초보자에게 설명하십시오 ...
우선, OS X에 대해 인식해야 할 것은 Unix를 기반으로한다는 것입니다. .bash_profile이 나오는 곳입니다. OS X에서 터미널 앱을 시작하면 기본적으로 bash 쉘이 나타납니다. bash 쉘은 Unix에서 제공되며로드 될 때 .bash_profile 스크립트를 실행합니다. 사용자가 설정을 변경하도록이 스크립트를 수정할 수 있습니다. 이 파일은 다음 위치에 있습니다.
~/.bash_profile
매버릭스 업데이트
OS X Mavericks는 environment.plist를 사용하지 않습니다. 적어도 OS X Windows 응용 프로그램에는 적합하지 않습니다. 창 응용 프로그램에 대해 시작된 구성 을 사용할 수 있습니다 . .bash_profile은 터미널에서 사용되는 bash 쉘의 일부이므로 여전히 지원됩니다.
사자와 산 사자 만
OS X 윈도우 응용 프로그램은 environment.plist 파일에서 환경 변수를받습니다. ".plist"파일의 의미 일 수 있습니다. 이 파일은 다음 위치에 있습니다.
~/.MacOSX/environment.plist
environment.plist 파일을 변경하면 터미널 앱을 포함한 OS X Windows 응용 프로그램에 해당 환경 변수가 설정됩니다. .bash_profile에 설정 한 환경 변수는 bash 쉘에만 영향을 미칩니다.
일반적으로 .bash_profile 파일에만 변수를 설정하고 .plist 파일 (또는 Mavericks에서 실행 된 파일)은 변경하지 않습니다. 대부분의 OS X 윈도우 응용 프로그램에는 사용자 정의 환경이 필요하지 않습니다. 응용 프로그램에 실제로 특정 환경 변수가 필요한 경우에만 environment.plist (또는 Mavericks에서 실행 된 파일)를 변경해야합니다.
원하는 것은 .bash_profile 대신 environment.plist 파일을 변경하는 것 같습니다.
마지막으로, 해당 파일을 찾으면 찾을 수 없다고 생각합니다. 올바르게 기억한다면 처음 라이온을 설치하지 않은 것입니다.
편집 : 다음은 plist 파일을 만드는 지침입니다.
- Xcode 열기
- 파일-> 새로 작성-> 새 파일 ...을 선택하십시오.
- Mac OS X에서 리소스를 선택하십시오.
- plist 파일을 선택하십시오
- 나머지 프롬프트를 따르십시오
파일을 편집하려면 Control- 클릭하여 메뉴를 가져 와서 행 추가를 선택하십시오. 그런 다음 키 값 쌍을 추가 할 수 있습니다. 환경 변수의 경우 키는 환경 변수 이름이고 값은 해당 환경 변수의 실제 값입니다.
plist 파일이 생성되면 Xcode로 열어 원하는 시간에 수정할 수 있습니다.
귀하 .profile
또는 .bash_profile
간단하게 "홈"폴더에 존재하는 파일입니다. Finder 윈도우를 열고 즐겨 찾기 패널에서 계정 이름을 클릭하면 해당 이름이 표시되지 않습니다. 터미널 창을 열고 ls
파일을 입력 하여 입력 해도 여전히 표시되지 않습니다. 그러나 ls -a
터미널에서 사용하여 찾을 수 있습니다 . 또는 좋아하는 텍스트 편집기 (OS X와 함께 제공되는 TextEdit)를 열고 파일-> 열기를 수행 한 다음 Command+ Shift+ .를 누르고 계정 이름 (홈 폴더)을 클릭 하면 해당 텍스트 편집기 도 볼 수 있습니다. 표시되지 않으면 자주 사용하는 텍스트 편집기에서 만들 수 있습니다.
이제 환경 변수를 추가하는 것은 비교적 간단하고 개념적으로 창과 매우 유사합니다. 당신의에서 .profile
방금 추가 한 줄에 하나씩, 변수 이름과 값은 다음과 같습니다 :
export JAVA_HOME=/Library/Java/Home
export JRE_HOME=/Library/Java/Home
기타
"PATH"변수를 수정하는 경우 이미 설정된 시스템의 기본 PATH를 포함해야합니다.
export PATH=$PATH:/path/to/my/stuff
이제 기발한 부분이 있습니다. 새 터미널 창을 열어 새 변수를 적용하거나 파일 을 입력 .profile
하거나 .bash_profile
다시로드하고 내용을 현재 터미널 환경에 적용해야합니다.
터미널에서 "set"명령을 사용하여 변경 사항이 적용되었는지 확인할 수 있습니다. 입력 set
하거나 set | more
페이지 매김 목록을 선호하는 경우 파일에 추가 한 내용이 있는지 확인하십시오.
GUI 응용 프로그램에 환경 변수를 추가하는 경우 일반적으로 필요하지 않으며 더 나은 답변을 제공하기 위해 구체적으로 수행하려는 작업에 대해 더 많이 듣고 싶습니다.
Lion OS 10.7.x의 PATH 변수에 대한 자세한 내용은 다음과 같습니다.
PATH를 전체적으로 설정해야하는 경우 시스템에서 PATH는 다음 순서로 빌드됩니다.
- 파일 내용을
/private/etc/paths
한 줄에 한 경로 씩 파싱 - 폴더 내용 분석
/private/etc/paths.d
. 해당 폴더의 각 파일에는 한 줄에 하나씩 여러 경로가 포함될 수 있습니다. 로드 순서는 먼저 파일 이름으로 결정된 다음 파일에서 행 순서로 결정됩니다. setenv PATH
에 문/private/etc/launchd.conf
것, 추가 이미 # 1과 # 2에 내장 된 경로로 그 경로는 (당신은 지금까지 구축 된 PATH 변수를 참조하는 $ PATH를 사용하지 않아야합니다). 그러나 다른 두 가지 옵션을 고려할 때 여기에 PATH를 설정하는 것은 불필요하지만 모든 전역 사용자에 대해 다른 전역 환경 변수를 설정할 수 있습니다.
이러한 경로와 변수는 모든 사용자와 응용 프로그램에 의해 상속되므로 실제로 로그 아웃하고 경로를 재설정하지 않습니다. 시스템 용으로 만들어졌으며 사용자에게 로그인 기회가 주어지기 전에 생성됩니다. 변경 사항을 적용하려면 시스템을 다시 시작해야합니다.
OS 10.7.x Lion을 새로 설치 한 BTW에는 environment.plist
찾을 수있는 기능이 없으므로 작동하지만 더 이상 사용되지 않을 수 있습니다.
echo $PATH
현재 경로 값을 인쇄합니다
그런 다음 vim ~/.bash_profile
쓰기와 쓰기
export PATH=$PATH:/new/path/to/be/added
여기에 이전 경로를 추가하므로 이전 경로를 유지하고 새 경로를 추가하십시오
그런 다음
source ~/.bash_profile
이것은 그것을 실행하고 경로를 추가합니다
그런 다음 다시 확인하십시오
echo $PATH
불행히도 이러한 답변 중 어느 것도 내가 가진 특정 문제를 해결하지 못했습니다.
여기에 엉키지 않아도되는 간단한 해결책이 bash
있습니다. 제 경우에는 gradle
작동합니다 ( Android Studio
).
Btw,이 단계는 OSX (Mountain Lion 10.8.5)와 관련이 있습니다.
- 터미널을 엽니 다.
다음 명령을 실행하십시오.
sudo nano /etc/paths
(또는sudo vim /etc/paths
vim)- 파일 하단으로 이동하여 추가 할 경로를 입력하십시오.
- Ctrl-x를 눌러 종료하십시오.
- 수정 된 버퍼를 저장하려면 'Y'를 입력하십시오.
새 터미널 창을 열고 다음을 입력하십시오.
echo $PATH
PATH 끝에 새 경로가 추가 된 것을 볼 수 있습니다
이 게시물에서 다음 세부 정보를 얻었습니다.
http://architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.UkED3rxPp3Q
다른 사람을 도울 수 있기를 바랍니다.
단순화 된 설명
이 게시물 / 질문은 오래된 것이기 때문에 OS X Lion 사용자를위한 단순화 된 버전에 답변하겠습니다. 기본적으로 OSX Lion에는 다음 파일이 없습니다.
- ~ / .bashrc
- ~ / .bash_profile
- ~ / .profile
터미널에서 아무것도하지 않았다면 ~ / .bash_history
의미하는 것
기본 bash 명령을 설정하려면 파일을 만들어야합니다 (일반적으로 ~ / .bashrc에 있음). 이 작업을 수행하려면 터미널 내에서 수행하는 것이 더 간단하지만 모든 종류의 편집기를 사용하십시오.
- %> emacs .profile
- [emacs 유형에서 :]
source ~/.bashrc
- [emacs 형식에서 :]
Ctrl + x Ctrl + s
(파일 저장) - [emacs 유형에서 :]
Ctrl + x Ctrl + c
(emacs를 닫으려면) - %> 이맥스 .bashrc
- [emacs에서 모든 bash 명령을 입력 / 붙여 넣기, 저장 및 종료]
다음에 터미널을 종료하고 다시로드하면 모든 bash 환경 설정이로드됩니다. 좋은 측정을 위해서는 일반적으로 명령을 유용한 파일 이름으로 분리하는 것이 좋습니다. 예를 들어 ~ / .bashrc 내에 source ~/.bash_aliases
~ / .bash_aliases에 모든 별칭 명령이 있어야합니다.
나를 위해 일한 것은 .launchd.conf
내가 필요한 변수로 를 만드는 것 입니다.
setenv FOO barbaz
이 파일은 로그인시 시작하여 읽습니다. 다음을 사용하여 실행중인 변수에 '즉석에서'변수를 추가 할 수 있습니다.
launchctl setenv FOO barbaz`
실제로 .launchd.cond
launchctl 명령 만 포함합니다.
이 방법으로 설정 한 변수는 GUI 응용 프로그램에 올바르게 존재하는 것 같습니다.
이 방법으로 LANG 또는 LC_ 변수를 설정하려고하는데 iTerm2를 사용하는 경우 사용중인 프로파일의 터미널 탭에서 '자동으로 로케일 변수 설정'설정을 비활성화하십시오. 그것은 발사 된 환경 변수를 무시하는 것으로 보이며, 제 경우에는 깨진 LC_CTYPE을 설정하여 원격 서버에서 문제를 일으켰습니다 (변수를 전달했습니다).
(environment.plist는 여전히 Lion에서 작동하는 것 같습니다. RCenvironment 환경 설정 창을 사용하여 파일을 수동으로 편집하거나 필요한 Xcode 대신 파일을 유지 관리 할 수 있습니다 . 마지막 업데이트는 Snow Leopard에서 수행되었지만 Lion에서는 여전히 작동하는 것 같습니다 시대를 개인적으로 선호하는 방법으로 만듭니다.)
Mac OS에서 PATH 환경 변수 설정
터미널 프로그램을 엽니 다 (기본적으로 응용 프로그램 / 유틸리티 폴더에 있음). 다음 명령을 실행하십시오
touch ~/.bash_profile; open ~/.bash_profile
기본 텍스트 편집기에서 파일이 열립니다.
ANDROID SDK의 경우 :
Android SDK 플랫폼 도구 및 도구 디렉토리에 경로를 추가해야합니다. 이 예에서는 SDK가 설치된 디렉토리로 "/ Development / android-sdk-macosx"를 사용합니다. 다음 행을 추가하십시오.
export PATH=${PATH}:/Development/android-sdk-macosx/platform-tools:/Development/android-sdk-macosx/tools
파일을 저장하고 텍스트 편집기를 종료하십시오. .bash_profile을 실행하여 PATH를 업데이트하십시오.
source ~/.bash_profile
이제 터미널 프로그램을 열 때마다 PATH에 Android SDK가 포함됩니다.
OS X Lion에 경로 변수 추가
이것은 매우 직설적이며 터미널에서 나를 위해 일했습니다.
$echo "export PATH=$PATH:/path/to/whatever" >> .bash_profile #replace "/path/to/whatever" with the location of what you want to add to your bash profile, i.e: $ echo "export PATH=$PATH:/usr/local/Cellar/nginx/1.0.12/sbin" >> .bash_profile
$. .bash_profile #restart your bash shell
비슷한 응답이 여기에 있습니다 : http://www.mac-forums.com/forums/os-x-operating-system/255324-problems-setting-path-variable-lion.html#post1317516
터미널 열기 :
vi ~/.bash_profile
시스템 변경을 적용하십시오 (컴퓨터를 다시 시작할 필요 없음).
source ~/.bash_profile
(MacOS Sierra 10.12.1에서도 작동)
Maverics에서 Eclipse (스크립트가 아닌 GUI로 시작)에 문제가있어 사용자 정의 PATH가 필요하지 않습니다. 위에서 언급 한 모든 방법을 사용해 보았습니다. 마지막으로 여기 에서 힌트를 기반으로 가장 간단한 작업 답변을 찾았습니다 .
/Applications/eclipse/Eclipse.app/Contents 폴더로 이동하십시오.
텍스트 편집기 (또는 XCode)를 사용하여 Info.plist 파일을 편집 하고 전체 경로가있는 환경 변수에 대한 LSEnvironment 사전을 추가하십시오 . / usr / bin 등도 포함되어 있습니다.
<dict> <key>LSEnvironment</key> <dict> <key>PATH</key> <string>/usr/bin:/bin:/usr/sbin:/sbin:/dev/android-ndk-r9b</string> </dict> <key>CFBundleDisplayName</key> <string>Eclipse</string> ...
앱을위한 매개 변수 다시로드
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
이클립스 다시 시작
내 개인적인 모범에서 매우 중복 된 방식으로 설명해 드리겠습니다.
- JDK를 설치 한 후 먼저 설치되어 있는지 확인하십시오.
때로는 macOS 또는 Linux가 Windows와 달리 환경 변수를 자동으로 설정합니다. 그러나 항상 그런 것은 아닙니다. 확인해 봅시다. 환경 변수가 설정되어 있지 않으면 echo $ JAVA_HOME 바로 뒤에있는 행이 비어 있습니다. 귀하의 경우에는 비어 있어야합니다.
이제 bash_profile 파일이 있는지 확인해야합니다. 내 경우에는 이미 bash_profile이 있음을 알았습니다. 그렇지 않으면 bash_profile 파일을 만들어야합니다.
이제 bash_profile 파일을 열어 봅시다. macOS는 기본 TextEdit 프로그램을 사용하여 엽니 다.
This is the file where environment variables are kept. If you have opened a new bash_profile file, it must be empty. In my case, it was already set for python programming language and Anaconda distribution. Now, i need to add environment variable for Java which is just adding the first line. YOU MUST TYPE the first line VERBATIM. JUST the first line. Save and close the TextEdit. Then close the terminal.
Open the terminal again. Let's check if the environment variable is set up.
I took the idiot route. Added these to the end of /etc/profile
for environment in `find /etc/environments.d -type f`
do
. $environment
done
created a folder /etc/environments create a file in it called "oracle" or "whatever" and added the stuff I needed set globally to it.
/etc$ cat /etc/environments.d/Oracle
export PATH=$PATH:/Library/Oracle/instantclient_11_2
export DYLD_LIBRARY_PATH=/Library/Oracle/instantclient_11_2
export SQLPATH=/Library/Oracle/instantclient_11_2
export PATH=$PATH:/Library/Oracle/instantclient_11_2
export TNS_ADMIN=/Library/Oracle/instantclient_11_2/network/admin
More detail, which may perhaps be helpful to someone:
Due to my own explorations, I now know how to set environment variables in 7 of 8 different ways. I was trying to get an envar through to an application I'm developing under Xcode. I set "tracer" envars using these different methods to tell me which ones get it into the scope of my application. From the below, you can see that editing the "scheme" in Xcode to add arguments works, as does "putenv". What didn't set it in that scope: ~/.MACOS/environment.plist, app-specific plist, .profile, and adding a build phase to run a custom script (I found another way in Xcode [at least] to set one but forgot what I called the tracer and can't find it now; maybe it's on another machine....)
GPU_DUMP_DEVICE_KERNEL is 3
GPU_DUMP_TRK_ENVPLIST is (null)
GPU_DUMP_TRK_APPPLIST is (null)
GPU_DUMP_TRK_DOTPROFILE is (null)
GPU_DUMP_TRK_RUNSCRIPT는 (null)입니다
GPU_DUMP_TRK_SCHARGS는 1
GPU_DUMP_TRK_PUTENV는 1
... 반면에, 터미널에 가서 "set"이라고 말하면 .profile에서 얻은 유일한 것 같습니다 (나는 environment.plist도 선택할 것이라고 생각했을 것입니다. 터미널에서 두 번째 추적 프로그램 envar을 본 후에는 그 이후로 뭔가 이상한 일이 벌어 질 것입니다.
1 단계 : 열기 ~/.bash_profile
이제 텍스트 편집기가 열립니다 :
2 단계 : 변수 이름은 대문자 여야합니다. 이 예제에서 변수는NODE_ENV
3 단계 : export NODE_ENV=development
저장하고 닫으십시오.
시스템을 다시 시작하십시오.
끝난.
env 변수를 확인하려면 터미널을 열고 입력하십시오.
echo $NODE_ENV
참고 URL : https://stackoverflow.com/questions/7501678/set-environment-variables-on-mac-os-x-lion
'Programing' 카테고리의 다른 글
모든 줄을 클립 보드에 복사 (0) | 2020.02.12 |
---|---|
언제 빌더 패턴을 사용 하시겠습니까? (0) | 2020.02.12 |
사전 목록을 팬더 DataFrame으로 변환 (0) | 2020.02.11 |
집계 및 POD 란 무엇이며 어떻게 / 왜 특별합니까? (0) | 2020.02.11 |
Swift에서 Int를 문자열로 변환 (0) | 2020.02.11 |