RHEL7中没有ruby-devel?

use*_*791 19 ruby redhat

我有一个最近安装的RHEL7系统,需要做gem安装jekyll,但是这失败了:

Fetching: yajl-ruby-1.2.1.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing jekyll:
        ERROR: Failed to build gem native extension.

    /usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/share/include/ruby.h
Run Code Online (Sandbox Code Playgroud)

Google建议这是因为缺少安装ruby-devel软件包.但是似乎没有到可以在RHEL7这样的包.我是否需要转移到软件集合(不是真的想要这样做,因为这将用于生产机器,而不是开发)或者我可以通过其他方式获得它吗?

jui*_*ice 31

这个答案是通过拼凑其他答案中的位来实现的 - 所以对于之前的贡献者......谢谢你,因为我不会想到这一点.

此示例基于RHEL 7 AMI(亚马逊管理映像)3.10.0-229.el7.x86_64.

因此,默认情况下,如上所述,optional未启用存储库.不要添加另一个repo.d文件,因为它已经存在,只是它已被禁用.

  1. 要首先启用,您需要名称.我用grep做了这个:

    grep -B1 -i optional /etc/yum.repos.d/*
    
    Run Code Online (Sandbox Code Playgroud)

    在每个名称上方将包含的repo id [ ]查找可选的not optional-source

  2. 启用可选的repo:

    yum-config-manager --enable <repo-id>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 刷新yum缓存(不确定是否有必要,但不会造成伤害):

    sudo yum makecache
    
    Run Code Online (Sandbox Code Playgroud)
  4. 最后,你可以安装ruby-devel:

    yum install ruby-devel
    
    Run Code Online (Sandbox Code Playgroud)

您可能需要使用,具体取决于您的用户权限sudo.


小智 7

您需要订阅'optional'repo来获取所有devel包.

subscription-manager repos  --enable rhel-7-server-optional-rpms
Run Code Online (Sandbox Code Playgroud)


ric*_*ick -1

在您的系统上安装 ruby​​ 软件包并重试。

sudo yum install ruby193-ruby-devel.x86_64
Run Code Online (Sandbox Code Playgroud)