Eliminar paquetes instalados con go get

Resuelto Owen Allen asked hace 12 años • 8 respuestas

Corrí go get packagepara descargar un paquete antes de enterarme de que necesitaba configurarlo, GOPATHde 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?

Owen Allen avatar Dec 10 '12 04:12 Owen Allen
Aceptado

Un paquete go se puede eliminar de la siguiente manera.

go get package@none

Aquí @noneestá la parte de la versión configurada como none. Eliminando así el paquete.

abhisekp avatar May 20 '2021 12:05 abhisekp

Es seguro simplemente eliminar el directorio fuente y el archivo del paquete compilado. Busque el directorio de origen $GOPATH/srcy el archivo del paquete en $GOPATH/pkg/<architecture>, por ejemplo: $GOPATH/pkg/windows_amd64.

Sonia avatar Dec 09 '2012 22:12 Sonia

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/pkgy $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 -isolo lo eliminará y no archivará los archivos de los subpaquetes, como gore/gocodeen el ejemplo siguiente.

Luego, el código fuente debe eliminarse manualmente de $GOPATH/src.

go cleantiene un -nindicador para un ensayo que imprime lo que se ejecutará sin ejecutarlo, para que pueda estar seguro (consulte go help clean). También tiene una -ropció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 goherramienta de Go versión 1.5.1.

ches avatar Oct 27 '2015 15:10 ches

Puedes usarlo go mod tidypara limpiar paquetes no utilizados.

R0Y3R avatar May 09 '2021 15:05 R0Y3R