@ledsun blog

無味の味は佳境に入らざればすなわち知れず

DockerイメージのベースをAlpineからDebianに変えた

ruby:3.0.1-alpine Dockerイメージでsimstring gemがビルドできない - @ledsun blogRuby 3.0.1 はAlpine上でC拡張Gemのビルドに失敗することがあるとわかりました。 では、3.0.5ではどうでしょうか?

config.status: error: in `/simstring':
config.status: error: Something went wrong bootstrapping makefile fragments
    for automatic dependency tracking.  If GNU make was not used, consider
    re-running the configure script with MAKE="gmake" (or whatever is
    necessary).  You can also try re-running configure with the
    '--disable-dependency-tracking' option to at least be able to build
    the package (albeit without support for automatic dependency tracking).
See `config.log' for more details
The command '/bin/sh -c git clone https://github.com/chokkan/simstring.git &&     cd simstring/ &&     autoreconf -i &&     ./configure &&     make &&     cd swig/ruby/ &&     ./prepare.sh &&     ruby extconf.rb &&     make &&     make install' returned a non-zero code: 1

違うエラーがでます。 このあとgithubからのgemのインストールが上手く行かないエラーもでました。 面倒になったので、Alpine Linuxを使うのをやめました。 DebianベースのDockerイメージを使いました。

ruby:3.0.1では次のエラーがでました。 SWIG 3.0.12ででるsimstring gemのコンパイルエラー · GitHub Ruby 2.7 modified 'rb_define_virtual_variable' signature · Issue #1689 · swig/swig · GitHub によるとSWIGのバージョンが古くて起きたエラーのようです。 ruby:3.0.1はDebianがbusterでした。 それでswigのバージョンが古かったようです。 ruby:3.0.5のイメージを使うことで解消できました。

最近はWSL上のUbuntuを使っています。 同じパッケージマネージャーがつかえたり、今回のような環境の違いで困ることがすくないので、DebianベースのDockerイメージを使う方が便利みたいです。 Macの時は、PCの環境がDebianもAlpineとも違っていたので気にしていませんでした。