我运行了以下命令。
# 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)) > $@
有办法避免这种现象吗?
答案 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参数的长度上限。