openSUSE 安装compass,mkmf.rb can't find,checking for ffi.h...extconf.rb failed

安装compass时,提示

Fetching: sass-3.4.23.gem (100%)
Successfully installed sass-3.4.23
Fetching: ffi-1.9.18.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing compass:
    ERROR: Failed to build gem native extension.

    current directory: /usr/lib64/ruby/gems/2.1.0/gems/ffi-1.9.18/ext/ffi_c
/usr/bin/ruby.ruby2.1 -r ./siteconf20170501-19647-33n3uw.rb extconf.rb
mkmf.rb can‘t find header files for ruby at /usr/lib64/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /usr/lib64/ruby/gems/2.1.0/gems/ffi-1.9.18 for inspection.
Results logged to /usr/lib64/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0/ffi-1.9.18/gem_make.out

找资料有说明是缺少mkmf,而mkmf是存在于ruby dev开发包中的,需要安装 ruby1.9.1-dev版本,可是笔者的电脑中ruby的版本是:ruby 2.1.9p490 (2016-03-30 revision 54437) [x86_64-linux-gnu]

可以通过zypper search命令查看相关的ruby安装包

运行: zypper search ruby*

会列出和ruby相关的软件包,在列表中有:

i | ruby2.1                                                 | An In-> | 软件包
  | ruby2.1                                                 | An In-> | 源代码包
  | ruby2.1-devel                                           | Devel-> | 软件包  

-dev和-devel 后缀应该都属于开发包,所以笔者运行了: zypper in ruby2.1-devel 

运行的结果是:新安装ruby2.1-devel 和升级libruby2_1-2_1 ruby2.1 ruby2.1-stdlib 3个软件包

再次尝试运行: gem install compass,提示

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

    current directory: /usr/lib64/ruby/gems/2.1.0/gems/ffi-1.9.18/ext/ffi_c
/usr/bin/ruby.ruby2.1 -r ./siteconf20170501-19967-1fry11r.rb extconf.rb
checking for ffi.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

这提示的是缺少 ffi

在上面执行的:zypper serch ruby* 命令的搜索结果中有:

  | ruby2.1-rubygem-fastercsv-testsuite                     | Test -> | 软件包
  | ruby2.1-rubygem-ffi                                     | Ruby -> | 软件包
  | ruby2.1-rubygem-ffi-doc                                 | RDoc -> | 软件包

运行: zypper in ruby2.1-rubygem-ffi


最后执行: gem install compass之后,安装成功,暂时还不能直接运行compass命令,因为执行时,提示

If ‘compass‘ is not a typo you can use command-not-found to lookup the package that contains it, like this:
    cnf compass

参考资料:

  1. zypper命令使用示例
  2. linux下各种*-dev或*-devel包的作用
  3. 安装compass时出现ERROR: Failed to build gem native extension...... -- mkmf (Load Error)解决办法

openSUSE 安装compass,mkmf.rb can't find,checking for ffi.h...extconf.rb failed

时间: 2024-10-01 07:52:23

openSUSE 安装compass,mkmf.rb can't find,checking for ffi.h...extconf.rb failed的相关文章

安装Compass时不能访问服务器的问题

今天安装Compass,居然老是提示网络问题,后来根据错误提示,发现带https的域名是访问不了的,是是SSL问题.后来搜了一下,在stackoverflow找到一个人说,将https的去掉就好了.具体步骤如下: 1. gem sources - check sources 2. gem sources -a http://rubygems.org/ - will add http source 3. gem sources –remove https://rubygems.org/ - wil

opensuse安装oracle-jdk

前提:关于openJDK和JDK的区别和联系,可以参见这篇文章   不管怎样,记住一句话jdk的完整程度和稳定程度是高于openJDK的.我使用的是opensuse 13.1,安装之后默认自带的是openJDK,下面是我将openJDK换成JDK1.7的过程.技术性的东西很少,只需要找无openSUSE如何修改环境变量,openSUSE如何安装rpm文件,如何不重启刷新环境变量.第一步:下载jdk1.7(毕竟1.8刚出来,现在主流的还是1.7) 官网第二步:控制台中输入java -version

openSUSE 安装

https://lug.ustc.edu.cn/sites/opensuse-guide/installation.php 开始 1. 简介2. 改用 GNU/Linux3. 获取 openSUSE4. 安装 日常应用 5. KDE 桌面环境6. 常用软件7. 安全设置8. 终端命令行9. 管理员设置 (YaST)10. 软件安装11. 软件源12. 与Windows世界兼容 设置 13. 多媒体编解码器14. 浏览器插件15. 显卡驱动16. 无线网17. 开发环境18. 软件打包服务OBS1

php安装编译时 configure: error: Cannot find OpenSSL's <evp.h>

=============================================== yum install error: protected multilib versions error===============================================sudo yum downgrade openssl 降级sudo yum install openssl-devel ===另外参考====================================

mysql-python 安装错误 fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory

安装mysql-python之前, 请先安装setuptools. https://pypi.python.org/pypi/setuptools/7.0 下载mysql-python. 下载源码包. https://pypi.python.org/pypi/MySQL-python/1.2.5 解压后执行 python setup.py install 提示错误: fatal error C1083: Cannot open include file: 'config-win.h': No s

php fpm安装curl后,nginx出现connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied)的错误

这里选择直接apt-get安装,因为比起自己编译简单多了,不需要自己配置什么 #sudo apt-get install curl libcurl3 libcurl3-dev php5-curl 安装后重启nginx #nginx -s reload 岂知出现错误,php全部不能访问,查看错误日志如下: 2014/07/24 23:59:46 [crit] 40455#0: *229072 connect() to unix:/var/run/php5-fpm.sock failed (13:

sass学习之一:sass安装compass部署

主要参考 http://www.jianshu.com/p/5bfc9411f58f -------------------------------------------- sass基于ruby 需ruby解释器 1. 安装ruby 下载地址 https://rubyinstaller.org/downloads/ 选一个合适的版本下载并安装即可.安装中勾选第二项: 检测是否安装成功 ruby -v 2.sass安装及使用 利用ruby的gem命令 ruby安装好后,打开开始菜单 ,有 sta

opensuse安装telegram客户端小计

总所周知 gtalk已经没了,所以尝鲜一下其他的聊天工具,今天试用了一下telegram. 安装方法.这里安装的是第三方的客户端,叫cutegram. 1,直接再software.opensuse.org上搜索cutegram. 2,找到home:ecsos:messenger,选择一键安装. 3,等安装完成后,运行cutegrame,发现窗台是白的.经研究发现,是如下两个软件没装: libqt5-qtgraphicaleffectslibqt5-qtquickcontrols 4,安装步骤3里

openSUSE 安装 Torch

目前官方只提供了 Ubuntu, elementary OS, Fedora, Archlinux and CentOS 的安装方法(参见 install-deps 的配置), 但是作为 openSUSE 的忠实用户肯定不能因为这个换系统! google了半天文档很少很少, 但是还是有的[2], 按帖子上说的只要把依赖项换换, 命令改改(把 apt-get 的换成 zypper) 应该就可以啦. fedora 和 SUSE 的都是基于rpm, 所以应该差异不大. 细看下install-deps里