Использование:
go install [build flags] [packages]
Примеры:
# Установить последнюю версию программы,
# игнорируя go.mod в текущем каталоге (если есть).
$ go install golang.org/x/tools/gopls@latest
# Установить определенную версию программы.
$ go install golang.org/x/tools/gopls@v0.6.4
# Установить программу в версии,
# выбранной модулем в текущем каталоге.
$ go install golang.org/x/tools/gopls
# Установить все программы в каталог.
$ go install ./cmd/...
Команда go install собирает и устанавливает пакеты, имена которых указаны путями в командной строке. Исполняемые файлы (основные пакеты (main packages)) устанавливаются в каталог, названный переменной среды GOBIN, которая по умолчанию имеет значение $GOPATH/bin или $HOME/go/bin, если переменная среды GOPATH не установлена. Исполняемые файлы в $GOROOT устанавливаются в $GOROOT/bin или $GOTOOLDIR вместо $GOBIN.
Начиная с Go 1.16, если аргументы имеют суффиксы версии (например, @latest или @v1.0.0), go install создает пакеты в режиме с поддержкой модулей, игнорируя файл go.mod в текущем каталоге или любом родительском каталоге, если он есть. Это полезно для установки исполняемых файлов, не влияя на зависимости основного модуля.
Чтобы устранить двусмысленность в отношении того, версии чьего модуля используются в сборке, аргументы должны удовлетворять следующим ограничениям:
- Аргументы должны быть путями пакетов или шаблонами пакетов (с подстановочными знаками "..."). Это не должны быть стандартные пакеты (например, fmt), мета-шаблоны (std, cmd, all) или относительные или абсолютные пути к файлам.
- Все аргументы должны иметь один и тот же суффикс версии. Запрещены разные запросы, даже если они относятся к одной и той же версии.
- Все аргументы должны относиться к пакетам в одном модуле одной версии.
- Ни один модуль не считается основным. Если модуль, содержащий пакеты, названные в командной строке, имеет файл go.mod, он не должен содержать директив (replace и exclude), которые заставили бы его интерпретировать иначе, чем если бы это был основной модуль. Модуль не должен требовать более высокую версию самого себя.
- Аргументы пути к пакету должны относиться к основным (main) пакетам. Аргументы шаблона будут соответствовать только основным пакетам.
Go 1.15 и ниже не поддерживают использование запросов версии с go install.
Если аргументы не имеют суффиксов версии, go install может выполняться в режиме с поддержкой модулей или в режиме GOPATH, в зависимости от переменной среды GO111MODULE и наличия файла go.mod. Если включен режим с поддержкой модулей, go install запускается в контексте основного модуля, который может отличаться от модуля, содержащего устанавливаемый пакет.
Читайте также:
- Модули в Golang: команды с поддержкой модулей, go get
- Модули в Golang: команды с поддержкой модулей, go list -m
- Модули в Golang: команды с поддержкой модулей, go mod download
Комментариев нет:
Отправить комментарий