构建超级账本结构时出错:goshim.tar.bz2 中的“bzip2 数据创建错误”

Posted

技术标签:

【中文标题】构建超级账本结构时出错:goshim.tar.bz2 中的“bzip2 数据创建错误”【英文标题】:Error building hyperledger fabric : “bzip2 data Creating Error” in goshim.tar.bz2 【发布时间】:2019-02-17 08:33:36 【问题描述】:

前提条件

面料 1.4 我在 Raspbery Pi3+ 上安装了 openSUSE

错误详情

我运行了以下命令。

# make docker

无法创建goshim.tar.bz2 发生错误,我无法创建command。

Removing intermediate container fb7423fe5cf7
 ---> 24c6fdada18f
Successfully built 24c6fdada18f
Successfully tagged hyperledger/fabric-orderer:latest
docker tag hyperledger/fabric-orderer hyperledger/fabric-orderer:arm64-1.4.1-snapshot-e91c57c5f
docker tag hyperledger/fabric-orderer hyperledger/fabric-orderer:arm64-latest
Creating .build/goshim.tar.bz2
make: execvp: /bin/sh: Argument list too long
make: *** [Makefile:315: .build/goshim.tar.bz2] Error 127

生成文件

$(BUILD_DIR)/goshim.tar.bz2: $(GOSHIM_DEPS)
        @echo "Creating $@"
        @tar -jhc -C $(GOPATH)/src $(patsubst $(GOPATH)/src/%,%,$(GOSHIM_DEPS)) > $@

有没有办法避免这种现象?

【问题讨论】:

【参考方案1】:

make: execvp: /bin/sh: 参数列表太长

这可能是GOSHIM_DEPS产生的源文件列表,参数太长导致sh隐式执行。

试试这个:将 @tar 行替换为 @./scripts/goListFiles.sh $(PKGNAME)/core/chaincode/shim | sed “s!$(GOPATH)/src/!!g” |xargs tar -jhc -C $(GOPATH)/src > $@

我没有和你一样的环境,所以上面的代码可能有错误,但基本思想可以应用。

编辑:也就是说,错误仍然存​​在的可能性仍然存在。 GOSHIM_DEPS 本身是使用$() 语法定义的,并且在 sh 参数的长度上限之下。

【讨论】:

以上是关于构建超级账本结构时出错:goshim.tar.bz2 中的“bzip2 数据创建错误”的主要内容,如果未能解决你的问题,请参考以下文章

如何连接不同的计算机加入频道并在超级账本上实时查看调用内容(交易)?

如何计算超级账本结构中的默克尔根?

超级账本 --- ReadWriteSet的逻辑结构

超级账本Fabric 层次结构以及核心模块的介绍

基于区块链技术的超级账本(Hyperledger) - 从理论到实战

超级账本Fabric的块和交易大小