ডাউনলোড করতে পারবেন না, OP গোপ্যাট সেট করা নেই


150

আমি ব্যবহার করে json2csv ইনস্টল করতে চাই go get github.com/jehiah/json2csvতবে আমি এই ত্রুটিটি পেয়েছি:

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

এটি ম্যাকওএসে কীভাবে ঠিক করবেন তার কোনও সহায়তা?



1
আরও দেখুন: stackoverflow.com/questions/17872223/...
Shog9

3
আমি আলাদা প্যাকেজ (পুপ) নিয়ে একই সমস্যা পাচ্ছি। ক্যামন গো রক্ষণাবেক্ষণকারী, দয়া করে একটি (ওএস এক্স) ইনস্টলার তৈরি করুন যা কাজ শেষ করে! নোডের জন্য ওএস এক্স ইনস্টলারটি একটি দুর্দান্ত উদাহরণ। নোড ব্যবহারের জন্য অতিরিক্ত ম্যানুয়াল ইনস্টলেশন পদক্ষেপের প্রয়োজন নেই। এটা ঠিক কাজ করে। আমি আশা করি গো ইনস্টলার এর ভবিষ্যতের সংস্করণগুলি আরও ভাল হবে।
jwfearn

উত্তর:


140

[আপডেট: Go 1.8 হিসাবে GOPATHডিফল্ট $HOME/go, তবে আপনি যদি এখনও GOPATHলেআউটটি বুঝতে চান , এটি কাস্টমাইজ করতে চান তবে আপনি এটি দরকারী খুঁজে পেতে পারেন ]]

অফিসিয়াল গো সাইটটি জিওপিএএটিএইচ এবং কীভাবে একটি কর্মক্ষেত্রের ডিরেক্টরি রাখবে তা আলোচনা করে

export GOPATH="$HOME/your-workspace-dir/"- এটি আপনার শেলের মধ্যে চালান, তারপরে এটি এটিকে ~/.bashrcবা সমতুল্য করুন যাতে এটি ভবিষ্যতে আপনার জন্য সেট হয়ে যায়। যান অধীনে প্যাকেজগুলি ইনস্টল হবে src/, bin/এবং pkg/সেখানে সাব। আপনি নিজের প্যাকেজগুলি কোথাও এর নীচে রাখতে চান $GOPATH/src, যেমন $GOPATH/src/github.com/myusername/আপনি গিটহাবে প্রকাশ করতে চান। আপনি সম্ভবত export PATH=$PATH:$GOPATH/binআপনার চাইবেন .bashrcযাতে আপনি এর অধীনে সংকলিত প্রোগ্রামগুলি চালাতে পারেন $GOPATH

বৈকল্পিকভাবে, রব পাইক মাধ্যমে , এছাড়াও আপনি সেট করতে পারেন CDPATH, যাতে এটি আরো দ্রুত cdব্যাশ মধ্যে dirs প্যাকেজ: export CDPATH=.:$GOPATH/src/github.com:$GOPATH/src/golang.org/xআপনি শুধু টাইপ করতে পারেন মানে cd net/htmlপরিবর্তে cd $GOPATH/src/golang.org/x/net/html

কিথ Rarick নোট আপনি সেট করতে পারেন GOPATH=$HOMEযান এর লাগাতে src/, pkg/এবং bin/অধিকার আপনার homedir অধীনে ডিরেক্টরি। এটি দুর্দান্ত হতে পারে (উদাহরণস্বরূপ, আপনি ইতিমধ্যে $HOME/binআপনার পথে থাকতে পারেন ) তবে অবশ্যই কিছু লোক একাধিক ওয়ার্কস্পেস ইত্যাদি ব্যবহার করে etc.


তথ্যের জন্য ধন্যবাদ। প্রতিটি পৃথক প্রকল্পের জন্য আপনার কি আপনার কর্মক্ষেত্র পরিবর্তন করতে হবে?
ডগ মলিনেক্স

1
সাধারণভাবে, না, আপনি src/এমন একটি ওয়ার্কস্পেস ব্যবহার করতে পারেন যার উদাহরণস্বরূপ github.com/youruser/xএবং github.com/youruser/y। এটা যা আমি করি. লোকেরা অন্যথায় করার কারণ থাকতে পারে (প্রকল্পগুলি আলাদা রাখার জন্য কোম্পানির নীতি?), তবে আমি এটির সাথে কথা বলতে পারি না।
twotwotwo

3
OP গোপথ সেট করা আছে, তবে "ডাউনলোড করতে পারে না, OP গোপথ সেট করা নেই more আরও তথ্যের জন্য দেখুন: যান গোপাথ" যাইহোক প্রদর্শিত হবে।
Tyguy7

