Ответ 1
Используете ли вы godep save ./...
в своем проекте?
Если да, удалите каталоги Godep
и vendor
и попробуйте использовать godep save
, без ./...
.
Я делаю это и работаю для меня.
Я пытаюсь развернуть приложение Go в Heroku, я использую godeps для управления зависимостями в качестве предлагаемых им документов.
Но когда я git push heroku master
, я получаю следующую ошибку, сообщающую, что файл sasl.go не существует.
remote: # github.com/grsouza/feeng-api/vendor/gopkg.in/mgo.v2/internal/sasl
remote: vendor/gopkg.in/mgo.v2/internal/sasl/sasl.go:15:24: fatal error: sasl/sasl.h: No such file or directory
remote: // #include <sasl/sasl.h>
remote: ^
remote: compilation terminated.
remote: github.com/grsouza/feeng-api/vendor/github.com/onsi/gomega
remote:
remote: ! Push rejected, failed to compile Go app
remote:
remote: Verifying deploy....
remote:
remote: ! Push rejected to limitless-ridge-36512.
remote:
To https://git.heroku.com/limitless-ridge-36512.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/limitless-ridge-36512.git'
Может ли кто-нибудь помочь мне с этой проблемой?
Спасибо.
Используете ли вы godep save ./...
в своем проекте?
Если да, удалите каталоги Godep
и vendor
и попробуйте использовать godep save
, без ./...
.
Я делаю это и работаю для меня.
Ошибка сообщает sasl/sasl.h, но не sasl.go. Файл заголовка sasl.h является частью пакета libsasl2-dev, который не установлен на heroku, и я не знаю простого способа его установить. На мой взгляд, вы можете попытаться найти заголовки sasl на своем локальном компьютере (скорее всего, /usr/include/sasl ) и скопировать в vendor/include/sasl в свой локальный источник приложения go. Затем сделайте их видимыми для CGO, используя конфигурацию heroku config vars, выполняющую
heroku config:set CGO_CFLAGS= -I/app/code/vendor/include/sasl
в консоли heroku, а не git push. Также вы можете найти libsasl2-dev buildpack для heroku и попытаться использовать два buildpacks для вашего приложения с чем-то вроде
heroku buildpacks:add heroku/some_libsasl2-dev
Наконец-то я нашел решение (от https://github.com/go-mgo/mgo/issues/220#issuecomment-212658192):
godep save ./...
(чтобы создать каталог поставщика со всеми зависимостями)godep save
без. /... (это приведет к удалению неиспользуемых файлов)