Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OEL上的Ruby加载错误_Ruby_Rubygems - Fatal编程技术网

OEL上的Ruby加载错误

OEL上的Ruby加载错误,ruby,rubygems,Ruby,Rubygems,我刚刚在OEL5.8服务器上安装了ruby,看到了一些奇怪的行为 服务器详细信息 Linux myhost 2.6.18-238.el5 #1 SMP Tue Jan 4 15:41:11 EST 2011 x86_64 x86 Ruby版本 ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] 当我尝试运行ruby程序时,我会遇到一个奇怪的错误 -sh-3.2$ ruby testing.rb ruby: No such

我刚刚在OEL5.8服务器上安装了ruby,看到了一些奇怪的行为

服务器详细信息

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

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)  
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打电话,都会收到一条稍微不同的错误消息(例如)

在每一种情况下,我的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)  
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,所有这些看起来都很好,所以我有点被这个版本卡住了

有人知道是什么引起的吗?更重要的是如何修复它

干杯


Mike在运行RHEL 6.3的系统上遇到此问题。prelink包每天运行一次,并损坏ruby二进制文件。我卸载了prelink并替换了ruby二进制文件。

在这个盒子上其他东西正常吗?由于每次的错误都不同,所以看起来几乎像是内存或磁盘损坏。但是,由于错误似乎来自rubygems,您可以尝试在不使用它的情况下运行,看看会发生什么:
ruby——禁用gems testing.rb
。该框中的其他内容都很好,这个问题不仅仅与rubygems有关,这只是一个影响我上面调用的测试脚本的其他问题的例子,只是回显了一行文本,所以它不使用任何gems。这真的很奇怪。只是为了测试,也许试着在上面编译并安装ruby 1.8,看看会发生什么?此外,还有更新版本的1.9可用(第374页)。你是自己从头开始编译的吗?嗨,卡斯珀,是的,我自己编译了ruby,我最初在那个盒子上有一个早期版本的ruby(1.9.2),但不久前改到了1.9.3,我已经在另一台测试服务器上使用它几个月了,没有任何问题,所以我不确定这台服务器的问题是什么,我将用一个更新的版本进行一些测试,看看我在查看prelink时看到的helpsah是否像它运行时出现的那样,感谢它,我现在将摆脱cronjob