/ opt를 구성하는 방법?

Aug 27 2020

기존의 위치와 폴더 구조에 수제 스크립트를 배치하고 싶습니다. 현재에 /opt/chkobm/chkobm있지만 $PATH와일드 카드 경로 ( /opt/*/) 를 포함 해야하므로 나쁜 습관 인 것 같습니다.

에서 TLDP (섹션 "리눅스 파일 시스템 계층 구조") :

사용자가 호출 할 프로그램은 / opt / 'package'/ bin 디렉토리에 있습니다.

첫째, 그러한 파일을 어디에 둘 것인지에 대한 합의 된 규칙이 있습니까? ( /usr/bin나에게 실행 가능한 대체 장소처럼 보입니다) 둘째, 수제 스크립트를에 배치 /opt/*/bin/하고이 경로를로 내 보내야 $PATH합니까?

답변

Stewart Aug 27 2020 at 18:15

/usr/local/bin 이것을 넣는 관용적 장소입니다.

당 리눅스 파일 시스템 계층 구조 :

이면의 원래 아이디어 /usr/local는 다른 곳에서 읽기 전용으로 마운트 될 수있는을 /usr제외한 모든 머신에 별도의 ( 'local') 디렉토리 를 갖는 것이 었습니다 /usr. 의 구조를 복사합니다 /usr. 요즘 /usr/local은 자체 컴파일 또는 타사 프로그램을 보관하기에 좋은 장소로 널리 알려져 있습니다. / usr / local 계층은 소프트웨어를 로컬로 설치할 때 시스템 관리자가 사용하기위한 것입니다. 시스템 소프트웨어를 업데이트 할 때 덮어 쓰지 않도록 안전해야합니다. 호스트 그룹간에 공유 할 수 있지만 / usr에서는 찾을 수없는 프로그램 및 데이터에 사용할 수 있습니다. 로컬로 설치된 소프트웨어는 / usr에서 소프트웨어를 교체하거나 업그레이드하기 위해 설치하지 않는 한 / usr이 아닌 / usr / local 내에 있어야합니다.

나는 Debian으로 정의 된대로 FHS에 의존하는 경향이 있습니다. 데비안은 표준을 적용하는 데 꽤 능숙합니다. 이것이 그들이 opt에 대해 말하는 것입니다 .

/ opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib 및 / opt / man 디렉토리는 로컬 시스템 관리자 용으로 예약되어 있습니다. 패키지는 로컬 시스템 관리자가 이러한 예약 된 디렉터리에 배치 (링크 또는 복사) 할 "프런트 엔드"파일을 제공 할 수 있지만 이러한 예약 된 디렉터리가없는 경우 정상적으로 작동해야합니다.

...

일반적으로 시스템에서 패키지를 지원하는 데 필요한 모든 데이터는 / etc / opt / 및 / var / opt /에 복사 될 파일과 / opt의 예약 된 디렉토리를 포함하여 / opt / 내에 있어야합니다.

...

/ opt / 아래의 디렉토리 구조는 소프트웨어의 패키저에 맡겨져 있지만 패키지는 / opt //에 설치하고 / opt /에 대한 지침과 유사한 구조를 따르는 것이 좋습니다. 이 구조에서 벗어나는 유효한 이유는 / opt // lib 또는 / opt // bin에 파일이 설치된 지원 패키지 때문입니다.

데비안의 정의 /usr/local는 TLDP 링크의 이전 정의와 동일합니다.