如何安装本地宝石?

如果我下载了一个.gem文件到我电脑的文件夹中,我以后可以使用gem install安装它吗?

358817 次浏览

是的,当你执行gem install时,它会首先搜索当前目录,所以如果你的.gem文件在那里,它会拾取它。我在宝石的参考上找到了它,你可能也会发现它很方便:

gem install将安装命名的 宝石。它将尝试一个局部 安装(即。gem文件在 当前目录),如果失败, 它将尝试下载和 的最新版本

.

.

同样,你也可以使用gem install --local path_to_gem/filename.gem

这将跳过当你放弃--local时发生的通常的宝石存储库扫描。

你可以用gem install --help找到其他魔法。

你也可以使用完整的文件名到你的gem文件:

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

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

如果你用bundler创建宝石:

# do this in the proper directory
bundle gem foobar

你可以在它们写完之后用rake安装它们:

# cd into your gem directory
rake install

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

如果你从github或其他SCM主机站点下载项目文件,首先使用gem build来构建项目,这样你就可以得到一个任何东西。Gem文件在当前目录。然后gem安装它!

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

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

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

在Gemfile中。

... 其中./pry将是你的存储库的克隆。只要运行bundle install一次,你在gem源代码中所做的任何更改都会立即反映出来。使用gem install pry/pry.gem,源代码仍然被移动到GEM_PATH中,并且你总是必须运行bundle gem prygem update来进行测试。

这是我的DRY装置:

  1. 在缓存目录(默认:[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)中查找一台已经安装了所需gems的计算机
  2. 将所有“*.gems文件”复制到自己的宝石缓存位置没有宝石的计算机(默认情况下,第一步的用户路径相同:[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)
  3. 在控制台中,位于gems缓存中(cd [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)并触发gem install anygemwithdependencieshere(通过示例cucumber-2.99.0)

这是DRY,因为安装任何宝石后,默认情况下,rubygems把宝石文件在缓存宝石目录和没有意义的复制文件,这是更容易,如果你想两台计算机有相同的版本(或被妄想的安全规则:v)

编辑:在ruby或rubygems的某些版本中,它不能工作和火灾 警报或错误,你可以把宝石放在其他地方,但不会得到DRY, 其他替代方法是使用启动集成命令gem server和 在gem源代码中添加localhost url,更多信息在: https://guides.rubygems.org/run-your-own-gem-server/ < / p >

你可以下载宝石从https://rubygems.org/gems/或建立您本地宝石通过捆绑和机架。

例如:

  • 捆绑宝石yourGemName
  • 耙式安装

在安装真正的宝石之前,要注意安装依赖项。

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

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