针对编译的ruby运行

时间:2015-02-26 13:39:23

标签: ruby

我想为ruby-core做贡献,我已经检查了源代码,构建了它,现在我想从test文件夹中运行一个针对我的内置版ruby的测试。

我遇到了麻烦,我已经包含了红宝石寻找图书馆的本地路径,但却无法找到线程...

./ruby -I./lib -I. -I.ext/common test/socket/test_socket.rb

我得到:

~/ruby/lib/rubygems.rb:9:in `require': cannot load such file -- thread (LoadError)

知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

您似乎没有正确引用目录。

假设您已将the Ruby GitHub repo克隆到~/ruby中,并且已经运行./configure --prefix=~/ruby-2.5.1,然后依次运行makemake install,因此您的Ruby二进制文件是文件~/ruby-2.5.1/bin/ruby

如果您的Shell当前位于目录~/ruby-2.5.1/bin中,则输入的正确命令是:

./ruby -I~/ruby/lib -I~/ruby -I~/ruby/ext/common ~/ruby/test/socket/test_socket.rb

请注意,由于您的工作目录为~/ruby-2.5.1/bin,因此无法使用~/ruby来引用./中的Ruby源代码。 ./的意思是the relative path to the current directory

现在输出应为:

Loaded suite ~/ruby/test/socket/test_socket
Started
....................................
Finished in 10.26308 seconds.
36 tests, 115 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed

您当时可能使用的Ruby版本是Ruby 2.2(发布于2014年12月25日),但该版本也有相同的答案,因为在源代码和编译和安装的二进制版本。