J'essaie d'exécuter golang
en mode interactif.
Je veux utiliser go-eval
pour cela, j'ai suivi les instructions README
:
go get github.com/sbinet/go-eval/
avec succèsgo-eval
qui a donné -bash: go-eval: command not found
Quelques informations supplémentaires:
echo $PATH
renvoie: /usr/local/go/bin:...
echo $GOPATH
renvoie: $HOME/golang
l'exécution de whereis go-eval
ne renvoie aucune sortie
go install go-eval
en cours d'exécution renvoie:
can't load package: package go-eval: cannot find package "go-eval" in any of:
/usr/local/go/src/go-eval (from $GOROOT)
$HOME/golang/src/go-eval (from $GOPATH)
Vous devez ajouter GOPATH/bin à PATH.
PATH="$GOPATH/bin:$PATH"
Update : À partir de Go 1.8 , GOPATH utilise par défaut $HOME/go
s'il n'est pas défini. Le ci-dessus ne fonctionnera pas si GOPATH n'est pas explicitement défini.
Pour définir les deux, ajoutez ceci à votre .profile:
export GOPATH="$HOME/go"
PATH="$GOPATH/bin:$PATH"
Le go-eval
binaire est-il dans $GOPATH/bin
? Exécutez-vous la commande avec $GOPATH/bin/
comme répertoire de travail? Sinon, c'est probablement le problème.
go get
& go install
installe les fichiers binaires (le cas échéant) dans $GOPATH/bin
Vérifiez $GOPATH/bin
pour le binaire go-eval. Si c'est le cas, essayez de l'exécuter à partir de $GOPATH/bin
avec ./go-eval
. Si cela fonctionne, vous êtes bon.
À l'avenir, si vous souhaitez exécuter des fichiers binaires go trouvés dans $GOPATH/bin
à partir de n'importe où dans votre shell, ajoutez les éléments suivants à votre profil .bashrc ou:
export PATH=$PATH:$GOPATH/bin
Puis redémarrez votre terminal ou exécutez . ~/.bashrc
ou . /etc/profile
Lors de l'exécution, installez go-eval, je reçois:
impossible de charger le package: package go-eval: impossible de trouver le package "go-eval" dans l’un des éléments suivants: /usr/local/go/src/go-eval (à partir de $ GOROOT) $ HOME/golang/src/go-eval (à partir de $ GOPATH)
Vous obtenez l'erreur ci-dessus car go-eval n'est pas dans $HOME/golang/src/go-eval
. Lancer go get github.com/sbinet/go-eval/
va télécharger la source sur $GOPATH/src/github/sbinet/go-eval/
. Si vous souhaitez exécuter go install go-eval
, vous devez spécifier le nom du package correspondant à sa position dans la hiérarchie des répertoires dans $GOPATH/src
.
exemple: go install github/sbinet/go-eval
J'aimerais ajouter ceci en plus des réponses données.
Comme astuce utile, vous pouvez toujours tester vos commandes avec la commande which .
Tels que: qui va
Si la commande est introuvable, vous savez que vous avez un problème PATH que vous devez résoudre en premier.
Ensuite, vous pouvez vous concentrer sur la recherche de la commande avec la commande find .
Tels que: find/-name "go" -print 2>/dev/null
La première barre oblique est le répertoire dans lequel démarrer la recherche, l'argument de -name est la commande que vous recherchez et le paramètre -print donne de bons résultats. 2>/dev/null envoie les résultats des répertoires qui ne sont pas accessibles à neverland (null) afin que vous n'ayez pas besoin de voir un tas d'erreurs.
Ce processus vous aide à trouver rapidement la commande en question. Vous pouvez ensuite l'ajouter à votre variable env. PATH. Elle devient accessible comme indiqué dans les autres réponses.