%20%EC%95%84%EC%B9%B4%EC%9D%B4%EB%B8%8C%EB%A5%BC%20%EB%A7%8C%EB%93%9C%EB%8A%94%20%EC%8B%A4%EC%9A%A9%EC%A0%81%EC%9D%B8%20%EB%B0%A9%EB%B2%95%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
파일의 내용이 동일한 경우(그리고 루트가 소유하고 동일한 권한을 갖는 경우) 언제 어디서 빌드하든 내 initramfs가 동일한 해시를 갖기를 원합니다. 아카이브에 있는 파일의 타임스탬프를 제거하거나 설정하는 옵션이 GNU cpio에 표시되지 않습니다. 재현 가능한 제품을 얻을 수 있도록 cpio 및 기타 아카이브 프로그램에 대한 입력을 처리하는 비교적 표준적인 방법이 있습니까?
이와 함께 일반적인 "날짜를 제공하지 않습니다" 타임스탬프가 있습니까? 대부분의 소프트웨어가 문제를 해결하지 못하는 부분이 있나요? 예를 들어 0 에포크초?
예를 들어, initramfs에 대한 입력 디렉터리에서 찾기 패스를 수행하고 모든 타임스탬프를 수동으로 0으로 설정한 경우 해당 아카이브를 빌드하고 다른 시스템에서 추출한 다음 프로세스를 반복하고 다시 빌드하여 비트가 동일해질 수 있습니까? 파일?
답변1
최신 버전의 GNU에는 요구 사항에 맞는 플래그가 cpio
있습니다 . --reproducible
내 이해는스트립 비결정론 도구사실 이후에 타임스탬프 요구 사항을 처리합니다. touch
물론 패키지하기 전에 시간을 설정할 수 있습니다.
답변2
를 사용하여 이 작업을 수행할 수 star
있으며 .find
libfind
전화 예:
star -c H=cpio -find somedir -chmtime 2020-05-20T12:10:12 > archive.cpio
물론 find
원하는 경우 다양한 타임스탬프에 대해 복잡한 규칙을 사용할 수도 있습니다.
확인하다http://sourceforge.net/projects/schilytools/files/star
최신 tarball의 최신 소스를 확인하세요 schilytools
.
참고: 다음 내용은 광고처럼 보일 수 있지만 정보가 요청되었으며 처음부터 OpenSource입니다. 가장 오래된 무료 구현이기 때문에 star
잘 알려져 있어야 합니다 . 1982년에 시작되어 2020년에 38년이 되었습니다.UNIX
tar
star
tar
내가 알고 있는 가장 성숙하고 기능이 완전한 구현입니다 . 다른 구현에서는 일반적으로 다른 사람 이 소개하고 사용하는 속성 접두사 star
로 식별되는 아카이브 형식 향상에 대한 개념을 복사합니다 .SCHILY.*
star
32년 이래로 최대 속도를 위해 구성 가능한 FIFO를 공유하는 두 개의 프로세스로 분기됩니다. star -copy
다른 알려진 UNIX 트리 복사 방법보다 빠릅니다.
30년 동안 다양한 아카이브 형식을 지원하고 자동 감지합니다.
17년 이래로 와 같은 다양한 UNIX 아카이버 및 심지어 호환되지 않는 tar
.cpio
pax
GNU tar
16년 이후 find
부터 libfind
. 모든 사람이 사용법을 알아야 하므로 불필요한 새로운 사용법 개념을 배우는 것을 피하는 데 도움이 됩니다 find
.
2년 이후부터 경로 이름 길이 제한이 완전히 제거되었습니다.
보다http://cdrtools.sourceforge.net/private/star.html그리고http://schilytools.sourceforge.net/man/man1/star.1.html자세한 내용은