みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

RustのmuslなライブラリーをAlpine Linuxで実行する

Rustで作成した共有ライブラリをLinux環境で使用するには,ターゲットをx86_64-unknown-linux-muslでビルドします.これをAlpine Linuxで実行すると,依存関係でエラーがでます.Alpine Linuxは必要なパッケージを自分で明示しないと動かないからです.

ImportError: Error loading shared library libgcc_s.so.1

不足するlibgcc_s.so.1を追加するために,libgcc*1を追加します.

ImportError: Error loading shared library ld-linux-x86-64.so.2: No such file or directory 

不足するld-linux-x86-64.so.2を追加するために,libc6-compat*2を追加し,リンクを生成します.

ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2

まとめると,下記を実行することになります.

apk add --no-cache libgcc libc6-compat
ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2