go get 安裝 k8s.io/code-generator 報錯

go get 安裝 k8s.io/code-generator 報錯 cannot find package

通過如下方式解決:

git clone https://github.com/golang/sys.git $GOPATH/src/github.com/golang/sys
git clone https://github.com/golang/net.git $GOPATH/src/github.com/golang/net
git clone https://github.com/golang/text.git $GOPATH/src/github.com/golang/text
git clone https://github.com/golang/lint.git $GOPATH/src/github.com/golang/lint
git clone https://github.com/golang/tools.git $GOPATH/src/github.com/golang/tools
git clone https://github.com/golang/crypto.git $GOPATH/src/github.com/golang/crypto

ln -s $GOPATH/src/github.com/golang/ $GOPATH/src/golang.org/x

碰到新問題

#go get -u k8s.io/code-generator/...
package context: unrecognized import path "context"

嘗試升級golang版本

#wget https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz
#tar -C /usr/local -xzf go1.14.2.linux-amd64.tar.gz
#export PATH=/usr/local/go/bin:$PATH

執行 go version,發現還是查找老的版本

$go version
go: cannot find GOROOT directory: /opt/golang/go1.5.3

原因可能是GOROOT這個環境變量的問題,嘗試修改

$export GOROOT=/usr/local/go
$go version
go version go1.14.2 linux/amd64

再此執行 go get 成功

$ go get -u k8s.io/code-generator/...

最後執行完整代碼

# 代碼生成的工作目錄,也就是我們的項目路徑
$ ROOT_PACKAGE="github.com/resouer/k8s-controller-custom-resource"
# API Group
$ CUSTOM_RESOURCE_NAME="samplecrd"
# API Version
$ CUSTOM_RESOURCE_VERSION="v1"

# 安裝k8s.io/code-generator
$ go get -u k8s.io/code-generator/...
$ cd $GOPATH/src/k8s.io/code-generator

# 執行代碼自動生成,其中pkg/client是生成目標目錄,pkg/apis是類型定義目錄
$ ./generate-groups.sh all "$ROOT_PACKAGE/pkg/client" "$ROOT_PACKAGE/pkg/apis" "$CUSTOM_RESOURCE_NAME:$CUSTOM_RESOURCE_VERSION"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章