【发布时间】:2012-03-08 18:01:03
【问题描述】:
全新 Ubuntu 10.04 安装:
我在让我的 gem 安装过程正常运行时遇到了一些问题。每当我安装 gem 时,它都会经历一个很好、直接的过程,没有任何问题:
$ gem install rails
Successfully installed rails-3.2.2
1 gem installed
然后验证版本,也许是一个简单的“rails -v”?没有:
$ rails -v
/home/pragone/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find railties (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)
from /home/pragone/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /home/pragone/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems.rb:1210:in `gem'
from /home/pragone/.rvm/gems/ruby-1.9.3-p125/bin/rails:18:in `<main>'
所以让我们确保安装 railties:
$ gem install railties
Successfully installed railties-3.2.2
1 gem installed
并尝试再次获取 rails 的版本:
$ rails -v
/home/pragone/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find railties (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)
from /home/pragone/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /home/pragone/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems.rb:1210:in `gem'
from /home/pragone/.rvm/gems/ruby-1.9.3-p125/bin/rails:18:in `<main>'
我安装的几乎所有 gem 都会发生这种情况。我尝试搜索某种关于如何使用 gem 安装东西的文档,但找不到任何东西。似乎有些 gem 安装在一个位置,有些安装在另一个位置,而其中一个位置不在我的路径中。有什么想法吗?
编辑:要求的信息:
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.17
- RUBY VERSION: 1.9.3 (2012-02-16 patchlevel 125) [x86_64-linux]
- INSTALLATION DIRECTORY: /home/pragone/.rvm/gems/ruby-1.9.3-p125
- RUBY EXECUTABLE: /home/pragone/.rvm/rubies/ruby-1.9.3-p125/bin/ruby
- EXECUTABLE DIRECTORY: /home/pragone/.rvm/gems/ruby-1.9.3-p125/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /home/pragone/.rvm/gems/ruby-1.9.3-p125
- /home/pragone/.rvm/gems/ruby-1.9.3-p125@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--no-ri --no-rdoc"
- REMOTE SOURCES:
- http://rubygems.org/
还有 rvm 信息:
system:
system:
uname: "Linux domU-12-31-39-0A-34-6E 2.6.32-311-ec2 #23-Ubuntu SMP Thu Dec 2 11:14:35 UTC 2010 x86_64 GNU/Linux"
bash: "/bin/bash => GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)"
zsh: " => not installed"
rvm:
version: "rvm 1.10.3 by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.beginrescueend.com/]"
updated: "2 hours 40 minutes 7 seconds ago"
homes:
gem: "not set"
ruby: "not set"
binaries:
ruby: "/usr/bin/ruby"
irb: "/usr/bin/irb"
gem: "/usr/bin/gem"
rake: "/home/pragone/.rvm/bin/rake"
environment:
PATH: "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/pragone/.rvm/bin"
GEM_HOME: ""
GEM_PATH: ""
MY_RUBY_HOME: ""
IRBRC: ""
RUBYOPT: ""
gemset: ""
此外,使用上面列出的 PATH,我在尝试运行 rails 时得到了这个:
The program 'rails' is currently not installed. You can install it by typing:
sudo apt-get install rails
但是,当我四处乱窜并将这些错误添加到我的 PATH 时,发生了上述错误:
/home/pragone/.rvm/gems/ruby-1.9.3-p125/bin
/home/pragone/.rvm/gems/ruby-1.9.3-p125/gems
我尝试重新运行 ~/.rvm/scripts/rvm,但它似乎没有将正确的路径添加到我的 PATH。我还在工作安装(我的 macbook pro,运行 os x 10.7)上做了一些挑选,并验证 ~/.rvm/scripts/rvm 在工作安装中将项目添加到我的 PATH 中,但不是在ubuntu 盒子。
which rails: 路径被黑:
$ which rails
/home/pragone/.rvm/gems/ruby-1.9.3-p125/bin/rails
which rails: 新鲜的 PATH:(无响应;大概没有找到)
$ which rails
$
【问题讨论】:
-
请包括
gem env和rvm info -
看起来对你的路径进行黑客攻击最终导致你混淆了系统和 rvm 红宝石。尝试清除您的路径(即没有您添加的 1.9.3 目录的新路径)然后
rvm 1.9.3,这应该设置您使用 rvm Ruby。然后再次gem install rails。 -
rvm info和gem env不一样,是同一个控制台吗? -
可能不会。再玩一些,重新安装导致我使用
rvm use 1.9.3 --default修复它。我不太明白为什么会解决它,但它确实解决了。 (不知道怎么关闭/撤回这个问题,系统也不让我回答……) -
我猜 gem 已安装到默认的 ruby 安装中,即使您在该会话中使用 1.9.3。
标签: ruby-on-rails ruby gem rvm