LoginSignup
9

More than 5 years have passed since last update.

posted at

updated at

CentOS で Ruby が動かないときは prelink が怪しい

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のバイナリを破壊するそうです

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
9