- 浏览: 148941 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (110)
- CoreJava (18)
- 待解决 (1)
- 数据结构 (3)
- 科普 (2)
- 网站 (1)
- DataBase (8)
- Access (1)
- Asp (1)
- JSP (1)
- 操作系统 (8)
- Tech (1)
- Linux (11)
- Career (5)
- MongoDB (1)
- Embedded (1)
- JavaScript (1)
- UltraIso (1)
- Linux命令 (1)
- DesignPattern (1)
- Ruby (13)
- Vim (1)
- 自考 (2)
- Github (5)
- zrProject (1)
- Emacs (4)
- Math (3)
- Ajax (1)
- 没看懂 (1)
- HTML (1)
- Philosophy (1)
- 软件 (1)
- 面试 (1)
- 考试报名 (3)
- Regex (1)
- 日语 (1)
- 生活 (1)
最新评论
做过Ruby项目的人可能有过我一样的感受,rubygems.org在中国的访问太慢了,每次我们bundle install都要等老长时间,而我们通过浏览器去下载对应的gems文件时却速度刷刷的。。。 为什么会出现这样的情况呢? 明明我们在Gemfile中写的是:
- source "http://rubygems.org"
好了,既然bundle install很慢,那我就去下载gem文件下来到本地,然后运行:
- gem install /path/to/gems/***.gem
结果发现,有些gem文件安装速度很快,有些bundle安装很慢。 为啥呢? 我们又如何去避免这样的痛苦呢?
好,那下面我就先来详细说明一下ruby的bundle机制。
首先说一下Gemfile文件,Gemfile就是用来描述你当前ruby工程需要依赖的插件bundle,好比在java的插件工程,当前工程会依赖哪些其他插件,依赖的插件有版本区别。比如下面就是我的一个简单ruby工程的Gemfile文件内容:
- source "http://rubygems.org"
- gem "rspec", "~> 2.7.0"
- gem "rake", "~> 0.9.2.2"
第一行说明我bundle下载的服务器
第3行和第4行说明我当前工程需要依赖rspec插件和rake插件
"~> 2.7.0"表示需要对于的版本好为 >= 2.7.0 而且 <= 2.8.0
在运行调用代码之前都需要先bundle install好对于的插件bundle
但是写了Gemfile就需要安装bundler插件,这个完全可以通过下面的命令来完成
gem install /path/to/gem/bundler-version.gem
(先下载bundler gem文件到local)
好了,安装好了bundler,就可以执行bundle install了。
但是每次都执行bundle install都很慢很慢,让我无法承受。怎么办?
下载到本地然后gem install,发现如果插件有依赖的话,还是同样很慢,因为它会自动访问服务器去下载需要依赖的插件。既然我本地可以通过浏览器直接下载下来我需要的bundle,能否直接利用到本地的? 答案是可以的。
我们完全可以搭建一个本地的gem mirror服务器,而且非常简单。
首先,下载好所有的gem文件(其实就是bundle文件),注意依赖插件也必须准备好,放在本地某个目录中。 然后在这个目录中执行下面命令:
- gem generate_index -d /path/to/your/gemfiles/
- cd /path/to/your/gemfiles/
- gem server
然后修改你的Gemfile的source,改成如下:
source "http://0.0.0.0:8808"
然后运行bundle install,看到的结果一定是让你激动的效果~
最后,建议每个ruby工程目录中增加一个.rvmrc文件,这个文件就是用来指定你该工程使用的ruby版本,已经bundle安装目录和cache目录。.rvmrc的内容只有一句话:
- rvm --create use ruby-1.9.2@myprojectname
然后你每次进到工程目录种后都会看到自动切换到相应版本的ruby提示信息。
注意,第一次设置后,需要重新安装bundler以及bundle install,原因可以自己想一下。
另外,每次修改Gemfile时,都需要bundle install一下,这个时候不会安装所有的bundle,因为上次bundle install的时候会生成一个Gemfile.lock文件,告诉bundler哪些bundle已经安装了,而且依赖关系也知道了。 这次只会安装新增的bundle
链接:
1. Creating a RubyGems Mirror With HTTP Basic Authentication
2. Creating your own RubyGem mirror
3. Bundler说明
本文出自 “享受编程人生” 博客,请务必保留此出处http://huihua.blog.51cto.com/3865128/706748
发表评论
-
使用Net::SSH和Net::SCP编写Linux服务器管理脚本
2012-06-14 19:20 2417原文:http://rubyer.me/blog/113 ... -
Ruby的 private protect public
2012-06-14 19:18 1344原文:http://rubyer.me/bl ... -
ruby-mp3info,纯Ruby修改mp3标签
2012-06-14 19:16 906原文:http://rubyer.me/blog/747 ... -
Ruby Closure
2012-06-14 19:13 795Closure - programming language ... -
Ruby/Rails 生態圈 Ecosystem
2012-06-13 21:59 852http://ihower.tw/rails3/eco ... -
提高rails new时bundle install运行速度
2012-05-05 20:24 0http://rubyer.me/blog/941/ ... -
mysql配置
2012-03-20 22:36 882http://wiisola.iteye.com/blo ... -
Gem 淘宝mirror地址
2012-03-19 12:47 924https://ruby.taobao.org -
搭建 Nginx 反向代理,提高 Gem 的安装速度
2012-03-19 12:43 799最近时常遇到 Gem 安装东西的时候安装失败或异常缓慢, ... -
Gems淘宝镜像
2012-03-04 23:09 0Shell代码 $ ... -
学习笔记
2012-03-04 11:55 561Command LIne Switches: -
Ruby待解决
2012-02-21 21:47 6091.inject 2.|x|这种用法 -
Tutor
2012-02-19 16:14 509http://www.fincher.org/tips/Lan ... -
Tutorial
2012-02-19 12:46 678Variable naming Ok, let's slo ...
相关推荐
《Ruby Doc Bundle:深入理解Ruby文档与库管理》 Ruby Doc Bundle是一个专门为Ruby开发者准备的文档集合,它包含了Ruby语言及各种Gem库的详细文档,是开发者日常学习、查询和解决问题的重要工具。在这个压缩包中,...
使用Ruby On Rails开发时经常需要Bundle Install 但有些环境网络太慢或无法连接外网的时候就需要离线Bundle 该压缩包包括52个gem 其中有sqlite3,tzinfo-data等等
ruby-doc-bundle.chm ruby-doc-bundle.chm
5. **执行`bundle install`**:在项目目录中运行`bundle install`,Bundler会读取Gemfile并安装所有必要的Gem及其依赖。 6. **使用Bundler启动应用**:在开发过程中,可以使用`bundle exec`来运行项目,例如`bundle...
rubygems-bundler, 没有 `bundle exec... ` > = 2.2.0通常,在 RubyGems> = 2.2.0上不需要这个 gem 。 只需将 RUBYGEMS_GEMDEPS 环境变量设置为你的Gemfile或者 -的路径,以便在父目录中自动发现。但是,还不
makerbot print 打印机官网附带软件,可在makerbot replicator 5使用
总结起来,adt-bundle-windows-x86_64-20140624是一个完整的Android开发环境,适合使用Windows 64位系统的开发者,它包含Eclipse IDE、ADT插件、Android SDK以及其他必要的工具,使开发者能够高效地进行Android应用...
"adt-bundle-windows-x86-20140624工具文件"是一个专为Windows平台上的x86架构设计的Android开发工具包。这个压缩包包含了Android开发者需要的一系列核心工具,使得用户能够在本地环境中创建、调试和发布Android应用...
Bundle Manager是基于Asset Bundle的动态加载方案。让开发者可以在不编写任何代码的情况下,方便地创建,修改,优化Asset Bundle。 特点: - 不用编写bundle管理代码。 创建和修改bundle都不需要再做繁杂的硬编码。...
首先 新建一个的一个项目,在该项目上执行 bundle install 提示 代码如下: … Make sure that gem install mysql2 -v ‘0.3.16’; succeeds before bundling …. 感觉非常奇怪 最后console提示 代码如下: … /home...
GHA Jekyll构建在Docker容器中运行Bundle Install和Jekyll Build的操作目录 归因 :balance_scale: 执照 要求如果在GitHub上使用,则可以访问GitHub Actions;如果是私有使用,则可以访问Docker技术。 快速开始在您...
Ruby 这个就不用多说了 RVM 用于帮你安装Ruby环境,帮你管理多个Ruby环境,帮你管理你开发的每个Ruby应用使用机器上哪个Ruby环境。Ruby环境不仅仅是Ruby本身,还包括依赖的第三方Ruby插件。都由RVM管理。 Rails 这个...
在Android应用开发中,Fragment和Activity是两个非常重要的组件,它们共同构建了应用程序的用户界面。...通过理解Activity和Fragment的生命周期以及Bundle的工作原理,开发者可以更好地设计和管理应用程序的数据流。
下面俩个版本都能正常使用: 编译器版本号:adt-bundle-windows-x86_64-20130717 编译器版本号:adt-bundle-windows-x86_64-20130917 汉化方法: 拷贝中文包中的文件到编译器同名目录下
这个控制器的核心在于它的模块化架构,由多个bundle组成,每个bundle都封装了一定的功能,通过服务接口进行交互。在"OpenDaylight主要类、bundle关系图"中,我们可以深入理解其内部工作原理。 首先,让我们关注Open...
4、下面见证奇迹的时刻到了 命令行输入:BundleInstall 回车 哦了 此配置包涵一下插件: Bundle 'gmarik/vundle' " My Bundles here: " " original repos on github Bundle 'mattn/zencoding-vim' Bundle '...
输入bundler-exec,它将自动在通用Ruby命令的开头加上“ bundle exec”。 安装 将bundler-exec.sh复制到〜/ .bundler-exec.sh。 从〜/ .bashrc文件中获取它。 例如: $ curl -L https://github.com/gma/bund
UNIVERSAL FIGHTING ENGINE: UNIVERSAL FIGHTING ENGINE 1.8.6 Bundle
adt-bundle-windows-x86_64_20140101.zip下载,百度云盘分享链接下载
npm install --save-dev sake-bundle ``` 接下来,在项目根目录下创建一个`sakefile.rb`文件,然后你可以定义自己的任务,比如创建一个捆绑JS文件的任务: ```ruby require 'sake-bundle' task :bundle_js do ...