ত্রুটি সহ ইনস্টল করুন ব্যর্থ: GOPATH এর বাইরে ডিরেক্টরি এক্সএক্সএক্সএক্সের জন্য কোনও ইনস্টলনের স্থান নেই


152
~/src/go-statsd-client> echo $GOPATH
/Users/me/gopath
~/src/go-statsd-client> echo $GOROOT
/usr/local/Cellar/go/1.1.1\
~/src/go-statsd-client> go install
go install: no install location for directory /Users/me/src/go-statsd-client outside GOPATH

এটিতে প্রকল্পটি কী কাঠামোযুক্ত তা বিবেচনা করে সর্বদা একই বার্তাটি ব্যর্থ হয়। যান বিল্ড নিখুঁতভাবে কাজ করে।

এখানে আমার go env

GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/me/gopath"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.1.1"
GOTOOLDIR="/usr/local/Cellar/go/1.1.1/pkg/tool/darwin_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-common"
CGO_ENABLED="1"

এটি ম্যাক ওএসএক্স মাউন্টেন সিংহটিতে রয়েছে এবং গো হোমব্রু দিয়ে ইনস্টল করা হয়েছিল।

উত্তর:


116

আপনি যখন কোনও যুক্তি সরবরাহ করেন না go install, এটি বর্তমান ডিরেক্টরিতে প্যাকেজ ইনস্টল করার চেষ্টা করতে ডিফল্ট হয়। ত্রুটি বার্তা আপনাকে বলছে যে এটি এটি করতে পারে না কারণ বর্তমান ডিরেক্টরিটি আপনার অংশ নয় $GOPATH

অপরপক্ষে তুমি:

  • $GOPATHআপনার OME হোম ( export GOPATH=$HOME) এ সংজ্ঞায়িত করুন ।
  • আপনার উত্সটিকে বর্তমান $GOPATH( mv ~/src/go-statsd-client /User/me/gopath) এর মধ্যে সরিয়ে দিন।

উভয়ের পরে go-statsd-clientডিরেক্টরিতে গিয়ে টাইপিং go installকাজ করবে এবং তাই go install go-statsd-clientফাইল সিস্টেমের যে কোনও জায়গা থেকে টাইপ করা। নির্মিত বাইনারিগুলি প্রবেশ করবে $GOPATH/bin

কোনও সম্পর্কযুক্ত পরামর্শ হিসাবে, নাম সংঘর্ষ এড়াতে আপনি সম্ভবত আপনার প্যাকেজটির নাম ডোমেন নামের সাথে রাখতে চান (উদাহরণস্বরূপ github.com/you/go-statsd-client, যদি এটি আপনার উত্স কোডটি ধারণ করে তবে)।


5
আমার ক্ষেত্রে এই ত্রুটিটি কোনও $GOPATH/binডিরেক্টরি না থাকার কারণে হয়েছিল । এই ফোল্ডারটি তৈরি করার দরকার ছিল - আমার GOBINenv var সেট করার দরকার ছিল না ।
xentek

4
@ রবার্টরিজ যখন আমি আপনার হতাশাগুলি ভাগ করে নিচ্ছি তখন আমার উল্লেখ করা উচিত যে বেশিরভাগ অন্যান্য ভাষাগুলি আসলে এগুলি ব্যবহার করে তবে সম্ভবত সেগুলি দৃশ্যমান নয়। উদাহরণস্বরূপ, পাইথন (সরলতার জন্য বিখ্যাত একটি ভাষা) এর PYTHONHOMEপরিবর্তে GOROOTএবং PYTHONPATHপরিবর্তে রয়েছে GOPATH। এমনকি (জিসি) সি রয়েছে LIBRARY_PATH, C_INCLUDE_PATHইত্যাদি
Hut8

1
আমি export GOPATH=$PWD(একটি গোলাং ক্লোন গাছের গোড়ায় দাঁড়িয়ে) পরে এই ত্রুটিটি পেয়েছি , আপনার উত্তর সম্ভবত এই ক্ষেত্রে ত্রুটিটি ব্যাখ্যা করতে পারে না।
ulidtko

2
আমার জন্য, এটি $ গোপথে রাখা যথেষ্ট ছিল না। এটি directory GOPATH / src /
টমাস

