왜 모든 것을 / opt로 옮겨야합니까?


16

SDK, IDE, 일부 확장 프로그램 설치에 대한 팁을 읽을 때마다 /opt폴더 에서 압축을 풀어야한다고 말합니다 . 왜 그렇게해야합니까?

Ubuntu를 설치할 때 /파일 시스템에 10-20GiB 만 설정 하고 나머지 공간 은에 설정해야한다는 내용을 읽었습니다 /home. 루트 폴더의 공간을 늘리거나 모든 것을 남겨 두어야 /home합니까? 차이점이 있습니까?


1
여기에 두 가지 질문이 있습니다. 게시물 당 하나의 질문 만 허용됩니다. 게시물을 편집하고 원하는 경우 크기 또는 홈 폴더에 관한 다른 질문을 게시 할 수 있습니다
Sergiy Kolodyazhnyy


답변:


20

먼저 별도의 파티션에 대한 마운트 지점이 아닌 디렉토리 (또는 이러한 마운트 지점의 하위 디렉토리)가 아닌 디렉토리는 루트 ( /) 파티션 에 저장되어 있습니다. 따라서 루트 ( /) 및 /home다른 파티션이없는 경우 /opt디렉토리는 단순히 루트 ( /) 의 디렉토리입니다 . 마찬가지로 위해 /tmp, /sbin다른, 아무것도. 따라서 초기 질문은 루트 ( /)로 이어지는 모든 디렉토리에 대해 별도의 파티션이 필요하다는 잘못된 전제에 기반 하므로 직접 응답 할 수 없습니다.

둘째, /opt타사 소프트웨어에 사용되며 데비안 패키지를 통해 배포되지 않은 사전 컴파일 된 소프트웨어를 의미합니다. 때때로을 참조하는 공식 프로그램 설명서가 표시 /opt되지만이 파일을 다른 곳에 놓는 데비안 패키지가 있습니다. 이 경우 데비안 패키지를 사용할 때 공식 문서를 무시하거나 파일 위치 참조를 무시해야합니다. 또한 tarball 또는 Debian 패키지를 통해 사전 컴파일 된 패키지를 사용하도록 선택할 경우 일반적으로 Debian 패키지를 사용하는 것이 가장 좋습니다. /opt요즘 에는 사용 이 매우 드 rare니다. 그래도 파일을 넣어야한다고 생각한다면 /opt소프트웨어의 이름을 지정하는 것이 좋습니다. 여기있는 사람들은 해당 소프트웨어에 데비안 패키지가 있는지 알아볼 수 있기 때문입니다.

마지막으로 두 개의 이전 지점을 결합하면 Ubuntu 설치가 /opt별도의 파티션으로 분리되는 경우가 거의 없습니다. 많은 양의 데이터가 저장되는 경우가 드물기 때문입니다. 대부분의 우분투 소프트웨어는 /usr다른 위치에 있습니다. 한 번 /usr에 별도의 파티션 으로 분할 하는 것이 일반적 이었지만 오늘날에는 그 방법이 거의 없습니다. 당신이 소프트웨어를 많이 설치해야 할 일이 없으면 /opt다음에 대해 별도의 파티션을 생성, 수도이해가 되겠지만 많은 경우에 이것은 실제로 도움이되지 않습니다. 보안을 다르게 처리해야하는 경우, 다른 파일 시스템 기능이 도움이된다면 다중 부팅 구성으로 여러 OS 설치에서 데이터를 공유하는 등 다른 이유로 별도의 파티션이 적합합니다. 일상적인 소프트웨어 설치는 별도의 파티션에서 이점을 얻지 못할 것입니다. 실제로 별도의 파티션을 만들면 /opt저장된 소프트웨어에 의해 소비되는 크기가 변경되거나 처음에 크기 추정치가 잘못 될 경우 문제가 발생할 수 있습니다.


1
"요즘에는 / opt를 사용하는 것이 매우 드"니다. "계속 하시겠습니까?
Pacerier

@Pacerier 어떤 이유로 / opt는 다시 돌아 오는 것처럼 보이며 / usr / local은 몇 년 전에 우분투에서 더 인기가있었습니다. 여하튼 IMHO, / opt 및 / usr / local은 동일합니다. 참조 linuxjournal.com/magazine/pointcounterpoint-opt-vs-usrlocaltldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html 요즘 ','/ usr / 지방은 '널리 좋은 장소로 간주됩니다 자체 컴파일 또는 타사 프로그램을 유지할 수 있습니다. "
Panther

