在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个回答

再提供两个想法:

可能你得把
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

正确的路径应该是:
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' 即可。

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

不好意思漏打了 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 也还在持续更新。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问