0

要在我的 Mac (v10.9.2) 上安装 RoR,我决定在此处按照 Ruby 1.9.2 的说明进行操作:https ://stackoverflow.com/a/8464619/2278546

“rvm install 1.9.2”花费的时间太长,所以根据对 SO 的建议,我使用“rvm requirements”通过 macports 单独安装每个要求。然后我执行了“rvm install 1.9.2”,它运行得更快了。

当我尝试执行“gem install rail”时,我收到一条错误消息说

activesupport 需要 Ruby 版本 >= 1.9.3

结果,我回去用 1.9.3 再次尝试:

rvm install 1.9.3
rvm --default 1.9.3
gem update
gem install rails

这一次,在 rails install 命令期间,安装 rails 文档的过程卡住了。我决定中断并运行它:

gem install --no-ri --no-rdoc rails

这行得通!我运行了以下内容:

rails new pong; cd pong; rails generate controller welcome index

该字符串中的最后一个命令给了我以下错误:

/Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/sid.rb:17:in fiddle_func': uninitialized constant Spring::SID::DL (NameError) from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/sid.rb:30:in sid' 来自 /Users/me/.rvm/gems/ ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/sid.rb:39:in pgid' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/server.rb:78:in set_pgid' 来自 /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/ spring-1.1.2/lib/spring/server.rb:34:in boot' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/server.rb:14:in boot' 来自 /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/ client/run.rb:36:in block in boot_server' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/run.rb:34:in fork' 来自 /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/run.rb:34:boot_server' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/run.rb:18:in 来自 /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/command.rb:7:in call call' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/rails.rb:23:in ' 来自 /Users/me /.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/command.rb:7:in call' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client.rb:26:in 运行'来自 /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/bin/spring:48:in <top (required)>' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/binstub.rb:11:in load' 来自 /Users/me/.rvm/gems/ruby -1.9.3-p545/gems/spring-1.1.2/lib/spring/binstub.rb:11:in <top (required)>' from /Users/me/Coding/pong/bin/spring:16:in require' from /Users/me/Coding/pong/bin/spring:16:in <top (required)>' from bin/rails:3:inload' from bin/ rails:3:in `'

根据阅读herehere以及其他地方的建议,我决定尝试使用不同的编译器:

port install gcc46
CC=`which gcc-mp-4.6`
rvm reinstall 1.9.3
gem install
rvm reinstall 1.9.3

这个安装也有同样的问题。

4

2 回答 2

1

我怀疑中断这些构建可能会使事情处于糟糕的状态。首先,卸载 1.9.2。至少到目前为止,1.9.3-p545 是最旧的受支持版本。

接下来,卸载 gem 'spring-commands-rspec' 并运行 gem pristine -all。然后进行另一个捆绑安装。FWIW,我可以在我的 10.9.2 macbook 上运行 spring。如果您的 gcc 出现问题,您可能需要重新安装 xcode 命令行工具。

除此之外,您不需要 spring 来运行 rails 应用程序。它主要是开发和测试期间的助手。一旦你把东西清理干净,我会从你的 Gemfile 中删除它,直到你真正需要它。

于 2014-04-21T23:01:50.030 回答
0

通过将@Andrew 的建议与一些常识相结合,我能够让事情顺利进行......

我首先清理了我造成的混乱:

sudo rvm remove 1.9.2
sudo rvm remove 1.9.3
sudo rvm remove 1.9.3-p545
sudo gem uninstall spring-commands-rspec
sudo gem pristine -a
sudo port uninstall rvm

然后我重新安装了rvm

sudo port install rvm

并用 rails 重新安装了 Ruby 1.9.3:

sudo rvm install 1.9.3
sudo gem update
sudo gem install --no-ri --no-rdoc rails

如上所述的问题仍然存在。

然后我记得我在安装 Ruby 时收到了以下消息(确认 Andrew 的评论):

警告:请注意您刚刚安装了一个不再维护的 ruby​​ (2014-02-23),有关维护的 ruby​​ 列表,请访问:

http://bugs.ruby-lang.org/projects/ruby/wiki/ReleaseEngineering

请考虑升级到包含所有最新安全补丁的 ruby​​-2.1.1。

于是,我又清理了一遍:

sudo rvm remove 1.9.3
sudo rvm remove 1.9.3-p545
sudo gem uninstall spring-commands-rspec
sudo gem pristine -a

然后,我尝试安装 Ruby 2.1.1 和 Rails:

sudo rvm install 2.1.1
sudo gem update
sudo gem install --no-ri --no-rdoc rails

这次,我尝试运行时没有错误

rails new pong; cd pong; rails generate controller welcome index

这不是一个理想的答案,因为我仍然无法让 1.9.3 工作,但它符合我的目的(我认为)。任何人有任何理论解释为什么 1.9.3 不起作用?

谢谢,

禾本科

于 2014-04-22T03:44:05.420 回答