패키지를 사용하여 종속성을 설치하고 사용자 정의 conf 파일을 복사합니다.

패키지를 사용하여 종속성을 설치하고 사용자 정의 conf 파일을 복사합니다.

나는 한때 dh_make기본 데비안 패키지 설치를 만들었습니다. 종속성을 추가했는데 이것이 내가 원하는 실제 프로그램입니다. 내가 원하는 것은 conf이 패키지에 의해 설치된 파일을 많은 사용자 정의 매개변수가 있는 새 파일로 덮어쓰는 것입니다.

install다음과 같은 파일을 사용해 보았습니다 .

file.conf /etc/destination/file.conf

하지만 오류가 반복적으로 발생합니다.

dh_install: cp -a debian/tmp/file.conf debian/custom-package//etc/package// returned exit code 1

왜 파일을 찾을 수 없는지 이해가 되지 않습니다. 빌더에 의해 생성되었다는 것은 알지만 debian/tmp왜 내 파일을 찾을 수 없는지 모르겠습니다. 그런 다음 원하는 디렉터리에 복사하지 않으려고 시도하지만 debian/custom-package/.

Makefile도 사용해 보았는데, 빌드하고 실행할 때 해당 디렉터리에 파일이 복사되지 않습니다. Makefile이 올바른지 또는 심지어 호출되는지 확실하지 않습니다( dh_makeMakefile은 처음에 포함되지 않으며 호출되지 않으면 어디서 호출되는지 잘 모르겠습니다).

make 파일에는 아래와 같이 설치 지침만 있습니다.

install:
        cp file.conf /etc/destination/

규칙 파일은 dhDebian 가이드에서 권장하는 대로 를 사용하여 빌드된 기본 파일입니다.

%:
        dh $@

답변1

바라보다데비안 위키구성 패키지 생성에 대한 자세한 지침입니다. 이미 가지고 있는 것을 고려하면 짧은 버전은 다음과 같습니다.

  • install파일 삭제
  • 귀하의 것에서 Makefile다음과 같이 대상을 지정하십시오 install.
install:
        mkdir -p $(DESTDIR)/etc/destination/
        cp file.conf $(DESTDIR)/etc/destination/
  • 귀하의 경우 debian/rules다음을 실행하십시오 dh.
%:
        dh $@

답변2

마침내 이라는 패키지를 사용하여 이 문제를 해결했습니다 config-package-dev.

구성 패키지 개발 링크

당시에는 깨닫지 못했지만 제가 하려고 했던 일에는 큰 허점이 있었습니다. 패키지를 업데이트하거나 변경하면 .conf업데이트 시 사용자 정의 파일을 덮어쓰게 되어 시스템이 손상될 수 있습니다.

config-package-dev내 사용자 정의 파일에 대한 심볼릭 링크를 만들어 문제를 해결했습니다 .conf. 이를 통해 구성이 변경되지 않도록 했습니다. 또한 내가 원하는 모든 작업을 수행하고 전체 프로세스를 훨씬 깔끔하게 만듭니다. 나는 결국 이전 솔루션을 버리고 데비안 패키지 빌드 도구를 사용하여 완전히 새로운 패키지를 만들었습니다.

모두 감사합니다.

관련 정보