실행 파일은 /usr/libexec
Unix 계열 시스템에 저장됩니다 . FHS는 말합니다 (섹션 4.7. /usr/libexec : Binaries run by other programs (optional)"
:
/usr/libexec
사용자 나 쉘 스크립트가 직접 실행하지 않는 내부 바이너리를 포함합니다. 응용 프로그램은 아래에 단일 하위 디렉토리를 사용할 수 있습니다/usr/libexec
.
Mac OS X에서는 부팅 직후에 rootless-init
호출되는 프로그램 launchd
이에 저장됩니다 /usr/libexec
. 또는에 /usr/libexec
저장할 수있는 독립 실행 형 실행 파일 인 경우 왜 저장 됩니까? 쉘 스크립트에 의해 직접 호출되지 않은 다른 프로그램도 같은 폴더에 저장됩니다 ./usr/bin
/usr/sbin
init
[/usr]/{bin,sbin}
답변
지원 가능성의 문제입니다. 플랫폼 공급자는 PATH
기본적으로 바이너리를 넣을 경우 사람들 이 거기 에 의존하고 지원하는 특정 인수와 옵션에 의존 하게 될 것이라는 경험을 통해 수년간의 경험을 통해 배웠습니다 .
반대로 무언가가 들어간 경우 /usr/libexec/
내부 구현 세부 사항으로 간주되고 최종 사용자로 직접 호출하는 것은 공식적으로 지원되지 않습니다.
어쨌든 해당 바이너리에 직접 액세스하기로 결정할 수도 있습니다. 향후 업그레이드로 인해 사용중인 개인 인터페이스가 중단되면 플랫폼 공급자로부터 지원이나 동정을 얻지 못할 것입니다.
답변
나는 그것이 새로운 것보다 더 새로운 생각이라고 생각합니다 init
. 아이디어는 말했듯 /usr/lib
이 다른 사람에게는 절대로 기대할 수 없는 실행 파일이 있어야 한다는 것입니다 $PATH
.
답변
OS X은 FHS 표준을 따르지 않습니다. 자체 파일 시스템 계층 구조 (FreeBSD 파일 시스템 계층 구조와 유사)가 있습니다. 남자 페이지 hier
states-
libexec/ system daemons & system utilities (executed by other programs)
답변
libexec
다른 프로그램에 의해 실행되는 시스템 데몬 및 시스템 유틸리티를위한 것입니다. 즉,이 네임 스페이스 디렉토리에있는 바이너리는 다른 프로그램의 사용을위한 것이며 사용자가 직접 실행하도록되어 있지 않습니다.