351

如果我将 .gem 文件下载到计算机中的文件夹中,我可以稍后使用 安装它gem install吗?

4

9 回答 9

344

此外,您可以使用gem install --local path_to_gem/filename.gem

这将跳过您离开时发生的通常的 gem 存储库扫描--local

您可以使用gem install --help.

于 2008-11-13T05:54:36.057 回答
295

是的,当你这样做时gem install,它会首先搜索当前目录,所以如果你的 .gem 文件在那里,它会选择它。我在gem reference中找到了它,您可能也会觉得它很方便:

gem install 将安装命名的 gem。它将尝试进行本地安装(即当前目录中的 .gem 文件),如果失败,它将尝试下载并安装您想要的最新版本的 gem。

于 2008-10-20T22:35:12.003 回答
68

您还可以对 gem 文件使用完整的文件名:

gem install /full/path/to/your.gem

这也有效——这可能是最简单的方法

于 2011-10-31T15:50:30.127 回答
41

如果您使用 bundler 创建 gem:

# do this in the proper directory
bundle gem foobar

您可以在编写完成后使用 rake 安装它们:

# cd into your gem directory
rake install

很有可能,您下载的 gem 也会知道rake install

于 2013-06-12T03:36:41.157 回答
15

如果您从 github 或其他 scm 主机站点下载项目文件,请先使用 gem build 构建项目,这样您就可以在当前目录中获得一个whatever.gem 文件。然后 gem 安装它!

于 2015-01-05T11:39:13.150 回答
15

如果您想在本地修改的 gem 分支上工作,最好的方法是

gem 'pry', path: './pry'

在 Gemfile 中。

..../pry您的存储库的克隆在哪里。只需运行bundle install一次,您对 gem 源所做的任何更改都会立即反映出来。使用gem install pry/pry.gem,源代码仍会移入GEM_PATH,您将始终必须同时运行bundle gem prygem update进行测试。

于 2017-03-19T20:38:47.050 回答
6

转到宝石所在的路径并调用gem install -l gemname.gem

于 2016-01-25T23:04:03.107 回答
1

好吧,这是我的 DRY 安装:

  1. 查看缓存目录中已安装 gem 的计算机(默认情况下[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache:)
  2. 将所有“*.gems文件”复制到自己的 gem 缓存位置中没有 gem 的计算机(默认情况下与第一步的赞助者路径相同[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache:)
  3. 在控制台中位于 gems 缓存 (cd [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache) 中并触发gem install anygemwithdependencieshere(by example cucumber-2.99.0)

它是干的,因为在安装任何 gem 之后,默认情况下 ruby​​gems 将 gem 文件放在缓存 gem 目录中,并且没有意义重复那些文件,如果您希望两台计算机具有相同的版本(或被偏执的安全规则阻止:v),它会更容易

编辑:在 ruby​​ 或 ruby​​gems 的某些版本中,它不起作用并发出警报或错误,您可以将 gem 放在其他地方但不会干燥,其他替代方法是使用启动集成命令gem server并在 gem 源中添加 localhost url,更多信息在: https ://guides.rubygems.org/run-your-own-gem-server/

于 2019-10-10T21:32:54.593 回答
1

您可以从https://rubygems.org/gems/下载 gem,或者通过 bundle 和 rack 构建本地 gem。

例如:

  • 捆绑宝石 yourGemName
  • 耙式安装

在安装实际的 gem 之前,请注意安装依赖项。

  • gem install --local /pathToFolder/xxx-2.6.1.gem

注意:如果在同一台机器上使用 fluentd td-agent 和 ruby​​。请确保使用 td-agent 的 td-agent-gem 命令。td-agent 有自己的 Ruby。

于 2019-10-30T05:32:06.773 回答