/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
답변3
libexec
다른 프로그램에서 실행되는 시스템 데몬 및 시스템 유틸리티에 적용됩니다. 즉, 이 네임스페이스의 디렉터리에 배치된 바이너리는 사용자가 직접 실행하기 위한 것이 아니라 다른 프로그램에서 사용하기 위한 것입니다.
답변4
내 생각 에는 다른 사람에게서는 결코 기대할 수 없는 init
것을 갖는다는 아이디어보다 더 새로운 것 같습니다 ./usr/lib
$PATH