Comment puis-je installer un package avec go get?


Réponses:


120

Commande aller

Téléchargez et installez des packages et des dépendances

Usage:

go get [-d] [-f] [-t] [-u] [-v] [-fix] [-insecure] [build flags] [packages]

Get télécharge les packages nommés par les chemins d'importation, ainsi que leurs dépendances. Il installe ensuite les packages nommés, comme «go install».

L'indicateur -d indique à get d'arrêter après avoir téléchargé les paquets; autrement dit, il indique à get de ne pas installer les packages.

L'indicateur -f, valide uniquement lorsque -u est défini, force get -u à ​​ne pas vérifier que chaque paquet a été extrait du référentiel de contrôle de source impliqué par son chemin d'importation. Cela peut être utile si la source est un fork local de l'original.

L'indicateur -fix indique à get d'exécuter l'outil de correction sur les packages téléchargés avant de résoudre les dépendances ou de créer le code.

L'indicateur -insecure permet d'extraire des référentiels et de résoudre des domaines personnalisés à l'aide de schémas non sécurisés tels que HTTP. Utiliser avec précaution.

L'indicateur -t indique à get de télécharger également les packages requis pour construire les tests pour les packages spécifiés.

L'indicateur -u indique à get d'utiliser le réseau pour mettre à jour les packages nommés et leurs dépendances. Par défaut, get utilise le réseau pour extraire les packages manquants mais ne l'utilise pas pour rechercher les mises à jour des packages existants.

L'indicateur -v active la progression détaillée et la sortie de débogage.

Get accepte également les indicateurs de construction pour contrôler l'installation. Voir «allez aider à construire».

Lors de l'extraction d'un nouveau package, get crée le répertoire cible GOPATH / src /. Si le GOPATH contient plusieurs entrées, get utilise la première. Pour plus de détails, voir: 'go help gopath'.

Lors de l'extraction ou de la mise à jour d'un package, get recherche une branche ou une balise correspondant à la version installée localement de Go. La règle la plus importante est que si l'installation locale exécute la version «go1», obtenir des recherches pour une branche ou une balise nommée «go1». Si aucune version de ce type n'existe, elle récupère la branche par défaut du package.

Lorsque go récupère ou met à jour un référentiel Git, il met également à jour tous les sous-modules git référencés par le référentiel.

Ne jamais vérifier ou mettre à jour le code stocké dans les répertoires des fournisseurs.

Pour plus d'informations sur la spécification des packages, consultez 'go help packages'.

Pour plus d'informations sur la manière dont «go get» trouve le code source à télécharger, consultez «go help importpath».

Ce texte décrit le comportement de get lors de l'utilisation de GOPATH pour gérer le code source et les dépendances. Si à la place la commande go s'exécute en mode compatible avec les modules, les détails des indicateurs et des effets de get changent, tout comme «go help get». Voir «go help modules» et «go help module-get».

Voir aussi: allez construire, allez installer, allez nettoyer.


Par exemple, affichant une sortie détaillée,

$ go get -v github.com/capotej/groupcache-db-experiment/...
github.com/capotej/groupcache-db-experiment (download)
github.com/golang/groupcache (download)
github.com/golang/protobuf (download)
github.com/capotej/groupcache-db-experiment/api
github.com/capotej/groupcache-db-experiment/client
github.com/capotej/groupcache-db-experiment/slowdb
github.com/golang/groupcache/consistenthash
github.com/golang/protobuf/proto
github.com/golang/groupcache/lru
github.com/capotej/groupcache-db-experiment/dbserver
github.com/capotej/groupcache-db-experiment/cli
github.com/golang/groupcache/singleflight
github.com/golang/groupcache/groupcachepb
github.com/golang/groupcache
github.com/capotej/groupcache-db-experiment/frontend
$ 

17
Si cela aide quelqu'un, la solution à mon problème ( package github.com/coreos/go-iptables.git: invalid version control suffix in github.com/ path) était de supprimer le .gitsuffixe de l'URL Github.
Excalibur

6
que fait -v-on?
yu yang Jian

3
@yuyangJian cela signifie une sortie verbeuse.
omrsin

3
j'aime comment la -vcommande n'est pas référencée dans cette liste lol fml ... sûrement cela signifie verbose tho
Alexander Mills

2
Comment l'exécutez-vous une fois que vous l'avez utilisé go get?
acjay

75

Premièrement, nous avons besoin de GOPATH

Le $GOPATHest un dossier (ou un ensemble de dossiers) spécifié par sa variable d'environnement. Il faut remarquer que ce n'est pas le $GOROOTrépertoire dans lequel Go est installé.

export GOPATH=$HOME/gocode
export PATH=$PATH:$GOPATH/bin

Nous avons utilisé le ~/gocodechemin de notre ordinateur pour stocker la source de notre application et ses dépendances. Le GOPATHrépertoire stockera également les binaires de leurs packages.

Puis vérifiez Go env

Votre système doit avoir $GOPATHet $GOROOT, ci-dessous est mon Env:

GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/elpsstu/gocode"
GORACE=""
GOROOT="/home/pravin/go"
GOTOOLDIR="/home/pravin/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

Maintenant, vous exécutez télécharger le package go:

go get [-d] [-f] [-fix] [-t] [-u] [build flags] [packages]

Obtenez des téléchargements et installe les packages nommés par les chemins d'importation, ainsi que leurs dépendances. Pour plus de détails, vous pouvez regarder ici .


1
mon environnement go a déjà été bien, mais je ne suis pas familier avec les règles de go get, donc ce github.com:capotej/groupcache-db-experiment.gitn'est pas illégal, quelle est la voie légale?
roger

2
Essayez go get -v github.com/capotej/groupcache-db-experiment / ... comme @peterSO l'a dit
Pravin Mishra

1
À partir de Go v1.8, la valeur par GOPATHdéfaut est $HOME/gosi non définie. Source 1 , 2 .
Manavalan Gajapathy
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.