다른 배포판은 프로그램의 구성 파일 위치를 어떻게 수정합니까?


14

많은 Linux 프로그램에서 구성 파일 위치는 배포판에 따라 다릅니다. 다른 배포판이 어떻게하는지 궁금합니다. 그들은 실제로 소스 코드를 수정합니까? 이 위치를 설정하는 빌드 매개 변수가 있습니까? 이 정보를 검색했지만 정보를 찾을 수 없습니다. 나는 그것이 밖에 있다는 것을 알고 있습니다. 나는 그것을 찾을 수없는 것 같습니다. 이와 관련하여 "Linux 방식"이란 무엇입니까?

답변:


14

배포판과 원본 ( '업스트림') 소스에 따라 다릅니다.

대부분의 autoconf 및 automake-using 패키지에서는 --sysconfdir매개 변수 를 사용하여 구성 파일을 찾을 디렉토리를 지정할 수 있습니다 . 다른 빌드 시스템 (예 : CMake)에는 비슷한 옵션이 있습니다. 소스 패키지가 이러한 빌드 시스템 중 하나를 사용하는 경우 패키저가 올바른 매개 변수를 쉽게 지정할 수 있으며 패치가 필요하지 않습니다. 그렇지 않은 경우에도 (예 : 업스트림 소스는 자체 제작 빌드 시스템을 사용하기 때문에) 업스트림 소스를 패치하지 않고도 구성 파일을 특정 위치로 이동하도록 빌드 구성을 지정할 수있는 경우가 종종 있습니다.

사실이 아니라면, 배포판에서 소스에 패치를 추가하여 '올바른'위치로 간주되는 위치로 파일을 이동시켜야하는 경우가 종종 있습니다. 대부분의 경우 배포 패키지 관리자는 위와 같은 의미로 소스를 구성 할 수있는 패치를 작성하므로 업스트림 관리자에게 패치를 보낼 수 있으며 유지 관리 / 업데이트 할 필요가 없습니다. 이것은 구성 파일 위치뿐만 아니라 bin/ sbin실행 파일 (시스템 관리자의 명령에 대한 해석은 배포판마다 다름), 문서를 작성하는 위치 등과 같은 다른 경우에도 해당됩니다.

사이드 참고 : 일부 무료 소프트웨어를 유지하는 경우, 제발 얘기하고 배포자 쉽게 그것을합니다. 그렇지 않으면 특별한 이유없이 그러한 패치를 유지해야합니다.


8

위치를 조정하는 패치를 소스 코드 트리에 적용했습니다.

모든 배포판이 (개인적) 선호도 및 / 또는 역사적 관행에 따라 선택할 수있는 충분한 "표준"이 있습니다. 장점 있는 솔루션은 거의 없습니다 . 때로는 성가 시거나 혼란 스럽지만 한 배포판의 일관성이 가장 중요한 목표입니다. 프로그램과 비슷한 것들 (예 : 설정 / 구성 파일)이 이미 어디에 있는지 알고 있다면 프로그램 Y에 대한 위치가 어수선하지 않고 쉽게 추측 할 수 있습니다. 엑스.

패치 적용 예

내 파이썬 패키지 ruamel.yaml는 Debian Sid에서 사용할 수 있습니다. 그것은에 의존하는 데 사용 ruamel.base하고, PyPI를 통해 설치 한 사용자는 이전, 호환되지 않는 버전이있을 수 있습니다 ruamel.base설치. setup.py/ PyPI를 사용하는 것은 실제 패키지 관리가 아니므로 종속성을 통해 이전에 설치된 패키지를 삭제할 수 없습니다 . PyPI 사용자의 최신 버전을 만들어서 ruamel.base이전 ruamel.base패키지와 관련된 문제를 제거하고 ruamel.yaml해당 최신 버전에 종속 되도록하여 PyPI 사용자의 문제를 해결했습니다 .

Sid의 경우 문제가되지 않습니다. 이전 버전이 ruamel.base설치되지 않았거나 패키지 관리를 통해 제거 될 수 있습니다. 따라서 패치 를 적용하는데 ,이 패치 ruamel.yaml는 Sid정보 페이지 에서 ruamel.yamlon 의 종속성을 제거합니다 ruamel.base.

다른 배포판에는 비슷한 설정이 있습니다. 예를 들어 소스 RPM 파일 작성 사양 (예 : RedHat / CentOS / SuSE)을 살펴보면 패키지의 원래 원본 타르볼을 구성 / 컴파일하기 전에 적용 할 하나 이상의 패치와 결합한 것을 볼 수 있습니다. .

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