2012-12-09 25 views
108

go get package'u bir paket karşıdan yüklemek için GOPATH ayarlamam gerektiğini öğrenmeden önce paketimin köklerini yüklemem gerekir (benim Git yüklememi temiz ve ayrı çekirdeği ayrı tutmamayı tercih ederim) . Daha önce yüklenen paketleri nasıl kaldırabilirim?Yüklü paketler kaldırılıyor

cevap

95

Sadece kaynak dizini ve derlenen paket dosyasını silmek güvenlidir. örneğin $GOPATH/src altında kaynak dizini ve $GOPATH/pkg/<architecture> altında paket dosyasını bulun: $GOPATH/pkg/windows_amd64.

+5

İlk başta ben olmasaydı $ GOPATH/pkg/mimarlık/aradık. Sonra, attığınız şeyin $ GOPATH/pkg/{{architecture}}, örneğin $ GOPATH/pkg/windows_amd64 olduğunu anladım. – Nucleon

+1

'GOPATH''ün varsayılan değeri'/usr/lib/go'. – Flimm

+121

Eğer güvenli ve basitse, neden gitmeyen bir alt komut var? – Bengt

65

go install (veya go get) ürününün go clean -i importpath... numaralı bir paket için ürettiği arşiv dosyalarını ve yürütülebilir ikili dosyaları silebilirsiniz. Bunlar normal olarak sırasıyla $GOPATH/pkg ve $GOPATH/bin altında bulunur.

Kaynak kodu daha sonra $GOPATH/src elle kaldırılması gerekir.

go clean bunu yürütme olmadan çalıştırmak ne olacağını yazdırır kuru çalışması için bir -n bayrağı vardır, bu nedenle (go help clean bakınız) emin olabiliriz. Ayrıca, bir çok standart kitaplık arşiv dosyalarını silecek bir kuru çalışmadan göreceğiniz için muhtemelen kullanmak istemediğiniz bağımlılıkları tekrar tekrar temizlemek için cazip bir -r bayrağı var!

Eğer isterseniz komut dosyası üssü olabilir Tam bir örnek: Bir paketin bir yürütülebilir içeriyorsa go clean -i sadece o kaldıracaktır gibi göründüğünden

$ 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 üzerinde ... eklemeyi unutmayın ve örnekte gore/gocode gibi alt paketler için arşiv dosyaları değil. Bu bilgiler Git sürümü 1.5.1 de go aracına bağlıdır

Not.

+0

Mükemmel! Benim için bir çekicilik gibi çalıştı, her şey nasıl çalıştığı konusunda cevap ve tam açıklama için teşekkürler! –