0

Ruby を OEL 5.8 サーバーにインストールしたところ、奇妙な動作が見られます

サーバーの詳細

 Linux myhost 2.6.18-238.el5 #1 SMP Tue Jan 4 15:41:11 EST 2011 x86_64 x86

ルビー版

ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

ruby プログラムを実行しようとすると、奇妙なエラーが発生する

 -sh-3.2$ ruby testing.rb
 ruby: No such file or directory -- ('» (LoadError)

同様に gem を呼び出すと、同様のエラーが返されます

-sh-3.2$ gem -v
/usr/bin/ruby: No such file or directory -- (W
(LoadError)

ruby で strace を実行すると、死ぬ前にこのエラーが表示される

lstat("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/lib", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
lstat("/usr/lib/ruby", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/lib/ruby/site_ruby", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/lib/ruby/site_ruby/1.9.1", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/lib/ruby/site_ruby/1.9.1/rubygems", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat("/usr/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb",  {st_mode=S_IFREG|0644, st_size=1871, ...}) = 0
open("(\227I\6", O_RDONLY)              = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
write(2, "ruby", 4ruby)                     = 4
write(2, ": ", 2: )                       = 2
write(2, "No such file or directory -- (\227I"..., 33No such file or directory -- (I) = 33
write(2, " (", 2 ()                       = 2
write(2, "LoadError", 9LoadError)                = 9
write(2, ")\n", 2)
)                      = 2
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
rt_sigaction(SIGINT, {0x1, [], SA_RESTORER|SA_SIGINFO, 0x319d00eb10}, {0x4b1eb0, [],   SA_RESTORER|SA_SIGINFO, 0x319d00eb10}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER|SA_SIGINFO, 0x319d00eb10}, {0x1, [], SA_RESTORER|SA_SIGINFO, 0x319d00eb10}, 8) = 0
write(4, "!", 1)                        = 1
munmap(0x2ac6c5784000, 1052672)         = 0
exit_group(1)  

誰かがそれを見たいなら、私は完全な出力を持っています

奇妙なことに、Ruby を呼び出すたびに、わずかに異なるエラー メッセージが表示されます (例)

-sh-3.2$ ruby testing.rb
ruby: No such file or directory -- (Ç/ (LoadError)
-sh-3.2$ ruby testing.rb
ruby: No such file or directory -- Ç (LoadError)
-sh-3.2$ ruby testing.rb
ruby: No such file or directory -- 0w;   (LoadError)
-sh-3.2$ ruby testing.rb
ruby: No such file or directory -- NULLCMD (LoadError)
-sh-3.2$ ruby testing.rb
ruby: No such file or directory -- 07î (LoadError)

そして、いずれの場合も、私の strace は死ぬ前にこのようなエラーを表示します

lstat("/usr/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb", {st_mode=S_IFREG|0644, st_size=1871, ...}) = 0
open("\20\7\3\30", O_RDONLY)            = -1 ENOENT (No such file or directory)

私はこれが数週間前に起こっていることに気付き、それを修正したルビーの再インストールを行いましたが、昨日の午前 4 時に問題が再び発生しました。

Rubyの他のバージョンをチェックするなどの通常のことを行いましたが、すべて問題ないように見えるので、これに少し行き詰まっています

何が原因なのか誰にもわかりませんか?そしてもっと重要なのは、それを修正する方法

乾杯

マイク

4

1 に答える 1

0

RHEL6.3を実行しているシステムでこの問題が発生しました。prelinkパッケージは1日に1回実行され、rubyバイナリを破損します。prelinkをアンインストールし、rubyバイナリを置き換えました。

于 2013-01-30T16:25:05.997 に答える