그래서 이 스레드는macOS Sierra의 PATH에 항목을 추가하려면 `/etc/paths` 또는 `/etc/paths.d`를 사용하시겠습니까?/usr/bin:/bin:/usr/sbin:/을 변환하는 데 도움이 되는 macOS(ne OS X 12, Sierra) /usr/libexec/path_helper와 관련된 /etc/paths 및 /etc/paths.d에 대한 간략한 설명입니다. sbin(/etc/paths의 내용, 한 줄에 하나씩)은 PATH의 시작 부분에 있습니다.
나는 그 의도(및 SIP 이면의 의도)를 이해합니다. 그러나 그것이 실제로 사실이라면 어떻게 될까요?하다실제로 무엇을 하고 있는지 알아라하다예를 들어 실행 파일을 자체 ~/bin에 갖고 싶어 동일한 이름의 실행 파일을 대체하기 위해 Apple은 많은 도움이 되지 않는 방법 중 하나로 수정되거나 제한되었습니다. 아니면 Apple의 기본 버전보다 먼저 /opt/... 버전을 찾고 싶을 수도 있습니다. (예를 들어, 창 버전의 emacs를 실행하려는 경우)
나는 이 메커니즘을 사용할 의향이 있습니다. 제가 이해한 바는 /etc/paths.d/를 수정하기 전에 SIP를 비활성화해야 한다는 것입니다. 하지만 /etc/paths.d/에 파일(예: 00LookHereFirst)을 넣을 수 있는지 아는 사람이 있나요? /etc/paths에 추가하시겠습니까? (물론, /etc/paths를 수정하세요. 하지만 저는 친절하게 대해주고 싶습니다. 그리고 물론, 새로운 버전으로 다운그레이드하도록 괴롭히면 폐기될 것입니다.)
"BSD를 준수하는 성인으로 보이고 싶다면" 형식의 답변은 도움이 되지 않는 것으로 간주됩니다.
(미안해요, 음반사. 제가 제한된 능력으로 얻을 수 있는 가장 가까운 곳이에요.)
답변1
내 질문에 대답하려면: /etc/paths의 디렉터리는 파일에 나타나는 순서대로 /etc/paths.d의 파일 디렉터리 앞에 추가됩니다. 00으로 시작하지 않는 파일에 포함된 디렉터리 앞에 있는 00 콘텐츠의 디렉터리
사용자 자신의 시작 파일에 있는 PATH 수정 사항이 경로 도우미 메커니즘(있는 경우)에 어떻게 통합되는지는 확실하지 않습니다. path-helper는 /etc/profile에서 호출되며 전통적으로 $HOME/.[무엇이든] 이전에 평가됩니다(제 경우에는 .bash_profile만 있는 것 같지만 bash를 실행 중입니다. 예상되는 차이가 발생하는 경우가 있었습니다). .bash_profile과 .bashrc 사이의 내용은 존중됩니다.) 그러나 $HOME 초기화 파일이 평가된 후에 경로 도우미가 호출됩니다.
답변이 쉽기 때문에 이런 질문을 하게 되어 죄송합니다. 나는 /etc 아래의 트리가 제한되어 있기 때문에 복구 파티션에서 부팅하여 확인해야 한다고 가정했습니다. 10.aLongTimeAgo에서 10.12.5(희망)로 마이그레이션하는 긴 과정이 끝났고 아직은 재부팅하고 싶지 않기 때문입니다. 그러나 /etc는 링크이고 내가 아는 한 /etc/ 트리에 있는 모든 파일은 제한되지 않습니다.
설명: 다른 모든 것 앞에 /etc/ports를 배치하는 것은 필수이며 눈살을 찌푸리게 합니다. Apple이 PATH 생성 구축에 대해 진지하게 생각하고 있고 그런 일이 발생하는 것을 보고 싶다면 /etc/paths에 넣은 내용을 /etc/paths.d/00SystemDefault 또는 이와 유사한 곳에 넣어야 합니다. 이 경우 /etc/paths.d/000ScrewYourDefaults를 사용하여 이를 재정의할 수 있으며 여전히 잘 작동합니다.
기다려주셔서 감사합니다