GOPATH এবং GOROOT এর মানগুলি কী হওয়া উচিত?


323

আমি এভাবে ডুজার ইনস্টল করার চেষ্টা করছি :

$ goinstall github.com/ha/doozer

আমি এই ত্রুটিগুলি পেয়েছি।

goinstall: os: go/build: package could not be found locally
goinstall: fmt: go/build: package could not be found locally
goinstall: io: go/build: package could not be found locally
goinstall: reflect: go/build: package could not be found locally
goinstall: math: go/build: package could not be found locally
goinstall: rand: go/build: package could not be found locally
goinstall: url: go/build: package could not be found locally
goinstall: net: go/build: package could not be found locally
goinstall: sync: go/build: package could not be found locally
goinstall: runtime: go/build: package could not be found locally
goinstall: strings: go/build: package could not be found locally
goinstall: sort: go/build: package could not be found locally
goinstall: strconv: go/build: package could not be found locally
goinstall: bytes: go/build: package could not be found locally
goinstall: log: go/build: package could not be found locally
goinstall: encoding/binary: go/build: package could not be found locally

3
@ উপরের লিঙ্কটি এখন আর বৈধ নয়
জোরিট রিডিজক

প্রকল্পটি প্রকল্পটি অপ্রচলিত হয়ে ওঠে। ওএসএক্স সম্পর্কিত সম্পর্কিত সমস্যাটি এখানে পাওয়া যায়: github.com/go-lang-plugin-org/go-lang-idea-plugin/issues/841
মতিন

দ্রষ্টব্য: ডিফল্টরূপে, GOPATH আপনার জন্য গো 1.8 (2017) এ সেট করা হবে। দেখুন নিচের আমার উত্তর
VonC

হ্যাঁ আমি এগুলিও বিভ্রান্তিকর অবস্থায় পেয়েছি, গডোকরা যেভাবে সংগঠিত হয়েছে। এটি সহায়তা করেছে: albertech.blogspot.com/2017/01/…
জার

1
পছন্দ করেছেন goinstall সত্যই প্রাচীন প্রাক্তন Go1 এবং এটি 2012 সালের পরে থেকে নেই
D

উত্তর:


310

GOPATHডকুমেন্টেশনে আলোচনা করা হয়েছেcmd/go :

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

GOPATH স্ট্যান্ডার্ড গো গাছের বাইরে প্যাকেজগুলি পেতে, তৈরি করতে এবং ইনস্টল করতে অবশ্যই সেট করতে হবে।

GOROOTইনস্টলেশন নির্দেশাবলী আলোচনা করা হয় :

গো বাইনারি বিতরণগুলি ধরে নিয়েছে যে সেগুলি ইনস্টল করা হবে /usr/local/go(বা c:\Goউইন্ডোজের অধীনে) তবে গো সরঞ্জামগুলি অন্য কোনও জায়গায় ইনস্টল করা সম্ভব। এই ক্ষেত্রে আপনাকে অবশ্যই সেই GOROOTপরিবেশটি পরিবর্তনশীল সেট করতে হবে যে ডিরেক্টরিটি এটি ইনস্টল করা হয়েছিল to

উদাহরণস্বরূপ, আপনি যদি নিজের হোম ডিরেক্টরিতে যান তবে আপনার নীচের আদেশগুলি এতে যুক্ত করতে হবে $HOME/.profile:

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

বিঃদ্রঃ: GOROOT কাস্টম স্থানে ইনস্টল করার সময় অবশ্যই সেট করতে হবে।

( ক্রিস বাঞ্চের উত্তরের আপডেট সংস্করণ ।)


44
গোপথ সম্পর্কিত আরও বিস্তৃত তথ্য হ'ল কোড লিখতে হয়। goকমান্ডটি বোঝার জন্য সেখানকার তথ্যের একটি উপলব্ধি প্রয়োজন , যা গোয়ের সাথে কাজ করার জন্য প্রয়োজনীয়। উদাহরণস্বরূপ, goinstallওপিতে এখন ব্যবহার করা উচিত go get
সোনিয়া

