Linux에서 응용 프로그램의 일반적인 설치 위치는 무엇입니까?


72

현재 NetBeans를 설치하고 있으며 기본 설치 디렉토리는 /home/thomasowens/netbeans-6.8입니다. 그 위치의 팬이 아니에요, 그래서 찾고 있어요 /etc, /bin, /usr/bin,와 /sbin. 리눅스는 규칙에 의해, 윈도우와 동일 곳이 있나요 C:\Program Files디렉토리를?

답변:


98

Filesystem Hierarchy Standard 에 따르면 응용 프로그램에 따라 수용 가능한 여러 곳이 있습니다. 나는 여기에서 광범위하게 인용하고 있습니다.

  • bin 물론 "이진"의 줄임말
  • sbin "서버 바이너리"의 약자.

    시스템 관리에 사용되는 유틸리티 (및 다른 루트 전용 명령)

  • /usr 공유 가능, 읽기 전용 데이터 용이며 다양한 FHS 호환 호스트간에 공유 가능해야합니다 (네트워크에 많은 시스템이 있고 모두 동일한 아키텍처 인 경우 단일 / usr 폴더를 공유 할 수 있어야합니다) 네트워크의 모든 컴퓨터와 함께)

  • /usr/local 소프트웨어를 로컬로 설치할 때 시스템 관리자가 사용합니다 (예 : 네트워크의 모든 컴퓨터가 아닌이 컴퓨터에만 설치된 응용 프로그램의 경우).

함께 모아서 :

  • /usr/bin 시스템에서 실행 가능한 명령의 기본 디렉토리입니다.
  • /usr/sbin 시스템 관리자가 독점적으로 사용하는 비 필수 바이너리입니다.
  • 시스템 복구, 시스템 복구, USR / 장착, 또는 다른 필수 기능에 필요한 시스템 관리 프로그램에 배치해야합니다 /sbin(즉, 당신이 순서에 액세스하는 데 필요한 일을 탑재하는 대신 /usr/sbin에 이동 /sbin)
  • 마찬가지로, /usr마운트 되기 전에 필요할 수있는 필수 사용자 명령이 들어갑니다./bin
  • 로컬 머신에만 설치된 모든 것은 들어 /usr/local/bin오거나/usr/local/sbin

/ usr / local에는 다른 용도가 있습니다. 배포판의 패키지 관리자를 통해 설치하는 대부분의 항목은 / usr에 있습니다. 많은 사람들이 컴파일 한 것들을 / usr / local 아래에 넣습니다. 이를 통해 패키지 관리 시스템에 방해가되지 않으며 배포판에서 설치 한 내용 (및 다시 가져올 수 있으므로 백업 할 필요가 없음)과 직접 컴파일 한 내용을 확인할 수 있습니다. 또한 다른 버전을 동시에 실행할 수 있습니다 (예 : / usr / bin / firefox vs / usr / local / bin / firefox).


일이 해결되었다고 생각했을 때, 다른 장소가 있습니다. 아마도 가장 가까운 c:\Program Files- /opt:

