构建对等体时出错:goshim.tar.bz2中的"bzip2数据无效"

Gre*_*ins 3 hyperledger-fabric

有些用户在构建对等体时遇到以下问题:

$ make peer
Building docker ccenv-image
docker build  -t hyperledger/fabric-ccenv build/image/ccenv
Sending build context to Docker daemon 20.19 MB
Step 1 : FROM hyperledger/fabric-baseimage:x86_64-0.2.2
 ---> 4ac07a26ca7a
Step 2 : COPY payload/chaintool payload/protoc-gen-go /usr/local/bin/
 ---> Using cache
 ---> 027688f7aea9
Step 3 : ADD payload/goshim.tar.bz2 $GOPATH/src/
Error processing tar file(bzip2 data invalid: bad magic value in continuation file): 
make: *** [build/image/ccenv/.dummy-x86_64-0.7.0] Error 1
Run Code Online (Sandbox Code Playgroud)

Gre*_*ins 14

这是OSX上的一个已知问题,因为bsdtar(与OSX一起提供)和gnutar(docker所期待的)之间不兼容.

它可以通过确保路径上的gnutar可用作"焦油"来修复.在OSX中,这可以通过以下方式完成

brew install gnu-tar --with-default-names

  • 值得注意的是,如果遇到错误,则需要删除结构目录,然后从存储库中再次将其拉出。再次运行“ make peer”将不起作用(混乱的bz2文件仍然存在)。 (2认同)

zzi*_*nny 7

要为@Gregory Haskins 的答案添加更多解释,

--with-default-names 选项现在不可用。

相反,添加 gnu-tar 位置,PATH以便在 bsdtar(macOS)之前找到并运行 gnu-tar。

这可以通过

export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"