安装gem时出错无法构建gem原生扩展 - 无法加载此类文件 - mkmf

时间:2013-03-04 18:32:43

标签: ruby-on-rails ruby eventmachine mkmf

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 ...

提前致谢!

5 个答案:

答案 0 :(得分:5)

如果你正在使用RVM,你不应该使用'sudo'。使用sudo调用libs等rvm路径。试试一个单位

gem install thin

看看是否有帮助。

〜凯文

答案 1 :(得分:5)

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

答案 2 :(得分: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

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

这对我有用:

sudo apt-get install ruby-dev

干杯