我想为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)
知道我做错了吗?
答案 0 :(得分:0)
您似乎没有正确引用目录。
假设您已将the Ruby GitHub repo克隆到~/ruby
中,并且已经运行./configure --prefix=~/ruby-2.5.1
,然后依次运行make
和make 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日),但该版本也有相同的答案,因为在源代码和编译和安装的二进制版本。