리눅스에서 어떤 디렉토리에 프로그램을 설치해야합니까?


43

Linux에 프로그램을 설치하고 데몬으로 실행하고 싶습니다. (이 경우 팀은 3을 말하지만 본질적으로 문제가 있습니다). 패키지는 제공되지 않으며 Tarred 바이너리 만 제공됩니다. 디렉토리 구조에서 그러한 프로그램을 규칙에 따라 어디에 두어야합니까?

웹에서 / opt는 "선택적 애드온 앱"을위한 것이고 / usr은 "사용자 프로그램"을위한 것으로 나타났습니다. 한 자습서에서 / opt를 제안하고 다른 자습서는 / usr을 발견했습니다.

그렇다면 어느 쪽이 "보다 정확"합니까?


1
"보다 정확한"것은 배포판에 따라 다릅니다. 패키지 관리자가 관리하지 않는 소프트웨어를 배치 할 위치 (자주 /usr/local) 또는 배포 패키지에 대한 배포 지침을 확인해야 합니다.
Leiaz

레이 아즈 감사합니다. 귀하의 의견은 답변을 찾는 데 도움이되었습니다 ( askubuntu.com/questions/1148/… ). 따라서 필자의 경우 (Ubuntu 기반 Linux Mint 사용) 응용 프로그램이 단일 폴더를 사용하고 / opt 여야한다고 생각합니다. 귀하의 의견을 답변으로 전환하면 이에 동의합니다.
Every

답변:


27

"보다 정확한"것은 배포판에 따라 다릅니다. 패키지 관리자가 관리하지 않는 소프트웨어를 배치 할 위치 (자주 /usr/local) 또는 배포 용 패키지 를 만드는 방법에 대한 배포 지침을 확인해야 합니다.

TeamSpeak는 모든 것을 하나의 폴더에 넣고 재구성하기 쉽지 않을 수 있다고 말했듯이 예가 /opt/가장 좋습니다.

(그러나 예를 들어 Archlinux에서는 패키지 관리자를 설치할 수 있으므로 여전히 PKGBUILD를 설치 /opt합니다.)

또한 배포는 일반적으로 Filesystem Hierarchy Standard 를 따르려고 하므로보다 일반적인 규칙을 찾아야합니다.


사용법별로 각 디렉토리가 어디에 있는지 알 수있는 별칭이 있습니까? (예를 들어, 루트 구성을 배치 할 위치, 이진, 종속성, 템플릿을 배치 할 위치 ...)
Sandburg

5

자신의 소프트웨어를 컴파일하는 경우 궁극적으로 설치 위치를 제어합니다. 일반적으로 apt, yum, pacman과 같은 패키지 관리자를 통해 수동으로 컴파일 및 설치 한 소프트웨어가에 설치됩니다 /usr/local. 일부 패키지 (프로그램)는와 /usr/local같은 관련 파일을 모두 저장하기 위해 하위 디렉토리를 만듭니다 /usr/local/openssl. 기타 패키지는 다음과 같은 기존의 디렉토리에 자신의 필요한 파일을 설치합니다 /usr/local/sbin/usr/local/etc. 이들은 단순히 기본 위치이며 컴파일 중에 변경할 수 있습니다.

소프트웨어를 컴파일 --prefix=할 때 실행시 옵션 을 사용하여 설치 위치를 지정할 수 있습니다 ./configure. 를 실행하여 패키지에 사용 가능한 모든 옵션을 확인하는 것이 좋습니다 $ ./configure --help | less. 또한 패키지와 함께 제공된 INSTALL 및 README 문서를 찾아 보는 것이 좋습니다. 패키지와 관련된 설치 지침 및 종속성 정보를 포함하는 경향이 있습니다.

FHS 에 따르면 소프트웨어를 어디에서나 저장할 수 있지만 로컬에 설치된 소프트웨어의 소스 코드는 /usr/local/src 표준에 저장해야합니다. 구성 파일 또는 이진. 일부 패키지가이를 사용하더라도 /usr/src커널과 같은 시스템 소프트웨어 용으로 지정된 소스 코드는 저장하지 않아야 합니다.

