hyperledger fabric - “go”:$PATH 中找不到可执行文件

问题描述 投票:0回答:0

我是 Hyperleger Fabric 的新手,正在尝试完成使用 Fabric 测试网络 文档中的示例。我停留在在频道上启动链代码的阶段。即使我已经正确调整了路径,我仍然收到位于下方的错误。我无法从类似的问题中找出解决方案。

命令:

sudo ./network.sh deployCC -c channeluk1 -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go

这里是输出:

> Using docker and docker-compose
deploying chaincode on channel 'channeluk1'
executing with the following
> - CHANNEL_NAME: channeluk1
> - CC_NAME: basic
> - CC_SRC_PATH: ../asset-transfer-basic/chaincode-go
> - CC_SRC_LANGUAGE: go
> - CC_VERSION: 1.0
> - CC_SEQUENCE: 1
> - CC_END_POLICY: NA
> - CC_COLL_CONFIG: NA
> - CC_INIT_FCN: NA
> - DELAY: 3
> - MAX_RETRY: 5
> - VERBOSE: false
> Vendoring Go dependencies at ../asset-transfer-basic/chaincode-go
~/go/src/github.com/umitkilic/fabric-samples/asset-transfer-basic/chaincode-go ~/go/src/github.com/umitkilic/fabric-samples/test-network
scripts/deployCC.sh: line 59: go: command not found
~/go/src/github.com/umitkilic/fabric-samples/test-network
> Finished vendoring Go dependencies
> + peer lifecycle chaincode package basic.tar.gz --path ../asset-transfer-basic/chaincode-go --lang golang --label basic_1.0
> + res=1
> ++ peer lifecycle chaincode calculatepackageid basic.tar.gz
Error: failed to read chaincode package at 'basic.tar.gz': open basic.tar.gz: no such file or directory
> + PACKAGE_ID=
> Error: failed to normalize chaincode path: failed to determine module root: exec: "go": executable file not found in $PATH
Chaincode packaging has failed
Deploying chaincode failed

我知道错误说 GO 路径有问题,但路径没有问题。这是 go 的一些输出。

命令:

去环境

输出:

GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/umitkilic/.cache/go-build"
GOENV="/home/umitkilic/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/umitkilic/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/home/umitkilic/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/umitkilic/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/umitkilic/go/src/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build952499924=/tmp/go-build -gno-record-gcc-switches"

命令:

去哪儿

输出:

go: /home/umitkilic/go/bin/go

(在 go env 输出中,GOPATH="/home/umitkilic/go" 但在 whereis go 输出中它说 go: /home/umitkilic/go/bin/go。我不确定这些是否一致。)

在我的 ~/.bashrc 文件中,我有以下几行:

导出 GOPATH=$HOME/go 导出 PATH=$PATH:$GOPATH/bin

我的 fabric samples 目录是 Home/umitkilic/go/src/github.com/umitkilic/fabric-samples

我的go版本go1.13.15 linux/amd64.

我尝试在/usr/local/go下安装go语言但是结果还是一样的错误

你能帮帮我吗?

更新: 我之前使用的是最新版本,例如 go1.20.4 来自 official website 按照他们的说明。结果还是一样的错误。

顺便说一下,我用下面的命令来打印 fabric peer 版本:

 docker exec -it cli bash
 root@bb4a6d6eed2f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer version

输出为:

peer:
 Version: v2.5.0
 Commit SHA: bd8e248
 Go version: go1.20.2
 OS/Arch: linux/amd64
 Chaincode:
  Base Docker Label: org.hyperledger.fabric
  Docker Namespace: hyperledger

上面写着Go版本是go1.20.2,但是我从来没有下载安装过这个版本的Go。也许这会自动与 Docker 中的结构样本一起安装。我不确定它是否与错误有关。

go hyperledger-fabric hyperledger hyperledger-chaincode gopath
© www.soinside.com 2019 - 2024. All rights reserved.