有些用户在构建对等体时遇到以下错误:
$ 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
答案 0 :(得分:12)
这是OSX上的一个已知问题,因为bsdtar(OSX附带)和gnutar(docker所期待的)之间不兼容。
可以通过确保gnutar在路径上可用来解决问题" tar"。在OSX中,这可以通过
完成 brew install gnu-tar --with-default-names
答案 1 :(得分:2)
我已经用这个命令解决了这个问题:
cd $GOPATH/src/github.com/hyperledger/fabric
brew install gnu-tar --with-default-names
brew install libtool
make clean
make peer
(OS:macOS Sierra版本10.12.5)
答案 2 :(得分:1)
我设法通过上述响应的组合在OSX上解决了这个问题。从头开始并克隆结构仓库。接下来,安装自制软件包
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
照顾gnutar问题
brew install gnu-tar --with-default-names
最后
brew install libtool
然后继续执行make
命令
答案 3 :(得分:1)
操作系统:Mac Catalina(10.15.2)
自制软件:2.2.3
转到:1.13.6
我遇到了同样的问题,并通过以下方式解决了
brew install gnu-tar
brew install libtool
然后:
export PATH=$PATH:/usr/local/Cellar/gnu-tar/1.32/libexec/gnubin
请记住在路径中将版本(1.32
)替换为已安装的版本。
cd $GOPATH/src/github.com/hyperledger/fabric
make clean
make peer
答案 4 :(得分:0)
要为@Gregory Haskins的答案添加更多解释,
--with-default-names
选项现在不可用。
相反,将gnu-tar位置添加到PATH
,以便找到gnu-tar并在bsdtar(macOS的)之前运行。
这可以通过
完成 export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"