13
যাওয়ার প্রকৃত ইনস্টলের পথটিও নোট করুন। উদাহরণস্বরূপ, একটি ডিফল্ট homebrew সেট-আপে, homebrew গিয়ে ইনস্টল করবে /usr/local/Cellar/go/। এই ক্ষেত্রে রফতানি পথটি সেট করা উচিত export GOROOT=/usr/local/Cellar/go/{version}এবং সাথে export PATH=$PATH:$GOROOT/bin
একিলবি

10
export GOROOT=/usr/local/Cellar/go/1.2/libexec/মাতাল দিয়ে আমার কাজ করতে আমাকে করতে হয়েছিল ।
স্টিভেন সোরোকা

:; (অনেক তাই ধন্যবাদ যার ফলে এটি না) কিন্তু আমি কারণ অ্যাপ্লিকেশন অভিযোগ আমার সম্পাদন করা অবিন্যস্ত কোড "রয়েছে বলে মনে হচ্ছে" যে এই সম্পাদনাটি পরামর্শ দিতে পারেন না
ওয়াইল্ডকার্ড

Go 1.10 থেকে শুরু করে, GOROOT আনসেট করা না থাকলে গো সরঞ্জামটি তার নিজের অবস্থান দ্বারা এটি বের করার চেষ্টা করবে। আমি লিঙ্কটিও পেস্ট করতে পারি না কারণ স্ট্যাক এক্সচেঞ্জের আইওএস অ্যাপে পেস্ট কাজ করে না। এখনই খুব হতাশ frust
ওয়াইল্ডকার্ড

97

এটি আমার একটি সহজ সেটআপ:

directory for go related things: ~/programming/go
directory for go compiler/tools: ~/programming/go/go-1.4
directory for go software      : ~/programming/go/packages

গুরূট, গোপথ, পাথ নিম্নলিখিত হিসাবে সেট করা আছে:

export GOROOT=/home/user/programming/go/go-1.4
export GOPATH=/home/user/programming/go/packages
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

সুতরাং, সংক্ষেপে:

GOROOT হ'ল সংস্থাপক / সরঞ্জামগুলির জন্য যা গো ইনস্টলেশন থেকে আসে।
গোপথ হ'ল আপনার নিজস্ব প্রকল্পসমূহ / তৃতীয় পক্ষের গ্রন্থাগারগুলির জন্য ("Go get" দিয়ে ডাউনলোড করুন)।


আমি মনে করি এই উত্তরটি বোঝা আরও সহজ কারণ ফোল্ডার কাঠামোর বিরুদ্ধে ম্যাপিং রয়েছে।
এইচ-রায়

গোপথের মধ্যে নন-গো ফাইলগুলি সহ পুরো প্রকল্প গাছ (যেমন গিট) অন্তর্ভুক্ত রয়েছে - যেমন চিত্র, স্ক্রিপ্ট, ফাইল তৈরি করা ইত্যাদি?
সার্জ মেরজলিয়াভভ

52

প্রথম রান go env
আপনি যদি দেখতে পান যে গো ইনস্টল করা নেই, আপনি এটি homebrewপ্যাকেজ এবং / অথবা অন্যান্য উপায়ে বা এর মাধ্যমে ইনস্টল করতে পারেন ।
আপনি যদি আউটপুট দেখতে পাচ্ছেন তবে আপনার Goইনস্টল করা আছে।
এটি আপনাকে যে সমস্ত vভুটি সেট করা আছে এবং নেই তা দেখায়।

আপনি যদি খালি দেখতে পান GOROOT:

  1. চালান which go(আমার কম্পিউটারে /usr/local/go/bin/go:)
  2. তারপরে রফতানি করুন export GOROOT=/usr/local/go

আপনি যদি খালি দেখতে পান GOPATH:

  1. আমার ক্ষেত্রে গো প্রকল্পগুলির জন্য আপনার কম্পিউটারে যে কোনও জায়গায় ডিরেক্টরি তৈরি করুন: ~/GO_PROJECTS
  2. তারপর export GOPATH=~/GO_PROJECTS

2
which goএটা আমার জন্য। এটি চকোলেটি ব্যবহার করে পূর্ববর্তী ইনস্টলেশন থেকে অন্য Go ইনস্টলেশন অবস্থান ব্যবহার করছিল। সেই ফোল্ডারটি মোছা হয়েছে এবং এটি PATH ভেরিয়েবল থেকে সরানো হয়েছে। এখন এটা কাজ করছে. ধন্যবাদ!
sgarg