9
আমি নিশ্চিত যে এর অস্তিত্বের ন্যায্যতা দেওয়ার জন্য খুব ভাল কারণ আছে GOPATHতবে বাইরের দিক থেকে অনুসন্ধান করা এটিকে পুরোপুরি নির্বোধ বলে মনে হয়। কেন আমি বিশ্বব্যাপী বিভিন্ন পরিবেশের পরিবর্তন ঘটান মাত্র স্থানীয়ভাবে একটি প্যাকেজ নির্মাণের 🤔 আছে
পুনর্বহাল মনিকা - আলেকজান্ডার

192

কোনও ওএস এক্স ব্যবহারকারী এবং ভবিষ্যতের আমার জন্য, আপনাকে GOBINইনস্টল এবং এ এই বিভ্রান্তিকর বার্তাটি এড়াতে সেট করতে হবেgo get

mkdir bin 
export GOBIN=$GOPATH/bin

4
আপনার সেটGOBIN করার দরকার নেই । যদি এটিতে সেট করে $GOPATH/binকোনও পার্থক্য আসে, তবে আপনার সেটআপের সাথে অন্য কিছু ভুল হয়েছে বা আপনি এমন কিছু করছেন যা আপনার করা উচিত নয়।
ডেভ সি

29
@ ডেভিসি আমারও ওএস এক্সে একই সমস্যা রয়েছে the গবিন সেট করা এটি ঠিক করে দিয়েছে।
n জোশি

2
আপনাকে অনেক ধন্যবাদ, দেখে মনে হচ্ছে অফিসিয়াল ওএস এক্স প্যাকেজের সাথে কিছু ভুল হয়েছে যা আপনাকে অবশ্যই গবিন সেট করা দরকার, এটি এখনও 10.11.4 (এল ক্যাপ্টেন) এর জন্য বৈধ
জোনাস ডি

3
এটি উবুন্টু ১.0.০৪-এর জন্য ঠিক ঠিক, http://golang.org/dl/
সুসাইড

1
এটি মাওস সিয়েরা 10.12.3 এ পুরোপুরি কাজ করেছে ধন্যবাদ!
গ্রেগ হিলস্টন

30

আপনি GOPATH ফোল্ডারের বাইরে একটি ডিরেক্টরিতে গো ইনস্টল ব্যবহার করছেন । আপনার GOBIN env ভেরিয়েবল সেট করুন, বা GOPATH এর মধ্যে src ফোল্ডারটি সরান।

GOPATH/
     bin/
     src/
       go-statsd-client/

আরও তথ্য: বিল্ড উত্স কোড , লাইন 296 যান


আমি উপরের পরামর্শটি চেষ্টা করেছি (GOPATH = $ হোম রফতানি করুন), তারপরে আমার প্রাসঙ্গিক ডিরেক্টরিতে সরিয়ে নিয়েছি (যেখানে আমি আমার কোড লিখছি) এবং গো ইনস্টল টাইপ করেছি ... একই ফলাফল ইনস্টল করুন: ডিরেক্টরিতে কোনও ইনস্টল করার জায়গা নেই ....
স্ট্যান

লাইন 296 কেবল একটি রিটার্ন স্টেটমেন্ট?
ফেলিক্স রাবে 19

1
আমি আমার GOBIN env
cevaris

আমি এই সমাধানের জন্য গিয়েছিলাম।
মিহামিনা রাকোটোমন্ডিম্বি

19

আপনার উভয় GOPATHএবং সেটআপ করা প্রয়োজন GOBIN। আপনি নিম্নলিখিতটি সম্পন্ন করেছেন তা নিশ্চিত করুন (দয়া করে ~/goআপনার পছন্দসই পরিবর্তে GOPATHএবং পরিবর্তিত পরিবর্তন করুন GOBIN)। এই পরীক্ষা করা হয় Ubuntu 16.04 LTS

export GOPATH=~/go 

mkdir ~/go/bin

export GOBIN=$GOPATH/bin

নির্বাচিত উত্তরটি আমার জন্য সমস্যার সমাধান করেনি।


আমি উভয়ই 16.04 এ সংজ্ঞায়িত করেছি এবং এটি আমার পক্ষে কার্যকর হয়নি।
ক্যাটসকুল

5

আপনার চয়ন করা GOPATH ডিরেক্টরিতে আপনার কাছে 3 টি ডিরেক্টরি থাকতে হবে।

GOPATH
     /bin
     /src
       /someProgram
        program.go
       /someLibrary
        library.go
     /pkg

তারপরে আপনি কিছু go installপ্রোগ্রামের ভিতরে চলে যাবেন (যা বিনে একটি এক্সিকিউটেবল রাখে) বা কিছু লাইবারি (যা পিকেজিতে একটি লাইব্রেরি রাখে)।


