Linux에 프로그램을 설치하고 데몬으로 실행하고 싶습니다. (이 경우에는 Team Talk 3이지만 질문은 본질적으로 일반적인 것입니다.) 패키지는 제공되지 않으며 tar 바이너리만 제공됩니다.
관례적으로, 디렉토리 구조에서 이와 같은 프로그램을 어디에 배치해야 합니까?
온라인에서 나는 이것이 /opt
"선택적 플러그인 응용 프로그램"에는 적용되지만 /usr
"사용자 프로그램"에는 적용되지 않는다는 것을 발견했습니다.
한 튜토리얼이 제안되었고 /opt
다른 튜토리얼이 제안 되었습니다 /usr
.
그렇다면 어느 것이 "더 정확합니까"?
답변1
"더 정확함"은 배포판에 따라 다릅니다. /usr/local
(일반적으로) 패키지 관리자가 관리하지 않는 소프트웨어를 어디에 배치할지 또는 해당 소프트웨어에 대한 자체 패키지를 만드는 방법에 대한 배포 지침을 확인해야 합니다 .
말씀하신 대로 TeamSpeak는 모든 것을 하나의 폴더에 넣습니다(쉽게 재구성되지 않을 수 있음). 그래서 그게 /opt/
가장 좋을 것 같습니다.
(그러나 예를 들어 Arch Linux에서는 패키지 관리자를 설치할 수 있으므로 여전히 PKGBUILD를 만들어 거기에 설치합니다 /opt
.)
출시 버전도 있어요대개따라가려고 노력하다파일 시스템 계층 표준, 따라서 여기에서 보다 일반적인 규칙을 찾을 수 있습니다.
답변2
프로그램을 어디에 설치하나요?
자신만의 소프트웨어를 컴파일하는 경우 최종적으로 설치 위치를 제어할 수 있습니다.
- 평소처럼,수동으로 컴파일 및 설치된 소프트웨어(apt, yum, pacman과 같은 패키지 관리자를 통하지 않음)
/usr/local
. - 일부 패키지(프로그램)은
/usr/local
모든 관련 파일을 저장하기 위해 하위 디렉토리를 생성합니다/usr/local/openssl
. - 기타 패키지
/usr/local/sbin
및 와 같은 기존 디렉토리에 필요한 파일을 설치합니다/usr/local/etc
.
이는 기본 위치일 뿐이며 컴파일 중에 변경될 수 있습니다.
./configure 실행 시 설치 위치 정의
소프트웨어를 컴파일할 때,설치 위치를 지정할 수 있습니다.--prefix=
런타임 시 이 옵션을 사용합니다 ./configure
. 를 실행하여 패키지에 사용 가능한 모든 옵션을 확인하는 것이 좋습니다 $ ./configure --help | less
. 또한 패키지에 제공된 설명서를 찾아보는 것도 INSTALL
좋습니다 . README
여기에는 패키지별 설치 지침과 종속성 정보가 포함되는 경향이 있습니다.
참고하세요
또한 다음 사항도 지적되어야 한다.소프트웨어를 어디에나 저장할 수 있지만,에 따르면FHS, 로컬에 설치된 소프트웨어의 소스 코드는 /usr/local/src
!
스톡 구성 파일이나 바이너리를 복사해야 하는 경우 소스 트리가 저장된 위치를 표준화하면 트리를 쉽게 찾을 수 있습니다. 일부 패키지에서 이를 사용하더라도 /usr/src
시스템 소프트웨어(예: 커널)에 지정된 위치에 소스 코드를 저장하면 안 됩니다.
PATH가 현재 위치를 찾는지 확인하세요.
마지막 으로 설치 위치 가 $PATH
. ./opt
$PATH
여기좋은 토론이 있었어요아프리카 연합구성 정보$PATH
추가 자료:man hier
답변3
이것리눅스 표준 라이브러리그리고파일 시스템 계층 표준Linux 시스템에서 소프트웨어를 어디에 어떻게 설치해야 하는지에 대한 표준이라고 할 수 있습니다. 배포판에 포함되지 않은 소프트웨어를 배포판 내의 하위 디렉터리( )에 배치하는 /opt
것이 /usr/local/
좋습니다 /opt/<package> /opt/<provider> /usr/local/bin
.
가장 좋은 방법은 다운로드한 소프트웨어를 dpkg 또는 rpm 형식과 같은 배포용으로 설치 가능한 패키지로 변환하는 것입니다. 이는 소프트웨어 보고, 업그레이드 및 완전한 제거에 도움이 됩니다.
답변4
바이너리는 일반적인 규칙에 따라 폴더에 배치됩니다 bin
. 패키지 구조를 구성하는 방법은 사용자에게 달려 있습니다. /opt/<prog_name>/
바이너리 목록일 뿐인지 상상할 수 있습니다.