Mac OS X의 PATH 설정 프로세스 (/etc/paths)

2019. 5. 18. 12:57·IT기술 관련/MAC OS
반응형

출처: https://ohgyun.com/390


문제:
PATH 정보를 조회해보니, git과 관련된 bin 디렉토리가 경로의 마지막에 포함되어 있다.

  $ echo $PATH
  ..(중략)..:/usr/local/git/bin

얼마 전 .bash_profile을 정리하면서,
추가적으로 정의하는 PATH 경로는 아래처럼 PATH의 앞 부분에 추가하도록 했었다.
  $ export PATH=새패스:$PATH

어딘가에서 추가되었다면 앞 부분에 있는 게 당연한데,
마지막에 정의되어 있는 것이 이상해 어디서 정의됐는지 파일을 뒤적여봤다.
그리고, /etc/paths.d/git 파일에 정의되어 있는 걸 발견했다.

/etc/paths.d 는 처음 들어 생소한 데다,
/etc/paths 도 자세히 확인해본 적이 없어 잘 모르겠다.

/etc/paths와 /etc/paths.d 의 차이가 뭘까?
PATH는 어떻게 초기화되고 있는 걸까?


해결책:

두 파일 모두 시스템의 초기 PATH를 정의하기 위한 목적으로 사용된다.

/etc/paths 를 조회해보면 각 경로가 아래처럼 라인 단위로 정의되어 있는데,

  /usr/bin
  /bin
  /usr/sbin
  /sbin
  /usr/local/bin

위에서부터 순서대로 각 라인 단위로 PATH 변수에 추가된다.

  /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

처럼 말이다.


/etc/paths.d 는 디렉토리다.
여기에 초기화 시 필요한 PATH를 파일 단위로 추가할 수 있고,
각 파일에 정의되어 있는 경로가 마찬가지로 라인 단위로 PATH 변수에 추가된다.

/etc/paths.d 에 여러 파일이 존재한다면,
파일 이름의 오름차순 순으로 추가된다.

PATH 경로에 /usr/local/git/bin 이 추가되어 있었던 이유는,
/etc/paths.d/git 파일 내에 해당 경로가 포함되어 있었기 때문이다.


하지만, 사실 /etc/paths 가 시스템의 초기 PATH 정보를 가지고 있는 건 아니다.
직접 /etc/paths 파일을 삭제해보거나 수정해보면 알 수 있는데,
파일을 삭제하더라도 시스템의 중요 경로는 PATH 변수에 정의되어 있다.
(테스트 해보려면, 어드민 권한으로 paths를 삭제하고 새 터미널을 띄워보면 된다)


PATH가 초기화되는 방식을 여러모로 확인해봤다.
맥 OS X 레오파드부터는, /usr/libexec/path_helper 에서부터 PATH가 설정되는데,
전체적인 프로세스는 아래와 같다. (라고 추측한다)

  1. 로그인 쉘이 시작되면 /etc/profile 을 실행한다.
  2. /etc/profile 에서는 /usr/libexec/path_helper 를 실행한다.
  3. path_helper는 /etc/paths 로부터 초기 PATH를 설정한다.
      한 라인 당 하나씩 순서대로 추가한다.
  4. 다음으로 /etc/paths.d 디렉토리에 있는 각 파일로부터 PATH를 설정한다.
      파일 이름의 오름차순 순으로, 각 파일에 정의된 순서대로 추가한다.
  5. 만약, 시스템에 필요한 중요한 경로가 PATH에 누락되어 있다면 추가한다.
      이 떄, 이미 추가되어 있는 것들을 제외하고 추가한다.
      /usr/bin:/bin:/usr/sbin:/sbin 가 PATH에 추가된다.


5번의 항목은, /etc/paths 를 삭제하거나 수정해보면 테스트해볼 수 있는데,
/etc/paths 에서 중요 경로가 누락된 경우, 아래와 같이 초기화된다.

  /etc/paths에서 설정한 경로:/etc/paths.d에서 설정한 경로:중요 경로 중 누락된 것


