나는 이미 관련 주제를 경험했습니다여기.
내 동료 중 한 명이 phantomjs
바이너리를 /usr/bin
. 우리 시스템에서 이 바이너리는 루트가 아닌 사용자만 사용할 수 있습니다. 현재 일반 사용자는 이 바이너리를 잘 실행할 수 있지만 이 질문에 게시된 스레드에 따르면 루트가 아닌 사용자가 사용하는 바이너리를 내려놓는 올바른 접근 방식은 아닌 것으로 보입니다 /usr/bin
. 그렇다면 에서 옮겨야 할 이유가 있나요 /usr/bin
, /usr/local/bin
아니면 그대로 두는 것이 좋을까요 /usr/bin
? 즉, 바이너리를 /usr/bin
또는 아래에 두는 것이 어떤 차이가 있습니까? /usr/local/bin
아니면 일반적으로 따르는 "규칙"입니까?
[root@seco01 ~]# which phantomjs /usr/bin/phantomjs [root@seco01 ~]#
PS: /usr/local/bin
포함되어 있습니다 $PATH
.
답변1
파일 시스템 계층 표준에 따르면 각 /usr/local: 로컬 계층, 저것
/usr/local 계층 구조는 소프트웨어를 로컬로 설치할 때 시스템 관리자가 사용합니다. 시스템 소프트웨어가 업데이트되면 덮어쓰지 않도록 해야 합니다. 호스트 그룹 간에 공유할 수 있지만 /usr에는 없는 프로그램 및 데이터에 사용할 수 있습니다.
로컬로 설치된 소프트웨어는 /usr의 소프트웨어를 교체하거나 업그레이드하기 위해 설치하지 않는 한 /usr이 아닌 /usr/local에 있어야 합니다.
일반적으로 최신 Linux 배포판에서는 배포판의 패키지 관리자가 관리하는 소프트웨어가 /usr/bin
등을 사용하는 반면, /usr/local/bin
로컬에 설치된 소프트웨어는아니요패키지 관리자가 관리합니다. 일반적인 경우는 설치된 소프트웨어를 통해서입니다 make, make install
. 정적 독립 실행형 바이너리도 이 범주에 속합니다.
또 다른 가능성은 입니다 /opt
. /opt
와 사이의 차이점은 /usr/local
명확하지 않지만 /usr/local
로컬 설치의 경우 더 관용적입니다. FHS가 말한 내용은 다음과 같습니다 /opt
./opt: 애플리케이션 패키지 첨부.
답변2
로컬 사용자만 사용한다면 /usr/bin에 보관할 의미가 없다고 생각합니다. 이는 또한 액세스를 더욱 안전하게 만듭니다.
귀하가 게시한 링크에는 FHS(파일 시스템 계층 표준)를 준수한다고 명시되어 있습니다.