1

如何修复此错误,并安装薄或其他 gem?

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

/usr/bin/ruby1.9.1 extconf.rb
检查 ruby​​.h、rubysig.h 中的 rb_trap_immediate... *** extconf.rb 失败 ***
由于某种原因无法创建 Makefile,可能缺少
必要的库和/或头文件。查看 mkmf.log 文件了解更多信息
细节。您可能需要配置选项。

提供的配置选项:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --没有-make-prog
    --srcdir=。
    --curdir
    --ruby=/usr/bin/ruby1.9.1
/usr/lib/ruby/1.9.1/mkmf.rb:362:in `try_do':编译器无法生成可执行文件。(运行时错误)
您必须先安装开发工具。
    来自 /usr/lib/ruby/1.9.1/mkmf.rb:425:in `try_compile'
    来自 /usr/lib/ruby/1.9.1/mkmf.rb:543:in `try_var'
    来自 /usr/lib/ruby/1.9.1/mkmf.rb:791:in `block in have_var'
    来自 /usr/lib/ruby/1.9.1/mkmf.rb:668:in `block in checks_for'
    来自 /usr/lib/ruby/1.9.1/mkmf.rb:274:in `block (2 levels) in推迟'
    来自 /usr/lib/ruby/1.9.1/mkmf.rb:248:in `open'
    来自 /usr/lib/ruby/1.9.1/mkmf.rb:274:in `block in推迟'
    来自 /usr/lib/ruby/1.9.1/mkmf.rb:248:in `open'
    来自 /usr/lib/ruby/1.9.1/mkmf.rb:270:in `推迟'
    来自 /usr/lib/ruby/1.9.1/mkmf.rb:667:in `checking_for'
    来自 /usr/lib/ruby/1.9.1/mkmf.rb:790:in `have_var'
    来自 extconf.rb:16:in `'


Gem 文件将继续安装在 /var/lib/gems/1.9.1/gems/eventmachine-0.12.10 中以供检查。
结果记录到 /var/lib/gems/1.9.1/gems/eventmachine-0.12.10/ext/gem_make.out

附加信息如下

$ 猫 /etc/问题
Ubuntu 9.10 \n \l
$ dpkg -l | grep 红宝石
ii libreadline-ruby1.9.1 1.9.1.243-2 Ruby 1.9.1 的 Readline 接口
ii libruby1.9.1 1.9.1.243-2 运行 Ruby 1.9.1 所需的库
ii ruby​​1.9.1 1.9.1.243-2 面向对象脚本语言解释器
ii ruby​​1.9.1-dev 1.9.1.243-2 用于编译扩展模块的头文件
ii ruby​​gems1.9.1 1.3.5-1ubuntu2 Ruby库的包管理框架
$红宝石-v
ruby 1.9.1p243(2009-07-16 修订版 24175)[x86_64-linux]
$宝石清单

*** 当地宝石 ***

机架 (1.1.0)
西纳特拉 (1.0)
4

1 回答 1

2

我有:

ERROR:  Error installing thin:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
checking for rb_trap_immediate in ruby.h,rubysig.h... yes
checking for rb_thread_blocking_region()... no
checking for inotify_init() in sys/inotify.h... yes
checking for writev() in sys/uio.h... yes
checking for rb_thread_check_ints()... no
checking for rb_time_new()... yes
checking for sys/event.h... no
checking for epoll_create() in sys/epoll.h... yes
checking for main() in -lcrypto... no
creating Makefile

make
g++ -I. -I. -I/usr/lib/ruby/1.8/x86_64-linux -I. -DBUILD_FOR_RUBY -DHAVE_RB_TRAP_IMMEDIATE -DHAVE_RBTRAP -DHAVE_INOTIFY_INIT -DHAVE_INOTIFY -DHAVE_WRITEV -DHAVE_WRITEV -DHAVE_RB_TIME_NEW -DOS_UNIX -DHAVE_EPOLL_CREATE -DHAVE_EPOLL -DWITHOUT_SSL -I/include/include    -fPIC -fno-strict-aliasing -g -g -O2  -fPIC    -c emwin.cpp
make: g++: Command not found
make: *** [emwin.o] Error 127

它提到g ++丢失了,所以我做了:

sudo apt-get install g++

然后跑:

sudo gem install thin

它奏效了

另外,我不确定它是否与此安装有关,但由于它是 64 位安装,有时作为预防措施,我安装了 32 个库:

sudo apt-get install ia32libs

但我总是在设置新的 64 位服务器后立即安装 32libs

于 2010-03-27T06:57:25.717 回答