카테고리 보관물: Server

Server

OS X에서 전역 PATH 환경 변수를 설정하는 방법 PATH 환경 변수에 추가하고

모든 사용자 셸과 GUI 응용 프로그램이 동일한 PATH 환경을 갖도록 OS X의 전역 PATH 환경 변수에 추가하고 싶습니다.

셸 시작 스크립트에서 경로를 추가 할 수 있지만 GUI 응용 프로그램은 해당 설정을 상속하지 않습니다.

지금까지 찾은 유일한 방법은 /etc/launchd.conf 에서 PATH 환경 변수를 재정의하는 것입니다 .

setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/my/path

에서 PATH에 실제로 추가하는 방법을 알 수 없습니다 launchd.conf.

나는이 방법에 대해 조금 걱정하고 있지만, 지금까지 이것이 유일한 방법입니다. 더 좋은 방법이 있습니까?



답변

palmer의 GUI 정보 는 정확하지만 셸에서 볼 수있는 경로를 수정하는보다 유지 관리 가능한 방법이 있습니다. 마찬가지로 mediaslave 말했다 , 당신은 편집 할 수 /etc/paths있지만에서 더 나은 텍스트 파일을 삭제할 수 있습니다 /etc/paths.d/그게의 경로가 모든 조개가 제대로 경로를 구성합니다.

예를 들어, 내 시스템에서 :

$ cat /etc/paths
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
$ ls /etc/paths.d
X11       git      postgres
$ cat /etc/paths.d/postgres
/Library/PostgreSQL/8.4/bin
$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Library/PostgreSQL/8.4/bin:/usr/X11/bin:/usr/local/mysql/bin

답변

/etc/launchd.conf

launchd.conf파일은 ** 모든 사용자를 위해 GUI 및 콘솔 응용 프로그램과 함께 작동 하는 OS X v10.8 (Mountain Lion) 및 v10.9 (Mavericks)의 명령 줄 및 GUI 응용 프로그램 모두에서 작동하는 유일한 솔루션입니다. .

sudo touch /etc/launchd.conf
sudo nano /etc/launchd.conf

더하다

setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

위의 예 /usr/local/bin에서 PATH의 기본 환경 값을 추가 했습니다.

이 파일은 스크립트가 아니며 대체를 사용할 수있는 옵션이 없습니다. 또한 이들을 적용하려면 재부팅해야합니다.

다른 모든 것은 부분적인 해결책 일뿐입니다.

  • environment.plist Spotlight를 통해 시작된 응용 프로그램에는 작동하지 않습니다.
  • /etc/paths -콘솔 전용
  • /etc/csh.cshrc또는 /etc/bashrc-일부 껍질에만

이 답변은 Mac OS X에서 환경 변수 설정 과 동일한 질문을 기반으로합니다 .


답변

셸 단위로 설정해야합니다. Bash 및 csh와 유사한 쉘은 PATH 조정을위한 동일한 구성 파일 및 구문을 공유하지 않습니다.

launchctl로그인 할 때 환경 변수가 설정되어 있기 때문에이 작업을 시도하면 작동하지 않습니다. 쉘 세션 외부의 유닉스에는 시스템 전체에 존재하지 않습니다.

그래서 당신은 추가하고 싶습니다

setenv PATH "$PATH:/add/my/extra/path"

/etc/csh.cshrc

export PATH="$PATH:/more/paths:/

/etc/bashrc.

GUI 응용 프로그램에서 환경 변수를 원한다면 더 복잡합니다. .MacOSX/environment.plist각 사용자의 홈 디렉토리에 파일 을 작성해야 합니다. .MacOSX디렉토리 가능성이 기본적으로 존재하지 않을 것이다, 그래서 당신은 그것을 만들어야합니다.

파일 형식은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>

    <key>PRINTER</key>
    <string>myprinter</string>

    <key>PATH</key>
    <string>/path/to/thing/I/need</string>

    <key>DISPLAY</key>
    <string>0:1</string>

</dict>
</plist>

자세한 내용 environment.plist 은 Apple 사이트에 있습니다 .


답변

에 줄을 /etc/paths하나씩 추가하여 전역 경로를 편집 할 수 있습니다 .

sudo nano /etc/paths 당신을 거기에 도착해야합니다.


답변

path_helperOS X 에서 명령 행 유틸리티에 대한 매뉴얼 페이지를 보셨습니까 ? 나는 당신이 도움이 될 것이라고 생각 하는 약간의 관련 질문에 대답했습니다 .


답변

누군가 가 가장 단순 하고 가장 우아한 방법을 다루 었는지 확실하지 않습니다 . 에 적어도 맥 OS X 10.6 (스노우 레오파드).

덤비는 [/etc/|~/.][profile|bashrc]파일이 작동하지만 다소 해킹입니다. /etc/paths.d/디렉토리 길을 가야하는 것입니다 :

  • 좋아하는 편집기로 Sudo.
  • 줄당 경로 *name*/etc/paths.d/사용하여 이름이 지정된 새 파일을 작성하십시오 (이미 존재하는 이름은 지정 하지 마십시오) .

    /usr/X11/bin
    /Developer/usr/bin
    
  • 그런 다음 추가

    eval '/usr/libexec/path_helper -s`
    

    profile또는 bashrc, 당신이 잘되어야합니다 이동합니다.


답변

launchd가 이것을 수락하는지 확실하지 않지만 시도해보십시오.

setenv PATH "$ PATH : / my / path"