我刚刚在OEL5.8服务器上安装了ruby,并且看到一些奇怪的行为
服务器详细信息
Linux myhost 2.6.18-238.el5 #1 SMP Tue Jan 4 15:41:11 EST 2011 x86_64 x86Ruby版本
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)几周前我注意到了这个问题,并重新安装了ruby修复了它,但是在昨天凌晨4点这个问题又出现了,这很奇怪,因为在这段时间里这个盒子没有被使用。
我已经做了一些常见的事情,比如检查Ruby的其他版本,但看起来一切正常,所以我有点卡在这个版本上了
有谁知道是什么原因造成的吗?更重要的是如何修复它
干杯
麦克
发布于 2013-01-31 00:25:06
在运行RHEL 6.3的系统上遇到此问题。prelink包每天运行一次,会破坏ruby二进制文件。我卸载了prelink,并替换了ruby二进制文件。
https://stackoverflow.com/questions/14435523
复制相似问题