2012-12-09 12 views
108

私はGOPATHを設定する必要があることを知る前にパッケージをダウンロードするためにgo get packageを実行しました。そうしないと、パッケージが私のroot Goのインストールを嫌う(私はGoをインストールしないでください。 。以前にインストールしたパッケージを削除するにはどうすればよいですか?go getと一緒にインストールされたパッケージを削除する

答えて

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

安全でシンプルであれば、それにはなぜgoサブコマンドがないのですか? – Bengt

65

go install(またはgo get)が作成するアーカイブファイルと実行可能バイナリを、go clean -i importpath...のパッケージに対して削除することができます。これらは通常それぞれ$GOPATH/pkg$GOPATH/binの下にあります。

ソースコードは、$GOPATH/srcから手動で削除する必要があります。

go cleanには、実行しないで実行されるものを印刷するドライランのフラグがあります(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 

パッケージが含まれている場合、実行可能go clean -iはそれだけでは削除されますように見えることから、IMPORTPATHに...を必ず含めてくださいこの例ではgore/gocodeのように、サブパッケージ用のファイルはアーカイブしません。

この情報は、Goバージョン1.5.1のgoツールに基づいています。

+0

パーフェクト!私の魅力のように働いて、答えとすべての仕組みの完全な説明に感謝します! –

関連する問題