재현 가능하게 .deb 패키지 빌드

재현 가능하게 .deb 패키지 빌드

이것은에서 비롯됩니다데비안 패키지에 패치를 적용하는 방법은 무엇입니까?. 이제 패키지를 빌드한 후 패키지가 올바르게 빌드되었는지 알 수 없습니다. 나는 상위 디렉토리에서 이것을 볼 수 있습니다 -

 ┌─[shirish@debian] - [~/games] - [5870]
└─[$] cat dpkg_1.18.15+nmu1_amd64.changes

Format: 1.8
Date: Mon, 21 Nov 2016 01:04:02 +0530
Source: dpkg
Binary: dpkg libdpkg-dev dpkg-dev libdpkg-perl dselect
Architecture: source amd64 all
Version: 1.18.15+nmu1
Distribution: UNRELEASED
Urgency: medium
Maintainer: Dpkg Developers <[email protected]>
Changed-By: shirish <shirish@debian>
Description:
 dpkg       - Debian package management system
 dpkg-dev   - Debian package development tools
 dselect    - Debian package management front-end
 libdpkg-dev - Debian package management static library
 libdpkg-perl - Dpkg perl modules
Changes:
 dpkg (1.18.15+nmu1) UNRELEASED; urgency=medium
 .
   * Non-maintainer upload.
   * Apply d-m-h fix from #844701
Checksums-Sha1:
 8e50f097f70d621071e1e22384c1d68da7693929 1169 dpkg_1.18.15+nmu1.dsc
 16aa8483b0ce8d9eb1f0daebca6da84578226966 4617028 dpkg_1.18.15+nmu1.tar.xz
 3f3eae9de5bb31e178a4acb32654e68410902bda 1238392 dpkg-dbgsym_1.18.15+nmu1_amd64.deb
 3877d627c7c70bd98f16ee0b71d80c69667a6885 1581332 dpkg-dev_1.18.15+nmu1_all.deb
 b678906567a0c8ba089a5eb109855eba608f60e7 2067816 dpkg_1.18.15+nmu1_amd64.deb
 6130872887cd4eeba0b0cc0d0c7354322709dfe7 280736 dselect-dbgsym_1.18.15+nmu1_amd64.deb
 58eb460ab48e1c802ee7ae439dc0295424ef7742 1270868 dselect_1.18.15+nmu1_amd64.deb
 41e17c39ced6f55b9e72d042255a7a9b647b2e8e 1040980 libdpkg-dev_1.18.15+nmu1_amd64.deb
 a38005cde488603a7ee5de9ce7bc307c79277bb9 1242182 libdpkg-perl_1.18.15+nmu1_all.deb
Checksums-Sha256:
 2c8cf8ab1256814aa7115009a4620da913b27935351872335cd429ae4e7a9c70 1169 dpkg_1.18.15+nmu1.dsc
 47390a1ca4a296852ef3c25c0bdc82217e49738438882a980e8da28dca0d809e 4617028 dpkg_1.18.15+nmu1.tar.xz
 4a47a968b5dd4b1e87c99e5de9e3fd31b610ebb1891989de3a72ef08afb3405b 1238392 dpkg-dbgsym_1.18.15+nmu1_amd64.deb
 a05ae6dcefd5bc9affe355c8dd4106b42f795678fa4de31bc063a9784fc845ab 1581332 dpkg-dev_1.18.15+nmu1_all.deb
 b9682da9975541f385b47cf1148028deea4a48a51156293589b124c6f706d7b7 2067816 dpkg_1.18.15+nmu1_amd64.deb
 d75479bb9005788d96e839ae8b2dde56701993ac6421df1f5aaf79634f008a48 280736 dselect-dbgsym_1.18.15+nmu1_amd64.deb
 8b317f45808d408485c566b9748522d63d556bcec7525dcaa442a9720073dd27 1270868 dselect_1.18.15+nmu1_amd64.deb
 e45e67c3ab034ed3d1bf9f268daba92ee3cc406c3b75ef2bd0354ec79dc30d7f 1040980 libdpkg-dev_1.18.15+nmu1_amd64.deb
 d75ff545c612a7eb5f4563bb3619cd33ea4d4baff6cade9452e94bb1e7b7a412 1242182 libdpkg-perl_1.18.15+nmu1_all.deb
