애플리케이션이 여러 파일로 구성된 경우 어디에 설치해야 합니까?

애플리케이션이 여러 파일로 구성된 경우 어디에 설치해야 합니까?

기본적으로 모든 파일은 /usr/bin실행 파일과 실행 파일에 필요할 수 있는 기타 파일(예: 구성 파일, 데이터 파일 등)이 포함된 디렉터리가 아니라 독립 실행형 실행 파일이라는 점을 확인했습니다.

여러 파일로 구성된 애플리케이션을 개발하는 경우 어디에 저장해야 합니까? 나의 첫 번째 본능은 응용 프로그램의 디렉터리를 에 저장 /opt하고 실행 파일에 대한 소프트 링크를 /usr/bin. 그러나 Google Chrome은 내 컴퓨터에서 이 작업을 수행하는 유일한 응용 프로그램이므로 더 표준적인 방법이 있다고 생각하게 됩니다.

답변1

설치된 소프트웨어의 파일을 구성하는 방법에는 패키지별 또는 유형별 두 가지 주요 방법이 있습니다.

/usr/binUnix 시스템은 실행 파일 , 시스템 관리자에게만 유용한 실행 파일 /usr/sbin, 프로세서 아키텍처에 종속된 코드 라이브러리 및 기타 파일 /usr/lib, 프로세서 독립적 파일, /usr/share매뉴얼 페이지 /usr/man, 기타 문서 등 유형별로 프로그램 파일을 구성하는 경향이 있습니다. /usr/doc등. (이것은 완전한 목록이 아니며 많은 변형이 존재합니다.) 나는 접두사를 사용했지만 /usr일반적으로 이러한 팬아웃이 세 가지 있습니다. at /시작 프로그램에 필요합니다( /usr구별이 항상 관련되지 않기 때문에 때로는 결합됨), at /usr수단 운영 체제와 함께 제공되는 프로그램 및 /usr/local시스템 관리자가 수동으로 설치하는 프로그램을 의미합니다.

/usr대부분의 Linux 시스템에서 ( 및 )의 차이점은 ( 및 )가 패키지 관리자에 의해 관리된다는 것 /usr/local입니다 . 따라서 유형별 구조를 사용하여 애플리케이션을 설치하는 경우 패키지(rpm, deb 등)로 배포할 때는 아래에 있어야 하고, 패키지로 배포하지 않을 때는 아래에 있어야 합니다(예: 아카이브 배포로 수동으로 배포할 경우) 포장 풀기)./usr//usr/local/usr/usr/local

/etc구성 파일은 시스템 관리자가 수정하기 때문에 일반적으로 전체가 배치됩니다 . 가능하다면 애플리케이션이 /etc및 또는(적절하게)에서 구성 데이터를 읽고 의 설정을 또는 의 설정으로 재정의하도록 합니다 /usr/etc. 또는 아래의 다른 데이터와 구성 데이터를 병합하는 것이 일반적이므로 또는가 없는 시스템을 많이 찾을 수 있습니다./usr/local/etc/etc//usr/etc/usr/local/etc/usr/share/usr/local/share/usr/etc/usr/local/etc

유형별로 정리하면 파일이 사용될 위치에 배치된다는 장점이 있습니다. 모든 실행 파일은 실행 파일 검색 경로( )의 디렉터리에 있고 $PATH모든 라이브러리는 라이브러리 검색 경로에 있으며 모든 매뉴얼 페이지는 매뉴얼 페이지 검색 경로에 있습니다. 이 조직의 한 가지 제한 사항은 각 패키지에 대해 설치된 파일을 추적하기 위해 패키지 관리자가 필요하다는 것입니다. Linux의 대부분 소프트웨어는 패키지 관리자를 통해 배포되므로 대부분의 소프트웨어는 /usr.

파일을 구성하는 또 다른 방법은 패키지별로 구성하는 것입니다 /opt. 표준 위치는 일반적으로 등으로 구성되며 때로는 추가 레벨 등으로 구성됩니다. 그러나 응용 프로그램은 디렉토리를 자유롭게 관리할 수 있습니다. 일부는 기타 파일을 직접 넣습니다. 이로 인해 패키지 관리가 쉬워지지만(설치된 소프트웨어 나열, 제거를 위해 올바른 위치에 압축 풀기) 관리자나 사용자가 소프트웨어를 사용하기가 더 어려워집니다. 경로를 검색하려면 적절한 위치를 추가하거나, 전체 경로를 사용하거나, 심볼릭 링크를 만들어야 합니다./opt/APPLICATION/bin/opt/APPLICATION/lib/opt/AUTHOR/APPLICATION/bin/opt/APPLICATIONlsrm -r

아래의 파일은 /opt일반적으로 수동으로 관리되지만(이 조직의 요점) 패키지 관리자가 관리하는 패키지가 있을 수 있습니다. 예 를 들어 Chrome의 deb 패키지는 이를 /opt. /opt/google/chrome이렇게 하면 배포판 간 지원이 좀 더 쉬워질 수 있습니다.

애플리케이션과 배포판이 Linux에서 파일을 구성하는 방법에 대한 자세한 내용을 알고 싶다면 다음을 읽어보세요.FHS.

간단히 말해서:

  • 패키지(deb, rpm 등)를 빌드할 때 /usr배포판이 선택한 디렉터리(예: /usr/manvs /usr/share/man, /usr/libvs /usr/libexec, /usr/libvs /usr/lib64등)를 사용하여 설치하세요.
  • 직접 설치하는 경우(예: make install) 기본 설치는 /usr/local(기본 하위 디렉터리: 실행 파일은 /usr/local/binMedium에, 데이터 파일은 Medium에 있음) 시스템 관리자가 선택할 수 있는 다른 선택 사항을 지원합니다. 설치 중에 파일이 복사되는 디렉토리는 파일이 사용되는 디렉토리와 다를 수 있습니다./usr/local/share/APPLICATION가게(바라보다추적 프로그램).

/opt두 시나리오 모두 가능하지만 시스템 관리자에게 더 많은 부담을 안겨줄 것입니다.

답변2

패키지를 만드는 경우 대상 배포판에 따라 다소 다릅니다. 당신은 따라갈 수 있습니다파일 시스템 계층 표준. 데비안은 FHS를 따릅니다.일부 예외. 기본적으로:

  • /etc: 호스트별 시스템 구성
  • /usr/bin: 대부분의 사용자 명령
  • /usr/lib:프로그래밍 및 패키징을 위한 라이브러리
  • /usr/share: 스키마 독립적 데이터

여러 아키텍처를 지원하는 Debian 기반 패키지 시스템에서 아키텍처 독립적인 데이터는 일반적으로 별도의 패키지로 분할됩니다.

예를 들어, 다음 방법을 참조하세요.apache2,apache2-bin,apache2-data그리고apache2-docUbuntu의 패키지는 구성되어 있습니다.

관련 정보