어떤 조직을 선택하더라도 어떤 것이 더 쉽고 어려워집니다.
유형, 유닉스 방식으로 파일을 정리 (에 bin
, man
, lib/python
, ...), 쉽게 파일을 사용할 수 있습니다. 명령을 실행하려면 어떤 패키지를 제공하든 명령을 찾을 위치를 알고 있어야합니다. 문서를 검색하려면 모두 한곳에 있습니다. 일부 프로그램이 Vim 구문 강조 모듈, zsh 완성 함수 또는 Python 바인딩을 제공하는 경우 관련 파일은 vim / zsh / python에서 찾을 수있는 위치에 있습니다.
유닉스는 또한 사용 패턴에 따라 파일을 구성합니다. 구성 파일이 들어가고 /etc
, 정상 작동 중에 변경되지 않는 /usr
파일이 들어오고, 자동으로 변경된 파일이 들어갑니다 /var
. 사용자 데이터는 아래에 /home
있습니다. 이것은 구성 관리 ( /etc
설치된 패키지 목록 에 포함 된 내용 관리)에 매우 유용합니다 . 그것은 백업 전략을 정의하는 것도 유용하다 :에 무엇이 /etc
와 /home
매우 중요하다, 반면에 무엇이 /usr
쉽게 다시 다운로드 할 수 있습니다.
유닉스 방식의 주요 비용은 소프트웨어 설치가 여러 디렉토리에 분산되어 있다는 것입니다. 그러나 현대 유닉스 시스템에는 어쨌든 패키지 관리자가 있습니다. 많은 디렉토리에서 파일을 관리하는 것은 그다지 복잡하지 않습니다 (종속성을 추적하는 것은 매우 유용하고 어렵습니다).
Windows와는 대조적입니다. Windows는 패키지 관리없이 시작했으며 각 응용 프로그램은 자체 디렉토리를 생성했습니다. 프로그램, 정적 데이터, 사용자 데이터 등과 같은 모든 파일은 일반적으로 해당 디렉토리 안에 있습니다. 프로그램은 충돌을 고려하지 않고 공통 시스템 디렉토리에 놓이는 라이브러리를 제외하고 ( "DLL 지옥"). 시간이 지남에 따라 Windows는 다중 사용자가되어 시스템 디렉토리에서 사용자 디렉토리를 분리해야했습니다. Windows는 또한 구성 파일 (Unix 's /etc
) 및 일부 시스템 데이터 (Unix ' s ) 의 중앙 위치를 만들었습니다./var
), 레지스트리. 이는 패키지 관리 부족과 단일 사용자 시스템으로서의 초기 기록으로 인해 역사적으로 더 많은 유물입니다. Windows 접근 방식에는 많은 제한이 있습니다. 소프트웨어 패키지가 쉽게 상호 작용할 수 없습니다. 예를 들어, 대부분의 설치된 소프트웨어는 기본 명령 검색 경로로 끝나지 않으므로 모든 형태의 스크립팅과 제대로 상호 작용하지 않습니다. 설치 프로그램은 일반적으로 별도의 시스템 디렉토리 (la Unix!)에 드롭 된 메뉴 아이콘을 특수한 경우로 제공합니다.
유닉스 접근법의 한계는 패키지의 여러 버전의 공존을 쉽게 허용하지 않는다는 것인데, 이는 패키지가 업그레이드되는 동안 특히 문제가됩니다. 두 세계를 최대한 활용하는 방법은 각 패키지를 자체 디렉토리 ( /opt
구조) 에 풀고 패키지 디렉토리에서 구조로 심볼릭 링크 포리스트를 만드는 것입니다 /usr
. 이것은 stow 와 같은 소프트웨어가하는 일 입니다.
요약하면, Unix 방식은 파일을보다 쉽게 사용하고, 파일을 관리하고, 패키지가 상호 작용하도록합니다. 패키지 관리 소프트웨어가 필요하지만 어쨌든 바람직합니다. Windows 접근 방식을 사용하면 패키지를 수동으로 쉽게 관리 할 수 있지만 유용한 기능을 얻으려면 Unix 모델을 사용해야합니다.