【问题标题】:Why I obtain this error message installing the Ruby bundler gem "ERROR: Failed to build gem native extension"?为什么我在安装 Ruby 捆绑器 gem“错误:无法构建 gem 本机扩展”时收到此错误消息?
【发布时间】:2016-11-13 12:28:12
【问题描述】:

我不太喜欢 Linux 和 Ruby,我在尝试在 Ubuntu 16.04 系统上安装 Redmine 时遇到了一些问题。

我正在关注这份官方指南: http://www.redmine.org/projects/redmine/wiki/HowTo_Install_Redmine_on_Ubuntu_step_by_step

我在执行这个命令时发现了一些问题:

sudo gem update

因为在执行过程中我收到了许多这样的错误消息:

Updating ffi
Fetching: ffi-1.9.14.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing ffi:
        ERROR: Failed to build gem native extension.

    current directory: /var/lib/gems/2.3.0/gems/ffi-1.9.14/ext/ffi_c
/usr/bin/ruby2.3 -r ./siteconf20161113-6502-1eskdz9.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

我错过了什么?我该如何解决这个问题?

我不喜欢 Ruby,这个 Ruby 的“捆绑器 gem”到底是什么?

【问题讨论】:

    标签: ruby-on-rails ruby ubuntu rubygems redmine


    【解决方案1】:

    我想向您推荐两篇文章。在那里您可以找到有关您的问题的更多信息。

    但我会尝试为您提供对问题的先前看法并回答您的问题。

    • gem 是为特定任务设计和开发的一段特定代码。它可以作为 Ruby 应用程序的一部分安装并在其中使用。在某种意义上,您可能会说它是一个 JAR 文件形式的库,尽管组织和使用方式不同。 Gems 允许 Ruby 开发人员轻松共享和重用代码。

    • Bundler 是一款让您的 gem 井井有条的应用程序。它会下载并安装您在应用程序中需要的所有 gem,并在需要时更新它们等等。使用 bundler,您可以将所有 gem 组织在一个存储库中,将它们用于您的所有应用程序,或者为每个应用程序创建一个私有包,第一篇文章会讲授。

    • 大多数情况下,您会遇到此类错误,这意味着您尚未安装在系统中构建程序所需的所有工具。这意味着程序(gcc、ld 和其他构建工具)和标头。本机扩展是用 C 编写的,它们依赖于要构建的 C 标头。

    我希望这对你有帮助。但是,如果您有任何其他疑问,我会很高兴编辑此答案并尽力提供帮助。

    【讨论】:

    • 好的tnx,现在我将阅读这些文章......但是......究竟什么是宝石?它类似于 Java 中的 JAR 吗? (一种打包“可执行”应用程序的方法)?
    • 我编辑了这个问题的答案。那里的答案比评论中的这里更明显,并且将来可能对其他人有所帮助。
    • 但是我怎么知道产生这个问题的“缺失”的未安装工具是什么?或者我可以考虑从 0 开始安装 Ruby,然后重做这个操作吗?可以解决吗?
    • 我知道的所有 Linux 发行版都有一个元数据包,允许您一次安装所有开发工具。 Ubunty 肯定有这样的包名为build-essential。您可以使用 sudo apt-get install build-essential 安装它。我建议您先安装它,然后看看会发生什么。重新安装一切太激烈了。
    • 我尝试安装 build-essential 但似乎没有什么要安装(全部安装):0 升级,0 新安装,0 删除,2 未升级。
    【解决方案2】:

    安装ruby-dev:

    apt-get install ruby-dev
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-18
      • 2014-11-01
      • 1970-01-01
      • 2018-04-26
      • 2014-03-17
      • 2012-11-02
      • 1970-01-01
      相关资源
      最近更新 更多