Gem简介

Rubyems:简称gems是一个用于对rails组建近些年个打包的ruby打包系统,它提供了一个分发ruby程序喝库的标准格式,还提供了一个管理程序包的工具。Rubyems的功能类似于linux下的apt-get,是个包管理器,可以从远程下载所需的包。 

什么是gem:你可以这样理解,gem是一系列文件和包的总称,是一些rails项目依赖的软件或者环境,或者是依赖的关系库,当你的项目中缺少的时候,你可以用gem install 来进行安装,这种安装是通过RubyGems这个包管理工具来安装的,当然你也可以通过bundleer来安装。说到这两种安装方法,区别在于: 

gem install xxx.gem是通过Rubyems工具来进行安装的,将所需要的gem都安装到/usr/local/ruby/lib/ruby/gems/1.8(你的ruby的安装目录)。这其中包括了Cache、doc、gems、specifications 4个目录,cache下放置下载的原生gem包,gems下则放置的是解压过的gem包。当安装过程中遇到问题时,可以进入这些目录,把有问题的gem删掉,重新 gem install 即可 

bundle install 默认情况下也是将所需要的gem安装到这个位置,但是在一些情况,可能你当前的用户权限对那个目录没有可写权限,这个时候bundler将会在一个临时目录里来升级所需的一切gem,然后管你要sudo的密码,这样的话,才有权限copy这些gems到系统的目录去。其实你应该永远也不要用sudo bundle install,因为在bundle install的时候,有些步骤是必须要用你现在的用户角色来进行的。 

Rails 3中如果需要 require 某个 gem 必须通过 Gemfile 来管理。 

Gemfile.lock 则用来记录本机目前所有依赖的 RubyGems 和其版本,所以强烈建议将该文件放入版本控制器,从而保证大家基于同一环境下工作。 

bundle install:安装你在项目的Gemfile文件中指定的项目依赖库
描述:用来安装你在Gemfile中制定的,该项目所要用到的依赖的gem。 

如果你第一次运行bundle install,并且这个Gemfile.lock不存在,bundler将会在远程的源上去抓取这些依赖的库,去解析依赖关系,并且安装所有你在Gemfile中指定的gem。 

如果Gemfile.lock文件已经存在了,并且你还没有更改你的Gemfile文件,bundler将会所有的远程资源,但是是根据Gemfile.lock中制定的gem来解析依赖关系。 

如果Gemfile.lock文件已经存在了,并且你已经更改了Gemfile文件,bundler将会用Gemfile.lock中,你没有更改之前的gem来解析依赖关系,并且将会利用你更改过的gem来重新解析这些依赖。 

如果gems有新版本,Gemfile.lock如何同步更新: bundle update,这样bundle会去检查 http://rubygems.org/ 上 gem的最新版本,如果本地旧的话,会去更新到最近版本。然后同步更新Gemfile.lock 

在Linux下不要使用 sudo bundle install/update,这样会在.bundle目录下查找bundle install path 的配置,找到后安装到该目录,而非系统指定的目录,不方便管理。这就是说,通过sudo bundle install 安装的gem会在你当前的家目录的.bundle下 
时间: 2024-10-06 09:19:58

Gem简介的相关文章

CocoaPods简介

CocoaPods简介 CocoaPods是一个负责管理iOS项目中第三方开源库的工具.CocoaPods的项目源码在Github上管理.该项目开始于2011年8月12日,在这两年多的时间里,它持续保持活跃更新.开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间 在我们有了CocoaPods这个工具之后,只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后在命令行执行$ pod install命令.CocoaPods就会

CloudFoundry in 1 Box简介:Bosh-lite

