部署 无需更改 Gemfile,让 bundle 使用淘宝源

qhwa · 2015年07月03日 · 最后由 wdtking 回复于 2017年05月09日 · 17250 次阅读
本帖已被设为精华帖!

大家都知道 Gemfile 中可以指定源:

# Gemfile:
source 'https://ruby.taobao.org'

然而有时候会带来些烦恼:

  • 自己做的开源项目,Gemfile 指定了用淘宝源,结果老外 git clone 过去用,发现杯具了
  • 需要国内、国外都部署,Gemfile 怎么写?

我今天知道,有个更方便的方法:

# Gemfile: 保持官方源不改
source 'https://rubygems.org'

命令行中运行:

bundle config 'mirror.https://rubygems.org' 'https://ruby.taobao.org'

配置全局有效,所以只需要运行一次,新项目(例如 rails new)都不用关心这个问题了

感谢 steven daniels 提供!

共收到 40 条回复

很好 👍

ruby-china 的 Gemfile 用环境变量设置源之后,Gemfile.lock 会写进当前使用的源,这样提交前又要修改。

哇,这个好厉害!有 GFW 在,新机器首次安装 rails 环境都很麻烦。这下就简单多了,我去用用看。

非常棒! 但是不是很清楚,这样子,部署到国内的话,就会自动连接到淘宝的源吗?

😄 习惯了这样

alias taobao=" ruby -p -i -e 'gsub(/rubygems.org/, %Q{ruby.taobao.org})' Gemfile  "

#3 楼 @cqcn1991 可以在部署脚本里加个 bundle config ...

#3 楼 @cqcn1991 这条命令会生成一个用户级别的 bundle 配置文件 cat ~/.bundle/config

---
BUNDLE_MIRROR__HTTPS://RUBYGEMS__ORG/: https://ruby.taobao.org

我是搞个环境变量

# coding: utf-8
if ENV['USE_TAOBAO_GEM_SOURCE']
  source 'https://ruby.taobao.org'
else
  source 'https://rubygems.org'
end

相当厉害!

cool,这下爽多了 👏

然而淘宝的源一点都不快.

为啥我运行之后没有反应,试了很多次了。

#11 楼 @455804841 你理解错了,不是帮你修改文件里的内容,而是把原来的 url 镜像到别处。

刚才还在吐槽这一点,非常感谢

非常好,非常实用😊

感觉还是直接在 Gemfile 里面设置 source 更直观一些。

#10 楼 @flypiggys 今天做了一个重大更新,应该比以前快多了,再试试看

这个挺赞的,....

淘宝源现在很慢啊,改用阿里云了

#20 楼 @nine 地址是多少?

#22 楼 @nine 今天有试过速度还慢吗?

#23 楼 @qhwa 貌似已正常

#23 楼 @qhwa 现在快了好多啊:plus1:

对于学习中的新手,不停的 new 项目,这样真的很方便,谢谢!

还是直接改 Gemfile 好些, 团队里不是每个人知道这个. 方便了自己, 坑了别人. 新建项目用--skip-bundle 就可以了.

#27 楼 @crazyjin 两种方式没有简单的更好更坏。 如果只是自己团队的项目,确定是在国内部署,当然是修改 Gemfile 方便了 如果是开源项目,会一些人需要用到 bundle mirror config

谢谢 楼主分享, 很好用

大赞

#7 楼 @huobazi then how to use it XD

必须顶一个 :plus1: F**K GFW

默默祝福 GFW,早登极乐!

感谢分享

不错,但是如果我要修改回来怎么改呢~~

#38 楼 @boboryby 删除:

bundle config --delete 'mirror.https://rubygems.org/'

谢谢楼主分享,rails 幼儿园水平的俺很需要

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册