6

RoR 很好,但有时让我想把头撞到墙上(无论如何这可能是我的错)。我只是试图安装Thinweb-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...

提前致谢!

4

5 回答 5

5

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

gem install thin

看看是否有帮助。

〜凯文

于 2013-03-04T19:00:04.207 回答
5

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

于 2013-08-06T19:01:28.917 回答
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
于 2013-08-07T09:43:54.047 回答
2

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

sudo gem install thin -- --with-cflags=\"-O2 -pipe -march=native -w\"
于 2015-04-08T14:39:00.517 回答
1

这为我做到了:

sudo apt-get install ruby-dev

干杯

于 2015-06-19T12:11:49.740 回答