【问题标题】:Error installing gem failed to build gem native extensions -- cannot load such file -- mkmf安装 gem 时出错,无法构建 gem 原生扩展 -- 无法加载此类文件 -- mkmf
【发布时间】:2013-03-04 18:32:43
【问题描述】:

RoR 不错,但有时让我想把头撞到墙上(无论如何这可能是我的错)。我只是尝试安装Thin web-client gem,当我运行sudo gem install thin 时,我收到以下错误(它需要先安装 eventmachine gem):

    sudo gem install thin
    Fetching: eventmachine-1.0.1.gem (100%)
    Building native extensions.  This could take a while...
    ERROR:  Error installing thin:
            ERROR: Failed to build gem native extension.

            /usr/bin/ruby1.9.1 extconf.rb
            /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
            from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
            from extconf.rb:2:in `<main>'

我搜索了“无法加载此类文件 -- mkmf”错误,但大多数问题似乎都围绕着这样一个事实,即它在 1.8-dev 但不是 1.8 中可用,但因为我正在运行 1.9.3我想我有 mkmf - 我用 locate mkmf 验证过:

    /home/ubuntu/.rvm/rubies/ruby-1.9.3-p362/lib/ruby/1.9.1/mkmf.rb

mkmf 所在的目录显然不在 /usr/lib/ruby/... 目录下 - 我不确定这是否是我的问题,但可能足以让你们中的一位专家快速入门关于发生了什么以及解决方案可能是什么。

另外,我使用 RVM 来安装 ruby​​ 1.9.3 而不仅仅是 gem install...

提前致谢!

【问题讨论】:

    标签: ruby-on-rails ruby eventmachine mkmf


    【解决方案1】:

    如果您使用的是 RVM,则永远不应该使用“sudo”。使用 sudo 从 rvm 路径中调用 libs 等。尝试只是一个平面

    gem install thin
    

    看看有没有帮助。

    ~凯文

    【讨论】:

    • 就是这样 - 谢谢@devneck!不幸的是,我想我已经安装了一些使用 sudo 的 gem,所以这可能会给我带来一些痛苦,但我会确保记住这一点。
    • 另外,当我尝试启动瘦 Web 服务器时出现问题,但只需将 thin 添加到 Gemfile 即可解决。
    【解决方案2】:

    我在rvm之外遇到了类似的错误,我发现我需要安装ruby-devel

    【讨论】:

    • 就是这样!亚马逊 Linux
    【解决方案3】:

    我在 Ubuntu 12.04 也有同样的问题。解决者:

    sudo apt-get install build-essential
    sudo apt-get install curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev
    

    【讨论】:

    • 我在尝试安装thin之前实际上已经尝试过这些,但我仍然会收到上面提到的错误。对我来说,诀窍是安装 gem 时不要在命令前面加上“sudo”,但我认为你展示的步骤在这个过程中仍然很重要。
    • 在 ubuntu 14.04 上,我只需要这样做:'sudo apt-get install build-essential' 然后是 'sudo gem install thin'
    • 对于 ubuntu 14.04 我做了 sudo apt-get install libpq-dev
    【解决方案4】:

    尝试下面的命令将有助于解决问题

    sudo gem install thin -- --with-cflags=\"-O2 -pipe -march=native -w\"
    

    【讨论】:

      【解决方案5】:

      这是为我做的:

      sudo apt-get install ruby-dev
      

      干杯

      【讨论】:

      • 我必须在新安装的 Ubuntu 16.04 上执行 sudo apt-get install ruby-dev build-essentials
      猜你喜欢
      • 2012-11-25
      • 1970-01-01
      • 2016-01-17
      • 2012-11-02
      • 1970-01-01
      • 2011-04-06
      • 2015-04-11
      • 2016-01-11
      • 2013-11-01
      相关资源
      最近更新 更多