如果我将 .gem 文件下载到计算机中的文件夹中,我可以稍后使用 gem install
安装它吗?
此外,您可以使用 gem install --local path_to_gem/filename.gem
这将跳过在您离开 --local
时发生的通常的 gem 存储库扫描。
您可以使用 gem install --help
找到其他魔法。
是的,当你执行 gem install
时,它会首先搜索当前目录,所以如果你的 .gem 文件在那里,它会选择它。我在 gem reference 上找到了它,您可能也会觉得它很方便:
gem install 将安装命名的 gem。它将尝试进行本地安装(即当前目录中的 .gem 文件),如果失败,它将尝试下载并安装您想要的最新版本的 gem。
Gemfile
但没有 .gem
文件。那么这个 .gem
文件是什么?它应该包含什么? ——等等——我明白了。您的意思是一个 gem-name.gem
文件。请记住,在 unix 上,文件以 '.' 开头是很正常的。所以最好把它拼出来。
gem build
以从 Gemfile 生成 *.gem 文件(我是 ruby 菜鸟,这对我有用!)
您还可以对 gem 文件使用完整的文件名:
gem install /full/path/to/your.gem
这也有效——这可能是最简单的方法
如果您使用 bundler 创建 gem:
# do this in the proper directory
bundle gem foobar
您可以在编写完成后使用 rake 安装它们:
# cd into your gem directory
rake install
您下载的 gem 也有可能知道 rake install
。
如果您从 github 或其他 scm 主机站点下载项目文件,请先使用 gem build 构建项目,这样您就可以在当前目录中获得一个whatever.gem 文件。然后 gem 安装它!
如果您想在本地修改的 gem 分支上工作,最好的方法是
gem 'pry', path: './pry'
在 Gemfile 中。
... 其中 ./pry
将是您的存储库的克隆。只需运行一次 bundle install
,您对 gem 源所做的任何更改都会立即反映出来。使用 gem install pry/pry.gem
,源仍被移至 GEM_PATH
,您始终必须同时运行 bundle gem pry
和 gem update
才能进行测试。
转到 gem 所在的路径并调用 gem install -l gemname.gem
好吧,这是我的 DRY 安装:
查看缓存目录中已安装 gem 的计算机(默认情况下:[Ruby 安装版本]/lib/ruby/gems/[Ruby 版本]/cache)将所有“*.gems 文件”复制到没有 gem 的计算机自己的gem缓存位置(默认与第一步相同的用户路径:[Ruby安装版本]/lib/ruby/gems/[Ruby版本]/cache)在控制台中位于gems缓存中(cd [Ruby安装版本] /lib/ruby/gems/[Ruby version]/cache)并在此处启动 gem install anygemwithdependencies(例如 cucumber-2.99.0)
它是干的,因为在安装任何 gem 之后,默认情况下 rubygems 将 gem 文件放在缓存 gem 目录中,并且没有意义重复那些文件,如果您希望两台计算机具有相同的版本(或被偏执的安全规则阻止:v),它会更容易
编辑:在某些版本的 ruby 或 rubygems 中,它不起作用并发出警报或错误,您可以将 gem 放在其他地方但不会干燥,其他替代方法是使用启动集成命令 gem server 并在 gem 源中添加 localhost url ,更多信息在:https://guides.rubygems.org/run-your-own-gem-server/
您可以从 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。