为了账号安全,请及时绑定邮箱和手机立即绑定

将 go 应用程序部署到 Heroku 时的 mgo 依赖错误

将 go 应用程序部署到 Heroku 时的 mgo 依赖错误

Go
翻阅古今 2021-12-20 19:07:54
我正在尝试将 Go 应用程序部署到 Heroku,我正在按照他们的文档建议使用 godeps 进行依赖项管理。但是当我git push heroku master收到以下错误时,告诉我文件 sasl.go 不存在。remote: # github.com/grsouza/feeng-api/vendor/gopkg.in/mgo.v2/internal/saslremote: vendor/gopkg.in/mgo.v2/internal/sasl/sasl.go:15:24: fatal error: sasl/sasl.h: No such file or directoryremote:  // #include <sasl/sasl.h>remote:                         ^remote: compilation terminated.remote: github.com/grsouza/feeng-api/vendor/github.com/onsi/gomegaremote: remote:  !     Push rejected, failed to compile Go appremote: 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'谁能帮我解决这个问题?
查看完整描述

3 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

godep save ./...在你的项目中使用吗?

如果是,请删除Godepvendor目录并尝试使用godep save, 而不使用./....

我这样做并为我工作。


查看完整回答
反对 回复 2021-12-20
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

我终于找到了一个解决方案(来自https://github.com/go-mgo/mgo/issues/220#issuecomment-212658192):

  • 运行godep save ./...(创建包含所有依赖项的供应商目录)

  • 然后在godep save没有 ./... 的情况下重新运行(这将删除未使用的文件)


查看完整回答
反对 回复 2021-12-20
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

错误告诉 sasl/sasl.h 丢失但不是 sasl.go。sasl.h 头文件是 libsasl2-dev 包的一部分,它没有安装在 heroku 上,我不知道安装它的简单方法。在我看来,您可以尝试在本地计算机上找到 sasl 标头(很可能是 /usr/include/sasl),然后复制到本地 go 应用程序源中的 vendor/include/sasl。然后使用 heroku 配置变量使它们对 CGO 可见

heroku config:set CGO_CFLAGS= -I/app/code/vendor/include/sasl

在 heroku 控制台中,而不是 git push。您也可以为 heroku 寻找 libsasl2-dev buildpack 并尝试为您的应用程序使用两个 buildpack,例如

heroku buildpacks:add heroku/some_libsasl2-dev


查看完整回答
反对 回复 2021-12-20
  • 3 回答
  • 0 关注
  • 263 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信