吉德导致"Can't find random device"



我试图使用Guid在我的Ruby项目中生成唯一的id。下面是我创建的一个示例ruby文件,用于测试其功能:

require 'guid'
g = Guid.new
puts g    

当我运行这个文件时,我得到这个错误。

E:/Apps/Ruby186/lib/ruby/site_ruby/1.8/guid.rb:67:in `initialize': Can't find random device (Runtime Error)
from guid_test.rb:3:in `new'
from guid_test.rb:3

这可能是什么原因呢?我在Windows 7(64位)机器上使用Ruby。

根据http://www.koders.com/ruby/fid47791138EC0592EEEF2FC1F55408231838DF7CA4.aspx?s=game, guid源代码通过

检查操作系统的类型
if RUBY_PLATFORM =~ /win/i
    module Guid_Win32_
        require 'Win32API'

显然,在你的情况下(Windows 7 64位),这个检查失败(RUBY_PLATFORM返回其他东西(例如i386-mingw32为我的Ruby 1.9安装在Windows7 64位)),它试图使用Unix代码,然后试图打开/dev/urandom -这失败。

所以你可以检查RUBY_PLATFORM在你的操作系统上返回什么,修改guid。

相关内容

  • 没有找到相关文章

最新更新