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

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

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

답변1

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

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

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

참고 사항: 일부 무료 소프트웨어를 유지 관리하는 경우제발포장 담당자가 귀하와 쉽게 대화할 수 있도록 하십시오. 그렇지 않으면 특별한 이유 없이 그러한 패치를 유지해야 합니다...

답변2

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

모든 배포판이 (개인) 선호도 및/또는 역사적 관행에 따라 선택할 수 있는 충분한 "표준"이 있습니다. 해결되는 경우가 거의 없습니다오직장점이 있습니다. 때로는 짜증나거나 혼란스럽기도 하지만, 하나의 배포판 내의 일관성이 가장 중요한 목표입니다. 유사한 항목(예: 설정/구성 파일)이 프로그램용 어디에 있는지 이미 알고 있다면 덜 혼란스럽고 프로그램 Y에 대한 항목이 어디에 있는지 더 쉽게 추측할 수 있습니다. 엑스.

패치 적용 예시

내 Python 패키지는 ruamel.yamlDebian Sid에서 사용할 수 있습니다. 이전에는 에 종속되어 있었고 ruamel.basePyPI를 통해 설치한 사용자는 여전히 호환되지 않는 이전 버전을 ruamel.base설치할 수 있습니다. /PyPI를 사용하는 setup.py것은 실제 패키지 관리가 아니므로삭제종속성을 통해 이전에 설치된 패키지. 나는 이전 패키지 ruamel.base와 관련된 문제를 제거하고 최신 버전에 종속되는 최신 버전을 만들어 PyPI 사용자의 문제를 해결했습니다 .ruamel.baseruamel.yaml

Sid의 경우 이는 문제가 되지 않습니다. 이전 버전의 가 ruamel.base설치되지 않았습니다(또는 패키지 관리를 통해 제거할 수 있음). 그러므로 그들은반점, 다음에서 찾을 수 있습니다.ruamel.yamlSid의 정보 페이지ruamel.yaml이는 on 의 종속성을 제거합니다 ruamel.base.

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

관련 정보