Pivotal Web Service主管工程师 产品经理 吴疆 一提起云计算服务,大家头脑中一般都会想到在一个机器轰鸣的数据中心,一个个机架排列在一起,一台台服务器在紧张的工作着,似乎搭建云计算环境都需要许多台强大的服务器.但是事实上,无论是提供IaaS服务的OpenStack,还是提供PaaS服务的CloudFoundry,都可以安装在一台计算机上,甚至可以只安装在一台虚拟机上. 0. 为什么需要单机版的云平台 无论是IaaS还是PaaS,云平台的主要设计目标都是抽象化和虚拟化系统资源,以达

Sass简介、安装与环境配置

Sass简介 css并非一门真正的“编程”语言,它没有变量,无法嵌套.循环等.为了解决css的不足,开发者们在css中加入编程元素,这就是css预处理器.基本思想是,用一种专门的编程语言作为预处理的“中间语言”,进行网页样式设计,再编译成css文件. sass是采用Ruby语言编写的一款css预处理语言.sass因其一开始的缩进式语法使用率不高,从sass第三代开始,放弃了缩紧式风格,完全向下兼容普通的css代码,也被称为scss. sass文件有两种后缀名:“.sass” 和 “.scss”.

Unix 下 使用 RVM 管理 Ruby 和 gem

转载:http://www.ibm.com/developerworks/cn/aix/library/au-aix-manage-ruby/ ? 尽管 Internet Relay Chat.论坛和版本控制工具(如 Git 和 Github)令分布式开发变得十分简单,但是重建另一个开发人员的环境将会十分困难.在一个新的开发机器上支持现有代码体,需要至少匹配初始编码人员的部分(也有可能是全部)堆栈,或是匹配增强应用程序所必需的软件组件.堆栈可能要求使用某种操作系统(比如 UNIX?.Linux?

FPM简介(定制rpm包)

FPM简介 fpm是生成rpm包的工具.rpm包的制作,采用fpm工具完成,FPM非常易用,此命令可以把rpm包的安装.卸载做得更加优雅,在安装前可以做一些准备工作,安装后可以做一些收尾工作,在卸载前也可以做一些准备,比如检测一下相应的服务是否停止了,在卸载软件再做一些扫尾的工作,只要把这些定义成一个个脚本,fpm中指定相应的选项即可轻松实现.FPM的github: https://github.com/jordansissel/fpm FPM安装 gem sources –a http://m

Ionic、SASS、MVVM、LESS简介

Ionic_百度百科 ionic[1] 是一个专注于用WEB开发技术,基于HTML5创建类似于手机平台原生应用的一个开发框架.绑定了AngularJS和Sass.这个框架的目的是从web的角度开发手机应用,基于PhoneGap的编译平台,可以实现编译成各个平台的应用程序. ionic的开发添加android和ios环境. ionic提供很多css组件[2] 和javascript UI库. ionic可以支持定制android和ios的插件,也支持服务端REST的敏捷开发. ionic 特点 编

CocoaPods的简介及安装和使用

CocoaPods的简介及安装和使用   一.CocoaPods是什么? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要 使用它,必须得另外下载其他类库,而其他类库又用到其他类库,"子子孙孙无穷尽也",这也许是比较特殊的情况.总之小编的意思就是,手动一个个去下载所需 类库十分麻烦.另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦.如果能有什么工具能

CloudFoundry in 1 Box简介:Lattice篇

Pivotal Web Service主管工程师 产品经理 吴疆 本篇是<CloudFoundry in 1 Box简介>系列最后一篇,在前面两篇中,我们介绍了Bosh-lite和pcf-dev的架构和部署.在本篇中,我们将详细描述另一个CloudFoundry in 1 Box解决方案Lattice. 1. Lattice简介 Lattice是一个很有意思的项目,设计目标是为Cloud Foundry的开发人员提供一个最小的App运行时环境,所以它只选择了Cloud Foundry中与App

Passenger简介

https://www.phusionpassenger.com/docs/tutorials/what_is_passenger/ What is Passenger? 一个开源的web程序服务.它除了HTTP请求,管理进程和资源,能够administration, monitoring,并进行问题诊断. 容易使用,让产品的部署变得容易和scalable( p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Arial; color: #3