由于国内网络原因(你懂的),导致rubygems.org存放在Amazon S3上面的资源文件间歇性连接失败。所有你会遇到对于Rails项目通常需要将Gemfile的第一行改为gem install rack
或bundle install
的时候半天没有响应。将默认源改成国内的淘宝源(http://ruby.taobao.org)可以解决该问题。
source 'http://ruby.taobao.org/'
但是通过rails new my_project
创建项目时,由于Gemfile生成以后立即执行bundle install
,此时source尚未修改,所以项目创建的过程仍然很慢。解决rails new 卡住的问题,有如下两种方法
使用--skip-bundle
参数
rails new app1 --skip-bundle
通过设置--skip-bundle
参数,rails new
命令创建完成项目骨架以后,不会执行bundle install
。于是可以修改Gemfile行首的source,然后再执行bundle install
。修改Gemfile模板
使用如下命令,修改Gemfile模板文件,一劳永逸For Mac
/usr/bin/sed -i .bak 's!https://rubygems.org!http://ruby.taobao.org!' `rvm info homes | grep gem: | awk '{print $2}' | tr -d '"'`/gems/railties-`gem list | grep railties | awk '{print $2}'| tr -d '()'`/lib/rails/generators/rails/app/templates/Gemfile
For Linux
sed -i 's!https://rubygems.org!http://ruby.taobao.org!' `rvm info homes | grep gem: | awk '{print $2}' | tr -d '"'`/gems/railties-`gem list | grep railties | awk '{print $2}'| tr -d '()'`/lib/rails/generators/rails/app/templates/Gemfile