따라서, 실제 초기화 시점의 PATH를 변경하고자 한다면,
path_helper가 실행되기 전인 /etc/profile 에서 초기화하는 게 가장 좋은 방법이다.


반응형

'IT기술 관련 > MAC OS' 카테고리의 다른 글

Mac용 3가지 무료 사운드 파일 편집 앱 소개  (0) 2020.10.08
Mac OS X에서 루트 사용자(su) 활성화 및 사용  (0) 2019.05.19
[VirtualBox] 버추얼박스 클립보드 공유하기, 게스트 ↔ 호스트 양방향 복사/붙여넣기  (0) 2019.04.14
가상머신 (Virtual Box) 에 Ubuntu 설치 (입문자용)  (0) 2019.04.13
VDI, VHD, VMDK 파일들의 차이점  (0) 2019.04.13
'IT기술 관련/MAC OS' 카테고리의 다른 글
  • Mac용 3가지 무료 사운드 파일 편집 앱 소개
  • Mac OS X에서 루트 사용자(su) 활성화 및 사용
  • [VirtualBox] 버추얼박스 클립보드 공유하기, 게스트 ↔ 호스트 양방향 복사/붙여넣기
  • 가상머신 (Virtual Box) 에 Ubuntu 설치 (입문자용)
호레
호레
창업 / IT / 육아 / 일상 / 여행
    반응형
  • 호레
    Unique Life
    호레
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 법률
        • 기본
        • 개인정보보호법
        • 정보통신망법
        • 전자금융거래법
        • 전자금융감독규정
        • 신용정보법
        • 온라인투자연계금융업법
      • 창업
        • 외식업 관련
        • 임대업 관련
        • 유통업 관련
        • 세무 관련
        • 마케팅 관련
        • 기타 지식
        • 트렌드
        • Youtube
      • IT기술 관련
        • 모바일
        • 윈도우
        • 리눅스
        • MAC OS
        • 네트워크
        • 빅데이터 관련
        • A.I 인공지능
        • 파이썬_루비 등 언어
        • 쿠버네티스
        • 기타 기술
      • 퍼블릭 클라우드 관련
        • Azure
        • GCP
        • AWS
      • 정보보안 관련
        • QRadar
        • Splunk
        • System
        • Web
      • 기타
        • 세상 모든 정보
        • 서적
      • 게임 관련
        • 유니티
      • 부동산
      • 맛집 찾기
        • 강남역
        • 양재역
        • 판교역
        • ★★★★★
        • ★★★★
        • ★★★
        • ★★
        • ★
      • 결혼_육아 생활
        • 리얼후기
        • 일상
        • 육아
        • 사랑
        • Food
      • 영어
        • 스피킹
        • 문법
        • 팝송
        • 영화
      • K-컨텐츠
        • 드라마
        • 영화
        • 예능
      • 독서
      • 프로젝트 관련 조사
        • 시스템 구축
        • 로그 관련
        • 웹
        • APT
        • 모의 해킹
        • DB
        • 허니팟
        • 수리카타
        • 알고리즘
        • FDS
      • 기업별 구내 식당 평가
        • 한국관광공사
        • KT telecop
        • KT M&S
        • KT powertel
        • KT cs 연수원
        • 진에어
      • 대학 생활
        • 위드윈연구소
        • 진로 고민
        • 채용정보
        • 자동차
        • 주식
        • 악성코드
        • 게임 보안
      • 쉐어하우스
  • 블로그 메뉴

    • 홈
    • 게임 관련
    • IT 기술 관련
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    돈까스
    마케팅
    복리후생
    수제버거
    판교맛집
    AWS
    상호관세
    판교
    수제버거맛집
    런치
    유니티
    보안가이드
    판교역
    맛집
    쥬쥬랜드
    수제버거존맛
    대통령
    점심
    무역전쟁
    이재곧죽습니다
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
호레
Mac OS X의 PATH 설정 프로세스 (/etc/paths)
상단으로

티스토리툴바