1
এটি ইন্টারনেটে ২ ঘন্টা অনুসন্ধান করার পরে আমার পক্ষে কাজ করেছিল।
বিষালকনশীদ

3

আমার উইন্ডোজ এ সমস্যা ছিল।

আমার সমস্যাটি ছিল আমার %GOPATH%পরিবেশের পরিবর্তনশীলটি সেট করা হয়েছিল

C:\Users\john\src\goworkspace

পরিবর্তে

C:\Users\john\src\goworkspace\

শেষে অনুপস্থিত ট্রেলিং স্ল্যাশ যুক্ত করা আমার জন্য এটি স্থির করে।


1
পবিত্র গাভী আপনি কেবলমাত্র আমাকে সম্ভাব্য বহু ঘন্টা ব্যাথার মাথা থেকে বাঁচিয়েছেন। আমি উবুন্টুতে আছি তবে একই সমস্যা ছিল। ফোল্ডারের নাম, ফোল্ডার কাঠামো, src / github.com / xyabz / এবং সমস্ত কিছুর সাথে প্রিফেসিং সম্পর্কে অত্যন্ত পরিশ্রমী ছিল তবে ইনস্টল করা আমাকে ত্রুটি দেয় giving
anon58192932

3

এটির মূল্যের জন্য, এখানে আমার .বাশ_ প্রোফাইলে, হোমব্রুয়ের সাথে ইনস্টল করার পরে এটি পরমাণুর সাথে একটি ম্যাকের জন্য আমার পক্ষে ভাল কাজ করে:

export GOROOT=`go env GOROOT`
export GOPATH=/Users/yy/Projects/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

2

আমার ক্ষেত্রে (OS X এর) এতে কারণ আমি সেট করেছেন হয়েছিল GOPATHকরার /home/username/go(বই অনুযায়ী) পরিবর্তে/Users/username/go


2

আমি উইন্ডোতে আছি, এবং আমি এটি go help gopathসিএমডি কমান্ড দিয়ে পেয়েছি এবং নির্দেশের মধ্যে সাহসী লেখাটি পড়েছি,

যে হলে আপনি যে কোডটি ইনস্টল করতে wnat হয় ..BaseDir...\SomeProject\src\basic\set, GOPATH কোড হিসেবে একই অবস্থানে থাকা উচিত নয়, এটা ঠিক বেজ প্রকল্প থেকে DIR হওয়া উচিত: ..BaseDir...\SomeProject

গোপথ পরিবেশ পরিবর্তনশীল গো কোডের সন্ধানের জন্য স্থানগুলি তালিকাবদ্ধ করে। ইউনিক্সে, মানটি একটি কোলন-বিভাজিত স্ট্রিং। উইন্ডোজে মানটি একটি সেমিকোলন-বিচ্ছিন্ন স্ট্রিং। পরিকল্পনা 9 এ, মানটি একটি তালিকা।

যদি পরিবেশের পরিবর্তনশীলটি সেট না করা থাকে তবে ব্যবহারকারীর হোম ডিরেক্টরিতে "গো" নামে একটি উপ-ডিরেক্টরিতে গোপথ ডিফল্ট হয় (directory হোম / ইউনিক্সে যান,% ইউরোপ্রোফাইলে% Windows উইন্ডোতে যান), যদি না ডিরেক্টরিটি ডিরেক্টরিতে বিতরণ না করে holds বর্তমানের জিওপ্যাথটি দেখতে "যান এনভো গোপথ" চালান।

একটি কাস্টম GOPATH সেট করতে https://golang.org/wiki/SettingGOPATH দেখুন ।

GOPATH- এ তালিকাভুক্ত প্রতিটি ডিরেক্টরিতে অবশ্যই একটি নির্ধারিত কাঠামো থাকতে হবে:

Src ডিরেক্টরিতে সোর্স কোড রয়েছে। Src এর নীচের পাথটি আমদানির পথ বা সম্পাদনযোগ্য নাম নির্ধারণ করে।

Pkg ডিরেক্টরি ইনস্টল করা প্যাকেজ অবজেক্ট ধারণ করে। গো ট্রি হিসাবে, প্রতিটি টার্গেট অপারেটিং সিস্টেম এবং আর্কিটেকচার জুটির নিজস্ব পিকেজি (পিকেজি / জিওএস_জিওগ্রাচ) এর নিজস্ব উপ-ডিরেক্টরি রয়েছে।

