安装Ruby gem的问题“ffi”在Ubuntu Server 12.04上 [英] Problems installing Ruby gem "ffi" on Ubuntu Server 12.04

查看:149
本文介绍了安装Ruby gem的问题“ffi”在Ubuntu Server 12.04上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使用 bundle 来安装我的新项目所需的gems,但是我在安装'ffi'gem的1.1.5版本时遇到问题。

我正在使用运行在64位Ubuntu Server 12.04的虚拟化安装上的Ruby 1.9.3。运行 bundle 命令时,收到以下错误消息:

  Gem :: Installer :: ExtensionBuildError:错误:无法构建gem本机扩展。 

/home/alex/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
检查ffi.h ...否
检查在/ usr / include / ffi中为ffi.h ... no
检查rb_thread_blocking_region()...是
检查ruby_native_thread_p()...是
检查rb_thread_call_with_gvl()...是
创建extconf.h
创建Makefile
$ b $ make make
配置libffi
/gems/ffi-1.1 .5 / ext / ffi_c / libffi-x86_64-linuxSampleRails
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux'ems/ruby-1.9.3-p194@SampleRails
makeAR_FLAGS =CC_FOR_BUILD =CFLAGS = -Wall -fexceptionsCXXFLAGS =CFLAGS_FOR_BUILD =CFLAGS_FOR_TARGET =INSTALL = / usr / bin / install -cINSTALL_DATA = / usr / bin / install -c -m 644INSTALL_PROGRAM = / usr / bin / install -cINSTALL_SCRIPT = / usr / bin / install -cJC1FLAGS =LDFLAGS =LIBCFLAGS =LIBCFLAGS_FOR_TARGET =MAKE = makeMAKEINFO = / b / gems / ffi-1.1.5 / ext / ffi_c / libffi / missing --run makeinfoPICFLAG =PICFLAG_FOR_TARG ET =RUNTESTFLAGS =SHELL = / bin / bashexec_prefix = / usr / localinfodir = / usr / local / share / infolibdir = / usr / local / libmandir = / usr / local / share / manprefix = / usr / localAR = arAS = asCC = gccCXX = g ++LD = / usr / bin / ld -m elf_x86_64 = / usr / bin / nm -BRANLIB = ranlibDESTDIR =全递归
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux'ems/ruby-1.9 .3-p194 @ SampleRails
全部包含
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/include'-1.9.3-p194@SampleRails
使[3]:没有什么可以为全部完成。
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/include'1.9.3-p194@SampleRails
全部在测试套件中
/gems/ffi-1.1 .5 / ext / ffi_c / libffi-x86_64-linux / testsuite'.9.3-p194 @ SampleRails
make [3]:无法为all完成。
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/testsuite'9.3-p194@SampleRails
使用man
/gems/ffi-1.1.5 /ext/ffi_c/libffi-x86_64-linux/man'ruby-1.9.3-p194@SampleRails
make [3]:***没有规则可以使'ffi.3'上午'。停止。
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/man'uby-1.9.3-p194@SampleRails
make [2]:*** [all-recursive ]错误1
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux'ms/ruby-1.9.3-p194@SampleRails
make [1]:*** [全部]错误2
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux'ms/ruby-1.9.3-p194@SampleRails
/gems/ffi-1.1.5 /ext/ffi_c/libffi-x86_64-linux\"/.libs/libffi_convenience.a] Error 2


/gems/ffi-1.1.5 for inspection。in / home / alex / .rvm / gems / ruby​​-1.9.3-p194 @ SampleRails
/gems/ffi-1.1.5/ext/ffi_c/gem_make.out/ruby-1.9.3-p194@SampleRails
一个错误在安装ffi(1.1.5)时发生,并且Bundler无法继续。
确保`gem install ffi -v'1.1.5'`成功绑定。

该错误似乎是由 make [3]引起的:***没有规则使目标'ffi.3' ,'all-am'需要,但我不明白这意味着什么。



