# #go
Вопрос:
go clean -i
Команда, выполняемая внутри какого-либо проекта, удаляет исполняемый файл этого конкретного проекта, который ранее был установлен go install
командой. Как удалить все, что установлено go install
командами, которые были запущены из нескольких разных проектов? Есть ли какая-то одна go
команда, которая может это сделать?
Комментарии:
1. С тобой что-нибудь не так
rm -rf "$GOPATH/bin"
?2. Это не согласуется с
go clean -modcache
тем, что известно об удалении всех загруженных модулей в соседнем$GOPATH/pkg
каталоге. Это не согласуется сgo
набором команд в целом. Если что-то было установлено,go
оно должно быть удаленоgo
.3. «Если что-то было установлено go, оно должно быть удалено go». Почему? Любая техническая причина, выходящая за рамки «я хочу». Кэш модуля сложен, и это кэш, поддерживаемый и принадлежащий инструменту go. ГОПАТ/бин-это ни то, ни другое.
4. @Ростиславкрасный «должен» — это ваше мнение. Это не так. Установка двоичного файла помещает один файл . Нет никаких оснований для каких-либо специальных инструментов для удаления одного файла.
5. @Volker Причина аналогична использованию диспетчера пакетов даже в дистрибутивах Linux с исходным кодом, а не
make install
. Существуетgo
команда, которая устанавливает исполняемый файл,go
команда, которая удаляет исполняемый файл текущего проекта, но нетgo
команды для управления всеми исполняемыми файлами в$GOPATH/bin
. Это неправильно.
Ответ №1:
TL;DR
Удалите двоичный файл, как и любой другой файл.
Термин «установить» означает поместить (что-то) в новое положение, готовое к использованию. Поэтому Go создает двоичный файл с одним файлом и помещает его в другой каталог ( $GOPATH/bin
). Это полезно, когда вы добавляете двоичный каталог Go в переменную среды для вызова программы.
Там нет вспомогательного флага, например, go clean -bincache
для удаления всех двоичных файлов, установленных Go 1.16.4.
Однако в текущей версии GoLang (1.16.4) правильный способ удалить (или «удалить», как вы сказали) любой установленный двоичный файл-это удалить его, как и любой другой файл, несмотря на то, что вы чувствуете, что это звучит неловко.