添加证书后如何重新创建 JDK tar.gz 文件
How to recreate JDK tar.gz file after added a certificate
我的组织要求所有 JDK 都包含特定证书。
因此我遵循了以下步骤:
- 已将 JDK 下载为 jdk-17-linux-x64.tar.gz (170M)
- 解压jdk-17-linux-x64.tar.gz
- 使用密钥工具添加了我们的证书
- 从提取的内容 (300M)
中创建了一个新的 tarball jdk-17-linux-x64.tar.gz
然后我将新的 tarball 上传到我们的 Jenkins 服务器,但我收到以下错误:
ERROR: Failed to download https://xxxx/jdk-17-linux-x64.tar.gz from agent; will retry from master
java.io.IOException: incorrect header check
at com.jcraft.jzlib.InflaterInputStream.read(InflaterInputStream.java:112)
at org.apache.commons.compress.utils.IOUtils.readFully(IOUtils.java:168)
at org.apache.commons.compress.utils.IOUtils.readFully(IOUtils.java:142)
at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.readRecord(TarArchiveInputStream.java:459)
at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getRecord(TarArchiveInputStream.java:428)
at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:305)
at hudson.FilePath.readFromTar(FilePath.java:2582)
Caused: java.io.IOException: Failed to extract input stream
at hudson.FilePath.readFromTar(FilePath.java:2608)
at hudson.FilePath.access0(FilePath.java:211)
at hudson.FilePath$Unpack.invoke(FilePath.java:954)
我发现我创建的新tar.gz大小是300M,比原来的tar球的170M大很多。
有人可以告诉我如何重新创建一个合适的 JDK tar 球吗?也许我应该使用特定的压缩格式?
根据异常消息,Hudson 尝试提取的文件似乎不是有效的 tar.gz
文件。由于重新生成的文件与 未压缩的 文件树的大小大致相同,我的猜测是您在创建文件时错过了压缩步骤;也就是说,您创建了一个 未压缩的 TAR 文件。
正确的 tar.gz
文件是使用 gzip 压缩的 TAR 文件。你可以这样创建一个:
$ tar -cfz my_jdk.tar.gz ....
或者像这样:
$ tar -cf my_jdk.tar ....
$ gzip my_jdk.tar
更多详细信息,请参阅手册条目;例如阅读 man tar
和/或 man gzip
.
我的组织要求所有 JDK 都包含特定证书。
因此我遵循了以下步骤:
- 已将 JDK 下载为 jdk-17-linux-x64.tar.gz (170M)
- 解压jdk-17-linux-x64.tar.gz
- 使用密钥工具添加了我们的证书
- 从提取的内容 (300M) 中创建了一个新的 tarball jdk-17-linux-x64.tar.gz
然后我将新的 tarball 上传到我们的 Jenkins 服务器,但我收到以下错误:
ERROR: Failed to download https://xxxx/jdk-17-linux-x64.tar.gz from agent; will retry from master
java.io.IOException: incorrect header check
at com.jcraft.jzlib.InflaterInputStream.read(InflaterInputStream.java:112)
at org.apache.commons.compress.utils.IOUtils.readFully(IOUtils.java:168)
at org.apache.commons.compress.utils.IOUtils.readFully(IOUtils.java:142)
at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.readRecord(TarArchiveInputStream.java:459)
at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getRecord(TarArchiveInputStream.java:428)
at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:305)
at hudson.FilePath.readFromTar(FilePath.java:2582)
Caused: java.io.IOException: Failed to extract input stream
at hudson.FilePath.readFromTar(FilePath.java:2608)
at hudson.FilePath.access0(FilePath.java:211)
at hudson.FilePath$Unpack.invoke(FilePath.java:954)
我发现我创建的新tar.gz大小是300M,比原来的tar球的170M大很多。
有人可以告诉我如何重新创建一个合适的 JDK tar 球吗?也许我应该使用特定的压缩格式?
根据异常消息,Hudson 尝试提取的文件似乎不是有效的 tar.gz
文件。由于重新生成的文件与 未压缩的 文件树的大小大致相同,我的猜测是您在创建文件时错过了压缩步骤;也就是说,您创建了一个 未压缩的 TAR 文件。
正确的 tar.gz
文件是使用 gzip 压缩的 TAR 文件。你可以这样创建一个:
$ tar -cfz my_jdk.tar.gz ....
或者像这样:
$ tar -cf my_jdk.tar ....
$ gzip my_jdk.tar
更多详细信息,请参阅手册条目;例如阅读 man tar
和/或 man gzip
.