/opt 애드온 응용 프로그램 소프트웨어 패키지 설치를 위해 예약되어 있습니다 .`

/opt아마 가장 가까운 동일합니다 c:\program files, 그것은 하나 개의 장소에서 당신이 함께 하나 개의 폴더에있는 모든 파일과 응용 프로그램을 찾을 것이 아니라 흩어져하는 기대 /usr/bin, /var그리고 /etc. 일반적으로 매우 큰 패키지에서만 사용되지만이 경우 Netbeans가 자체 폴더를 원할 경우 / opt / netbeans에 배치하는 것이 가장 적합합니다.


3
흥미 롭군 Linux를 디자인했다면 네트워크 공유 앱을 / usr / shared에 넣은 다음 비공개 로컬 호스트 앱을 / usr에 넣었을 것입니다. 그렇게하면 상속을 통해 / usr 공유하지 않고 / usr / shared를 공유 할 수 있습니다.
djangofan

1
정말 좋은 답변입니다. 나는 또한 패키지 관리 시스템을 방해하지 않는 것에 대한 의견을 좋아한다.
DaveParillo

1
"전체 타사 패키지"를 확실히 / opt하십시오. 대부분의 설치는 다양한 바이너리, 라이브러리, 파일 등을 다른 디렉토리로 나누지 만 "all in one"디렉토리가 있으면 / opt를 사용하면 쉽게 처리 할 수 ​​있습니다.
Avery Payne

몇 가지 간단한 질문 : 1) 네트워크의 모든 컴퓨터에서 / usr을 공유 할 수 있다고해서 모든 하위 디렉토리도 공유 할 수 있다는 의미가 아니므로 네트워크의 다른 컴퓨터에서 / usr / local을 볼 수 있습니까? 2) FHS 란 무엇입니까? 3) / usr을 마운트하는 데 필요한 명령에 대해 이야기 할 때 OS가 어떻게 종료되는지 (예 : 종료)에 대해 이야기합니까? 7 년 후 질문이 닥친 것에 대해 사과하지만, Linux를 처음 접했고 설치 안내서에서 물건을 넣을 위치를 말한 후 같은 이유를 알았습니다. +1 btw
Ungeheuer

5

실제로 그것은 개인 취향에 달려 있습니다. 나는 그것이 가치있는 것에 대해 설명 할 것이다.

/ usr, / usr / bin은 일반적으로 시스템에서 설치 한 소프트웨어를 설치할 장소입니다. 직접 설치하면 여러 위치 중 하나에 설치됩니다.

  1. 스크립트 또는 작은 프로그램 만 사용한다면 ~ / bin에 설치하십시오. 이것은 대부분의 물건이 끝나는 곳입니다.
  2. 전체 파일 트리를 사용하여 설명 한 것처럼 (NetBeans) / opt에 설치합니다.
  3. 단일 실행 파일 인 경우 / usr / local / bin에 설치합니다

왜 # 2와 # 3을 구별합니까? 아니, 시간이 지남에 따라 개발 한 습관 일뿐입니다. / opt는 일반적으로 깊은 파일 트리가되지만 실제로는 2 ~ 3 개의 실제 '사물'만 설치되어 있습니다. 이 시점에서 opt에 lampp 및 lotus 노트가 설치되어 있으며 각각 2 개 디렉토리에 각각 큰 나무가 있습니다. / usr / local / bin에는 20 개 또는 30 개의 항목이 있지만 하위 디렉토리는 없습니다.

수동으로 추가하는 것은 표준 저장소에서 단순히 설치하는 것이 아니라 수동으로 유지하기 때문에 / usr / bin 또는 / usr / sbin에 설치하지 않습니다.


1

그동안 파일 시스템 계층 구조 표준 않는 몇 가지 지침을 제공합니다. 대부분의 배포판은에 패키지를 설치하는 것을 좋아합니다 /usr/share.

이 때문에 패키지 관리자 (rpm / apt-get / emerge)를 통해 설치되지 않은 응용 프로그램을 설치하는 방법을 채택했습니다 /usr/local. 이를 통해 패키지 관리를 통해 관리되지 않는 응용 프로그램과 라이브러리를 분리 할 수 ​​있습니다.

Fedora Core와 Gentoo에서 시스템을 관리하는 데 도움이 된 기술입니다.


0

기본 위치는이라고 생각했을 /bin것입니다. apt-get 또는 이와 유사한 것을 사용하면 기본적으로 거의 모든 것이 설치되는 곳입니다 ...

... 그러나 추가 파일이 많은 최신 프로그램 (또는 설치 프로그램이없는 프로그램)의 경우 파일을 자신의 디렉토리에 배치하고 싶습니다 /bin.


3
/ bin, / usr / bin 및 / sbin의 차이점은 무엇입니까? / bin은 BINary 파일을위한 것이기 때문에 가장 의미가 있습니다.
Thomas Owens

0

일반적으로 / usr, / local, / bin 등의 여러 폴더에 설치됩니다. 파일 탭 아래의 GDebi 설치 프로그램에서 프로그램이 설치되는 위치를 찾을 수 있습니다. Netbeans을 이동하려는 경우 Google에서 설치하는 것처럼 / opt로 이동하는 것이 좋습니다.


0

James Polley의 답변에 동의하지만 실제로 여러 계정간에 응용 프로그램을 공유해야하는 경우가 아니라면 기본 디렉토리가 의미가 있습니다. 예를 들어 Linux에서 Flex 작업을 수행하기 위해 Eclipse 3.0 (구식 항목)을 설치해야했으며 $ HOME / eclipse3에 넣었습니다.


0

여러 서버에 설치하는 대부분의 애드온 앱에 / apps를 사용하고 싶습니다. 내 nfs 서버의 / installs / apps에 폴더 사본을 보관합니다. 새 Linux 서버를 만들 때 설치 폴더를 마운트하고 / apps를 복사하면 새 서버에 여러 가지 공통 앱이 있습니다. 이 새 서버에 필요하지 않은 항목을 삭제하고 완료했습니다. 글쎄, 환경 변수 또는 경로 문장을 설정하기 위해 스크립트를 3 ~ 3 개 실행해야하지만 많은 새 서버를 설정하는 데 걸리는 것입니다.

나는 Windows와 .net 배경에서 왔습니다. .net의 약속 중 하나는 Windows xcopy를 사용하여 대부분의 앱을 설치할 수 있다는 것입니다. 나는 리눅스에서 같은 것을 찾습니다. 가능한 경우 RPM 또는 yum 등에서 tarball을 선택하므로 cp -r을 사용하여 / apps에 배포하고 향후 배포를 위해 앱을 nfs 서버에 추가 할 수 있습니다.


2
질문은 컨벤션을 요구합니다. 당신은 당신이하는 일을 개인적으로 설명했습니다. 적어도 이것을 컨벤션과 관련시킬 수 있습니까?
fixer1234
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.