代码之家  ›  专栏  ›  技术社区  ›  vog

如何为自动生成的targz档案创建稳定的校验和?

  •  0
  • vog  · 技术社区  · 15 年前

    对于构建脚本,我需要使用特定版本的源代码包。为了不必包含大型源文件,脚本只存储校验和(sha1)并自动下载它们。这对于官方发布非常有效,例如

    http://download.videolan.org/pub/videolan/libdca/0.0.5/libdca-0.0.5.tar.bz2

    但是,有些软件包没有提供正式的版本,所以我从版本控制系统下载了一个经过良好测试的版本。例如,GitWeb为下载targz存档提供了方便的“快照”功能:

    http://git.videolan.org/?p=libbluray.git;a=snapshot;h=cf9ee593f;sf=tgz

    不幸的是,对于每个请求,此URL返回的文件略有不同。尽管它总是返回完全相同的tar归档文件,而tar归档文件总是以相同的方式通过gzip进行压缩,但gzip归档文件开头附近的时间戳存在细微差异。

    这几个字节使得每次下载时校验和都不同,因此脚本无法再保证下载的源文件的完整性。

    我怎样才能避开这个问题?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Tobu    15 年前

    zcat $archive |sha1sum pristine-tar

        2
  •  2
  •   jmd    15 年前

    http://www.gzip.org/zlib/rfc-gzip.html#file-format

    tail --byte +10 $archive | sha1sum

    tail --byte +10 $archive | openssl sha1