CentOS で chef solo を設定中のこと。
昨日は使えたはずのコマンドが一部使えなくなっている。
$ knife solo init test
/usr/bin/ruby: No such file or directory -- $(prefix)/com (LoadError)
CentOS + Ruby で同様の問題が。
・インストールしたての頃は問題なく動作するが、半日から1日経って起動すると発現するようになる。
・インストールしなおせば解消される (リビルドも不要)。が、また半日か経つと発現する。
Ruby バグ?
CentOSでrubyが実行出来なくなる現象を解決(未解決)
先輩に相談したところ、定期的に問題が発生→ cron が怪しいのでは、とのこと。
cron で prelink というものが定期的に実行されていました。
prelink を解除するコマンドを実行すると、コマンドが正常に動くようになりました。
prelink -u /usr/bin/ruby
*** 参考
prelinkは動的リンクの書き換えを事前に行うもののようです。
rpmで入れたバイナリのchecksumが一致しないと思ったらprelinkのせいだった
ruby でバイナリが壊れるトラブルもよくあるそう。
ruby を prelink しないようにする方法も載っていました。
【Ruby】prelinkなるものがrubyのバイナリを破壊するそうです