Contexte
En raison de divers problèmes, go get est utilisé pour installer golang package officiel en Chine Cela peut échouer. Par exemple, lorsque j'ai moi-même installé collisiondermain, l'erreur suivante s'est produite :
$ go get collidermain package golang.org/x/net/websocket: unrecognized import path "golang.org/x/net/websocket" (https fetch: Get https://golang.org/x/net/websocket?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
Principe
En fait, golang a établi une bibliothèque miroir sur github, telle que https://github.com/golang/net
est https://golang.org/x/net
Bibliothèque miroir
Pour obtenir le package golang.org/x/net, vous n'avez besoin que des étapes suivantes :
mkdir -p $GOPATH/src/golang.org/x cd $GOPATH/src/golang.org/x git clone https://github.com/golang/net.git
Cette méthode peut être utilisée pour obtenir d'autres packages sous golang.org/x.
J'ai donc écrit un script bash ici pour installer le package golang.org/x en un seul clic
- Utilisateur Windows git-bash pour exécuter le script gox.sh
- *Les utilisateurs Unix
chmod +x gox.sh
ajoutent d'abord des autorisations exécutables. Utilisez./gox.sh
pour effectuer une installation en un clic
#!/usr/bin/env bash #为了兼容windows下的bash cd $GOPATH; #创建 $GOPATH/src/golang.org/x 目录 mkdir -p $GOPATH/src/golang.org/x; echo "已经安装的golang.org/x package"; ls; echo "下面一行 for in 中包的名字您可以自己来定义" for name in "glog" "image" "perf" "snappy" "term" "sync" "winstrap" "cwg" "leveldb" "text" "net" "build" "protobuf" "dep" "sys" "crypto" "gddo" "tools" "scratch" "proposal" "mock" "oauth2" "freetype" "debug" "mobile" "gofrontend" "lint" "appengine" "geo" "review" "arch" "vgo" "exp" "time";do cd $GOPATH/src/golang.org/x; if [ -d "$name" ] then cd $name; echo $name "包已经存在,使用git pull来更新源码"; git pull; else git_url="https://github.com/golang/${name}.git"; echo "开始clone golang.org/x 在github.com上的镜像代码:${git_url}"; git clone --depth 1 "$git_url"; cd $name; fi #go install; done
Notez que
devrait également être git clone pendant le processus de en exécutant le script, vous devez fréquemment saisir votre compte GitHub.