Подтвердить что ты не робот

Как я могу установить пакет с go get?

Я хочу установить пакеты из github в мой gopath, я пробовал это:

go get github.com:capotej/groupcache-db-experiment.git

репозиторий здесь.

4b9b3361

Ответ 1

Команда идти

Скачать и установить пакеты и зависимости

Использование:

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
$ 

Ответ 2

Во-первых, нам нужен ГОПАТ

$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]

Загрузите и установите пакеты, названные путями импорта, вместе с их зависимостями. Для более подробной информации вы можете посмотреть здесь.