DEB: 다중 패키지, 패키지 빌드 프로세스 중 특정 파일 설치 무시

DEB: 다중 패키지, 패키지 빌드 프로세스 중 특정 파일 설치 무시

dh_auto_install:파일 의 대상을 재정의했습니다 debian/rule. 이제 내가 만든 모든 구성 요소가 debian/tmp.

내 세트의 각 패키지를 준비 했지만 package.install다음과 같은 문제가 발생했습니다.

패키지에는 두 개의 파일이 A포함되어야 합니다 scripts.

패키지에는 dir B도 포함되어야 scripts하지만 패키지에는 두 개의 파일이 없습니다 A.

물론 files scripts내의 디렉토리에 파일을 설정하는 것도 가능합니다 debian/B.install. 그러나 scriptsdir에는 많은 파일이 포함되어 있으므로 각 파일을 배치하는 데 더 많은 시간이 걸립니다.

package.install파일에서 특정 파일을 제외할 수 있나요 ?

답변1

package.install파일에서 특정 파일을 제외할 수 있나요 ?

직접적으로는 아니지만 원하는 것을 달성하는 데는 최소한 세 가지 방법이 있습니다. (rewriting을 언급하셨으니 , 짧은 스타일을 dh_install사용하고 계신 것 같아요 .)dhrules

  1. dh_install 복사파일을 debian/tmp대상으로 보냅니다. 이전 버전이 dh_movefiles이를 옮겼지만 더 이상 사용되지 않지만 이 경우에는 계속 사용할 수 있습니다. 이를 수행하는 방법은 A패키지 B보다 먼저 패키지를 나열 하고 debian/control(둘 다 동일한 아키텍처를 가지고 있다고 가정하여 먼저 처리되도록) 이름을 바꾸고 A.install먼저 실행 되도록 A.files재정의하는 것 입니다.dh_installdh_movefiles

    override_dh_install:
            dh_movefiles
            dh_install
    

    이렇게 하면 파일 이 나열될 수 있고 에 남아 있는 모든 파일이 포함될 수 A있도록 파일이 이동됩니다 .debian/tmpB.installscriptsBscripts

    시퀀스를 dh건너뛰 dh_movefiles므로 두 번 실행되지 않도록 특별한 작업을 수행할 필요가 없습니다.

  2. debhelper프로필은 실행 가능하므로 ' 내용을 하나로 B.install나열 scripts하고 필터링 할 수 있습니다 A.install.

  3. 또 다른 방법은 단계를 추가한 dh_install다음 Afrom B;

    override_dh_install:
            dh_install
            cd debian/A/scripts; find . -type f -exec rm -f ../B/scripts/{} \;
    

    (검증되지 않은).

관련 정보