Ich versuche ein go get
:
go get github.com/go-sql-driver/mysql
und es schlägt mit dem folgenden Fehler fehl:
package github.com/go-sql-driver/mysql: cannot download, $GOPATH not set. For more details see: go help gopath
Wenn ich a mache go env
, wird eine Liste von Go-Werten wie folgt angezeigt:
ubuntu@ip-xxx-x-xx-x:~$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CGO_ENABLED="1"
klar ist der GOPATH nicht eingestellt, wie und wo stelle ich ihn ein?
Ich sehe viele Threads, die diesen Fehler erwähnen, aber keinen, der eine Antwort auf meine Frage liefert. Welche Datei muss bearbeitet werden, um einen Wert für diesen Pfad bereitzustellen?
GOPATH
für Sie festgelegt: siehe meine Antwort unten .Antworten:
Neuer Weg:
Schauen Sie sich diese Antwort an.
Alter Weg:
Fügen Sie einfach die folgenden Zeilen zu ~ / .bashrc hinzu, und dies bleibt bestehen. Sie können jedoch andere Pfade verwenden, die Sie als GOPATH anstelle von $ HOME / go in meinem Beispiel mögen .
quelle
/usr/share/go
auf meinem Ubuntu 13.10.$ source ~/.bashrc
;)Ubuntu 14.04
Zusätzlich können Sie diese Zeichenfolge zur Datei hinzufügen
quelle
GOPATH sollte auf ein neu erstelltes leeres Verzeichnis gesetzt werden. Dies ist der "Arbeitsbereich", in dem Pakete usw. heruntergeladen werden. Ich benutze ~ / .go.
Beispielsweise:
Quelle: http://www.larry-price.com/blog/2013/12/15/setting-up-a-go-environment-in-ubuntu-12-dot-04/
quelle
Neuer Weg: Go Module
Seit Go 1.11 müssen Sie GOPATH nicht mehr verwenden. Gehen Sie einfach in Ihr Projektverzeichnis und machen Sie dies einmal:
Alter Weg: GOPATH
Wenn Sie darauf bestehen, mit GOPATH zu arbeiten, beachten Sie Folgendes:
Aus der Dokumentation :
quelle
Wenn es sich zum Beispiel nach der Installation der Pakete um ein Ubuntu handelt:
Fügen Sie einfach die folgenden Zeilen zu ~ / .bashrc (Ihres Benutzers) hinzu.
quelle
Es ist nicht erforderlich, eine Datei zu bearbeiten. Sie können einfach den obigen Befehl verwenden, um die Go-Umgebungsvariablen direkt zu bearbeiten.
quelle
Schreiben Sie diesen Code in Terminal.
Hinweis : Dies wird bei jedem neuen Terminalfenster oder Systemneustart zurückgesetzt.
Um dauerhaft zu sein, fügen Sie den folgenden Code entsprechend Ihrer Shell in Ihre
.zshrc
oder.bashrc
-Datei ein. Diese Dateien in Ihrem Home-Verzeichnis . Es wird wie unten sein.quelle
Sie werden GOPATH auch später brauchen. Also füge es hinzu
~/.bashrc
.quelle
Wenn Sie etwas eingerichtet haben, das geändert werden muss, z. B. Java, Go usw., ist dies sehr vertraut.
Ich gehe davon aus, dass Sie irgendwo die folgende Verzeichnisstruktur als Go-Pfad haben:
sudo nano /etc/environment
PATH=...
und gehe das Ende davon und füge:
nach dem letzten Pfad einen Doppelpunkt hinzu, dann füge dein vollständigesgo path
z/home/user/gocode
und Sie sind fertig. Dies sollte es durch das System dauerhaft machen.
quelle
Dies ist, was es für mich unter Ubuntu 15.10 mit folgenden Funktionen zum Laufen gebracht hat
fish shell
:Dann musste ich die Berechtigungen für den
go
Ordner ändern (er wurde auf root gesetzt)quelle
go path kann jeder Ort sein, an dem Sie einfach ein Verzeichnis erstellen und eine globale Pfadvariable im Namen von GOPATH für Ihre Umgebung festlegen möchten.
quelle
Mit Go 1.8 (2. Quartal 2017) müssen Sie keine Datei bearbeiten, wenn Sie den
GOPATH
für Sie festgelegten Standardwert akzeptieren.Sie können die Kommentare zu Ausgabe 17262 und die dazugehörige Twitter-Abstimmung sehen :
quelle
Meine Go-Umgebung sah Ihrer ähnlich.
Ich habe es gelöst, indem ich GOPATH auf / usr / lib / go gesetzt habe . Versuch es.
quelle
GOPATH ist eine Umgebungsvariable für Ihren Arbeitsplatz. GOROOT ist eine Umgebungsvariable für Ihr Installationsverzeichnis. Obwohl GOROOT und GOPATH während der Installationszeit automatisch festgelegt werden (falls es keinen Fehler geben würde), können Sie den folgenden Vorgang ausführen , um ihn manuell anzugeben. Weitere Informationen finden Sie auf der Wiki-Seite von GO .
Es ist besser, GOPATH auf ein Verzeichnis in Ihrem Home-Verzeichnis festzulegen , z. B. $ HOME / go,% USERPROFILE% \ go (Windows).
Auf Ihrem Terminaltyp
Drücken Sie im geöffneten Dokument auf dem Terminal i und fügen Sie den folgenden Pfad hinzu
Drücken Sie ESC und geben Sie Folgendes ein : x . Zuletzt sollten Sie Ihr Terminal neu starten ( schließen und öffnen ) oder sich erneut abmelden und anmelden .
VORSICHT nicht beide gesetzt GOROOT und GOPATH in das gleiche Verzeichnis, sonst erhalten Sie eine Warnung erhalten.
quelle
Und vielleicht möchten Sie nach $ go env suchen
quelle
(Ubuntu)
Wenn Sie keinen GOPATH festlegen, wird der Standardwert verwendet.
Sie müssen Ihrem PATH $ GOPATH / bin hinzufügen, um eine in $ GOPATH / bin installierte Binärdatei auszuführen, oder Sie müssen $ GOPATH / bin / the-command eingeben. Fügen Sie dies Ihrem ~ / .bash_profile hinzu
Aktueller GOPATH-Befehl:
Ändern des GOPATH-Befehls:
quelle
Dies war die nervigste Sache, mit der man sich befassen musste. In der Hoffnung, Ihre Zeit zu sparen.
IF go wurde als Root-Benutzer installiert. Dem Root-Benutzer der bash_profile-Textdatei ~ / .bash_profile Ihres Systems muss $ GOROOT dem Verzeichnis go install und $ GOPATH dem Verzeichnis go / src zugewiesen sein.
Stellen Sie sicher, dass sich der Pfad für die Binärdatei in Ihrem Pfad auf .bash_profile befindet
PATH = $ PATH: $ HOME / bin: / usr / local / bin: / usr / local / go / bin
Dieser Pfad kann so lang sein, wie er sein muss. Um neue Elemente hinzuzufügen, die nur durch Doppelpunkte getrennt sind:
Beenden Sie den vi-Editor und speichern Sie das Bash-Profil (: wq steht für Schreiben und Beenden)
Sie müssen sich vom Terminal abmelden und erneut anmelden, damit das Profil erneut gestartet werden kann. Sie können es auch einfach mithilfe des Exports starten.
Sie können go env überprüfen:
Yay!
Jetzt können Sie sudo and go Verzeichnisse in go / src herunterladen und erstellen und zu dem gelangen, was Sie versucht haben.
Beispiel
Jetzt wirst du auf ein anderes Problem stoßen. Vielleicht hast du Git nicht installiert. Das ist ein weiteres Abenteuer. :)
quelle
go get
etwas setzen irgendwo in der NäheGOROOT
.Auf meinem Fedora 20-Computer habe ich meinem ~ / .bashrc die folgenden Zeilen hinzugefügt:
quelle
GOROOT
. (Es sei denn, Sie befinden sich in einer extrem kleinen Gruppe von Personen, die eine Binärdistribution von Go verwenden, diese jedoch an einem nicht standardmäßigen Ort installieren.)Noch eine andere Lösung: Exportieren Sie jede
GO*
Umgebungsvariable ausgo env
.bashrc:
quelle
eval
ist in der Regel eine schlechte Idee und ein Overkill in dieser Situation IMHOGOPATH
nur exportiertBearbeiten Sie Ihre
~/.bash_profile
, um die folgende Zeile hinzuzufügen:Speichern Sie Ihren Editor und beenden Sie ihn. Dann beschaffen Sie Ihre
~/.bash_profile
Hinweis: Legen Sie den GOBIN-Pfad fest, um eine Binärdatei zu generieren, wenn go install ausgeführt wird
quelle
Dieses Skript hilft Ihnen, Gopaths zu wechseln. https://github.com/buffonomics/goswitch
quelle
Wie in der geschrieben offiziellen Anleitung geschrieben :
Wenn Sie beispielsweise in Jetbrains Webstorm (mit dem Go-Plugin ) codieren , möchten Sie möglicherweise festlegen
GOPATH
, dass/Users/<user>/WebstormProjects
.Stellen Sie es in einfacheren Worten auf den Ort ein, an dem sich Ihre Go-Projekte befinden sollen.
quelle
Sie können die "Export" -Lösung genau so verwenden, wie es andere vorgeschlagen haben. Ich möchte Ihnen eine weitere Lösung zur dauerhaften Bequemlichkeit anbieten: Sie können einen beliebigen Pfad als GOPATH verwenden, wenn Sie Go-Befehle ausführen.
Zunächst müssen Sie den Namen ein kleines Tool zum Download
gost
: https://github.com/byte16/gost/releases . Wenn Sie Ubuntu verwenden, können Sie die Linux-Version herunterladen ( https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz ).Dann müssen Sie die folgenden Befehle ausführen, um es zu entpacken:
Sie würden eine ausführbare Datei erhalten
gost
. Sie können es zur/usr/local/bin
bequemen Verwendung verschieben:Führen Sie den folgenden Befehl aus, um den Pfad, den Sie als GOPATH verwenden möchten, in den Pfad hinzuzufügen, der verwaltet
gost
wird. Es ist erforderlich, dem Pfad einen Namen zu geben, den Sie später verwenden würden.Führen Sie einen beliebigen Go-Befehl im folgenden Format aus:
Zum Beispiel wollen Sie laufen
go get github.com/go-sql-driver/mysql
mit/home/foobar/bar
als GOPATH, tun Sie es einfach wie folgt:Es würde Ihnen helfen, den GOPATH festzulegen und den Befehl auszuführen. Aber denken Sie daran , dass Sie den Weg in hinzugefügt haben
gost
‚s pathspace . Wenn Sie sich in einer beliebigen Ebene von Unterverzeichnissen von befinden/home/foobar/bar
, können Sie sogar einfach den folgenden Befehl ausführen, der kurz dasselbe tun würde:gost
ist ein einfaches Go-Tool, mit dem Sie GOPATHs verwalten und Go-Befehle ausführen können. Weitere Informationen zur Verwendung anderer Go-Befehle finden Sie einfachgost help goCmdName
. Wenn Sie beispielsweise mehr darüber erfahren möchteninstall
, geben Sie einfach die folgenden Wörter ein in:Weitere Details finden Sie auch in der README-Datei des Projekts: https://github.com/byte16/gost/blob/master/README.md
quelle
Sie müssen den PFAD basierend auf dem von Ihnen verwendeten Terminal (bash oder zsh) aktualisieren.
~/.bashrc
oder~/.zshrc
in einem Editorexport GOPATH=$HOME/go:/$HOME/projects/go
Hier können Sie
:
derGOPATH
Umgebungsvariablen einen oder mehrere Pfade hinzufügen, die durch ein Semikolon von verschiedenen Positionen Ihrer GO-Projekte auf dem System getrennt sind/path/1:path/2:path/3
.In meinem Fall habe ich wie oben gezeigt zwei Pfade hinzugefügt, einen aus dem Stammverzeichnis
$HOME/go
und einen aus dem Projektverzeichnis:/$HOME/projects/go
quelle