macos - لا يمكن التنزيل ، $ GOPATH غير مضبوط




installation (12)

لقد وجدت أنه من الأسهل القيام بذلك على النحو التالي:

export GOROOT=$HOME/go
export GOPATH=$GOROOT/bin
export PATH=$PATH:$GOPATH

أريد تثبيت json2csv باستخدام go get github.com/jehiah/json2csv github.com/jehiah/json2csv ولكن أتلقى هذا الخطأ:

package github.com/jehiah/json2csv: cannot download, $GOPATH not set. For more details see: go help go path

أي مساعدة حول كيفية إصلاح هذا على ماك؟


لهذا MAC عملت بشكل جيد بالنسبة لي.

sudo nano /etc/bashrc

وإضافة أدناه في نهاية الملف

export PATH=$PATH:/usr/local/opt/go/libexec/bin
export GOPATH=/usr/local/opt/go/bin

هذا ينبغي حل المشكلة. حاول فتح محطة جديدة وصدى $ GOPATH سترى القيمة الصحيحة.


يجب عدم إعداد $GOROOT الخاص بك. يجب تعيين $GOPATH إلى $HOME/go بكتابة export $GOPATH=$HOME/go

يرجى كتابة export GOROOT="" لإصلاح مشكلتك.


قم بتشغيل 'go env' واطلع على المكان الذي تشير إليه GOPATH حاليًا. إذا قمت بالتغيير إلى هذا الدليل ، يجب أن يعمل أمر 'go get..etc' الخاص بك.


[تحديث: اعتبارًا من Go 1.8 ، GOPATH افتراضيًا على $HOME/go ، ولكن قد لا تزال تجد هذا مفيدًا إذا كنت تريد فهم تخطيط GOPATH وتخصيصه وما إلى ذلك.]

يناقش الموقع الرسمي Go GOPATH وكيفية وضع دليل مساحة العمل .

export GOPATH="$HOME/your-workspace-dir/" - قم بتشغيله في shell الخاص بك ، ثم أضفه إلى ~/.bashrc أو ما يعادلها حتى يتم تعيينه لك في المستقبل. سيقوم Go بتثبيت الحزم تحت src/ ، bin/ ، و pkg/ ، الدلائل الفرعية هناك. ستحتاج إلى وضع الحزم الخاصة بك في مكان ما تحت $GOPATH/src ، مثل $GOPATH/src/github.com/myusername/ إذا كنت ترغب في النشر إلى GitHub. ربما ستحتاج أيضًا إلى export PATH=$PATH:$GOPATH/bin في .bashrc حتى تتمكن من تشغيل البرامج المترجمة تحت $GOPATH .

بشكل اختياري ، عن طريق Rob Pike ، يمكنك أيضًا تعيين CDPATH بحيث يكون أسرع إلى cd إلى حزمة export CDPATH=.:$GOPATH/src/github.com:$GOPATH/src/golang.org/x في bash: export CDPATH=.:$GOPATH/src/github.com:$GOPATH/src/golang.org/x يعني أنه يمكنك فقط اكتب cd net/html بدلاً من cd $GOPATH/src/golang.org/x/net/html .

notes كيث راريك notes بإمكانك تعيين GOPATH=$HOME لوضع Go's src/ ، pkg/ and bin/ directories right your homedir. يمكن أن يكون ذلك جميلاً (على سبيل المثال ، قد يكون لديك بالفعل $HOME/bin في المسار الخاص بك) ولكن بالطبع يستخدم بعض الأشخاص مساحات عمل متعددة ، إلخ.


يمكنك استخدام حل "التصدير" تمامًا مثل ما اقترحه الأشخاص الآخرون. أرغب في توفير حل آخر للراحة الدائمة: يمكنك استخدام أي مسار باسم GOPATH عند تشغيل أوامر Go.

أولاً ، تحتاج إلى تنزيل أداة صغيرة باسم gost : https://github.com/byte16/gost/releases . إذا كنت تستخدم ubuntu ، فيمكنك تنزيل إصدار linux ( https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz ).

ثم تحتاج إلى تشغيل الأوامر أدناه لتفريغها:

$ cd /path/to/your/download/directory 
$ tar -xvf gost_linux_amd64.tar.gz

ستحصل على gost قابل للتنفيذ. يمكنك نقله إلى /usr/local/bin للاستخدام المريح:

$ sudo mv gost /usr/local/bin

قم بتشغيل الأمر أدناه لإضافة المسار الذي تريد استخدامه كـ GOPATH في مساحات gust التي تحتفظ بها. مطلوب لإعطاء المسار اسمًا ستستخدمه لاحقًا.

