我该如何安装本地宝石?

时间:2008-10-20 22:32:18

标签: ruby rubygems

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

9 个答案:

答案 0 :(得分:319)

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

这将跳过您离开--local时发生的常见宝石存储库扫描。

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

答案 1 :(得分:276)

是的,当你执行gem install时,它会首先搜索当前目录,所以如果你的.gem文件在那里,它会把它拿起来。我在gem reference找到了它,你也可以找到它:

  

gem install将安装named   宝石。它将尝试本地   安装(即。中的.gem文件)   当前目录),如果失败,   它会尝试下载和   安装最新版本的   你想要的宝石。

答案 2 :(得分:58)

您还可以将完整文件名用于您的gem文件:

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

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

答案 3 :(得分:35)

如果您使用bundler创建宝石:

# do this in the proper directory
bundle gem foobar

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

# cd into your gem directory
rake install

您下载的宝石也可能知道rake install

答案 4 :(得分:13)

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

答案 5 :(得分:9)

如果你想使用本地修改的gem分支,最好的方法是

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

在Gemfile中。

...其中./pry将是您的存储库的克隆。只需运行bundle install一次,您所制作的宝石来源中的任何更改都会立即反映出来。使用gem install pry/pry.gem时,来源仍会移至GEM_PATH,您必须同时运行bundle gem prygem update进行测试。

答案 6 :(得分:5)

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

答案 7 :(得分:0)

好吧,这是我的DRY安装:

  1. 查看一台计算机,该计算机在缓存目录中已安装了需要安装的gem(默认为[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
  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,因为在安装了任何gem之后,默认情况下rubygems会将gem文件放在缓存gem目录中,并且没有重复的thats文件,如果您希望两台计算机具有相同版本(或因偏执的安全规则而泛滥),则更容易:v)

  

编辑:在某些版本的ruby或rubygems中,它不起作用并且不能发射   警报或错误,您可以将宝石放置在其他位置,但不能干燥,   另一种选择是使用启动集成命令gem server和   在gem来源中添加localhost网址,有关更多信息,请参见:   https://guides.rubygems.org/run-your-own-gem-server/

答案 8 :(得分:0)

您可以从https://rubygems.org/gems/下载宝石,也可以通过捆绑包和机架来构建本地宝石。

例如:

  • 捆绑宝石yourGemName
  • rake install

在安装实际的gem之前要先安装依赖项。

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

注意:如果在同一台机器上使用流利的td代理和红宝石。请确保使用td-agent的td-agent-gem命令。 td-agent拥有自己的Ruby。

相关问题