胡傲果
2009-06-10 16:55
浏览 275

在windows上通过cygwin安装ruby-1.9.1-p0的奇怪问题

没装rails,安装步骤完全按照http://zhujg.iteye.com/blog/355040

到make && make install时完全正常,ruby安装完后可以正常执行程序。但是一执行gem install xxx就报错:no such file or directory -\usr\local\lib\ruby\site_ruby\1.9.1\i386-cygwin\digest\md5.so。经多次检查md5.so这个文件是确实存在的,而且路径也完全正确。我的cygwin安装在D盘,完整路径是D:\Cygwin\usr\local\lib\ruby\site_ruby\1.9.1\i386-cygwin\digest\md5.so,  Cygwin.bat在D:\Cygwin下。

报错图片见附件。请各位help help me,这个问题已经困扰了我好几个月了。


问题补充:
引用
正确的路径应该是:
D:\cygwin\usr\local\lib\ruby\1.9.1\i386-cygwin\digest\md5.so
吧? 不含 site_ruby 的。你把 site_ruby 里的 md5.so 复制到上面这个路径试试

我看了一下,在D:\cygwin\usr\local\lib\ruby\1.9.1\i386-cygwin\digest这个目录里也有md5.so这个文件,而且报错也确实是报的site_ruby的那个路径。
问题补充:
引用
还有个解决方法是: 打开 D:\cygwin\usr\local\lib\ruby\1.9.1\digest\md5.rb
把第 8 行的 require 'digest/md5' 改成你的 md5.so 所在的位置。路径相对于 lib 目录。 譬如如果你把 md5.so 放在了 lib 目录下,那么 require 'md5' 即可。

我发现我根本就没有D:\cygwin\usr\local\lib\ruby\1.9.1\digest\md5.rb这个文件,怎么回事?
问题补充:
我的md5.rb是在D:\Cygwin\usr\local\lib\ruby\1.9.1\rubygems\digest下
问题补充:
另外\usr\local\lib\ruby\site_ruby\1.9.1\i386-cygwin\digest\md5.so就是相对于D:\Cygwin\lib的路径,可以看附件的报错信息
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • xenocide 2009-06-11 12:17
    已采纳

    再提供两个想法:

    可能你得把
    D:\cygwin\usr\local\lib\ruby\site_ruby\1.9.1\i386-cygwin
    清空? (别忘了备个份)

    或者将 rubygems 更新到 1.3.4 (选 tgz 的)
    [url]http://rubyforge.org/frs/?group_id=126&release_id=35061[/url]
    解压后在 cygwin 下运行 ruby setup.rb

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • xenocide 2009-06-10 22:35

    正确的路径应该是:
    D:\cygwin\usr\local\lib\ruby\1.9.1\i386-cygwin\digest\md5.so
    吧? 不含 site_ruby 的。你把 site_ruby 里的 md5.so 复制到上面这个路径试试

    还有个解决方法是: 打开 D:\cygwin\usr\local\lib\ruby\1.9.1\digest\md5.rb
    把第 8 行的 require 'digest/md5' 改成你的 md5.so 所在的位置。路径相对于 lib 目录。 譬如如果你把 md5.so 放在了 lib 目录下,那么 require 'md5' 即可。

    评论
    解决 无用
    打赏 举报
  • xenocide 2009-06-10 22:45

    补充,如果用第二个方法,改成 require 'md5.so' 准确点

    评论
    解决 无用
    打赏 举报
  • xenocide 2009-06-11 12:10

    不好意思漏打了 rubygems ……

    可是我的电脑上,
    D:\cygwin\usr\local\lib\ruby[color=blue]site_ruby[/color]\1.9.1\i386-cygwin
    是空的……

    暴力点把 md5.rb 里面的 require 'digest/md5' 改成
    [code="ruby"]require '/usr/local/lib/ruby/1.9.1/i386-cygwin/digest/md5.so'[/code]
    试试…… 再不行就换 ruby 1.9.1 p129 再做一遍吧……

    题外:再不行,就用回稳定的 1.8.x …… 而且 1.8.x 也还在持续更新。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题