Я хочу установить пакеты из github в мой gopath, я пробовал это:
go get github.com:capotej/groupcache-db-experiment.git
репозиторий здесь.
Я хочу установить пакеты из github в мой gopath, я пробовал это:
go get github.com:capotej/groupcache-db-experiment.git
репозиторий здесь.
Скачать и установить пакеты и зависимости
Использование:
go get [-d] [-f] [-t] [-u] [-v] [-fix] [-insecure] [build flags] [packages]
Get загружает пакеты, названные путями импорта, вместе с их зависимостями. Затем он устанавливает именованные пакеты, такие как "go install".
Флаг -d дает команду остановиться после загрузки пакетов; то есть он инструктирует get не устанавливать пакеты.
Флаг -f, действительный только при установленном -u, заставляет -u не проверять, был ли каждый пакет извлечен из репозитория управления исходным кодом, подразумеваемым его путем импорта. Это может быть полезно, если источником является локальная ветвь оригинала.
Флаг -f ix предписывает запустить инструмент исправления для загруженных пакетов перед разрешением зависимостей или созданием кода.
Флаг -insecure разрешает выборку из репозиториев и разрешение пользовательских доменов с использованием небезопасных схем, таких как HTTP. Используйте с осторожностью.
Флаг -t указывает get также загружать пакеты, необходимые для построения тестов для указанных пакетов.
Флаг -u указывает, как использовать сеть для обновления именованных пакетов и их зависимостей. По умолчанию get использует сеть для проверки отсутствующих пакетов, но не использует ее для поиска обновлений существующих пакетов.
Флаг -v включает подробный прогресс и отладочный вывод.
Get также принимает флаги сборки для управления установкой. Смотрите "иди помогите построить".
При извлечении нового пакета get создает целевой каталог GOPATH/src/. Если GOPATH содержит несколько записей, get использует первую. Для более подробной информации смотрите: "иди помоги гопату".
При проверке или обновлении пакета get ищет ветку или тег, которые соответствуют локальной версии Go. Самое важное правило заключается в том, что, если локальная установка работает под управлением версии "go1", необходимо выполнить поиск ветки или тега с именем "go1". Если такой версии не существует, она извлекает ветвь пакета по умолчанию.
Когда go get извлекает или обновляет Git-репозиторий, он также обновляет любые подмодули git, на которые ссылается репозиторий.
Получить никогда не проверяет или обновляет код, хранящийся в каталогах поставщиков.
Подробнее об указании пакетов см. В разделе "Справочные пакеты".
Подробнее о том, как "go get" находит исходный код для загрузки, см. "Go help importpath".
Этот текст описывает поведение get при использовании GOPATH для управления исходным кодом и зависимостями. Если вместо этого команда go выполняется в режиме с поддержкой модулей, сведения о флагах get и эффектах изменяются, как и "go help get". Смотрите "go help modules" и "go help module-get".
Смотрите также: иди собирай, иди устанавливай, иди чистей.
Например, показывая подробный вывод,
$ go get -v github.com/capotej/groupcache-db-experiment/...
github.com/capotej/groupcache-db-experiment (download)
github.com/golang/groupcache (download)
github.com/golang/protobuf (download)
github.com/capotej/groupcache-db-experiment/api
github.com/capotej/groupcache-db-experiment/client
github.com/capotej/groupcache-db-experiment/slowdb
github.com/golang/groupcache/consistenthash
github.com/golang/protobuf/proto
github.com/golang/groupcache/lru
github.com/capotej/groupcache-db-experiment/dbserver
github.com/capotej/groupcache-db-experiment/cli
github.com/golang/groupcache/singleflight
github.com/golang/groupcache/groupcachepb
github.com/golang/groupcache
github.com/capotej/groupcache-db-experiment/frontend
$
Во-первых, нам нужен ГОПАТ
$GOPATH
- это папка (или набор папок), заданная его переменной среды. Мы должны заметить, что это не $GOROOT
котором установлен Go.
export GOPATH=$HOME/gocode
export PATH=$PATH:$GOPATH/bin
Мы использовали ~/gocode
path на нашем компьютере для хранения источника нашего приложения и его зависимостей. В GOPATH
также будут храниться двоичные файлы их пакетов.
Тогда проверь Go env
$GOPATH
система должна иметь $GOPATH
и $GOROOT
, ниже мой Env:
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/elpsstu/gocode"
GORACE=""
GOROOT="/home/pravin/go"
GOTOOLDIR="/home/pravin/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
Теперь вы запускаете пакет загрузки go:
go get [-d] [-f] [-fix] [-t] [-u] [build flags] [packages]
Загрузите и установите пакеты, названные путями импорта, вместе с их зависимостями. Для более подробной информации вы можете посмотреть здесь.