Eliminar paquetes instalados con go get
Corrí go get package
para descargar un paquete antes de enterarme de que necesitaba configurarlo, GOPATH
de lo contrario ese paquete mancillaría mi instalación raíz de Go (preferiría mantener mi instalación de Go limpia y separar el núcleo del personalizado). ¿Cómo elimino los paquetes instalados anteriormente?
Un paquete go se puede eliminar de la siguiente manera.
go get package@none
Aquí @none
está la parte de la versión configurada como none
. Eliminando así el paquete.
Es seguro simplemente eliminar el directorio fuente y el archivo del paquete compilado. Busque el directorio de origen $GOPATH/src
y el archivo del paquete en $GOPATH/pkg/<architecture>
, por ejemplo: $GOPATH/pkg/windows_amd64
.
Puede eliminar los archivos comprimidos y los binarios ejecutables que go install
(o go get
) produce para un paquete con go clean -i importpath...
. Estos normalmente residen bajo $GOPATH/pkg
y $GOPATH/bin
, respectivamente.
Asegúrese de incluirlo ...
en la ruta de importación, ya que parece que, si un paquete incluye un ejecutable, go clean -i
solo lo eliminará y no archivará los archivos de los subpaquetes, como gore/gocode
en el ejemplo siguiente.
Luego, el código fuente debe eliminarse manualmente de $GOPATH/src
.
go clean
tiene un -n
indicador para un ensayo que imprime lo que se ejecutará sin ejecutarlo, para que pueda estar seguro (consulte go help clean
). También tiene una -r
opción tentadora para limpiar dependencias de forma recursiva, que probablemente no quieras usar, ya que verás en un ensayo que eliminará muchos archivos de la biblioteca estándar.
Un ejemplo completo, en el que podrías basar un script si quieres:
$ 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
Tenga en cuenta que esta información se basa en la go
herramienta de Go versión 1.5.1.
Puedes usarlo go mod tidy
para limpiar paquetes no utilizados.