LoginSignup
10
9

More than 5 years have passed since last update.

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

Last updated at Posted at 2013-06-04

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

10
9
4

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
  3. You can use dark theme
What you can do with signing up
10
9