gem install bundler是什么?

3

我知道我可以从http://bundler.io阅读它,但是我有一些疑虑。

  1. 它是否像Node.js的npm和Java/J2EE的Maven?
  2. 我执行的第一个命令是“gem install bundler”。这里的gem是什么?Bundler是什么?能否用Node.js或Maven进行解释?
  3. 这些软件包安装在哪里?我没有像在Node.js中全局安装时使用的-g参数。
C:\Users\Shane>gem install bundler
Fetching: bundler-1.5.3.gem (100%)
Successfully installed bundler-1.5.3
Parsing documentation for bundler-1.5.3
Installing ri documentation for bundler-1.5.3
1 gem installed

C:\Users\Shane>gem install sqlite3
Fetching: sqlite3-1.3.9-x86-mingw32.gem (100%)
Successfully installed sqlite3-1.3.9-x86-mingw32
Parsing documentation for sqlite3-1.3.9-x86-mingw32
unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/sqlite3/1.8/sql
tive.so, skipping
unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/sqlite3/1.9/sql
tive.so, skipping
unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/sqlite3/2.0/sql
tive.so, skipping
Installing ri documentation for sqlite3-1.3.9-x86-mingw32
1 gem installed

1
你可能会发现这个有用。至于RubygemRubyGems命令,类似于Nodenpm,但不支持package.json。因此,我们使用gem bundlerGemfile中管理依赖项,就像通常在package.json中定义一样。然后bundle install相当于npm install - hexacyanide
Gemfile文件位于哪里?bundle是否等同于package.json? - Shane
Gemfile位于您的Ruby应用程序的根目录中。 - hexacyanide
2个回答

3

我对NodeJs或Java并没有太多了解,但可以给你一些想法。

它是否类似于NodeJs的npm和Java/J2EE的Maven?

是的,它在某种程度上类似于npmBundler帮助管理应用程序依赖项,例如xyz应用程序需要foo bar gem。 Gem就像扩展应用程序功能的。这些gems主要位于rubygems.org服务器中。

我执行的第一个命令是gem install bundler。这里的gem是什么,bundler又是什么,有人能用NodeJs或Maven来解释一下吗?

当您执行gem install <gem_name>时,它会创建一个请求到rubygems.org并下载repo(gem),然后将其放置在配置的位置。可以在gem env命令中找到该位置。要获取gem的详细信息,必须使用gem install <gem_name> -d。因此,当您执行gem install bundler时,您正在安装bundler gem。这个gem将帮助您解决/管理/安装应用程序依赖项。这就像使用npmnpm install bundler

它们安装在哪里?我没有像在NodeJs中一样指定-g进行全局安装。

不,这里不需要写-g选项。默认情况下,我们将gems安装在一个位置,该位置不在应用程序内部。个人认为从一台计算机传输所有这些gems略微麻烦,而是更喜欢运行一个命令,自动安装所有依赖项。这就是bundler的优点所在。假设您有一个应用程序需要foobar依赖项,因为它使用其功能。如果没有bundler,您必须通过运行gem install foogem install bar来安装这些gems。但是使用bundler,您只需执行bundle install即可完成。

就这些,这将给您一个良好的开始。


"就像你使用npm安装nodejs一样"。什么? - vkurchatkin
@vkurchatkin,哦,抱歉..谢谢..我已经修复了。请审核一下..如果有问题..我会删除它。 - Paritosh Piplewar
谢谢@ParitoshPiplewar,最后一个问题:gem = 库,bundler = npm 命令。我们使用 bundler 来管理所有的 gems。 - Shane
1
@Shane,是的,gem = libraries,而bundler = npm command就像npm install express=gem install railsnpm install=bundle install在仓库里面。一般来说是这样的。 - Paritosh Piplewar

1

gem install bundler 安装一个 gem(库),可以帮助您管理项目依赖关系。

然后,您有一个包含名为 Gemfile 的文件的项目,当您进入该目录并输入 bundle install 时,它将安装该项目所需的所有 gems。

要检查 gem 安装在哪里,请查看 gem env 的输出。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接