有人可以帮我吗?T hanks!

解决方案

安装libffi-dev软件包:

  sudo apt-get install libffi-dev 

如果它无法找到libffi的头文件/链接库,那么在现代linux系统上永远不需要 - 只需安装系统的开发包,就可以构建其内部libffi库。


I'm trying to use bundle to install gems required for my new project, but I'm having trouble installing version 1.1.5 of the 'ffi' gem.

I'm using Ruby 1.9.3 running on a virtualised install of 64-bit Ubuntu Server 12.04. When running the bundle command, I receive the following error message:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /home/alex/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for ffi.h... no
checking for ffi.h in /usr/local/include,/usr/include/ffi... no
checking for rb_thread_blocking_region()... yes
checking for ruby_native_thread_p()... yes
checking for rb_thread_call_with_gvl()... yes
creating extconf.h
creating Makefile

make
Configuring libffi
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux"SampleRails
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux'ems/ruby-1.9.3-p194@SampleRails
make "AR_FLAGS=" "CC_FOR_BUILD=" "CFLAGS=-Wall -fexceptions" "CXXFLAGS=" "CFLAGS_FOR_BUILD=" "CFLAGS_FOR_TARGET=" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "JC1FLAGS=" "LDFLAGS=" "LIBCFLAGS=" "LIBCFLAGS_FOR_TARGET=" "MAKE=make" "MAKEINFO=/b/gems/ffi-1.1.5/ext/ffi_c/libffi/missing --run makeinfo " "PICFLAG=" "PICFLAG_FOR_TARGET=" "RUNTESTFLAGS=" "SHELL=/bin/bash" "exec_prefix=/usr/local" "infodir=/usr/local/share/info" "libdir=/usr/local/lib" "mandir=/usr/local/share/man" "prefix=/usr/local" "AR=ar" "AS=as" "CC=gcc" "CXX=g++" "LD=/usr/bin/ld -m elf_x86_64" "NM=/usr/bin/nm -B" "RANLIB=ranlib" "DESTDIR=" all-recursive
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux'ems/ruby-1.9.3-p194@SampleRails
Making all in include
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/include'-1.9.3-p194@SampleRails
make[3]: Nothing to be done for `all'.
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/include'1.9.3-p194@SampleRails
Making all in testsuite
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/testsuite'.9.3-p194@SampleRails
make[3]: Nothing to be done for `all'.
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/testsuite'9.3-p194@SampleRails
Making all in man
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/man'ruby-1.9.3-p194@SampleRails
make[3]: *** No rule to make target `ffi.3', needed by `all-am'. Stop.
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux/man'uby-1.9.3-p194@SampleRails
make[2]: *** [all-recursive] Error 1
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux'ms/ruby-1.9.3-p194@SampleRails
make[1]: *** [all] Error 2
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux'ms/ruby-1.9.3-p194@SampleRails
/gems/ffi-1.1.5/ext/ffi_c/libffi-x86_64-linux"/.libs/libffi_convenience.a] Error 2


/gems/ffi-1.1.5 for inspection. in /home/alex/.rvm/gems/ruby-1.9.3-p194@SampleRails
/gems/ffi-1.1.5/ext/ffi_c/gem_make.out/ruby-1.9.3-p194@SampleRails
An error occurred while installing ffi (1.1.5), and Bundler cannot continue.
Make sure that `gem install ffi -v '1.1.5'` succeeds before bundling.

The error seems to be caused by the line make[3]: *** No rule to make target 'ffi.3', needed by 'all-am' but I'm none the wiser as to what this means.

Can anybody help me out? Thanks in advance!

解决方案

Install the libffi-dev package:

sudo apt-get install libffi-dev

The ffi gem will build its internal libffi library if it cannot find the headers/link lib for libffi, which on a modern linux system is never what you want - just install your system's dev packages.

这篇关于安装Ruby gem的问题“ffi”在Ubuntu Server 12.04上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