【问题标题】:Can't install gem 'jumpstart_auth' (Screenshot posted as well)无法安装 gem 'jumpstart_auth'(也发布了屏幕截图)
【发布时间】:2017-05-09 11:11:27
【问题描述】:

Screenschot of the error in my terminal

我正在尝试安装 gem,但是由于某些错误它不会让我安装,尝试阅读 gem 文档但自己无法弄清楚。那时我需要经验丰富的人的帮助。

构建原生扩展。这可能需要一段时间... 错误:安装 jumpstart_auth 时出错: 错误:无法构建 gem 原生扩展。

current directory: /var/lib/gems/2.3.0/gems/http_parser.rb-0.6.0/ext/ruby_http_parser

/usr/bin/ruby2.3 -r ./siteconf20161223-26375-4etqmc.rb extconf.rb mkmf.rb 在 /usr/lib/ruby/include/ruby.h 找不到 ruby​​ 的头文件

extconf 失败,退出代码 1

Gem 文件将继续安装在 /var/lib/gems/2.3.0/gems/http_parser.rb-0.6.0 中以供检查。 结果记录到 /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/http_parser.rb-0.6.0/gem_make.out

【问题讨论】:

  • 我非常推荐使用 rvm:rvm.io 安装 Ruby,而不是使用系统 ruby​​ 并使用 sudo 安装 gem。这是灾难的根源。
  • ...或rbenv,我觉得容易一点
  • 我正在使用 rvm 我忘记了我是否使用 rvm 来安装 ruby​​
  • 很确定我使用 rvm 安装了 ruby​​,而不是 'apt-get' 的 ubuntu 包管理器。我只是不记得了,也不知道如何在不同/切换到不同版本中使用 rvm 是否有一个有用的链接我可以阅读它?

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


【解决方案1】:

此 gem 正在尝试编译使用本机 C 代码的扩展。为此,它会查找 C 头文件 ruby.h,它不包含在 Ubuntu 中的常规 Ruby 运行时包中。

您可能使用分发包管理器安装了 Ruby。这种情况下还需要安装对应的-dev包。

如果您使用的是 Ubuntu,它可能应该是:

sudo apt-get install ruby2.3-dev

但是,正如@Esse 已经评论的那样,使用 RVM 或 rbenv 通常是更好的方法。 此外,您提供的屏幕截图显示您使用 sudo 安装 gem。这也不应该是必要的,而且确实是不好的做法。使用 RVM/rbenv 也可以解决这个问题。

【讨论】:

  • 这有帮助,你能解释一下为什么我需要这样做吗?我如何以人类可读的形式阅读该错误,我无法自己翻译错误,而无需谷歌搜索或查看错误堆栈溢出
  • 我又添加了几行。输出中的重要行是mkmf.rb can't find header files for ruby at...
  • 你如何使用 rvm 做到这一点?我尝试使用它允许的最新版本更新我的 rvm ..
  • 首先,从系统包管理器(dpkg --purge ruby2.3 ruby2.3-dev 和它可能安装的其他包)中清理所有数据可能是个好主意。然后你可以做rvm install 2.3rvm use 2.3@awesomeproject --create。之后,如果 RVM 安装正确,调用 gem 或任何属于 gem 的可执行文件(如 bundle)将使用 RVM 版本。
  • 感谢我正在尝试使用 twitter API 但是,它就像一个微博,但是当我运行它时不会让我说这个错误 s
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-09
  • 2020-04-01
相关资源
最近更新 更多