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

时间:2019-02-17 08:33:37

标签: makefile linux-kernel hyperledger-fabric raspberry-pi3 opensuse

前提条件

  • 织物1.4
  • 我在Raspbery Pi3 +上具有openSUSE

错误的详细信息

我运行了以下命令。

# make docker
  • 发生无法创建goshim.tar.bz2的错误,我无法接受。

    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
    
  • Makefile

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

有办法避免这种现象吗?

1 个答案:

答案 0 :(得分: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参数的长度上限。