SSブログ

実行バイナリをコピーするだけではダメだった [golang]

手元の環境で go のソースをビルドして、実稼働環境にコピーして起動しようとしたら

/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found

っていうエラーがでて起動できなかった
ビルドした環境の glibc が実行環境の glibc のバージョンよりも新しいことが原因なのはわかった。

CGO_ENABLED=0 をつければいいと書いているブログ記事もいっぱいあったけど、うまくいかない。
そもそも、 glibc の機能が必要ってことは mac で linux のバイナリ作ろうとした時には、 glibc を static link できないからうまくいかないのでは?

ここに、ヒントになりそうなことが書いてあったが、
https://qiita.com/KEINOS/items/739f83cb9ddfed43404b
(ふむふむ、 ld フラグ渡せたりするんだな)

ビルドしたい環境と実行したい環境が違っていて、自分の場合はどうすれば良いかわからない(・・・し、解決できる見込みもない)

結局、実行環境と同じ環境で go でビルドできるようにして、ことなきを得たが、ビルド環境と実行環境が別でも動くと考えない方が良さそうだな、と思った。

おそらく、ファイル操作はうまくいくけど net パッケージ使うとダメとか、簡単にできる、できないと断言できないとかそういうことなんだと思うけど。
コメント(0) 

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

Facebook コメント