ডিআইআর যদি গোপাতে তালিকাভুক্ত ডিরেক্টরি হয় তবে ডিআইআর / এসআরসি / ফু / বারে উত্স সহ একটি প্যাকেজ "foo / বার" হিসাবে আমদানি করা যায় এবং এর সংকলিত ফর্মটি "DIR / pkg / GOOS_GOARCH / foo / bar.a এ ইনস্টল করা আছে "।

বিন ডিরেক্টরিতে সংকলিত কমান্ড রয়েছে। প্রতিটি কমান্ডকে তার উত্স ডিরেক্টরিতে নামকরণ করা হয় তবে কেবল চূড়ান্ত উপাদান নয় পুরো পথটিই। অর্থাৎ DIR / src / foo / quux এর উত্স সহ কমান্ডটি DIR / bin / quux এ ইনস্টল করা আছে, DIR / bin / foo / quux নয়। "Foo /" উপসর্গটি ছিটানো হয়েছে যাতে আপনি ইনস্টলড কমান্ডগুলি পেতে আপনার রাস্তায় DIR / বিন যুক্ত করতে পারেন। যদি গবিন এনভায়রনমেন্ট ভেরিয়েবলটি সেট করা থাকে তবে কমান্ডগুলি ডিআর / বিনের পরিবর্তে যে ডিরেক্টরিটির নাম দেয় সেটিতে ইনস্টল করা হয়। গবিন অবশ্যই একটি পরম পথ হতে হবে।

এখানে ডিরেক্টরি উদাহরণ একটি উদাহরণ:

GOPATH=/home/user/go

/home/user/go/
    src/
        foo/
            bar/               (go code in package bar)
                x.go
            quux/              (go code in package main)
                y.go
    bin/
        quux                   (installed command)
    pkg/
        linux_amd64/
            foo/
                bar.a          (installed package object)

..........

যদি গোপথ বেস প্রকল্পের ডিআইআর এ সেট করা থাকে এবং এখনও এই সমস্যাটি থাকে তবে উইন্ডোতে আপনি GOBIN কে Base Project DIR\binবা হিসাবে সেট করতে চেষ্টা করতে পারেন %GOPATH%\bin


1

দৌড়ানোর সময় সাবধানতা অবলম্বন করুন

export GOPATH=$HOME

ধরে নিন যে আপনার কোড সম্পর্কিত নির্দিষ্ট জায়গায় উপস্থিত রয়েছে GOPATH। সুতরাং, পরিবর্তে, আপনি কোনও গো কমান্ড চালাতে ডকার ব্যবহার করতে পারেন:

docker run -it -v $(pwd):/go/src/github.com/<organization name>/<repository name> golang

এবং এখন আপনি যে কোনও গোলং কমান্ড ব্যবহার করতে পারেন, উদাহরণস্বরূপ:

go test github.com/<organization name>/<repository name> 

0

উইন্ডোতে, আমি যখন জিওপ্যাথ এনভায়রনমেন্ট ভেরিয়েবলটি সেট করি তখন আমার সিএমডি উইন্ডোটি ইতিমধ্যে খোলা ছিল। এটির কার্যকর হওয়ার জন্য প্রথমে আমাকে সেন্টিমিডিটি বন্ধ করে আবার খুলতে হয়েছিল re


0

সমস্যাটি হ'ল আপনি যে প্যাকেজ ডিরেক্টরিটিতে নেই যা গো গো ফাংশন সহ গো ফাইল আছে এবং ইনস্টল করুন গো আপনি যে ইনস্টল করতে চান সেই কমান্ডটি (গো মেন ফাংশন সহ ফাই ফাই ফাইল) পাবেন না।

$ cd /path/to/file-with-main-function.go

এবং তারপরে চালান:

$ go install 

-1

ওএসএক্স মোজাভে 10.14 goসাধারণত ইনস্টল করা থাকে /usr/local/go

সুতরাং, এই ENV গুলি সেটআপ করুন এবং আপনার যাওয়া ভাল হওয়া উচিত।

export GOPATH=/usr/local/go && export GOBIN=/usr/local/go/bin

এছাড়াও, এটি আপনার bash_profileবা zsh_profileএটির কাজ করে যোগ করুন।

echo "export GOPATH=/usr/local/go && export GOBIN=/usr/local/go/bin" >> ~/.bash_profile && source ~/.bash_profile

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