which goকমান্ডটি উইন্ডোজ in এ আমার জন্য কার্যকর হয়নি How আমি এই কমান্ডটি কোথায় চালাতে হবে তা আমি কীভাবে খুঁজে পাই
ফার্স্টপোস্টকমেন্টার

সংশ্লিষ্ট উইন্ডোজ কমান্ডটি হ'ল where goএটি আপনাকে কার্যকর করা ফাইলের পথ দেখাবে
ফালকো

export GOPATH=~/GO_PROJECTSকাজটি করেছেন
থামারাইসেলভাম

39

GOPATHএখানে আলোচনা করা হয় :

GOPATHএনভায়রনমেন্ট ভেরিয়েবল

GOPATH গোস্টের কোড, প্যাকেজ অবজেক্টস এবং এক্সিকিউটেবলের সন্ধান পাওয়া যেতে পারে সেই পথগুলির একটি কোলন-বিচ্ছিন্ন তালিকায় সেট করা যেতে পারে।

GOPATHগো গাছের বাইরে আপনার নিজস্ব কোড এবং বাহ্যিক গ্রন্থাগারগুলি তৈরি করতে এবং ইনস্টল করতে গিনস্টল ব্যবহার করার জন্য একটি সেট করুন ( এবং মেকফাইলগুলি লেখা এড়াতে)।

এবং GOROOTএখানে আলোচনা করা হয় :

$GOROOTগো গাছের মূল প্রায়শই $HOME/go। ডিরেক্টরিটি যেখানে all.bashচালিত হয় তার পিতামাতার কাছে এটি ডিফল্ট হয় । আপনি যদি সেট না করা চয়ন $GOROOTকরেন, প্রচলিত মেকফিলগুলি ব্যবহার করে গো প্রোগ্রামগুলি বিকাশ করার সময় আপনার অবশ্যই মেক বা গেমকে না দিয়ে গোমেক চালাতে হবে।


সুতরাং আমি যদি ~ / প্রকল্পে / যেতে ইনস্টল করেছি, ওএস, এফএমটি ইত্যাদির জন্য ভেরিয়েবলের মানগুলি কী হওয়া উচিত?
jshen

2
আপনি কোথায় যখন গো ইনস্টল করবেন না sudo apt-get install golang?
weberc2

9
@ ওয়েবারসি 2 আপনি যদি চালনা করেন তবে go envসেই তথ্যটি আমার কাছে দেখা উচিত ছিল,/usr/lib/go/
আন্দ্রে

19

আমি go help gopathদস্তাবেজগুলি পড়েছি এবং এখনও অবিশ্বাস্যরূপে বিভ্রান্ত হয়ে পড়েছি , তবে অন্য গো ডক পৃষ্ঠা থেকে এই ছোট্ট ন্যাকেটটি পেয়েছি:

GOPATH পরিবেশের পরিবর্তনশীল আপনার কর্মক্ষেত্রের অবস্থান নির্দিষ্ট করে। গো কোডটি বিকাশ করার সময় আপনার একমাত্র পরিবেশের পরিবর্তনশীল সম্ভবত সেট করতে হবে।

http://golang.org/doc/code.html#GOPATH


10

GOPATH উচিত না যান ইনস্টলেশন নির্দেশ, বরং আপনার কর্মক্ষেত্রে (দেখুন https://golang.org/doc/code.html#GOPATH )। যখনই আপনি Go get or go ইনস্টল করে কিছু প্যাকেজ ইনস্টল করবেন, এটি GOPATH এর মধ্যে অবতরণ করবে। এ কারণেই এটি আপনাকে সতর্ক করে দিয়েছে, আপনি অবশ্যই চান না যে আপনার আনুষ্ঠানিক ইনস্টলেশনতে ইন্টারনেট থেকে র্যান্ডম প্যাকেজগুলি ফেলে দেওয়া হোক।


9

গো 1.8 (কিউ 2 2017) দিয়ে শুরু করে, গোপথ আপনার জন্য ডিফল্টরূপে $ হোম / গোতে সেট করা হবে

দেখুন ইস্যু 17262 ও রব পাইক এর মন্তব্য:

$HOME/goএটা হবে.
এর সেরা কোনও উত্তর নেই তবে এটি সংক্ষিপ্ত এবং মিষ্টি, এবং $HOME/goইতিমধ্যে উপস্থিত থাকলে কেবলমাত্র নামটি বেছে নেওয়া সমস্যা হতে পারে , যা ইতিমধ্যে ইনস্টলড থাকা বিশেষজ্ঞরা বুঝতে পারবেন এবং বুঝতে পারবেন GOPATH


এত সহজ একটি বিষয় এত জটিল হয়ে উঠবে কী করে! এখানে সেরা উত্তরের জন্য ধন্যবাদ।
ডডজি_কোডার

@dodgy_coder আসলে ... আমার অন্যান্য জবাব প্রথম দুই লাইন তাকান: stackoverflow.com/a/37905102/6309 ;: এ সব কোন GOPATH) সেই আপ এমনকি সহজ হচ্ছে শেষ হতে পারে! স্ট্যাকওভারফ্লো . com/a/48914523/6309 এ আরও বিশদ ।
ভনসি

