Vreau sa instalez json2csv ajutorul să ajungă la github.com/jehiah/json2csv` dar primesc aceasta eroare:
package github.com/jehiah/json2csv: cannot download, $GOPATH not set. For more details see: go help go path
Orice ajutor cu privire la modul de a repara acest lucru pe MacOS?
[Update: cum de a Merge 1.8, GOPATH
implicit $HOME/du-te, dar ai putea găsi acest util dacă doriți să înțeleagă
GOPATH` layout, personaliza, etc.]
Oficialul a Merge site-ul discută GOPATH și cum să se stabilească un spațiu de lucru director.
export GOPATH="$HOME/ta-spațiu de lucru-dir/"-- rula în coajă, apoi adăugați-l la
~/.bashrc sau echivalente, astfel încât acesta va fi creat pentru tine în viitor. Merge va instala pachete sub src/
, bin/", și " pkg/
, subdirectoare acolo. Te'll doriți să puneți propriile pachete undeva sub $GOPATH/src
, ca $GOPATH/src/github.com/myusername/
dacă doriți să publicați la GitHub. Te'll, de asemenea, probabil că doriți export PATH=$PATH:$GOPATH/bin "în".bashrcastfel încât să puteți rula programe compilate sub
$GOPATH`.
Opțional, printr-un Rob Pike](https://twitter.com/rob_pike/status/467367507305574400), puteți seta, de asemenea, CDPATH
deci's mai rapid pentru a cd
la pachet dirs în bash: export CDPATH=.:$GOPATH/src/github.com:$GOPATH/src/golang.org/xînseamnă că puteți doar să tastați cd
ul net/html "în loc de" cd $GOPATH/src/golang.org/x/net/html`.
Keith Rarick note puteți seta GOPATH=$HOME
pentru a pune Du-te's src/
, pkg/ " și " bin/ directoare chiar sub homedir. Care poate fi frumos (de exemplu, este posibil să aveți deja
$HOME/bin` în calea ta) dar, desigur, unii oameni folosesc mai multe spații de lucru, etc.
Acesta a lucrat
Setarea Merg mediu de dezvoltare pe Ubuntu, și cum de a repara $GOPATH / $GOROOT
Etape
mkdir ~/go
Set $GOPATH în .bashrc,
export GOPATH=~/go
export PATH=$PATH:$GOPATH/bin
L-am instalat folosind "brew".
$ brew install go
Când a fost făcut, dacă tu a alerga acest brew comanda-l'll arată următoarele informații:
$ brew info go
go: stable 1.4.2 (bottled), HEAD
Go programming environment
https://golang.org
/usr/local/Cellar/go/1.4.2 (4676 files, 158M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/go.rb
==> Options
--with-cc-all
Build with cross-compilers and runtime support for all supported platforms
--with-cc-common
Build with cross-compilers and runtime support for darwin, linux and windows
--without-cgo
Build without cgo
--without-godoc
godoc will not be installed for you
--without-vet
vet will not be installed for you
--HEAD
Install HEAD version
==> Caveats
As of go 1.2, a valid GOPATH is required to use the `go get` command:
https://golang.org/doc/code.html#GOPATH
You may wish to add the GOROOT-based install location to your PATH:
export PATH=$PATH:/usr/local/opt/go/libexec/bin
Piesele importante sunt aceste linii:
/usr/local/Crama/go/1.4.2 (4676 fișiere, 158 MN) *
export PATH=$PATH:/usr/local/opt/go/libexec/bin
Care arată în cazul în care DRUMUL a fost instalat. Avem nevoie pentru a face următoarele pentru configurare DU-te's mediu:
$ export PATH=$PATH:/usr/local/opt/go/libexec/bin
$ export GOPATH=/usr/local/opt/go/bin
Apoi, puteți verifica folosind DUC să văd dacă-l's configurat în mod corespunzător:
$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/usr/local/opt/go/bin"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.4.2/libexec"
GOTOOLDIR="/usr/local/Cellar/go/1.4.2/libexec/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"
Arata bine, deci, vă permite să instalați json2csv
:
$ go get github.com/jehiah/json2csv
$
Ce s-a întâmplat? L-a instalat. Puteți verifica astfel:
$ $ ls -l $GOPATH/bin
total 5248
-rwxr-xr-x 1 sammingolelli staff 2686320 Jun 9 12:28 json2csv
OK, deci de ce't I tip json2csv în cochilia mea? Ca's, deoarece
/bindirector sub
$GOPATHe't pe
$CALE`.
$ type -f json2csv
-bash: type: json2csv: not found
Deci sa's, temporar, adauga:
$ export PATH=$GOPATH/bin:$PATH
Și re-verifica:
$ type -f json2csv
json2csv is hashed (/usr/local/opt/go/bin/bin/json2csv)
Acum's acolo:
$ json2csv --help
Usage of json2csv:
-d=",": delimiter used for output values
-i="": /path/to/input.json (optional; default is stdin)
-k=[]: fields to output
-o="": /path/to/output.json (optional; default is stdout)
-p=false: prints header to output
-v=false: verbose output (to stderr)
-version=false: print version string
Adaugă modificările'am făcut să $CALEA " și " $GOPATH
a ta `$HOME/.bash_profile pentru a le face să persiste între repornește.
În general, intotdeauna mi-am recomanda acest video oficial de a Merge pentru a obține o privire de ansamblu asupra problemei:
It's ușor pentru a fi afișate decât să fie spus.
@jwfearn parafrazat parte importantă din video:
export GOPATH="${HOME}/gocode"; export PATH="${PATH}:${GOPATH}/bin"; mkdir -p "${GOPATH}"`
Am găsit mai ușor să o faci așa:
export GOROOT=$HOME/go
export GOPATH=$GOROOT/bin
export PATH=$PATH:$GOPATH
Pentru MAC aceasta a lucrat bine pentru mine.
sudo nano /etc/bashrc
și se adaugă la partea de jos la sfârșitul fișierului
export PATH=$PATH:/usr/local/opt/go/libexec/bin
export GOPATH=/usr/local/opt/go/bin
Acest lucru ar trebui să rezolve problema. Încercați să deschideți un terminal nou și echo $GOPATH ar trebui să vedeți valoarea corectă.
(pentru MAC)
Am incercat toate aceste răspunsuri și, pentru un motiv încă necunoscut, nici unul dintre ei a lucrat.
Am avut de a "obliga" GOPATH prin setarea variabilei de mediu pe fiecare comandă care este necesar. De exemplu:
sudo env GOPATH=$HOME/goWorkDirectory go build ...
Chiar aluneca
m ' a GOPATH nu a stabilit
de eroare. Rezolvat-o, din nou, de "forța de alimentare":
Am incercat toate aceste răspunsuri și, pentru un motiv încă necunoscut, nici unul dintre ei a lucrat.
Am avut de a "obliga" GOPATH prin setarea variabilei de mediu pe fiecare comandă care este necesar.
sudo env GOPATH=$HOME/goWorkDirectory glide install
Sper că acest lucru ajută cineva.
Puteți utiliza "export" soluție doar ca ceea ce ceilalți au sugerat. Am'd dori să vă ofere cu o altă soluție pentru permanent confort: puteți folosi orice cale ca GOPATH atunci când rulează Merg comenzile.
În primul rând, aveți nevoie pentru a descărca un instrument mic, numit gost
: https://github.com/byte16/gost/releases . Dacă utilizați ubuntu, puteți descărca versiunea linux(https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz).
Apoi, aveți nevoie pentru a rula comenzile de mai jos pentru a despacheta :
$ cd /path/to/your/download/directory
$ tar -xvf gost_linux_amd64.tar.gz
V-ar lua un executabil gost
. Puteți muta în /usr/local/bin
pentru convenabil de utilizare:
$ sudo mv gost /usr/local/bin
Rulați comanda de mai jos pentru a adauga calea pe care doriți să o utilizați ca GOPATH în pathspace gost
menține. Este necesar de a da cale un nume pe care le-ar folosi mai târziu.
$ gost add foo /home/foobar/bar # 'foo' is the name and '/home/foobar/bar' is the path
Rula orice Merge comanda dorită în formatul:
gost goCommand [-p {pathName}] -- [goFlags...] [goArgs...]
De exemplu, vrei să fugi să ajungă github.com/go-sql-driver/mysql " cu " /home/foobar/bar` ca GOPATH, doar face ca mai jos:
$ gost get -p foo -- github.com/go-sql-driver/mysql # 'foo' is the name you give to the path above.
Aceasta ar ajuta să setați GOPATH și rulați comanda. Dar amintiți-vă că ați adăugat calea în gost
's pathspace. Dacă sunteți sub orice nivel de subdirectoare ale /home/foobar/bar
, puteți chiar și doar rulați comanda de mai jos, care ar face același lucru pentru scurte :
$ gost get -- github.com/go-sql-driver/mysql
gost
este un Instrument Simplu de a Merge, care vă pot ajuta să gestionați GOPATHs și a alerga Merg comenzile. Pentru mai multe detalii despre cum să-l folosească pentru a rula alte Merg comenzile, puteți rula doar gost ajuta goCmdName
. De exemplu, doriți să știți mai multe despre install
, trebuie doar să tastați cuvintele de mai jos din:
$ gost help install
De asemenea, puteți găsi mai multe detalii în fișierul README proiectului: https://github.com/byte16/gost/blob/master/README.md
Am avut pentru a rula o aplicație ca root (pentru a deschide un server de web pe portul 80), acest lucru a produs o eroare pentru mine, pentru că sudo utilizator are un alt mediu decât cel normal de utilizator, prin urmare GOPATH nu a fost stabilit.
Dacă cineva are aceasta problema, se adaugă -E
de a comanda, acest lucru va păstra utilizator mediu.
sudo -E du-te alerga principal.du-te
Pentru mai multe informatii vezi discutia de aici: Grupuri Google – GOPATH Problema