8

당신 은요?

사실 당신은 그것을 할 필요가 없습니다. 사용 /opt은 관습입니다. 나는 그것을 사용하는 것이 좋지만 반드시 필요한 것은 아닙니다.

에서 리눅스 파일 시스템 계층 구조 : 제 1 장 리눅스 파일 시스템 계층 구조 :

1.13. /고르다

이 디렉토리는 기본 설치에 포함되지 않은 모든 소프트웨어 및 애드온 패키지 용으로 예약되어 있습니다. 예를 들어 StarSuite, Kylix, Netscape Communicator 및 WordPerfect 패키지는 일반적으로 여기에 있습니다. FSSTND를 준수하려면 모든 타사 응용 프로그램을이 디렉토리에 설치해야합니다. 여기에 설치할 패키지는 정적 파일 (예 : 추가 글꼴, 클립 아트, 데이터베이스 파일)을 찾아야합니다. 정적 파일을 별도의 / opt / 'package'또는 / opt / 'provider'디렉토리 트리에서 찾아야합니다 (방법과 유사) 여기서 Windows는 자체 디렉토리 트리 C : \ Windows \ Progam Files \ "프로그램 이름"에 새 소프트웨어를 설치합니다. 여기서 'package'는 소프트웨어 패키지를 나타내는 이름이고 'provider'는 공급자의 LANANA 등록 이름입니다.

대부분의 배포판에서는 / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib 및 / opt / man 디렉토리를 만드는 것을 무시하지만 로컬 시스템 관리자 용으로 예약되어 있습니다. 패키지는 시스템 관리자가 이러한 예약 된 디렉토리에 배치 (링크 또는 복사) 할 "프론트 엔드"파일을 제공 할 수 있지만 이러한 예약 된 디렉토리가없는 경우 정상적으로 작동해야합니다. 사용자가 호출하는 프로그램은 / opt / 'package'/ bin 디렉토리에 있습니다. 패키지에 UNIX 매뉴얼 페이지가 포함되어 있으면 / opt / 'package'/ man에 있으며 / usr / share / man과 동일한 하위 구조를 사용해야합니다. 가변적 인 패키지 파일은 / var / opt에 설치해야합니다. 호스트 별 구성 파일은 / etc / opt에 설치됩니다.

어떤 상황에서도 파일 시스템 트리 내의 특정 위치에 있어야하는 패키지 파일을 제외하고 다른 패키지 파일이 / opt, / var / opt 및 / etc / opt 계층 외부에 존재하지 않아야합니다. 예를 들어, / var / lock의 장치 잠금 파일과 / dev의 장치. 배포판은 / opt에 소프트웨어를 설치할 수 있지만 로컬 시스템 관리자의 동의없이 로컬 시스템 관리자가 설치 한 소프트웨어를 수정하거나 삭제해서는 안됩니다.

애드온 소프트웨어에 / opt를 사용하는 것은 UNIX 커뮤니티에서 잘 확립되어 있습니다. System V 인터페이스 정의 (Third Edition) 및 Intel Binary Compatibility Standard v. 2 (iBCS2)에 기반한 System V 응용 프로그램 이진 인터페이스 [AT & T 1990]는 여기에 정의 된 것과 매우 유사한 / opt 구조를 제공합니다.

일반적으로 시스템에서 패키지를 지원하는 데 필요한 모든 데이터는 / etc / opt / 'package'및 / var / opt / 'package'로 복사하려는 파일을 비롯하여 / opt / 'package'내에 있어야합니다. / opt에 예약 된 디렉토리 / opt를 사용한 배포에는 약간의 제한이 필요합니다. 특히 일부 바이너리 소프트웨어에서 발견 된 고정 경로 이름의 경우 배포 설치와 로컬 설치 소프트웨어간에 충돌이 발생할 수 있기 때문입니다.

/ opt / 'provider'아래의 디렉토리 구조는 소프트웨어의 패키지 관리자에게 맡겨져 있지만 패키지는 / opt / 'provider'/ 'package'에 설치되고 다음의 지침과 유사한 구조를 따르는 것이 좋습니다. / opt / package. 이 구조에서 벗어나는 유효한 이유는 / opt / 'provider'/ lib 또는 / opt / 'provider'/ bin에 파일이 설치되어있는 지원 패키지 때문입니다.


대부분의 사람들이 루트 디렉토리에 작은 공간을 나누는 것을 권장하기 때문에 이것은 이상합니다. 크게 바뀌지 않을 것이라고 생각했습니다. 컨벤션을 따르기 위해 그러한 조언을 상기시켜야 할 것 같습니다.
Praytic 2016 년

