instalar - como saber que version de ruby tengo
Eliminando paquetes instalados con go get get (3)
Es seguro eliminar el directorio de origen y el archivo del paquete compilado. Encuentre el directorio fuente bajo $GOPATH/src
y el archivo del paquete bajo $GOPATH/pkg/<architecture>
, por ejemplo: $GOPATH/pkg/windows_amd64
.
Ejecuté go get package
para descargar un paquete antes de GOPATH
que necesitaba configurar mi GOPATH
contrario, ese paquete ensuciaría mi instalación raíz de Go (preferiría que mi instalación de Go fuera limpia y separar el núcleo de la personalización). ¿Cómo elimino paquetes instalados previamente?
Puede eliminar los archivos de almacenamiento y binarios ejecutables que go install
(o go get
) produce para un paquete con go clean -i importpath...
Normalmente residen en $GOPATH/pkg
y $GOPATH/bin
, respectivamente.
El código fuente luego debe eliminarse manualmente de $GOPATH/src
.
go clean
tiene una bandera -n
para una ejecución en seco que imprime lo que se ejecutará sin ejecutarlo, por lo que puede estar seguro (ver go help clean
). También tiene una tentadora bandera -r
para eliminar recursivamente las dependencias, que probablemente no quieras usar ya que verás en una ejecución en seco que eliminará muchos archivos de archivos de biblioteca estándar.
Un ejemplo completo, en el que podría basar un script si lo desea:
$ 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
Asegúrese de incluir ...
en la ruta de importación, ya que parece que si un paquete incluye un archivo ejecutable, apáguelo, go clean -i
lo eliminará y no archivará los archivos de los subpaquetes, como gore/gocode
en el ejemplo.
Tenga en cuenta que esta información se basa en la herramienta go
en Go versión 1.5.1.
#!/bin/bash
goclean() {
local pkg=$1; shift || return 1
local ost
local cnt
local scr
# Clean removes object files from package source directories (ignore error)
go clean -i $pkg &>/dev/null
# Set local variables
[[ "$(uname -m)" == "x86_64" ]] /
&& ost="$(uname)";ost="${ost,,}_amd64" /
&& cnt="${pkg//[^//]}"
# Delete the source directory and compiled package directory(ies)
if (("${#cnt}" == "2")); then
rm -rf "${GOPATH%%:*}/src/${pkg%/*}"
rm -rf "${GOPATH%%:*}/pkg/${ost}/${pkg%/*}"
elif (("${#cnt}" > "2")); then
rm -rf "${GOPATH%%:*}/src/${pkg%/*/*}"
rm -rf "${GOPATH%%:*}/pkg/${ost}/${pkg%/*/*}"
fi
# Reload the current shell
source ~/.bashrc
}
Uso:
# Either launch a new terminal and copy `goclean` into the current shell process,
# or create a shell script and add it to the PATH to enable command invocation with bash.
goclean github.com/your-username/your-repository