Files:
 faab0ae6b71c8216a634cbef6759d122 1169 admin required dpkg_1.18.15+nmu1.dsc
 69eeaa680e11f291860217a9536e93dc 4617028 admin required dpkg_1.18.15+nmu1.tar.xz
 91961eae15e20a3bf2ad614cf42ee4ab 1238392 debug extra dpkg-dbgsym_1.18.15+nmu1_amd64.deb
 aa361b4cde6020393c75a601c51f54e6 1581332 utils optional dpkg-dev_1.18.15+nmu1_all.deb
 325a9629e03781c027f884a17ada0550 2067816 admin required dpkg_1.18.15+nmu1_amd64.deb
 75dbcd90ada67522d79206b65519865e 280736 debug extra dselect-dbgsym_1.18.15+nmu1_amd64.deb
 e490b38b2b132c26670635628e302941 1270868 admin optional dselect_1.18.15+nmu1_amd64.deb
 0d206c14b1ffd5cb6b09608e9774b3bf 1040980 libdevel optional libdpkg-dev_1.18.15+nmu1_amd64.deb
 e22e289a709d36d2186da60e07b68225 1242182 perl optional libdpkg-perl_1.18.15+nmu1_all.deb

같은 디렉터리에 빌드 트리도 보이는데, 타임스탬프로 판단하면 빌드 트리는 마지막 단계에서만 생성된 것이 틀림없습니다.

$dpkg-buildpackage -us -uc

제공된 체크섬은 이제 표준(동일한 의미)이어야 합니다. 적어도 내가 아는 한 이것은반복 가능한 빌드.. 나는 관리자와 내가 빌드된 패키지의 무결성을 확인할 수 있기를 바랍니다. dpkg-buildpackage 맨페이지를 보고 "reproducible" 키워드를 검색해 보았으나 찾을 수 없었습니다.

답변1

관리자는 제공된 패치가 문제를 해결하는지 확인하도록 요청합니다. 패치를 통해 이전에 발생한 오류 없이 dpkg설치할 수 있다면 패치가 문제를 해결한 것입니다. libconfig-model-perl그렇지 않은 경우 패치에는 실제 문제를 정확히 찾아내는 데 도움이 되는 더 자세한 출력도 포함됩니다. 이것이 필요한 전부입니다. 반복 가능한 빌드에 대해 걱정할 필요가 없습니다.

파일이 있으므로 .changes빌드가 성공적으로 완료되었습니다. dpkg광범위한 테스트 모음이 포함되어 있으므로 올바르게 빌드되었음을 확신할 수 있습니다.

그럼에도 불구하고 현재 재현 가능한 패키지를 구축하려면 다음이 필요합니다.수정된 도구 체인, 재현 가능한 빌드는 매우 구체적인 질문에 답합니다.정확히 똑같다빌드 환경, 일부 레퍼런스와 동일한 패키지를 빌드할 수 있나요? ”. 관리자와 귀하가 동일한 빌드 환경을 가질 가능성은 없습니다.

파일의 체크섬은 .changes재현 가능한 의미에서 표준화되지 않았습니다. 두 가지 이유로 나타납니다.

  • 아카이브에 업로드된 패키지가 올바르게 업로드되었는지 확인하세요.
  • 아카이브에 업로드된 패키지가 업로더가 서명한 패키지와 일치하는지 확인하세요(이것은 Debian 패키지 "무결성 체인"의 일부입니다).

속속 재건축동일한 소스현재는 다른 체크섬이 생성될 것으로 예상됩니다.

관련 정보