Я запустил go get package
, чтобы загрузить пакет, прежде чем узнавать, что мне нужно установить мой GOPATH
, иначе этот пакет замалчивает мою root Go install (я бы предпочел сохранить чистую установку Go и отдельное ядро из пользовательского). Как удалить ранее установленные пакеты?
Удаление пакетов, установленных с go get
Ответ 1
Безопасно просто удалить исходный каталог и скомпилированный файл пакета. Найдите исходный каталог в $GOPATH/src
и файл пакета под $GOPATH/pkg/<architecture>
, например: $GOPATH/pkg/windows_amd64
.
Ответ 2
Вы можете удалить архивные файлы и исполняемые двоичные файлы, которые go install
(или go get
) создает для пакета с go clean -i importpath...
. Они обычно находятся под $GOPATH/pkg
и $GOPATH/bin
, соответственно.
Исходный код затем необходимо удалить вручную из $GOPATH/src
.
go clean
имеет флаг -n
для сухого пробега, который печатает то, что будет выполняться без его выполнения, поэтому вы можете быть уверены (см. go help clean
). У него также есть заманчивый флаг -r
для рекурсивной очистки зависимостей, которые вы, вероятно, не хотите использовать, поскольку вы увидите, что на сухом пробеге будет удалено множество стандартных файлов архивов библиотеки!
Полный пример, который вы могли бы использовать script, если хотите:
$ 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
, он удалит только это, а не архивные файлы для подпакетов, например gore/gocode
в этом примере.
Обратите внимание, что эта информация основана на инструменте go
в версии 1.5.1.