GOBIN pas ensemble: ne peut pas exécuter allez installer
Je suis en train d'installer mon package personnalisé pour mon principal.fichier aller. Cependant, quand j'ai couru
go install custom.go
J'ai eu cette erreur
go install: no install location for .go files listed on command line (GOBIN not set)
Comment puis-je régler GOBIN?
- BTW: C'est un très mauvais moyen d'installer un paquet. Cela ne marchera jamais.
go install
installe paquets pas de fichiers individuels. Merci de lire golang.org/cmd/go et de voir comment mettre en place vos fichiers. - merci pour le heads up!
- Je pense que vous êtes à la recherche pour aller construire.
- Je ne suis pas sûr que je suis d'accord que c'est complètement faux. Lorsque GOBIN est ensemble, il y a deux comportements distincts: Lors de l'utilisation d'aller construire <gofile.aller>, l'exécutable est créé dans le même dossier. Lors de l'utilisation de go install <gofile.aller> le fichier exécutable est créé dans GOBIN.
- FWIW - la valeur par défaut docs pour commencer vous recommandons de faire exactement cela. golang.org/doc/install
- installez-vous des docs dit
For more about specifying packages, see 'go help packages'.
'aller de paquets d'aide' près de l'extrémité dit:As a special case, if the package list is a list of .go files from a single directory, the command is applied to a single synthesized package made up of exactly those files, ignoring any build constraints in those files and ignoring any other files in the directory.
Donc "aller de l'install' est aussi pour .allez les fichiers. Problème, c'est l'incohérence, en cas de nom du package fourni GOBIN n'est pas nécessaire alors que dans le cas où .allez fichier est en cours d'installation GOBIN est nécessaire. - ce comportement a été ajouté quelques communiqués auparavant. Il est utile pour certains usecases. La règle elle-même est toujours valide. L'aller outil fonctionne sur les paquets, pas sur les fichiers.
Vous devez vous connecter pour publier un commentaire.
Vérifier votre
GOPATH
variable.Assurez-vous que:
Voir GOPATH variable d'environnement (où 'DIR' est un
GOPATH
dossier):Par exemple, ce fil illustre ce qui se passerait dans le cas où un aller construire est effectué à l'extérieur de
GOPATH/src
:Voir Aller Construire
Si vous avez fait
go build
, vous pouvez également essayer ungo install
(pas decustom.go
): vous voulez installer le paquet, pas un seul fichier.J'ai mis le GOBIN chemin et qui a fonctionné pour moi
cannot install, GOBIN must be an absolute path
🙁..
ou~
dans le chemin d'accès spécifié? J'ai eu cette erreur et tout juste de passer à un chemin absolu comme/home/ben/bin/
ou même$HOME/bin/
. Ma commande a été (dans fishshell, allez v1.11)env GOBIN=$HOME/bin/ go install testfile.go
.En tant que débutant, j'ai couru à travers ce message d'erreur lorsque j'ai essayé diverses commandes go (créer, exécuter et installer). En bref, vous ne pouvez pas aller installer un nom de fichier.aller. Vous ne pouvez installer un paquet.
Cela a été source de confusion, parce que j'avais appris que:
fonctionne très bien. Mais je ne pouvais pas comprendre pourquoi installer ne fonctionne pas:
N'importe quel répertoire, j'ai été dans:
Cette confusion est parce que aller courir seulement fonctionne avec les fichiers source (les noms de fichiers qui se terminent dans .go) et aller installer seulement accepte les colis. Les paquets sont nommés par leurs importer des chemins de système de fichier ou de chemin d'accès. Donc:
tous de l'excellent travail. Le premier désigne le paquet par le chemin d'importation, (étant donné que $GOPATH="/home/nate/travail", les outils vont chercher le code source dans /home/nate/travail/src), les autres sont interprétés comme des chemins de système de fichiers en raison des périodes de pointe.
Voir aussi la GOPATH docs.
go install
travaux sur les répertoires et si vous indiquez un fichier aller, alors il peut causer ce problème particulier.En fait, il ya 2 différents types de comportement.
ceci est documenté dans Compiler et installer les paquets et les dépendances
Vous n'avez pas besoin GOBIN si vous définissez GOPATH correctement.
ce n'est pas documentée et vous avez besoin GOBIN env variable dans ce mode.
go install <gofile>
est documenté, dansgo help packages
à quigo install --help
se réfère. Le problème est quego install
(en 1.9.2 et antérieures) a un comportement erratique, dans un cas, il exige et dans d'autres il ne nécessite pas de GOBIN être définie de façon explicite.Comme perméable réponses souligné, si votre GOPATH env est correctement mis à votre espace de travail vous n'avez pas besoin de GOBIN env variable.
Veuillez vérifier votre go variables d'environnement en cours d'exécution $aller env | grep-i "^GO" et regarder dehors pour GOROOT et GOPATH pour vérifier si GOROOT est en train de pointer votre source d'installation et de GOPATH pointant vers votre espace de travail.
Si tout est correct, puis naviguez vers le sous répertoire où yourpkg.aller réside puis exécutez $aller construire (sans nom de fichier) en premier et $aller installer (encore sans nom de fichier) deuxièmement , si vous ne voyez aucun message d'erreur sur l'écran de votre colis est prêt à votre espace de travail/pkg/youros/../yourpackage.un
Sur windows avec cygwin, il semble être une bonne idée de mettre en place GOBIN à $GOPATH/bin.
et n'oubliez pas de sortir correctement le nom de fichier windows séparateur:
Pour
*nix
système, regardez oùgo
est installé, en exécutant la commande suivante:de sortie disons:
puis ajouter les entrées suivantes dans
~/.bash_profile
ou dans~/.zshrc
:P. S: N'oubliez pas de source
~/.bash_profile
ou~/.zshrc
, comme suit:/usr/local/go/bin
?Sur la configuration des
GOBIN
variable version ne nécessitant pas et il suffit de compter surGOPATH
:GOBIN
est nécessaire si nous n'avons pas un paquet, c'est à dire le fichier est directement dans leGOPATH
répertoire. C'est probablement quand nous essayons de sortir le Go caractéristiques que les apprenantsTypique, Allez projets, les fichiers sont sous l'ensemble des répertoires. Pour ces derniers,
GOPATH
est assez bon.En d'autres termes, les deux suivantes les solutions qui fonctionnent:
un. Ensemble
GOBIN
explicitement que $GOPATH/bin [uniquement à des fins d'apprentissage, permet d'éviter l']b. Créer un sous-répertoire qui serait votre nom de package et de déplacer le .allez fichiers
Je pense Aller les services publics devraient supprimer l'erreur ci-dessus et de gérer le scénario mieux si l'argument est un répertoire ou un fichier source
Vous n'avez pas besoin $GOBIN si vous avez défini un $GOPATH correctement. Si oui, il suffit de revérifier si votre projet réside dans l' $GOPATH/src dossier.
De https://golang.org/cmd/go/#hdr-Environment_variables:
et https://golang.org/cmd/go/#hdr-GOPATH_environment_variable:
et https://golang.org/cmd/go/#hdr-Modules__module_versions__and_more
Il me semble que, fondamentalement, vous pouvez utiliser GOBIN temporairement ou définitivement, et de remplacer l'option binaire l'emplacement de l'installation (c'est à dire
$GOPATH/bin
). J'ai eu du succès l'installation d'un 1-fichier go "script" à l'aide deenv GOBIN=$HOME/bin/go install testfile.go
. Cela a été fait à l'aide de go v1.11.