손으로 만든 스크립트를 일반 위치와 폴더 구조에 배치하고 싶습니다. 현재는 에 있지만 와일드카드 경로를 포함 /opt/chkobm/chkobm
해야 하므로 이는 나쁜 습관인 것 같습니다 ( ).$PATH
/opt/*/
~에서TLDP("Linux 파일 시스템 계층" 섹션):
사용자가 호출하는 프로그램은 /opt/'package'/bin 디렉터리에 있습니다.
첫째, 그러한 파일을 배치할 위치에 대한 일관된 규칙이 있습니까? ( /usr/bin
내 생각에는 이것이 실행 가능한 대체 장소인 것 같습니다.) 둘째, 수동 스크립트를 에 배치 /opt/*/bin/
하고 이 경로를 로 내보내야 합니까 $PATH
?
답변1
/usr/local/bin
평소의 장소입니다.
~에 따르면Linux 파일 시스템 계층 구조:
원래 아이디어는 다른 곳에서 읽기 전용으로 마운트할 수 있는 디렉토리를 제외하고 각 시스템에
/usr/local
별도의("로컬") 디렉토리를 갖는 것이 었습니다. 구조를 복사합니다. 오늘날 자체 컴파일한 프로그램이나 타사 프로그램을 저장하기에 좋은 장소로 널리 알려져 있습니다. /usr/local 계층 구조는 소프트웨어를 로컬로 설치할 때 시스템 관리자가 사용합니다. 시스템 소프트웨어가 업데이트되면 덮어쓰지 않도록 해야 합니다. 호스트 그룹 간에 공유할 수 있지만 /usr에는 없는 프로그램 및 데이터에 사용할 수 있습니다. 로컬로 설치된 소프트웨어는 /usr의 소프트웨어를 교체하거나 업그레이드하기 위해 설치하지 않는 한 /usr이 아닌 /usr/local에 있어야 합니다./usr
/usr
/usr
/usr/local
나는 데비안에서 정의한 FHS에 의존하는 경향이 있습니다. 데비안은 표준을 시행하는 데 매우 능숙합니다. 그게 그들이 해야 할 일이야선택에 대해 이야기하기:
/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 링크의 이전 정의와 동일합니다.