কোন প্ল্যাটফর্ম (উইন্ডোজ বা লিনাক্স / ওএস এক্স / অন্যান্য ইউনিক্স)? উইন্ডোজ না হলে কী echo $GOPATHবলে? এটি আলাদা প্রশ্ন হিসাবে পোস্ট করার উপযুক্ত হতে পারে; দেখে মনে হচ্ছে আপনি কোনও অস্বাভাবিক পরিস্থিতিতে রয়েছেন এবং মন্তব্যগুলিতে সেগুলি ডিবাগ করা জটিল হতে পারে।
twotwotwo

2
@ টাইগুই chan এর সম্ভাবনা আপনি কি করেন নি export; /bin/bash -c "echo \$GOPATH"উপ-প্রক্রিয়াগুলি দেখতে পারে তা যাচাই করতে দৌড়ান $GOPATH; যদি এটি খালি export GOPATHgo get ...
প্রতিধ্বনিত হয়


33

পাতানো ব্যবহার

আমি এটি ব্যবহার করে ইনস্টল করেছি 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 = $ পাঠ: / ইউএসআর / স্থানীয় / অপ্ট / গো / লিবেক্সেক / বিন রফতানি করুন

জিও এর পরিবেশ নির্ধারণ করা

এটি দেখায় যে কোথায় জিও ইনস্টল করা হয়েছিল। জিওর পরিবেশ নির্ধারণের জন্য আমাদের নিম্নলিখিতগুলি করা দরকার:

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

এরপরে এটি সঠিকভাবে কনফিগার করা হয়েছে কিনা তা দেখতে আপনি জিও ব্যবহার করে চেক করতে পারেন:

$ 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আমার শেলটি টাইপ করতে পারি না ? কারণ এটি আপনার /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

রিবুটগুলির মধ্যে অবিচল থাকার জন্য আমরা $PATHএবং $GOPATHআপনার $HOME/.bash_profileকরা পরিবর্তনগুলি যুক্ত করুন ।


18

একটি ভিডিও দেখুন

সাধারণভাবে, আমি এই বিষয়ে একটি তাত্ক্ষণিক পর্যালোচনা পেতে সর্বদা গো থেকে এই অফিশিয়াল ভিডিওটি প্রস্তাব করি:

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

বলার চেয়ে দেখানো সহজ।

@jwfearn ভিডিওটির গুরুত্বপূর্ণ অংশটি চিত্রিত করেছেন:

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


2
দুর্দান্ত সূচনামূলক ভিডিও - যখন তা আমাকে দেখানো হয় আমি সর্বদা আরও ভাল বুঝতে পারি।
জোশুয়া পিন্টার 21

3
ধন্যবাদ @ jwfearn - ভিডিওগুলি সঙ্গীত এবং অন্যান্য বিনোদনের জন্য; তাদের থেকে অনুলিপি এবং আটকানো যাবে না :-)
kguest


3

ম্যাকের জন্য এটি আমার পক্ষে ভাল কাজ করেছে।

sudo nano /etc/bashrc

এবং ফাইলের শেষে নীচে যুক্ত করুন

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

এই সমস্যা ঠিক করা উচিত। একটি নতুন টার্মিনাল খোলার চেষ্টা করুন এবং প্রতিধ্বনি $ GOPATH আপনার সঠিক মানটি দেখতে হবে।


2

(ম্যাকের জন্য)

আমি এই সমস্ত উত্তর চেষ্টা করেছিলাম এবং এখনও কিছু অজানা কারণে তাদের কোনওটিই কাজ করে না।

প্রতিটি কমান্ডের প্রয়োজন অনুসারে পরিবেশ পরিবর্তনশীল সেট করে আমাকে গোপথকে "জোর করে ফিড" দিতে হয়েছিল। উদাহরণ স্বরূপ:

sudo env GOPATH=$HOME/goWorkDirectory go build ...

এমনকি glideআমাকে GOPATH not setত্রুটি দিচ্ছিল । এটি আবার "জোর করে খাওয়ানো" দ্বারা সমাধান করা হয়েছে: আমি এই সমস্ত উত্তরগুলি চেষ্টা করেছিলাম এবং এখনও কিছু অজানা কারণে তাদের কোনওটিই কাজ করে না।

প্রতিটি কমান্ডের প্রয়োজন অনুসারে পরিবেশ পরিবর্তনশীল সেট করে আমাকে গোপথকে "জোর করে ফিড" দিতে হয়েছিল।

sudo env GOPATH=$HOME/goWorkDirectory glide install

আশা করি এটি কাউকে সাহায্য করবে।


2

আপনার $GOROOTসেট আপ করা উচিত নয়। আপনি টাইপ করে $GOPATHসেট আপ করা উচিত$HOME/goexport $GOPATH=$HOME/go

export GOROOT=""আপনার সমস্যা সমাধানের জন্য টাইপ করুন ।


1

শুধু কর export GOPATH="/whatever/you/like/your/GOPATH/to/be"


