我是 Rails 的新手。我只是在进行 Bundle 安装,并注意到 Rails 需要很多 gem 才能启动。
我只想知道是否有 Rails 每次安装的默认 Gems 列表。
我知道这听起来有点奇怪,但我想知道。
我是 Rails 的新手。我只是在进行 Bundle 安装,并注意到 Rails 需要很多 gem 才能启动。
我只想知道是否有 Rails 每次安装的默认 Gems 列表。
我知道这听起来有点奇怪,但我想知道。
我理解你的困惑,所以让我解释一下。默认情况下,您的 Gemfile 只需要几个 gem,其中包括 rails。但是你看到几十个 gem 安装在一个新鲜的bundle install
. 问题是宝石通常依赖于其他宝石,而它们又可以依赖于其他宝石。例如,访问 rubygems.org 并查找rails
gem。在那里你会看到这个 gem 的依赖关系。通过转到每个依赖的 gem,您将看到它们各自的依赖项。
Bundler 在创建完整的 gem 列表时会构建一个数据结构,这个数据结构称为依赖图。一旦有了这个数据结构,它就会创建一个 Gemfile.lock - 一个特殊的快照依赖文件,其中包含应用程序所需的所有gem。
Ruby gem 是增强 Ruby 编程语言的特性和功能的插件。以下是预安装的 Ruby gem 的列表:
actionmailer (1.2.1) - Service layer for easy email delivery and testing
actionpack (1.12.1) - Web-flow and rendering framework putting the VC in MVC
actionwebservice (1.1.2) - Web service support for Action Pack
activerecord (1.14.2) - Implements the ActiveRecord pattern for ORM
activesupport (1.3.1) - Support and utility classes used by the Rails framework
fcgi (0.8.6.1) - The fcgi gem facilitates FastCGI, which we use in concert with mod_fastcgi to accelerate your Ruby on Rails applications
gruff (0.1.2) - A library for making graphs
mysql (2.7)/pg - The MySQL/PG Ruby gem allows you to connect to and use MySQL/PG databases. We fully support MySQL/PG and the Ruby bindings to it.
rails (1.1.2) - The Ruby on Rails package
rake (0.7.1) - Ruby based make-like utility, required by many Ruby applications and gems.
rmagick (1.10.1) - RMagick allows you to use the ImageMagick and GraphicsMagick libraries, similar to GD support in PHP or Perl.
还
gem 'carrierwave'
gem 'devise'
运行 bundle install 后,将生成一个 Gemfile.lock 文件。
Gemfile.lock 包含应用程序中正在使用的所有 gem 的列表,包括所有依赖项。