Monday, March 11, 2019

How to remove package installed with go get

Let's say you have installed a Go package


$ go get github.com/mikefarah/yaml

and you want to uninstall it.

What Is Actually Installed?


When you run go get, the source code is stored in $GOPATH/src. Then the package is built and written to $GOPATH/pkg/<architecture> and any executable binaries in $GOPATH/bin. In our case, the files are stored in


$ ls $GOPATH/src/github.com/mikefarah/yaml
Dockerfile.dev  examples  scripts
LICENSE   json_converter.go utils_test.go
Makefile  json_converter_test.go vendor
Makefile.variables merge.go  version.go
README.md  merge_test.go  version_test.go
commands_test.go mkdocs   yaml.go
data_navigator.go mkdocs.yml  yaml_test.go
data_navigator_test.go path_parser.go
docs   path_parser_test.go

There are no libraries and other compiled files in $GOPATH/pkg/darwin_amd64/github.com/mikefarah/yaml, but there is an executable in $GOPATH/bin/yaml


$ ls $GOPATH/bin/yaml
/path/to/my/GOPATH/bin/yaml

Remove binaries with go clean

Let's uninstall the package


$ go clean -i github.com/mikefarah/yaml
$ ls $GOPATH/bin/yaml
ls: /path/to/my/GOPATH/bin/yaml: No such file or directory

Remove source manually

That still leaves the source code. You can manually remove the directory


$ rm -rf $GOPATH/src/github.com/mikefarah/yaml
$ rmdir $GOPATH/src/github.com/mikefarah

Note: if you have other Go projects from the same author/organization, then the second rmdir command will naturally fail.

No comments:

Post a Comment