亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 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 關注
  • 296 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號