마지막으로 설치 위치가에 포함되어 있는지 확인해야합니다 $PATH. 패키지를 설치하기로 결정 /opt했지만 $PATH쉘에 없으면 패키지가 실행 파일을 찾지 못하므로 절대 경로를 사용하여 프로그램을 호출해야합니다. 다음AU의 구성에 대한 훌륭한 토론입니다.$PATH

추가 자료 : man hier


5

리눅스 표준 자료파일 시스템 계층 구조 표준은 틀림없이 당신이 리눅스 시스템에 소프트웨어를 설치해야하는 위치와 방법의 기준이며에 두 배포판에 포함되어 있지 않습니다 배치 소프트웨어를 제안 /opt하거나 /usr/local/또는 오히려 하위 디렉토리 안에 ( /opt/<package> /opt/<provider> /usr/local/bin)를.

모범 사례는 다운로드 한 소프트웨어를 배포 용 기본 설치 가능 소프트웨어 패키지 (예 : dpkg 또는 rpm 형식)로 변환하는 것입니다. 이를 통해 소프트웨어를보고, 업그레이드 및 깨끗하게 제거 할 수 있습니다.


이것은 단지 질문에 대답하기보다는 질문을 다시 언급합니다. 영업 이익은 알고 있었다 그 /opt/usr/local/두 개의 가능한 옵션 있었지만에서 특정 정보를 원 하나 그 옵션을 사용합니다. 이것은 수 유효 대신 (나는 그것이 될 것이라고 이의를 제기 할 비록 두 위치를 교환 할 것을 청구 한 경우 대답은 올바른 같은 경우 대답을).
JBentley

1

바이너리는 bin일반적인 규칙 에 따라 폴더에 들어갑니다. 패키지 구조를 구성하는 방법은 당신에게 달려 있습니다 /opt/<prog_name>/. 바이너리 목록 일지 생각할 수 있습니다 .


나는 그것은 / 빈 또는 / etc 또는 / var에 / 로그를 사용하지 않도록 팀, 3 사람이 필요한 모든 것이 하나 개의 폴더 (바이너리, 설정 파일, 로그)에 앉아있는 방식으로 프로그램을 만든 말 것을 두려워
Ever

1

Eclipse 설치 프로그램을 통해 Eclipse를 설치하는 동안 동일한 질문이있었습니다.

Gimp, Perl 및 Vim이 /usr/share폴더에 설치되어 있고 폴더에 설치하기로 결정했습니다.


0

압축 방식에 따라 두 가지 방법으로 프로그램을 설치할 수 있습니다.

  1. 소프트웨어 관리자 (apt, synaptic, Gdebi 등)를 통해 – 프로그램은 일반적으로 .deb 또는 rpm 패키지 형태입니다. 대부분의 경우 소프트웨어 관리자는 종속성을 처리하고 일반적으로 바이너리를 /usr/bin, 구성 파일 등에 설치합니다 /etc. 또한 집에서 프로그램의 설정 파일을 만들 수도 있습니다 ~/.foo. 이 파일을 편집 할 수 있으면이 방법으로 세션 설정을 쉽게 변경할 수도 있습니다. 패키지를 제거하면 관리자가 모든 파일을 찾아서 완전히 제거합니다 (모든 위치를 특수 텍스트 파일에 저장함). 그러나 일부 구성 파일 (예 : 홈 폴더의 구성 파일)은 보존 될 수 있습니다.

  2. 아키텍처에 맞게 사전 컴파일 된 이진 파일 형식으로 프로그램 (보통 압축)을 다운로드합니다. 프로그램의 실행 파일은 다른 파일 (동적 라이브러리 등 연결) 옆에,이 모든 폴더가 루트 권한으로 복사 할 수있는 하나의 폴더에 보통 하나에이다 /opt또는 /usr/bin과 권한을 허용하는 경우, 모든 사용자가 사용할 수 있습니다. 이진 파일이있는 폴더를 내 홈 폴더에 넣습니다 ~/bin. 이제 bin 파일을 호출하여 프로그램을 실행할 수 있어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.