হ্যাঁ আমি সম্মত, আপনি ডিফল্টর সাথে গেলে গোপথের সত্যই প্রয়োজন হয় না, এটি কি সঠিক? গুগল অ্যাপ ইঞ্জিন (গো স্ট্যান্ডার্ড) বিকাশের পরিবেশের জন্য এটি প্রয়োজনীয় হওয়ার কারণে আমার এটিকে যাইহোক সেট করা দরকার। তারা আসলে আপনাকে গোপথ সেট করতে বলে, তবে এটিতে কী মান সেট করতে হবে তা আপনাকে জানায় না ..!
dodgy_coder

@ ডডজি_কোডার হ্যাঁ, ডিফল্টরূপে, গো একটি নির্ধারিত পূর্বনির্ধারিত মান PATH প্রকল্পের সন্ধান করবে।
ভনসি

6

উপরে উল্লিখিত:

GOPATH পরিবেশের পরিবর্তনশীল আপনার কর্মক্ষেত্রের অবস্থান নির্দিষ্ট করে।

উইন্ডোজের জন্য , এটি আমার জন্য কাজ করেছে (এমএস-ডস উইন্ডোতে):

set GOPATH=D:\my_folder_for_go_code\

এটি একটি GOPATH পরিবর্তনশীল তৈরি করে যা Ms-do স্বীকৃত হিসাবে নিম্নলিখিত হিসাবে ব্যবহৃত হয়:

cd %GOPATH%

3

GOROOTবিশেষভাবে সম্পর্কে , Go 1.9 এটি স্বয়ংক্রিয়ভাবে এর ইনস্টলেশন পথে সেট করবে।
আপনি যদি একাধিক যান ইনস্টল 1.9.x অপরকে আহ্বানের সেট হবে GOROOTথেকে /path/to/go/1.9(আগে, যদি সেট না হয়, তাহলে এর মত একটি ডিফল্ট পাথ অধিকৃত /usr/local/goবাc:\Go )।

দেখুন সাফ প্রতীক যান পর্যালোচনা 53370 :

go toolএখন পথ থেকে তা গাছ ইনস্টল এর যান রুট খোজা প্রচেষ্টা চালানো হয়েছিল ব্যবহার করবে
এর অর্থ হ'ল পুরো গো ইনস্টলেশনটি যদি কোনও নতুন স্থানে স্থানান্তরিত হয় তবেgo tool যথারীতি কাজ করা চালিয়ে উচিত।

এটি GOROOTপরিবেশে স্থাপন করে ওভাররেড করা যেতে পারে , যা কেবলমাত্র অস্বাভাবিক পরিস্থিতিতে করা উচিত।
মনে রাখবেন যে এটি runtime.GOROOT()ফাংশনের ফলাফলকে প্রভাবিত করে না , যা মূল ইনস্টলেশন অবস্থানটি রিপোর্ট করতে থাকবে; এটি পরবর্তী প্রকাশে স্থির করা যেতে পারে।


0

2020 এবং গো সংস্করণ 1.13+ হিসাবে, উইন্ডোজে GOPATH আপডেট করার সর্বোত্তম উপায় হ'ল কমান্ড প্রম্পটে টাইপ করা:

setx GOPATH C:\mynewgopath

0

এখানে একটি সমাধান (একক ব্যবহারকারী):

GOROOT=$HOME/.local # your go executable is in $GOROOT/bin
GOPATH=$HOME/.gopath
PATH=$GOROOT/bin:$GOPATH/bin:$PATH

