1

我是 Rails 的新手。我只是在进行 Bundle 安装,并注意到 Rails 需要很多 gem 才能启动。

我只想知道是否有 Rails 每次安装的默认 Gems 列表。

我知道这听起来有点奇怪,但我想知道。

4

3 回答 3

3

我理解你的困惑,所以让我解释一下。默认情况下,您的 Gemfile 只需要几个 gem,其中包括 rails。但是你看到几十个 gem 安装在一个新鲜的bundle install. 问题是宝石通常依赖于其他宝石,而它们又可以依赖于其他宝石。例如,访问 ruby​​gems.org 并查找railsgem。在那里你会看到这个 gem 的依赖关系。通过转到每个依赖的 gem,您将看到它们各自的依赖项。

Bundler 在创建完整的 gem 列表时会构建一个数据结构,这个数据结构称为依赖图。一旦有了这个数据结构,它就会创建一个 Gemfile.lock - 一个特殊的快照依赖文件,其中包含应用程序所需的所有gem。

于 2013-03-28T06:57:38.133 回答
1

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'
于 2013-03-28T06:56:45.067 回答
1

运行 bundle install 后,将生成一个 Gemfile.lock 文件。

Gemfile.lock 包含应用程序中正在使用的所有 gem 的列表,包括所有依赖项。

于 2013-03-28T07:16:12.297 回答