【问题标题】:Trying to install jekyll, getting the following error: Failed to build gem native extension尝试安装jekyll,报错:Failed to build gem native extension
【发布时间】:2013-07-15 05:38:50
【问题描述】:

我正在尝试安装 Jekyll,但我一直遇到此错误。这是我尝试安装它的输出

clinch@clinch-VirtualBox:~$ gem install jekyllBuilding native extensions.  This could take a while...
ERROR:  Error installing jekyll:
    ERROR: Failed to build gem native extension.

        /home/clinch/.rvm/rubies/ruby-1.9.3-p392/bin/ruby extconf.rb
creating Makefile

make
compiling porter.c
cc1: unrecognized option `-Wextra'
cc1: unrecognized option `-Wno-missing-field-initializers'
cc1: unrecognized option `-Wdeclaration-after-statement'
make: *** [porter.o] Error 1


Gem files will remain installed in /home/clinch/.rvm/gems/ruby-1.9.3-p392/gems/fast-stemmer-1.0.2 for inspection.
Results logged to /home/clinch/.rvm/gems/ruby-1.9.3-p392/gems/fast-stemmer-1.0.2/ext/gem_make.out
clinch@clinch-VirtualBox:~$ gcc -v
Using built-in specs.
Configured with: ./configure --target=mips-dec-ultrix42 --program-prefix=mips- --with-gnu-as --with-gnu-ld --enable-obsolete
Thread model: single
gcc version 3.2.2
clinch@clinch-VirtualBox:~$ ruby -v
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]
clinch@clinch-VirtualBox:~$ uname -a
Linux clinch-VirtualBox 3.2.0-37-generic #58-Ubuntu SMP Thu Jan 24 15:28:10 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

我已经安装了 ruby​​1.9.1-dev 软件包。我尝试使用 gcc 4.6 进行编译,而不是我粘贴的输出中显示的 3.2.2。我也不知道本机扩展错误是否使 gcc 死亡。我还从头开始重建了 ruby​​。

也许我应该尝试另一个 Ruby 版本?虽然我知道 jekyll 支持 1.9.3。

任何帮助将不胜感激。

【问题讨论】:

  • 您在此处显示的错误来自您使用的古老 gcc 版本。如果您使用的不是 10 岁,会发生什么情况?
  • 我已经尝试过使用 4.6,就像我在 OP 中提到的那样,它根本没有帮助。
  • 您在此处显示的这个特定错误是因为您使用的是 gcc 3.3 的 cc1,它不知道这些标志。 gcc 4.6 的 cc1 可以,所以即使它不起作用,你也不应该得到同样的错误。如果您确实遇到同样的错误,那么不管您怎么想,它仍在使用 gcc 3.3。
  • Cubic 是对的——如果您在使用 GCC 4.6 时遇到同样的错误,那么您可能遇到了 PATH 问题。您能否向我们展示您在使用 GCC 4.6 时的错误消息?
  • 你和@Cubic 是对的。我正在使用其他一些 gcc 版本,它包含在我的 PATH 变量中。系统一直在使用那个。当我注意到这一点时,我天真地尝试用一个简单的别名来修复。现在问题已解决。我刚刚更改了我的 PATH 变量,我想如果我早点检查 SO,我可以节省一些时间。无论如何,感谢你们两位的回答。

标签: ruby ubuntu gem installation jekyll


【解决方案1】:

尝试从 Ruby 或 Ruby and Rails 命令提示符而不是任何其他命令提示符安装 Jekyll

我根本不是专家,所以我建议的解决方案只是根据我以下经验的“猜测”。

我使用的是 Windows 7。虽然您使用的是 Ubuntu 而不是 Windows 7,但此解决方案可能适用于几乎所有遇到相同问题的人。

首先,我从RailsInstaller 安装了Ruby。然后,我想安装 Jekyll。我尝试从 Cygwin 安装 Jekyll。但是,我收到了以下错误(虽然它与提问者的错误不同,但我认为它足够相似):

$ gem install jekyll
Building native extensions.  This could take a while...
ERROR:  Error installing jekyll:
        ERROR: Failed to build gem native extension.

        /usr/bin/ruby.exe extconf.rb
creating Makefile

make
gcc -I. -I/usr/include/ruby-1.9.1/x86_64-cygwin -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I.   -ggdb -O2 -pipe   -fno-strict-aliasing  -Wall   -o posix-spawn.o -c posix-spawn.c
posix-spawn.c:9:19: fatal error: spawn.h: No such file or directory
 #include <spawn.h>
                   ^
compilation terminated.
Makefile:206: recipe for target `posix-spawn.o' failed
make: *** [posix-spawn.o] Error 1


Gem files will remain installed in /usr/lib/ruby/gems/1.9.1/gems/posix-spawn-0.3.6 for inspection.
Results logged to /usr/lib/ruby/gems/1.9.1/gems/posix-spawn-0.3.6/ext/gem_make.out

但是,当我尝试从 使用 Ruby 和 Rails 的命令提示符(即 Ruby 命令提示符)安装 Jekyll 时,Jekyll 安装成功。

为了以防万一,我在尝试从 Ruby 和 Rails 命令提示符安装 Jekyll 之前(成功地)删除了系统变量 {Variable:Comspec,Value:C:\Windows\system32\cmd.exe}。

【讨论】:

    猜你喜欢
    • 2012-11-29
    • 2012-10-17
    • 2021-07-06
    • 2014-03-03
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 2014-12-06
    • 2021-08-14
    相关资源
    最近更新 更多