$ gost add foo /home/foobar/bar     # 'foo' is the name and '/home/foobar/bar' is the path

شغِّل أي أمر Go تريده بالتنسيق:

gost goCommand [-p {pathName}] -- [goFlags...] [goArgs...]

على سبيل المثال ، أنت تريد تشغيل go get github.com/go-sql-driver/mysql مع /home/foobar/bar مثل GOPATH ، فقط قم بما يلي:

$ gost get -p foo -- github.com/go-sql-driver/mysql  # 'foo' is the name you give to the path above.

من شأنه أن يساعدك على تعيين GOPATH وتشغيل الأمر. ولكن تذكر أنك أضفت المسار إلى مسار gost . إذا كنت تحت أي مستوى من الدلائل الفرعية لـ /home/foobar/bar ، يمكنك حتى تشغيل الأمر أدناه الذي سيؤدي نفس الشيء للاختصار:

$ gost get -- github.com/go-sql-driver/mysql

gost هي أداة بسيطة من Go والتي يمكن أن تساعدك على إدارة GOPATHs وتشغيل أوامر Go. لمزيد من التفاصيل حول كيفية استخدامها لتشغيل أوامر Go أخرى ، يمكنك فقط تشغيل gost help goCmdName . على سبيل المثال ، إذا كنت تريد معرفة المزيد حول install ، فاكتب فقط الكلمات أدناه في:

$ gost help install

يمكنك أيضًا العثور على مزيد من التفاصيل في README للمشروع: https://github.com/byte16/gost/blob/master/README.md


شاهد فيديو

بشكل عام ، أوصيك دائمًا بهذا الفيديو الرسمي من Go للحصول على نظرة عامة سريعة على الأمر:

http://www.youtube.com/watch?v=XCsL89YtqCs

من الأسهل أن يتم عرضه أكثر من أن يُقال.

jwfearn صياغة الجزء المهم من الفيديو:

export GOPATH="${HOME}/gocode"; export PATH="${PATH}:${GOPATH}/bin"; mkdir -p "${GOPATH}"


إذا واجهتك هذه المشكلة بعد إعداد $GOPATH ، فقد يكون ذلك بسبب أنك $GOPATH باستخدام shell غير مدعوم. كنت أستخدم fish ولم ينجح ، وأطلقته مع bash .


فقط قم export GOPATH="/whatever/you/like/your/GOPATH/to/be" .



باستخدام الشراب

أنا تثبيته باستخدام brew .

$ brew install go

عندما يتم ذلك ، إذا قمت بتشغيل أمر الشراب هذا ، فسوف تظهر المعلومات التالية:

$ 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

القطع الهامة هناك هي هذه الخطوط:

/usr/local/Cellar/go/1.4.2 (4676 ملفًا ، 158 مليونًا) *

تصدير PATH = $ PATH: / usr / local / opt / go / libexec / bin

إعداد بيئة GO

هذا يبين أين تم تركيب GO. نحن بحاجة إلى القيام بما يلي لإعداد بيئة GO:

$ export PATH=$PATH:/usr/local/opt/go/libexec/bin
$ export GOPATH=/usr/local/opt/go/bin

يمكنك بعد ذلك التحقق من استخدام GO لمعرفة ما إذا تمت تهيئتها بشكل صحيح:

$ 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"

إعداد json2csv

تبدو جيدة ، لذلك يتيح لك تثبيت json2csv :

$ go get github.com/jehiah/json2csv
$

ماذا حدث للتو؟ تثبيته. يمكنك التحقق من هذا القبيل:

$ $ ls -l $GOPATH/bin
total 5248
-rwxr-xr-x  1 sammingolelli  staff  2686320 Jun  9 12:28 json2csv

حسنًا ، فلماذا لا اكتب json2csv في shell الخاص بي؟ ذلك لأن الدليل /bin تحت $GOPATH ليس على $PATH .

$ type -f json2csv
-bash: type: json2csv: not found

لذا دعنا نضيفها مؤقتًا:

$ export PATH=$GOPATH/bin:$PATH

وإعادة التحقق:

$ type -f json2csv
json2csv is hashed (/usr/local/opt/go/bin/bin/json2csv)

الآن هناك:

$ 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

أضف التعديلات التي $GOPATH على $PATH و $GOPATH إلى $HOME/.bash_profile لجعلها تستمر بين عمليات إعادة التشغيل.


بدلا من البحث عن مجلد داخل: /System/Library/Java/JavaVirtualMachines/

علينا أن ننظر إلى:

/Library/Java/JavaVirtualMachines/





macos installation go