goযদি আপনি পরিবর্তন অভিযোগ .gopathকরার .go

আমি আশা করি তারা কীভাবে rust/cargoছেলেরা করেছে এবং তারা সব কিছু এক জায়গায় রেখে দিয়েছে।


-1

ওক্সে, আমি ব্রিউয়ের সাথে ইনস্টল করেছি, সেটিংসটি আমার জন্য কাজ করে

GOPATH="$HOME/my_go_work_space" //make sure you have this folder created

GOROOT="/usr/local/Cellar/go/1.10/libexec"

-1

আমাকে সংযোজন করতে হয়েছিল

export GOROOT=/usr/local/Cellar/go/1.10.1/libexec

ম্যাক ওএস এক্সে আমার ~ / .bash_ প্রোফাইলে


-1

এমন একটি কেস আছে যেখানে আমরা যখন গো ব্যবহার করি তখন এটি সমস্ত গো ফাইলগুলি সংকলন করে।

সুতরাং আসুন আমরা বলি যে আমাদের একটি ফাইল মেইন.গো ছিল এবং পরে আমরা বর্তমান ফাইলটি মেইন_ল্ড.গোতে পরিবর্তন করে এবং তারপরে আমাদের নতুন মেইন.গো ফাইল যুক্ত করেছি। তারপরে আমরা যখন আমাদের অ্যাপটি তৈরি করব তখন সমস্ত গো ফাইলগুলি সংকলিত হবে। সুতরাং যে ত্রুটিটি ঘটছে তা অন্য কিছু গো ফাইলে সংকলনের ত্রুটির কারণে হতে পারে।


-1

একবার গো ল্যাং ইনস্টল হয়ে গেলে GOROOT হ'ল ইনস্টলেশনের মূল ডিরেক্টরি।

আমি যখন উইন্ডোজ সি: \ ডিরেক্টরিতে গো ল্যাং বাইনারিটি বিস্ফোরিত করি তখন আমার GOROOT সি: \ যেতে হবে। যদি উইন্ডোজ ইনস্টলার দিয়ে ইনস্টল করা থাকে তবে এটি সি: \ প্রোগ্রাম ফাইলগুলি \ গো (বা সি: \ প্রোগ্রাম ফাইল (x86) \ যেতে পারে, 64৪-বিট প্যাকেজের জন্য)

 GOROOT = C:\go

আমার গোপথ হ'ল গো ল্যাং সোর্স কোড বা কর্মক্ষেত্রের অবস্থান while

যদি আমার গো ল্যাং উত্স কোডটি সি: \ ব্যবহারকারীগণ \\ GO_Workspace এ অবস্থিত থাকে তবে আপনার GOPATH নীচের মত হবে:

 GOPATH = C:\Users\<xyz>\GO_Workspace

-1

আপনাকে সুস্পষ্টভাবে সেট করার দরকার নেই GOROOT(গো এর আধুনিক সংস্করণগুলি আপনার দ্বারা চালিত গো বাইনারিটির অবস্থানের উপর ভিত্তি করে তাদের নিজেরাই এটি নির্ধারণ করতে পারে)।

এছাড়াও, এর সাথে কাজ করার চেষ্টা করার সময় অনুসরণ ত্রুটি পেয়েছে vgo:

go: modules disabled inside GOPATH/src by GO111MODULE=auto; see 'go help modules'

GOROOT মুছে ফেলা হচ্ছে, আমার GOPATH আপডেট export GO111MODULE="on"করে সমস্যাটি সমাধান করেছে।

গোপথ এখানে দেখুন

GOPATH পাথের কোলন-বিচ্ছিন্ন তালিকায় সেট করা যেতে পারে যার ভিতরে গো কোড, প্যাকেজ অবজেক্ট এবং এক্সিকিউটেবলের সন্ধান পাওয়া যেতে পারে।

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



-3

আপনি যদি ডিস্ট্রো গো ব্যবহার করছেন তবে আপনার অন্তর্ভুক্ত ফাইলগুলি কোথায় রয়েছে তা নির্দেশ করা উচিত, উদাহরণস্বরূপ:

$ rpm -ql golang | grep include
/usr/lib/golang/include

(এটি ফেডোরার 20 এর জন্য)

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