当我需要某些宝石时,它们中的一些会起作用,而另一些则不起作用。他们似乎安装了 find ,我可以做一个 gem 列表,他们就在那里。但是,当我尝试在 Irb 中运行它们或从终端运行我的 ruby 程序时,我得到以下信息:
LoadError: no such file to load -- sanitize
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:54:in `gem_original_require'
Run Code Online (Sandbox Code Playgroud)
所以我遵循了 RubyGems 的指南,一切似乎都很好:
noahclark$ gem list sanitize
*** LOCAL GEMS ***
sanitize (2.0.3)
noahclark$ ruby -rubygems -e 'require "sanitize"'
noahclark$
noahclark$ which ruby
/opt/local/bin/ruby
noahclark$ gem env | grep 'RUBY EXECUTABLE'
- RUBY EXECUTABLE: /opt/local/bin/ruby
Run Code Online (Sandbox Code Playgroud)
然后我尝试了:
noahclark$ which gem
/opt/local/bin/gem
noahclark$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.10
- RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin10]
- INSTALLATION DIRECTORY: /opt/local/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /opt/local/bin/ruby
- EXECUTABLE DIRECTORY: /opt/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-darwin-10
- GEM PATHS:
- /opt/local/lib/ruby/gems/1.8
- /Users/noahclark/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
Run Code Online (Sandbox Code Playgroud)
您可以看到哪个 gem 和 gem 环境正在查看两个单独的目录。我四处寻找修复程序,但只能找到建议将 export PATH=$PATH:/opt/local/bin/gem 添加到我的 .bashrc 文件的内容。这并没有解决它。
我应该如何解决这个问题?
根据错误消息中的路径,您的 irb 和应用程序可能正在使用默认的系统 ruby。
显示什么which irb?您用来运行应用程序的命令行是什么?
您可能需要调整脚本的 shebang 行(以“#!”开头的第一行)以使用 /opt/local/bin/ruby。
| 归档时间: |
|
| 查看次数: |
12413 次 |
| 最近记录: |