Google AdSense (text)

hidden logo stop

Moving

거지 같은 이글루스 광고노출 정책이 싫어서,
새 보금자리(http://blog.leocat.kr/)로 이사감.

[Mac] MacOS X의 $PATH 순서 Computer & Program

Homebrew 때문에 $PATH로 잡힌 path 설정을 볼 일이 생겼다. 내가 설정한 경로 이외에 시스템이 기본적으로 잡아주는 경로의 순서를 바꾸고 싶었다. 이 질문을 보니 딱 나와 같은 상황이다.

여기에서 /etc/paths라는 파일이 시스템에 잡힌 경로에 중요한 영향을 미치는 것을 알았고, /etc 경로에 /etc/paths.d라는 폴더도 관련이 있을 것 같다.

파일의 내용을 잘 살펴보니 지금 내 path 설정과 같았다.
순서는 아래와 같다.
1. /etc/paths
2. /etc/paths.d/[사용자 파일]

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/Applications/Xcode.app/Contents/Developer/usr/bin
$ cat /etc/paths
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
$ ls /etc/paths.d
50-X11    git
$ cat /etc/paths.d/ *    <-- 별 앞의 공백은 제거 (블로그에 슬래시+별은 쓸 수 없네 -ㅅ-)
/usr/X11/bin
/usr/local/git/bin
$ cat ~/.bash_profile
      [.. 어쩌구 저쩌구 ..]
export XCODE_CONTENTS=/Applications/Xcode.app/Contents
export PATH=$PATH:$XCODE_CONTENTS/Developer/usr/bin


위 파일의 내용대로 path 설정이 잡힌다. 물론 ~/.bash_profile 파일을 통해서 저 경로들 보다 앞에 path를 잡을 수는 있지만, 저 안에 설정된 경로의 순서를 바꿀 수는 없다.

이제 저 시스템에서 잡아주는 경로의 순서를 필요에 따라 바꿔보자. /usr/bin 보다 /usr/local/bin 의 경로를 더 앞에 두고 싶어 /etc/paths의 내용을 아래와 같이 바꿨다. 그리고 /etc/paths.d 경로 아래에 임의의 파일을 추가했다. 해당 파일에 있는걸 수정하려면 root 권한이 필요하기 때문에 sudo를 사용한다.

$ sudo vi /etc/paths
Password:
$ cat /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
$ sudo vi /etc/paths.d/sigel
$ ls /etc/paths.d
50-X11    git    sigel
$ cat /etc/paths.d/sigel
/etc/local/sigel/bin

"Cmd + N"을 눌러서 새로운 터미널 창을 열고 path를 확인한다.
(source ~/.bash_profile로 설정을 읽어오면 기존 path에 계속 추가만 되기 때문에 새 터미널을 열어서 확인한다.)
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/local/git/bin:/etc/local/sigel/bin:/Applications/Xcode.app/Contents/Developer/usr/bin
$


- 참조
Is there a problem with having /usr/local/bin before /usr/bin on the path in OS X?

핑백

  • Sigel's house made of ice 。。。 : [Mac] Homebrew로 설치한 패키지 $PATH 문제 2012-10-07 01:52:19 #

    ... Homebrew로 설치한 패키지라면 내가 의도한 것이기 때문에 이 경로가 path에서 가장 앞에 있어도 될 것 같아 path의 순서를 변경했다. path 순서를 변경하는 자세한 방법은 여기서 확인할 수 있다. (시스템에서 설정해 주는 경로이기 때문에 ~/.bash_profile 이나 /etc/bashrc 등과 같은 경로에서는 ... more

덧글

댓글 입력 영역

Google AdSense (text/image)