因为初学Ruby,四处查资料无果,才来的贴出亲自试过的操作,覆盖整个个人入门笔记博客中,故所有的操作,都以最明了的方式阐述,当你创建完一个新的Rails应用后,你发现JAVA中我们可以编写maven聚合项目来控制其子项目的JDK,TOMCAT等等的版本,那么Ruby是怎样来管理的呢,答案就是在Gemfile中加依赖,而这个文件不是你手动编写的,而是使用Bundler来安装和引入该应用所需的gem。执行rails new命令时会自动运行Bundler(bundle install命令),而bundle就是根据Gemfile文件中的来依赖你所定义的源,就像JAVA中的依赖jar包一样。下面先看看默认生成的Gemfile中有什么?

 source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby '2.3.1' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.2.0'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use Puma as the app server
gem 'puma', '~> 3.11'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'mini_racer', platforms: :ruby # Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.2'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7' # Use ActiveStorage variant
# gem 'mini_magick', '~> 4.8' # Use Capistrano for deployment
# gem 'capistrano-rails', group: :development # Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.1.0', require: false group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end group :development do
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
gem 'web-console', '>= 3.3.0'
gem 'listen', '>= 3.0.5', '< 3.2'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end group :test do
# Adds support for Capybara system testing and selenium driver
gem 'capybara', '>= 2.15', '< 4.0'
gem 'selenium-webdriver'
# Easy installation and use of chromedriver to run system tests with Chrome
gem 'chromedriver-helper'
end # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

  可以看到很多的代码都被#注释掉了,这些代码之所以注释而又放在这,是为了告诉你一些常用的gem,也是为了展示Bundler的句法,在gem指令中,如果你没有指定版本,那么Bundler就会默认安装最新版。

题外话:   

gem 'uglifier', '>= 1.3.0'
这行代码的意思是,安装版本号大于或等于1.3.0的uglifier(作用是压缩 Asset Pipeline中的文件),就算是7.2版也会安装。
gem 'coffee-rails','~> 4.0.0'
这行代码的意思是,安装版本号大于4.0.0,但小于4.1的coffee-rails。也就是说,>=表示法意思是始终安装最新版;~> 4.0.0表示法的意思是只安装最后一个数字变化的版本

  但是往往开发中我们会修改Gemfile,换用更为精准的版本号,并且引用国内淘宝的,就不用翻墙,提高速度,那么下面就来看看修改过后的文件。

注意将source 'https://rubygems.org'  改为   source 'https://ruby.taobao.org'

修改完后执行Bundle install命令,来安装这些gem,注意别像我一样蠢,一开始居然没在项目内运行命令,应该在你带有Gemfile的目录下执行Bbundle install.然后出现类似下面提示,就是更新依赖成功

Using rake 12.3.1
Using concurrent-ruby 1.0.5
Using i18n 1.0.1
Using minitest 5.11.3
Using thread_safe 0.3.6
Using tzinfo 1.2.5
Using activesupport 5.2.0
Using builder 3.2.3
Using erubi 1.7.1
Using mini_portile2 2.3.0
Using nokogiri 1.8.2
Using rails-dom-testing 2.0.3
Using crass 1.0.4
Using loofah 2.2.2
Using rails-html-sanitizer 1.0.4
Using actionview 5.2.0
Using rack 2.0.5
Using rack-test 1.0.0
Using actionpack 5.2.0
Using nio4r 2.3.1
Using websocket-extensions 0.1.3
Using websocket-driver 0.7.0
Using actioncable 5.2.0
Using globalid 0.4.1
Using activejob 5.2.0
Using mini_mime 1.0.0
Using mail 2.7.0
Using actionmailer 5.2.0
Using activemodel 5.2.0
Using arel 9.0.0
Using activerecord 5.2.0
Using mimemagic 0.3.2
Using marcel 0.3.2
Using activestorage 5.2.0
Using public_suffix 3.0.2
Using addressable 2.5.2
Using io-like 0.3.0
Using archive-zip 0.11.0
Using bindex 0.5.0
Using msgpack 1.2.4
Using bootsnap 1.3.0
Using bundler 1.16.2
Using byebug 10.0.2
Using xpath 3.1.0
Using capybara 3.2.1
Using ffi 1.9.25
Using childprocess 0.9.0
Using chromedriver-helper 1.2.0
Using coffee-script-source 1.12.2
Using execjs 2.7.0
Using coffee-script 2.4.1
Using method_source 0.9.0
Using thor 0.20.0
Using railties 5.2.0
Using coffee-rails 4.2.2
Using multi_json 1.13.1
Using jbuilder 2.7.0
Using rb-fsevent 0.10.3
Using rb-inotify 0.9.10
Using ruby_dep 1.5.0
Using listen 3.1.5
Using puma 3.11.4
Using sprockets 3.7.1
Using sprockets-rails 3.2.1
Using rails 5.2.0
Using rubyzip 1.2.1
Using sass-listen 4.0.0
Using sass 3.5.6
Using tilt 2.0.8
Using sass-rails 5.0.7
Using selenium-webdriver 3.12.0
Using spring 2.0.2
Using spring-watcher-listen 2.0.1
Using sqlite3 1.3.13
Using turbolinks-source 5.1.0
Using turbolinks 5.1.1
Using uglifier 4.1.11
Using web-console 3.6.2
Bundle complete! 18 Gemfile dependencies, 78 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

好了,到此为止Gemfile文件就入门完了,嘻嘻。

如果你还想深入了解Gemfile文件,那个可以参考下  http://tosbourn.com/what-is-the-gemfile/

最新文章

  1. table的自动增加
  2. ViewGroup 和 View 事件传递及处理小谈
  3. [Effective C++ --017]以独立语句将newed对象置入智能指针
  4. 第一篇、CSS3_transtion的使用
  5. Android的两种菜单
  6. C#中AES加密和解密
  7. 基于TypeScript的FineUIMvc组件式开发(开头篇)
  8. 题解:LOJ540游戏
  9. 小飞侠带你精通Python网络编程系列04-Python内置的数据类型
  10. Oracle 11gR1 RAC存储迁移方案
  11. Signature Request Warnings &amp; eth_sign学习
  12. C#资源管理器
  13. ios 回调函数作用
  14. 【linux C】C语言中常用的几个函数的总结【二】
  15. Linux下分割、合并PDF(pdftk),用于Linux系统的6款最佳PDF页面裁剪工具
  16. Unity5 Shader Stripping 导致 LightMap 全部丢失的解决方法
  17. SRM 739 Div.2
  18. &amp;lt;LeetCode OJ&amp;gt; 121. /122. Best Time to Buy and Sell Stock(I / II)
  19. Nginx报错-找不到路径
  20. 【干货】Chrome插件(扩展)开发全攻略(转)

热门文章

  1. ldap搭建
  2. poj 1953 World Cup Noise (dp)
  3. 关于Linux单机、集群部署FastDFS分布式文件系统的步骤。
  4. java8学习之Collectors工厂类源码分析与实战
  5. Java 和JavaScript实现C#中的String.format效果
  6. JS 深拷贝/合并
  7. Mongodb的聚合和管道
  8. 更优雅地关闭资源 - try-with-resource
  9. UVA - 12538 Version Controlled IDE (可持久化treap)
  10. 【hiho1065】全图传送