繁体   English   中英

在Mac上安装Ruby on Rails

[英]Installing Ruby on Rails on Mac

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

“ rvm install 1.9.2”花费的时间太长,因此基于SO的建议,我使用“ rvm要求”通过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中的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 /gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/sid.rb:39:在pgid' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/server.rb:78:in /gems/spring-1.1.2/lib/spring/server.rb:78:在set_pgid中/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从/Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/run.rb:36: 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'from /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 call' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/rails.rb:23:in rb:7:in call' from /Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/client/rails.rb:23:in call'from /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加载中/Users/me/.rvm/gems/ruby-1.9.3-p545/gems/spring-1.1.2/lib/spring/binstub.rb:11 <top (required)>' from /Users/me/Coding/pong/bin/spring:16:in需要'从/用户/ ME /编码/乒乓/ bin中/弹簧:16:在<top (required)>' from bin/rails:3:in从仓负载” / rails:3:in`'

根据此处此处和其他地方阅读的建议,我决定尝试使用其他编译器:

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

此安装也存在同样的问题。

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

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

除此之外,您还不需要弹簧即可运行Rails应用程序。 它主要是在开发和测试过程中的帮助者。 清理完所有内容后,我会从您的Gemfile中删除它,直到您真正需要它为止。

通过将@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时收到了以下消息(确认安德鲁的评论):

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

 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不起作用?

谢谢,

Grasswistle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM