perforce 버전 제어 클라이언트 ( p4
) 용 실행 파일이 있습니다. /opt/local
루트 권한이 없기 때문에 넣을 수 없습니다 . 아래에 배치해야하는 표준 위치가 $HOME
있습니까?
파일 시스템 계층에는 로컬 실행 파일 / 이진 파일을 배치해야한다는 규칙이 $HOME/bin
있습니까?
FHS 에 대한 Wikipedia 기사에 언급 된 그러한 협약을 찾을 수 없었습니다 .
또한 실제로 규칙이있는 경우 $HOME/bin
디렉토리 경로 또는 디렉토리 위치 를 명시 적으로 포함해야 bin
합니까?
답변
일반적으로 비 시스템 설치 및 유지 보수 바이너리는 시스템 전체에서 여러 사용자가 액세스 할 수 있어야하는 경우 관리자가에 배치해야합니다 /usr/local/bin
. /usr/local
일반적으로 로컬로 컴파일되고 설치된 소프트웨어 패키지에 사용되는 완전한 계층이 있습니다 .
바이너리의 유일한 사용자 인 $HOME/bin
경우 직접 설치할 수 있고 유일한 소비자가되기 때문에 설치하는 것이 적절한 위치입니다. 소스에서 소프트웨어 패키지를 컴파일하는 경우 $HOME
디렉토리 에 부분 또는 전체 로컬 계층 구조를 작성하는 것이 좋습니다. 전체 로컬 계층 구조는 다음과 같습니다.
$HOME/bin
로컬 바이너리$HOME/etc
로컬 바이너리에 대한 호스트 별 시스템 구성$HOME/games
로컬 게임 바이너리$HOME/include
로컬 C 헤더 파일$HOME/lib
지역 도서관$HOME/lib64
로컬 64 비트 라이브러리$HOME/man
지역 온라인 매뉴얼$HOME/sbin
로컬 시스템 바이너리$HOME/share
로컬 아키텍처 독립적 인 계층$HOME/src
지역 소스 코드
를 실행할 때 설치 기본값의 접두사 configure
로 지정하여 설치를위한 로컬 계층 구조를 정의해야합니다 $HOME
.
./configure --prefix=$HOME
이제 make && make install
실행되면 컴파일 된 바이너리, 패키지, 매뉴얼 페이지 및 라이브러리가 $HOME
로컬 계층 구조에 설치됩니다 . $HOME
로컬 계층을 수동으로 생성하지 않은 경우 make install
소프트웨어 패키지에 필요한 디렉토리가 생성됩니다.
한 번에 설치 $HOME/bin
, 당신이 중 하나를 추가 할 수 있습니다 $HOME/bin
로 $PATH
또는 절대를 사용하여 바이너리를 호출합니다 $PATH
. 일부 배포판은 기본적으로 포함 $HOME/bin
됩니다 $PATH
. 이를 테스트 echo $PATH
하고 $HOME/bin
존재 하는지 확인 하거나 바이너리를 $HOME/bin
넣고 실행 하여 이를 테스트 할 수 있습니다 which binaryname
. 로 다시 돌아 오면 $HOME/bin/binaryname
기본적으로 $ PATH에 있습니다.
답변
으로 우서 언급 , /usr/local
본질적으로의 접두사위한 것입니다, 동안, 시스템 관리자에 의해 설치된 소프트웨어 /usr
배포판의 패키지에서 설치된 소프트웨어를 사용해야합니다.
이 뒤에 아이디어 (예 : 배포 된 소프트웨어와 충돌하지 않도록하는 것입니다 rpm
및 deb
패키지)과 “로컬”접두사를 통해 관리자에게 전체 통치를 제공합니다.
즉, 관리자는 데비안과 같은 배포판을 사용하면서 사용자 정의 컴파일 된 소프트웨어를 설치할 수 있습니다.
FHS에서
/ 또는 / usr에있는 소프트웨어는 시스템 업그레이드로 덮어 쓸 수 있습니다 (분산은 이러한 환경에서 / etc의 데이터를 덮어 쓰지 않는 것이 좋습니다). 이러한 이유로 로컬 소프트웨어를 정당한 이유없이 / usr / local 외부에 두어서는 안됩니다.
사용자 별 소프트웨어를 설치할 때는 쓰기 권한이 있으므로 접두사로 사용 하는 것이 좋습니다$HOME
. 개인적으로, 나는 $HOME/.local
당신이 (정말로) 멋지고 깔끔한 홈 디렉토리를 어지럽히 지 않기 때문에보다 우아한 솔루션으로 사용 하고 있다고 생각 합니다!
$HOME/.local/share
이미 사용된다 freedesktop.org XDG 기본 디렉토리 사양 그것이 추가 구상 많이하지 않도록, $HOME/.local/bin
당신에 $PATH
과가을 $HOME/.local/lib
당신이 그것에있는 동안, 등.
접두사가 실제로 숨겨진 디렉토리가되지 않게하려면 다음과 같이 심볼릭 링크를 쉽게 만들 수 있습니다.
ln -s .local ~/local
사이드 노트
그것은 있음을 주목할 필요가있다 .config
(안 .local/etc
)에 대한 기본 값이 $XDG_CONFIG_HOME
사용자 특정 설정 파일에 사용됩니다. 안타깝게도 소프트웨어의 많은 부분이 XDG를 무시하고 원하는 위치 (일반적으로 루트 $HOME
) 에 구성 파일을 만듭니다 . 또한 $XDG_CONFIG_HOME
기본값 $HOME/.config
을 원하는 경우 설정이 해제 될 수 있습니다 .
이상하게도 배포판의 기본 구성 파일 용으로 예약 된 디렉토리가 없으므로 /etc
배포판 에서 파일을 제공 했는지 또는 시스템 관리자가 파일을 편집 했는지 알 수있는 방법이 없습니다 .