Ubuntu पर GOPATH: अपना दिमाग (और कोड) कैसे न खराब करें
\n\nआपने शायद इसका सामना किया होगा: अभी-अभी Ubuntu पर Go इंस्टॉल किया, टर्मिनल खोला, go run main.go लिखा, और जवाब में सन्नाटा। या, इससे भी बुरा, — GOPATH का उल्लेख करते हुए त्रुटियों का लाल सागर। यदि आपने इस समस्या को गूगल किया है, तो आपने लगभग निश्चित रूप से Stack Overflow पर हजारों व्यूज़ वाला वह प्रश्न देखा होगा: "How do I SET the GOPATH environment variable on Ubuntu? What file must I edit?"। परिचित दर्द? क्लब में आपका स्वागत है।
मैंने खुद एक बार आधा दिन यह समझने में बिताया कि Go मेरे पैकेज क्यों नहीं देख रहा है, जबकि मैंने "सब कुछ सही किया था"। स्पॉयलर: मैंने गलत किया। इस लेख में हम Ubuntu पर GOPATH सेट करने में होने वाली शीर्ष गलतियों पर चर्चा करेंगे, उनसे बचना सीखेंगे और अंत में पर्यावरण को इस तरह सेट करेंगे कि यह स्विस घड़ी की तरह काम करे।
\n\nGOPATH क्या है और यह अभी भी महत्वपूर्ण क्यों है?
\n\nगहराई में जाने से पहले, आइए याद करें कि GOPATH क्या है। Go की दुनिया में (विशेषकर 1.16 से पहले के संस्करणों में) यह एक पवित्र गाय थी। GOPATH, Go कार्यशील निर्देशिका का पथ है, जहाँ आपके स्रोत कोड, संकलित बाइनरी और तृतीय-पक्ष पैकेज संग्रहीत होते हैं। डिफ़ॉल्ट रूप से, Ubuntu में यह $HOME/go पर सेट होता है, लेकिन कई डेवलपर्स (विशेषकर जो कई प्रोजेक्ट्स पर काम करते हैं) इसे बदल देते हैं।
Go Modules (Go 1.11 से शुरू) के आगमन के साथ, GOPATH के मैन्युअल प्रबंधन की आवश्यकता कम हो गई, लेकिन यह पूरी तरह से गायब नहीं हुई। यदि आप पुराने प्रोजेक्ट्स पर काम कर रहे हैं, go get का उपयोग कर रहे हैं, या बस चाहते हैं कि go install बाइनरी को सुविधाजनक स्थान पर रखे — तो आपको अभी भी इस वेरिएबल से दोस्ती करनी होगी।
Ubuntu पर GOPATH सेट करते समय शीर्ष 5 गलतियाँ
\n\nमैंने सबसे सामान्य गलतियाँ एकत्र की हैं जिन पर शुरुआती (और केवल वे ही नहीं) कदम रखते हैं। जाँच करें कि क्या आप अभी इनमें से किसी एक गड्ढे में नहीं गिरे हैं।
\n\nगलती #1: गलत फ़ाइल को संपादित करना
\nStack Overflow पर सबसे लोकप्रिय प्रश्न। उपयोगकर्ता /etc/environment, /etc/profile या यहाँ तक कि /etc/bash.bashrc में जाते हैं। हाँ, यह काम करेगा, लेकिन यह एक बुरी प्रथा है। सिस्टम फ़ाइलें सिस्टम सेटिंग्स के लिए होती हैं। आपका GOPATH एक व्यक्तिगत वेरिएबल है, और इसका स्थान उपयोगकर्ता कॉन्फ़िगरेशन में है।
सही तरीका: Bash के लिए ~/.bashrc या (यदि login shell का उपयोग कर रहे हैं) ~/.profile संपादित करें। यदि आप Zsh पर हैं, तो यह ~/.zshrc है।
गलती #2: एक्सपोर्ट करना भूल जाना
\nअक्सर कॉन्फ़िगरेशन में देखता हूँ: GOPATH=$HOME/go बिना export के। export के बिना, वेरिएबल चाइल्ड प्रोसेसेस (आपकी IDE और go build सहित) को पास नहीं होगा।
सही सिंटैक्स:
\nexport GOPATH=$HOME/go\nexport PATH=$PATH:$GOPATH/bin\n\nगलती #3: टर्मिनल को रीलोड नहीं किया
\nआपने .bashrc को संपादित किया, सेव किया, और फिर बैठकर खाली echo $GOPATH देखते रहे। जब तक आप परिवर्तन लागू नहीं करते, कोई जादू नहीं होगा। कमांड source ~/.bashrc आपका सबसे अच्छा दोस्त है।
गलती #4: Go Modules के साथ विरोध
\nयदि आप प्रत्येक प्रोजेक्ट के लिए go mod init का उपयोग कर रहे हैं, तो GOPATH हस्तक्षेप कर सकता है। खासकर यदि आप $GOPATH/src के अंदर काम करने का प्रयास कर रहे हैं। आधुनिक Go को इसकी आवश्यकता नहीं है, लेकिन यदि आप हठपूर्वक प्रोजेक्ट को ~/go/src/myproject में रखते हैं, तो अप्रत्याशित त्रुटियों के लिए तैयार रहें।
गलती #5: पथ में स्पेस और विशेष वर्ण
\nUbuntu आपको स्पेस वाले फ़ोल्डर बनाने की अनुमति देता है। Go के लिए ऐसा न करें। /home/user/My Projects/go एक सिरदर्द है। /home/user/projects/go या बस $HOME/go का उपयोग करें।
चरण-दर-चरण निर्देश: GOPATH को सही तरीके से कैसे सेट करें
\n\nआइए इसे एक बार और हमेशा के लिए करें। टर्मिनल खोलें और क्रम से कमांड निष्पादित करें।
\n\nचरण 1. Go के वर्तमान संस्करण की जाँच करें
\ngo versionब्लॉग
पुस्तक अनुशंसाएँ
यह भी पढ़ें