태그 보관물: directory-structure

directory-structure

/ etc와 / usr / local / etc의 차이점은 무엇입니까? /usr/local/etc디렉토리 가 있음을 알았습니다

많은 응용 프로그램 데이터를 저장 해야하는 데몬을 개발 중이며 시스템 (Fedora 15)에 /usr/local/etc디렉토리 가 있음을 알았습니다 .

에 데몬을 설치하기로 결정했으며 /usr/local/bin구성 파일을 저장할 장소가 필요합니다.

Wikipedia에서 이것을 보지 못했습니다 . 이것이 비표준 /usr/local/bin입니까, 아니면 구성 파일을 저장 하기 위해 설치된 프로그램의 표준 장소 입니까?

이유는, 이것을 sys-admins에게 마케팅하고 싶습니다. 이와 같은 것을 얻는 것은 큰 판매 포인트가 아닙니다 …



답변

/usr/local일반적으로 소스에서 빌드 된 애플리케이션을위한 것입니다. 즉 apt, 와 같은 것을 사용하여 대부분의 패키지를 설치 하지만 배포판의 일부가 아닌 최신 버전의 소프트웨어 또는 소프트웨어를 다운로드하면 소스에서 빌드하여 모든 것을`/ usr / local ‘계층 구조에 넣습니다.

이것은 나머지 분포와의 분리를 허용합니다.

당신은 다른 사람을위한 소프트웨어의 조각을 개발하는 경우, 당신은 그래서 사람들이 원하는 어느 곳을 설치할 수 있습니다를 설계해야하지만 일반 기본합니다 FHS 가 할 접두사를 지정하면 시스템 디렉토리를 지정 /usr( /etc, /usr/bin, 등)

/usr/local, 개인적인 용도로 사용하는 것이 소프트웨어를 설치하는 유일한 장소가되어서는 안됩니다.

FHS를 잘 읽고 표준 Linux 도구를 사용하여 소스를 어디에서나 빌드하고 설치할 수 있으므로 다양한 배포판의 패키지 빌더가 배포판에 따라 필요에 따라 구성 할 수 있으며 /usr/local 원하는 경우 사용자가 배치 할 수 있습니다. 또는 원하는 경우 일반 시스템 디렉토리.


답변

아주 짧은 대답

/ etc는 OS에서 구성 파일을 위해 사용합니다.

/ usr / local / etc는 사용자 및 추가로 설치된 소프트웨어에서 구성 파일에 사용할 수 있습니다.


답변

/usr/local/etc리눅스 세계에서는 거의 사용되지 않습니다. 그러나 결정 매장 구성에있는 파일에 대한 여부 /etc, /usr/local/etc또는 다른 위치는 일반적으로 컴파일시에 만들어 (그리고 종종 명령 행 옵션이나 환경 변수를 통해 대체 될 수 있습니다). 컴파일 할 때 기본값이 무엇인지는 중요하지 않으므로 쉽게 설정할 수 있는지 확인하십시오 (일반적으로 --sysconfdirautoconf에 따라 옵션 ). 데몬이 배포 용으로 패키지 된 경우 실행 파일은 /usr/sbin(소스에서 빌드 할 때 기본값이되어야 함 /usr/local/sbin) 및 구성이에 /etc있습니다.

참고 /etc“응용 프로그램 데이터를 많이”를위한 장소가 아니다. 에 들어갑니다 /var. 소스에서 빌드 할 때의 기본값은 /var/local/mydaemon또는 /var/lib/mydaemon; 소스에서 빌드 할 때 기본값에 대한 강력한 규칙은 없습니다. 컴파일 타임 기본값 (일반적으로 configure --localstatedir)과 런타임 기본값 (구성 파일의 설정, 명령 행 옵션 또는 환경 변수 사용)을 모두 변경하는 방법이 있어야합니다 .


답변

아치 사용자는 / usr / local을 피하고 구성에 / etc 만 사용합니다. 소스에서 설치할 때 작은 PKGBUILD 파일을 쓰는 동안 차후에 다른 컴퓨터에서 다른 사용자와 나 자신을 위해 Arch User Repository (AUR)에 업로드 할 수 있습니다. AUR의 패키지 수와 패키지의 속도에 따라 판단 할 때 혼자 생각하는 것은 아닙니다. 이렇게하면 소스에서 패키지를 설치하지 않고 / usr / local과 같은 쓸모없는 위치를 피할 수있는 대신 모든 사람이 패키지를 사용할 수있게됩니다.

또한 데비안은 같은 / usr / 지방, 따라서 유틸리티에 아무것도 소스의 패키지를 구축하는 대신 설치하는 아이디어를 좋아하는 것 같다 에서는 checkinstall을 .

설치하려는 소스의 패키지를 작성하면 파일의 위치를 ​​추적하고 다른 패키지 나 다른 “설치 설치”가 일부 파일을 일관되게 덮어 쓰지 않는 것이 좋습니다. “make uninstall”으로 제거하는 것은 좋은 해결책이 아닙니다. 어떤 버전이 설치되어 있는지에 대한 정보는 최신 패키지 관리자가 잘 알고있는 또 다른 사항입니다.

나는 단지 / usr / local을 완전히 포기할 것이다. 패키지를 설치하거나 시스템 전체 디렉토리가 더 적합하지 않고 사용자에게 적합하지 않은 것을 배치하는 것은 좋지 않습니다.


답변