2012-12-09 18 views
108

मैं go get package सीखने है कि मैं सेट करने की जरूरत से पहले एक पैकेज डाउनलोड करने के लिए भाग गया मेरी GOPATH अन्यथा उस पैकेज sullies मेरी जड़ स्थापित जाओ (मैं बहुत मेरी गो कस्टम से स्वच्छ और अलग कोर स्थापित रखना पसंद करेंगे) । मैं पहले स्थापित संकुल कैसे हटा सकता हूं?निकाला जा रहा है संकुल जाना के साथ स्थापित मिल

उत्तर

95

केवल स्रोत निर्देशिका और संकलित पैकेज फ़ाइल को हटाने के लिए सुरक्षित है। $GOPATH/src के तहत स्रोत निर्देशिका और $GOPATH/pkg/<architecture> के तहत पैकेज फ़ाइल खोजें, उदाहरण के लिए: $GOPATH/pkg/windows_amd64

+5

सबसे पहले मैंने $ GOPATH/pkg/architecture/जो मौजूद नहीं था, की तलाश की। तब मुझे एहसास हुआ कि आप जो बात कर रहे थे वह $ GOPATH/pkg/{{architecture}} था, उदाहरण के लिए $ GOPATH/pkg/windows_amd64। – Nucleon

+1

'GOPATH' का डिफ़ॉल्ट मान'/usr/lib/go' है। – Flimm

+121

यदि यह सुरक्षित और सरल है, तो उपमहाद्वीप क्यों नहीं जाता है? – Bengt

65

आप संग्रह फ़ाइलों और निष्पादन योग्य बाइनरी कि go install (या go get) go clean -i importpath... के साथ एक पैकेज के लिए पैदा करता है हटा सकते हैं। ये आमतौर पर $GOPATH/pkg और $GOPATH/bin के तहत क्रमशः रहते हैं।

स्रोत कोड को $GOPATH/src से मैन्युअल रूप से हटाया जाना आवश्यक है।

go clean एक सूखी रन प्रिंट कि क्या यह क्रियान्वित करने के बिना चलाया जाएगा के लिए एक -n झंडा है, तो आप कुछ किया जा सकता है (go help clean देखें)। इसमें एक भरोसेमंद -r ध्वज निर्भरता को साफ करने के लिए ध्वज भी है, जिसे आप वास्तव में उपयोग नहीं करना चाहते हैं क्योंकि आप एक शुष्क रन से देखेंगे कि यह कई मानक लाइब्रेरी संग्रह फ़ाइलों को हटा देगा!

एक पूरा उदाहरण है, जो आप चाहें तो ऐसा पर एक स्क्रिप्ट के आधार पर कर सकते हैं:

$ go get -u github.com/motemen/gore 

$ which gore 
/Users/ches/src/go/bin/gore 

$ go clean -i -n github.com/motemen/gore... 
cd /Users/ches/src/go/src/github.com/motemen/gore 
rm -f gore gore.exe gore.test gore.test.exe commands commands.exe commands_test commands_test.exe complete complete.exe complete_test complete_test.exe debug debug.exe helpers_test helpers_test.exe liner liner.exe log log.exe main main.exe node node.exe node_test node_test.exe quickfix quickfix.exe session_test session_test.exe terminal_unix terminal_unix.exe terminal_windows terminal_windows.exe utils utils.exe 
rm -f /Users/ches/src/go/bin/gore 
cd /Users/ches/src/go/src/github.com/motemen/gore/gocode 
rm -f gocode.test gocode.test.exe 
rm -f /Users/ches/src/go/pkg/darwin_amd64/github.com/motemen/gore/gocode.a 

$ go clean -i github.com/motemen/gore... 

$ which gore 

$ tree $GOPATH/pkg/darwin_amd64/github.com/motemen/gore 
/Users/ches/src/go/pkg/darwin_amd64/github.com/motemen/gore 

0 directories, 0 files 

# If that empty directory really bugs you... 
$ rmdir $GOPATH/pkg/darwin_amd64/github.com/motemen/gore 

$ rm -rf $GOPATH/src/github.com/motemen/gore 

importpath पर ... शामिल करना सुनिश्चित करें क्योंकि ऐसा लगता है कि अगर एक पैकेज एक निष्पादन शामिल go clean -i केवल निकाल देंगे कि कि रहो, और उदाहरण में gore/gocode जैसे subpackages के लिए फ़ाइलों को संग्रहित नहीं करें।

ध्यान दें कि यह जानकारी गो संस्करण 1.5.1 में go उपकरण पर आधारित है।

+0

बिल्कुल सही! मेरे लिए एक आकर्षण की तरह काम किया, जवाब के लिए धन्यवाद और सब कुछ कैसे काम करता है पर पूर्ण स्पष्टीकरण! –

संबंधित मुद्दे