【问题标题】:What does a .gem file contain? How it is being used by Rails framework?.gem 文件包含什么? Rails 框架如何使用它?
【发布时间】:2013-03-09 09:01:33
【问题描述】:

我刚刚使用 bundle 创建了一个测试 gem,它创建了一个包含不可读内容的 .gem 文件,所以我想知道

  1. .gem 文件包含什么?这是二进制数据吗?因为我以前认为 .gem 文件包含打包的 ruby​​ 函数

  2. rails 框架如何使用这个 .gem 文件?因为它看起来不像一个模块

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 rubygems gem


    【解决方案1】:

    如果您检查文件系统上的文件,您可以看到发生了什么。

    在 Posix 环境中,您可以使用 file 命令检查文件:

    $: file bundler-1.3.0.gem          
    bundler-1.3.0.gem: POSIX tar archive
    

    如您所见,它是一个 tar 存档。所以它是一个二进制文件,由gem工具打包管理。

    它是“二进制”,因此您不会像预期的那样看到它。

    你是对的,你可以继续认为它包含打包的 ruby​​ '函数'。

    您通过 gemspec 告诉它包含的所有内容(无论您如何包含它)都在那里。

    就 Rails 使用 gemfile 的方式而言,它通常通过将 gem 安装到您的系统来使用,具体如何完成部分取决于您的环境决定。

    【讨论】:

      【解决方案2】:

      gem 文件只是一个包含(至少)gemspec 文件的 tar 存档。通常还会有 ruby​​ 源文件,可能还有本机代码或支持资产(例如,设计用于 rails 的 gem 也可能打包一些 javascript)。包含 README、CHANGELOG 和其他文档也很常见。

      【讨论】:

      • 谢谢,如何查看/打开 gem 文件?
      • 假装它是一个普通的 tar 文件 - tar -xvf foo.gem
      猜你喜欢
      • 2012-01-07
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多