2
@Praytic 실제로는 아닙니다. 과거 /opt에는 종종 별도의 드라이브였습니다. 독점 소프트웨어를 설치하는 데 사용되는데, 필요한 모든 라이브러리와 기타 리소스가 번들로 제공되므로 디스크 공간이 많이 필요합니다. 현대에는 드라이브가 너무 커서 단일 드라이브에서 단일 루트를 사용하는 것이 가능하고 더 쉽습니다.
bain

4

/optLinux 배포판의 일부로 간주되지 않는 외부 응용 프로그램 (때로는 독점)에 사용됩니다. 이러한 응용 프로그램에는 하드 코드 된 경로가있을 수 있으므로 설치할 때만 제대로 실행 /opt되지만 하드 코드 된 경로가없는 경우 모든 경로에 설치할 수 있습니다. 설치된 프로그램은 /opt자체 포함되어 있어야합니다.

사용하는 주된 이유 /opt는 설치된 나머지 시스템을 방해하지 않고 외부 소프트웨어를 설치할 수있는 일반적인 표준 경로를 제공하기위한 것입니다. /opt표준 컴파일러 또는 링커 경로 ( gcc -print-search-dirs또는 /etc/ld.so.conf기타) 에 나타나지 않으므로 설치된 헤더 및 라이브러리는 기본 시스템과 다소 분리되어 이미 설치된 프로그램을 방해해서는 안됩니다.

의 사용 /opt에 의해 지정된 파일 시스템 계층 구조 표준 : / 옵션 노트, /opt원래는 유닉스에서왔다.

/ opt : 애드온 응용 프로그램 소프트웨어 패키지

목적

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

/ opt에 설치할 패키지는 별도의 / opt / <package> 또는 / opt / <provider> 디렉토리 트리에서 정적 파일을 찾아야합니다. 여기서 <package>는 소프트웨어 패키지를 설명하는 이름이고 <provider>는 제공 업체의 LANANA 등록 이름.

요구 사항

/ opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib 및 / opt / man 디렉토리는 로컬 시스템 관리자 용으로 예약되어 있습니다. 패키지는 로컬 시스템 관리자가 이러한 예약 된 디렉토리에 배치 (링크 또는 복사)하도록 의도 된 "프론트 엔드"파일을 제공 할 수 있지만 이러한 예약 된 디렉토리가없는 경우 정상적으로 작동해야합니다.

사용자가 호출 할 프로그램은 / opt / <package> / bin 디렉토리 또는 / opt / <provider> 계층에 있어야합니다. 패키지에 UNIX 수동 페이지가 포함되어 있으면 / opt / <package> / share / man 또는 / opt / <provider> 계층 아래에 ​​있어야하며 / usr / share / man과 동일한 하위 구조를 사용해야합니다.

가변적 인 패키지 파일 (정상 작업에서 변경)은 / var / opt에 설치해야합니다. 자세한 내용은 / var / opt 섹션을 참조하십시오.

호스트 별 구성 파일은 / etc / opt에 설치해야합니다. 자세한 내용은 / etc 섹션을 참조하십시오.

올바르게 작동하기 위해 파일 시스템 트리 내의 특정 위치에 있어야하는 패키지 파일을 제외하고 다른 패키지 파일은 / opt, / var / opt 및 / etc / opt 계층 외부에 존재할 수 없습니다. 예를 들어, 장치 잠금 파일은 / var / lock에 있어야하고 장치는 / dev에 있어야합니다.

배포판은 / opt에 소프트웨어를 설치할 수 있지만 로컬 시스템 관리자의 동의없이 로컬 시스템 관리자가 설치 한 소프트웨어를 수정하거나 삭제해서는 안됩니다.

이론적 해석

애드온 소프트웨어에 / opt를 사용하는 것은 UNIX 커뮤니티에서 잘 확립되어 있습니다. System V 인터페이스 정의 (Third Edition)를 기반으로하는 System V 응용 프로그램 이진 인터페이스 [AT & T 1990]는 여기에 정의 된 것과 매우 유사한 / opt 구조를 제공합니다.

iBCS2 (Intel Binary Compatibility Standard v. 2)도 / opt와 유사한 구조를 제공합니다.

일반적으로 시스템에서 패키지를 지원하는 데 필요한 모든 데이터는 / etc / opt / <package> 및 / var / opt / <package> 및 / var / opt / <package>에 복사하려는 파일을 포함하여 / opt / <package> 내에 있어야합니다. / opt에 예약 된 디렉토리

