Alpine Linux で適当なバイナリを持ってきて動かす備忘録

Server
Photo by hyt.

Alpine Linux で適当なバイナリを持ってきて動かしてみた備忘録です.

まずは結論から.

たまには Linux でもソースコードからコンパイルじゃなくて,適当なバイナリ持ってきて動かしたいってときもあるんですが,こういうときは,まずは,

# apk add libc6-compat
(1/1) Installing libc6-compat (1.1.19-r10)
OK: 90 MiB in 53 packages

としましょう.Alpine Linux の場合,glibc じゃなくて,musl libc が使われてるからです.これで必要なシンボリックリンクが張られます.

あとは,

# ldd test
        /lib64/ld-linux-x86-64.so.2 (0x7f63130b8000)
        libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7f63130b8000)
        librt.so.1 => /lib64/ld-linux-x86-64.so.2 (0x7f63130b8000)
        libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7f63130b8000)
Error loading shared library libstdc++.so.6: No such file or directory (needed by monitorlm)
        libm.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f63130b8000)
Error loading shared library libgcc_s.so.1: No such file or directory (needed by monitorlm)
        libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f63130b8000)

とかして,足りない共有ライブラリが何かを探せば OK です.この例だと libstdc++.so.6 と libgcc_s.so.1 が無いみたいなので,

# apk add libstdc++
fetch http://dl-3.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
(1/2) Installing libgcc (6.4.0-r9)
(2/2) Installing libstdc++ (6.4.0-r9)
OK: 90 MiB in 53 packages

としてやれば解決します.

以上!

Server
スポンサーリンク
Following hyt!
hyt adversaria
タイトルとURLをコピーしました