4
যদি আমি গো নুব হন তবে আমি এখনও জানি না "আমি আমার গোপথ কোথায় থাকতে চাই"। আইএমএইচও এটি এমন একটি টান যে কোনও ডিফল্ট GOPATH আচরণ নেই যা পরিবেশ পরিবর্তনশীল দ্বারা ওভাররাইড করা যেতে পারে ।
jwfearn

0

আপনি যদি $GOPATHসেট আপ করার পরে এই সমস্যায় পড়ে থাকেন তবে এটি হতে পারে কারণ আপনি এটি একটি অসমর্থিত শেল দিয়ে চালাচ্ছেন। আমি ব্যবহার করছিলাম fishএবং এটি কাজ করে না, এটি bashসূক্ষ্মভাবে কাজ করে চালু করে ।


0

অন্যান্য ছেলেরা যেভাবে পরামর্শ দিয়েছে আপনি ঠিক তেমনই "এক্সপোর্ট" সমাধানটি ব্যবহার করতে পারেন। আমি আপনাকে স্থায়ী সুবিধার্থে অন্য একটি সমাধান সরবরাহ করতে চাই: গো কমান্ড চলাকালীন আপনি কোনও পথই গোপথ হিসাবে ব্যবহার করতে পারেন।

প্রথমত, আপনাকে নামের একটি ছোট সরঞ্জাম ডাউনলোড করতে হবে gost: https://github.com/byte16/gost/relayss । আপনি যদি উবুন্টু ব্যবহার করেন তবে আপনি লিনাক্স সংস্করণটি ডাউনলোড করতে পারেন ( 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 হিসেবে ব্যবহার করতে চান যুক্ত করুন নীচের চালান pathspace gost বজায় রাখে। পাথটিকে এমন একটি নাম দেওয়া দরকার যা আপনি পরে ব্যবহার করবেন।

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

বিন্যাসে আপনি যে কোনও গো কমান্ড চান:

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

উদাহরণস্বরূপ, যদি আপনি চালাতে চান go get github.com/go-sql-driver/mysqlসঙ্গে /home/foobar/barGOPATH যেমন, ঠিক নিচের করো না,

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

এটি আপনাকে গোপথ সেট করতে এবং আদেশটি চালাতে সহায়তা করবে। কিন্তু মনে রাখবেন যে আপনি মধ্যে পাথ যোগ করেছেন gost'র pathspace । আপনি যদি কোনও স্তরের উপ-ডিরেক্টরিতে থাকেন তবে /home/foobar/barআপনি নীচের কমান্ডটি চালাতে পারেন যা সংক্ষেপে একই কাজ করবে:

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

gostGo এর একটি সহজ সরঞ্জাম যা আপনাকে GOPATHs পরিচালনা করতে এবং Go কমান্ডগুলি চালাতে সহায়তা করতে পারে। অন্যান্য গো কমান্ডগুলি চালাতে কীভাবে এটি ব্যবহার করবেন সে সম্পর্কে আরও তথ্যের জন্য আপনি কেবল চালাতে পারেন gost help goCmdName। উদাহরণস্বরূপ আপনি আরও জানতে চান install, কেবল নীচে শব্দ টাইপ করুন:

$ gost help install

আপনি প্রকল্পের README এ আরও বিশদ জানতে পারেন: https://github.com/byte16/gost/blob/master/README.md


0

'গো এনভিভ' চালান এবং দেখুন আপনার জিওপ্যাথ বর্তমানে কোথায় দিকে ইশারা করছে। আপনি যদি সেই ডিরেক্টরিতে পরিবর্তন করেন তবে আপনার 'go get..etc' কমান্ডটি কাজ করা উচিত।


0

এই সমস্যাটি আমার কাছে রাস্পবেরি পাইতে ঘটেছিল। আমি ভিএনসি ক্লায়েন্টের মাধ্যমে লগ ইন করেছি GOPATH সেট করা এবং রফতানি করা সত্ত্বেও সমস্যাটি অব্যাহত ছিল। তারপরে sudo ছাড়া "go get" কমান্ডটি চালান এবং এটি পুরোপুরি কার্যকর হয়েছিল।


-1

আমাকে রুট হিসাবে একটি অ্যাপ্লিকেশন চালাতে হয়েছিল (পোর্ট ৮০ এ ওয়েবসভারটি খুলতে), এটি আমার জন্য ত্রুটি তৈরি করেছিল, কারণ সুডো ব্যবহারকারীর স্বাভাবিক ব্যবহারকারীর চেয়ে আলাদা পরিবেশ থাকে, তাই গোপ্যাথ সেট করা হয়নি।

যদি অন্য কারও সমস্যা হয়, -Eকমান্ডটি যুক্ত করুন, এটি ব্যবহারকারীর পরিবেশ সংরক্ষণ করবে।

sudo -E go run main.go

আরও ইনফোদের জন্য এখানে আলোচনাটি দেখুন: গুগল গ্রুপ - গোপথ সমস্যা


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.