/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/sbin? init쉘 스크립트에 의해 직접 호출되지 않는 다른 프로그램도 [/usr]/{bin,sbin}.

답변1

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

반대로 무언가를 넣으면 /usr/libexec/내부 구현 세부 사항으로 간주되며 최종 사용자로서 직접 호출하는 것이 공식적으로 지원되지 않는다는 점을 분명히 합니다.

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

답변2

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

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

답변3

libexec다른 프로그램에서 실행되는 시스템 데몬 및 시스템 유틸리티에 적용됩니다. 즉, 이 네임스페이스의 디렉터리에 배치된 바이너리는 사용자가 직접 실행하기 위한 것이 아니라 다른 프로그램에서 사용하기 위한 것입니다.

답변4

내 생각 에는 다른 사람에게서는 결코 기대할 수 없는 init것을 갖는다는 아이디어보다 더 새로운 것 같습니다 ./usr/lib$PATH

관련 정보