배포가 설치된 소프트웨어와 로컬에 설치된 소프트웨어, 특히 일부 바이너리 소프트웨어에 고정 경로 이름이있는 경우 충돌이 발생할 수 있으므로 / opt를 사용한 배포에 대한 약간의 제한이 필요합니다.

/ opt / <provider> 아래의 디렉토리 구조는 소프트웨어의 패키저에 맡겨져 있지만 패키지는 / opt / <provider> / <package>에 설치되고 다음과 같은 지침을 따르는 것이 좋습니다. / opt / package. 이 구조에서 벗어나는 유효한 이유는 / opt / <provider> / lib 또는 / opt / <provider> / bin에 파일이 설치되어있는 지원 패키지 때문입니다.


3

아무것도 신성한 약이있다 /opt가이 디렉토리 시스템의 모든 사용자가 액세스 할 수 있어야합니다 미리 컴파일 된 소프트웨어를 넣어 그냥 일반적이다. 시스템의 유일한 사용자 인 경우 홈 디렉토리에서 시스템을 추출해도 아무런 문제가 없습니다. 시스템에이 소프트웨어에 액세스해야하는 여러 사용자가 있지만 /home파티션 의 공간을 사용하려는 경우에도 공개적으로 액세스 할 수있는 /home/softwarename디렉토리 를 생성하고 소프트웨어를 추출 하는 데 아무런 문제가 없습니다 (유일한 경고는 라는 사용자가 있으면 softwarename사용자의 홈 디렉토리에서 사용할 수 없습니다.


2

자세한 답변은 매우 좋지만 (최고의 프로그래밍 방법이 아닌 하드 코딩 된 절대 경로가있을 수있는 소프트웨어는 제외하고) 비 시스템 / 비 배포 소프트웨어는 일반 시스템 파일.

물건을 /opt넣거나 /usr/local물건을 깨끗하고 안전하게 유지합니다.

특히 소프트웨어 검색 경로 ($ PATH)는 실행할 특정 이름의 프로그램을 찾을 때 위치를 검색하는 순서를 결정합니다. 일반적으로 장소 는 목록의 끝 /opt과 비슷 /usr/local합니다.

프로그램에 이름이 지정된 패키지를 설치하면 cp배포판과 함께 제공되는 기본 검색 순서 는 패키지 가 저장된 디렉토리가와 같은 장소보다 먼저 검색되기 때문에 일반 검색 순서를 찾습니다 /opt.

그렇게 작동하지 않으면 cp누군가 파일을 복사하려고 할 때 다른 것을 수행 하는 프로그램 이 실행되면 보안 허점을 열거 나 보안 허점을 열 수있는 사람을 알고 있습니다.

이와 같은 일이 발생하면 누군가가 type cp어떤 일이 실행되고 있는지 생각하는 것이 아니라는 것을 알기 위해 누군가 ( 같은 일 이 잘못되었음을 표시하기에는 충분하지 않을 수도 있음) 와 같은 명령을 실행하려고 생각하기까지 시간이 걸릴 수 있습니다 . 그 시점까지는 "모든 것이 정확하게 작동하지 않는 작은 세부 사항과는 거리가 멀다!"

기본적으로 예기치 않은 일이 발생하지 않도록하고 시스템 업데이트로 "사용자 정의"설치 패키지의 일부 또는 전부가 제거되거나 교체되는 상황을 피합니다. 반대로, 일부 "사용자 정의"프로그램은 다른 많은 프로그램이나 스크립트가 의존 할 수있는 시스템 제공 프로그램을 덮어 쓸 수 있습니다.

관리상의 관점에서 "시스템"과 "선택적"프로그램 / 파일을 같은 위치에 혼합하면 시스템이 "정의되지 않은"상태 또는 "모호한"상태가됩니다.

시스템이나 프로그램에 문제가 있고 도움이 필요한 경우 가장 먼저 묻는 질문 중 하나는 "무엇을 변경 했습니까?"입니다. "이러한 변경 사항 중 일부를 일시적으로 비활성화하여 다른 문제의 증상이 아니라 실제 문제를보고 있음을 알 수 있습니다."

별도의 위치를 ​​사용하면 이러한 변경 사항을 신속하게 식별 할 수 있으며 (적어도 프로그램 자체의 경우) 경로에서 디렉토리를 일시적으로 제거하기 만하면됩니다.

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