it-gundan.com

사용자 응용 프로그램을 설치할 때 "모범 사례"는 어디에 있습니까?

apt 또는 다른 패키지 관리자를 사용하지 않고 수동으로 응용 프로그램을 설치하는 경우가 있습니다.

사용자 애플리케이션 설치를위한 "모범 사례"는 어떤 위치 (/usr/, /usr/local/, /opt/, /home/ 등)를 제안합니까?

206
citadelgrad

정말 다릅니다. 응용 프로그램에 makefile이 있거나 응용 프로그램에 distutils (예 : setup.py 파일이있는 경우) 또는 이와 유사한 빌드/설치 시스템을 사용하는 경우 python 앱의 경우이를 설치해야합니다. /usr/local/. 이것은 종종 기본 동작입니다.

내가 이해 한 바에 따르면 /usr/local/에는 /usr/와 유사한 계층이 있습니다. 그러나 /usr/bin//usr/lib/와 같은 디렉토리는 일반적으로 apt을 통한 패키지 설치를 위해 예약되어 있습니다. 따라서 /usr/에 "설치"될 것으로 예상되는 프로그램은 /usr/local/에서 제대로 작동해야합니다.

Tarball을 추출하고 직접 실행해야하는 경우 (예 : Firefox) /opt/에 넣으십시오. 하나의 디렉토리 만 필요하고 해당 디렉토리와 관련된 모든 파일/라이브러리를 얻는 프로그램은 /opt/에서 하나의 디렉토리를 얻을 수 있습니다.

182
Umang

/usrser를 나타내는 것이 아니라 nix 시스템 리소스를 나타냅니다.

따라서 모든 배포판에 /usr,의 모든 내용을 훔칠 수있는 권한이 있으며 시스템에 대한 특정 추가 사항이 /usr/local에 들어가고 업그레이드하기 전에 보존합니다.

한편 응용 프로그램 및 기타 사항은 /opt에 있습니다.

어떤 사람들은 /home에 물건을 넣는 것이 편하다고 생각하지만 그 관습을 거의 따르지 않습니다.

즉, 배포 패키지 관리자가 먼저 작업을 수행 한 다음 물건을 굴릴 때 위와 같이하십시오.

116
Walt Stoneburner

/ home/user/opt /에 firefox devel과 같은 불안정한 프로그램을 설치하면 제거하기가 훨씬 쉽고 다른 사용자가 사용해야하는 버전에 대해 혼동하지 않아도됩니다. 홈 디렉토리의 하위 폴더에 있습니다.

/ usr /에 프로그램을 설치하지 마십시오. 혼란을 유발할 수 있습니다./usr /에 설치된 것은 배포 패키지에만 사용됩니다./usr/local /은 로컬로 컴파일 된 패키지를위한 것입니다. 그리고 Srtucture는 정확히 같은 방식으로 작동합니다!/usr/local /의 파일은/usr /의 파일보다 우선합니다

사전 컴파일 된 (이진) 패키지 (Thunderbird, Eclipse, Netbeans, IBM NetSphere 등)의 설치에는/opt /를 사용해야합니다. 그러나 단일 사용자 전용 인 경우 홈 디렉토리에 저장해야합니다.

전체 경로를 입력하지 않고 "이상한"위치 (예 :/home/user/opt/firefox /)에 설치된 프로그램을 실행하려면 $ PATH 변수에 추가해야합니다. /home/user/.profile에 이와 같은 줄 추가

export PATH=/home/user/opt/firefox:$PATH

실행해야 할 실행 파일이있는 폴더 이름이어야합니다.

34
LassePoulsen

Linux 파일 시스템 계층 표준은 /usr/local을 나타냅니다.

http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html 에서 :

'/ usr/local'의 기본 아이디어는 '/ usr'이외의 모든 시스템에 별도의 ( 'local') '/ usr'디렉토리를 갖는 것이 었습니다.이 디렉토리는 다른 곳에서 읽기 전용으로 마운트 될 수 있습니다. '/ usr'의 구조를 복사합니다. 요즘 '/ usr/local'은 자체 컴파일 또는 타사 프로그램을 유지하기에 좋은 장소로 널리 알려져 있습니다./usr/local 계층은 소프트웨어를 로컬로 설치할 때 시스템 관리자가 사용합니다. 시스템 소프트웨어가 업데이트 될 때 덮어 쓰지 않도록해야합니다. 호스트 그룹간에 공유 가능하지만/usr에는없는 프로그램 및 데이터에 사용될 수 있습니다. 로컬로 설치된 소프트웨어는/usr에서 소프트웨어를 교체하거나 업그레이드하기 위해 설치되지 않는 한/usr이 아닌/usr/local에 있어야합니다.

26
popey

"checkinstall"을 사용하여 외계인 패키지를 deb로 변환하여 패키지 관리자를 사용하여 제거 할 수 있도록하십시오.

구성 파일은 종종 구성 파일로 처리되지 않으며 (아마도 무시되거나 앱의 일부로 취급 될 수 있음) 설치 전후 스크립트는 종종 뭉개지지만, 일반적으로 deb는 설치 전후 스크립트가 잘못 될 것입니다.