![](/img/trans.png)
[英]Heroku Go app crashes, version `GLIBC_2.32' not found, required by bin/main
[英]Suddenly, the Go language Google Cloud API to speech-to-text is not working! /lib64/libc.so.6: version `GLIBC_2.32' not found
我編寫了一個Go program
,它獲取一個錄音文件並將其前 59 秒提交(完全避免使用谷歌雲存儲的東西,由於多種原因,在大量服務器上使用它是不切實際的)到谷歌語音轉文本 API。 它在 Ubuntu、CentOS6 和 CentOS7 上運行良好,直到本周末。 我剛剛升級了一個運行 Ubuntu 22.04 的系統。 我不得不更改代碼。 go build
運行良好。 但是當我在 CentOS6 或 7 上運行它時:
[murf@0b06ac9134ab stt3]$ ./stt3
./stt3: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by ./stt3)
./stt3: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by ./stt3)
[murf@0b06ac9134ab stt3]$
在 centOS6 和 7 上都安裝了 golang,在這些機器上本地構建了 exec,結果相同。
我做了一些研究,發現glibc
是golang
的一個問題,但僅限於需要它的一些功能的代碼中。 重新編譯以強制使用舊版本的glibc
似乎是一個可行的選擇。
在我看來,谷歌更新了Go API libraries
,並使它們依賴於更新版本的glibc
.... 擺脫這種依賴的唯一方法是重新編譯所有 Google Cloud API Go 庫源CentOS6(最古老的 glibc)。 可能還得在centOS7上重新編譯,誰知道呢。 Go 的可移植性就這么多。
所以,問題是:
由於與 glibc 的動態鏈接,請嘗試構建靜態鏈接版本:
go build -tags netgo,osusergo .
使用-tags osusergo,netgo
強制靜態構建沒有依賴庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.