루트가 아닌 사용자가 사용하는 바이너리를 /usr/bin/에서 /usr/local/bin/으로 이동해야 합니까?

루트가 아닌 사용자가 사용하는 바이너리를 /usr/bin/에서 /usr/local/bin/으로 이동해야 합니까?

나는 이미 관련 주제를 경험했습니다여기.

내 동료 중 한 명이 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(파일 시스템 계층 표준)를 준수한다고 명시되어 있습니다.

관련 정보