Эквивалент RubyGems?

Я вырос в рубине и только начал учиться го. Есть ли стандартный способ установки сторонних библиотек, сопоставимых с RubyGems?

golang.org/pkg
Luke Joshua Park 12.10.2018 02:57

На самом деле вы спрашиваете об эквиваленте Bundler, который выполняет разрешение зависимостей и установку гемов.

max 25.10.2018 02:10
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
1
2
298
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

С момента выпуска go1.11 у нас есть официальные инструменты управления пакетами go, Модули Go.

Разница между модулями go и другими инструментами управления пакетами заключается в том, что модули go не полагаются на $GOPATH. Проект должен быть размещен вне $GOPATH. Если ваш проект уже находится внутри $GOPATH, но вы хотите использовать инструменты управления пакетами, я предлагаю увидеть старый ответ ниже.

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

mkdir testproject
cd testproject

# init project as go module with root package name is testproject
go mod init testproject

# install 3rd party library, it will be stored inside testproject/vendor
go get github.com/labstack/echo
go get github.com/novalagung/gubrak

команда go mod init создает файл Go.mod (аналогично Gemfile для ruby). Вы можете либо установить сторонние библиотеки с помощью обычной команды go get, либо добавив метаданные библиотеки в файл Go.mod, а затем выполнить go mod tidy.

Дополнительная информация о модулях Go: https://blog.golang.org/using-go-modules

Старый ответ

В Go также есть инструмент управления пакетами, он называется деп.

Пример использования:

cd $GOPATH/src
mkdir testproject
cd testproject

# init project
dep init

# install 3rd party library
dep ensure -add github.com/labstack/echo
dep ensure -add github.com/novalagung/gubrak

dep генерирует файл Gopkg.toml (аналогично Gemfile для ruby). Вы можете установить сторонние библиотеки с помощью команды dep ensure -add или добавив метаданные библиотеки в Gopkg.toml, а затем выполнить dep ensure.

Кстати, есть также несколько других альтернатив, кроме dep. Для получения дополнительной информации, пожалуйста, взгляните на https://github.com/golang/go/wiki/PackageManagementTools.

Другие вопросы по теме