【问题标题】:Installing .gem and its dependencies offline离线安装 .gem 及其依赖项
【发布时间】:2017-03-13 02:41:28
【问题描述】:

我正在尝试安装由供应商提供的插件 .gem 文件 (logstash-output-apm-Release-APM-10.5.1-DxC-1.4-20170114.212431-8.gem),但它失败并出现以下错误,因为我正在从没有 Internet 访问权限的机器上运行 install 命令:

[user@server_hostname bin]$ ./logstash-plugin install DigitalExperienceCollector-Release-APM-10.5.1-DxC-1.4-SNAPSHOT-2017_01_14_13_24/logstash/apm-logstash-plugin/logstash-output-apm-Release-APM-10.5.1-DxC-1.4-20170114.212431-8.gem

Validating DigitalExperienceCollector-Release-APM-10.5.1-DxC-1.4-SNAPSHOT-2017_01_14_13_24/logstash/apm-logstash-plugin/logstash-output-apm-Release-APM-10.5.1-DxC-1.4-20170114.212431-8.gem
Unable to download data from https://rubygems.org/
- Errno::ECONNREFUSED: Connection refused - Connection refused (https://api.rubygems.org/latest_specs.4.8.gz)

有没有办法手动下载latest_specs.4.8.gz,并在不修改.gem 文件的情况下提供给.gem 文件?
或者供应商是否需要对.gem 文件进行一些修改才能从本地副本加载?

【问题讨论】:

    标签: ruby installation rubygems


    【解决方案1】:

    您可以使用包含 gem 的目录中的 --local 标志在本地安装 gem。

    例如,将我之前下载的my_gem-0.1.0.gem 安装到我的/downloads/gems/ 目录:

    $ cd downloads/gems
    $ gem install my_gem --local
    

    缺点是您仍然无法获取任何 runtime_dependency 宝石。

    【讨论】:

      【解决方案2】:

      您应该构建和“离线插件包” 它将包括依赖项 以便您可以离线安装。

      详情here

      bin/logstash-plugin prepare-offline-pack --output OUTPUT --overwrite [PLUGINS]

      • OUTPUT 指定将写入压缩插件包的 zip 文件。默认文件是 /LOGSTASH_HOME/logstash-offline-plugins-8.0.1.zip。如果您使用的是 5.2.x 和 5.3.0,此位置应该是一个 zip 文件,其内容将被覆盖。
      • [PLUGINS] 指定一个或多个要包含在包中的插件。
      • --overwrite 指定是否要覆盖该位置的现有文件

      然后在目标机器上:

      bin/logstash-plugin install file:///path/to/logstash-offline-plugins-8.0.1.zip

      【讨论】:

        猜你喜欢
        • 2018-11-11
        • 1970-01-01
        • 2013-07-25
        • 2012-06-04
        • 1970-01-01
        • 2018-06-17
        • 2019-01-17
        • 1970-01-01
        相关资源
        最近更新 更多