모두가 운영 체제에 속하지 않는 파일을 포함하도록 설계, 동안 /opt
과 /usr/local
같은 파일 집합을 포함하는 것은 아니다.
/usr/local
는 일반적으로 make
명령 (예 :)을 사용하여 관리자가 빌드 한 파일을 설치하는 장소 ./configure; make; make install
입니다. 아이디어는 운영 체제의 일부인 로컬 파일을 덮어 쓰거나 덮어 쓰는 운영 체제의 일부인 파일과의 충돌을 피하는 것입니다 (예 : 로컬 대안 인 /usr/bin/foo
OS의 일부 임 /usr/local/bin/foo
).
아래의 모든 파일 /usr
은 OS 인스턴스간에 공유 할 수 있지만 Linux에서는 거의 수행되지 않습니다. FHS는 /usr
읽기 전용으로 정의되어 있지만 /usr/local/bin
소프트웨어의 로컬 설치가 성공하려면 읽기 / 쓰기가 필요하므로 약간 모순되는 부분 입니다. FHS의 주요 영감 원인 SVR4 파일 시스템 표준은 이 문제를 극복하기 위해 피하고 /usr/local
사용 /opt/local
하는 것이 좋습니다 .
/usr/local
원래 BSD의 유산입니다. 그 당시의 소스 코드 /usr/bin
OS 명령에 있었다 /usr/src/bin
하고 /usr/src/usr.bin
, 로컬 개발 명령의 소스에있는 동안 /usr/local/src
, 그들의 바이너리 /usr/local/bin
. 포장에 대한 개념은 없었습니다 (타르볼 외부).
반면에 /opt
번들로 제공되지 않은 패키지 (즉, 운영 체제 배포의 일부가 아니지만 독립적 인 소스에서 제공하는 패키지)를 설치하기위한 디렉토리는 각각 자체 하위 디렉토리에 있습니다. 이들은 독립적 인 타사 소프트웨어 배포자가 제공하는 전체 패키지로 이미 구축되어 있습니다. 다른 /usr/local
패키지 와 달리이 패키지는 디렉토리 규칙을 따릅니다 (또는 최소한 있어야합니다). 예를 들어, someapp
로 설치되는 /opt/someapp
자사의 명령 존재 중 하나, /opt/someapp/bin/foo
그 구성 파일에있는 것 /etc/opt/someapp/foo.conf
, 그 로그 파일 /var/opt/someapp/logs/foo.access
.
/usr/local
의 로컬 버전이며 기타 사항에 대한 자리 표시 자입니다./usr
/opt