/usr/libexec의 목적은 무엇입니까?

/usr/libexec의 목적은 무엇입니까?

/usr/libexec실행 파일은 Unix 계열 시스템에 저장됩니다 .FHS는 말한다(부분 4.7. /usr/libexec : Binaries run by other programs (optional)":

/usr/libexec사용자나 쉘 스크립트에 의해 직접 실행되지 않는 내부 바이너리가 포함됩니다. 응용 프로그램은 아래의 단일 하위 디렉터리를 사용할 수 있습니다 /usr/libexec.

macOS에서는 부팅 직후 rootless-init에 호출되는 프로그램이 .launchd/usr/libexec

또는 /usr/libexec에 저장할 수 있는 독립 실행형 실행 파일인데 왜 에 저장됩니까 ? 쉘 스크립트에 의해 직접 호출되지 않는 다른 프로그램도 ./usr/bin/usr/sbininit[/usr]/{bin,sbin}

답변1

PATH이는 지원 가능성의 문제입니다. 플랫폼 제공업체는 수년간의 경험을 통해 기본적으로 바이너리를 넣으면 사람들이~ 할 것이다그들이 거기에 있다는 것에 의존하게 되고,~ 할 것이다그들이 지원하는 특정 주장과 옵션에 의존하게 됩니다.

대조적으로, 무언가가 삽입된다면 /usr/libexec/이는 내부 구현 세부 사항으로 간주되며 최종 사용자로서 직접 호출하는 것은 공식적으로 지원되지 않는다는 명확한 표시입니다.

어쨌든 해당 바이너리에 직접 액세스하기로 결정할 수도 있지만, 향후 업그레이드로 인해 사용 중인 비공개 인터페이스가 중단되는 경우 플랫폼 제공자로부터 어떠한 지원이나 동정도 받지 못할 것입니다.

답변2

OS X은 다음을 따르지 않습니다FHS 표준. 자체 파일 시스템 계층 구조(FreeBSD 파일 시스템 계층 구조와 유사)가 있습니다. 맨 페이지hier상태:

libexec/- 시스템 데몬 및 시스템 유틸리티(다른 프로그램에 의해 실행됨)

답변3

libexec다른 프로그램에서 실행되는 시스템 데몬 및 시스템 유틸리티를 의미합니다. 즉, 이 네임스페이스 디렉터리에 있는 바이너리는 다른 프로그램에서 사용하기 위한 것이며 사용자가 직접 실행할 수는 없습니다.

답변4

내 생각에는 이것이 더 새로운 것 같습니다 init. 앞서 말했듯이 /usr/lib다른 사람의 $PATH.

관련 정보