Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

No ruby-devel in RHEL7?

Tags:

ruby

redhat

I have a recently installed RHEL7 system, and need to do gem install jekyll, however this fails as:

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

Google suggest this is due to the lack of a ruby-devel package being installed. However there doesn't seem to be such a package in RHEL7. Do I need to move to a software collection (don't really want to do this as this will be for a production machine, not development) or can I get it some other way?

like image 926
user3852791 Avatar asked Jun 05 '15 11:06

user3852791


4 Answers

This answer comes by way of piecing together bits from other answers - so to the previous contributors...thank you because I would not have figured this out.

This example is based on the RHEL 7 AMI (Amazon Managed Image) 3.10.0-229.el7.x86_64.

So by default as mentioned above the optional repository is not enabled. Don't add another repo.d file as it already exists just that it is disabled.

  1. To enable first you need the name. I used grep to do this:

    grep -B1 -i optional /etc/yum.repos.d/*
    

    above each name will be the repo id enclosed in [ ] look for the optional not optional-source

  2. Enable the optional repo:

    yum-config-manager --enable <repo-id>
    
  3. Refresh the yum cache (not sure if this is necessary but it doesn't hurt):

    sudo yum makecache
    
  4. Finally, you can install ruby-devel:

    yum install ruby-devel
    

Depending on your user's permissions you may need to use sudo.

like image 163
juice Avatar answered Nov 11 '22 10:11

juice


You need to subscribe to the optional repo to get all the devel packages.

subscription-manager repos  --enable rhel-7-server-optional-rpms

This is because the ruby-devel package is contained in the rhel-7-server-optional-rpms repository.

like image 37
slk Avatar answered Nov 11 '22 11:11

slk


At least on Oracle Linux 7 you have to enable an additional repo.

[root@foo ~]# yum repolist
repo id                     repo name 
[...]
ol7_optional_latest/x86_64  Oracle Linux 7Server Optional Latest (x86_64)

After enabling the repo ruby-devel sits there, awaiting your installation.

[root@foo ~]# yum info ruby-devel | egrep 'Name|Version|From'
Name        : ruby-devel
Version     : 2.0.0.598
From repo   : ol7_optional_latest

That's all.

like image 2
far4d Avatar answered Nov 11 '22 11:11

far4d


ruby-devel RPM is available in the following repo on RHEL 7

rhel-7-server-optional-beta-rpms

Set "enabled = 1" for this repo in your .repo file and then run

yum install ruby-devel

like image 2
BOH Avatar answered Nov 11 '22 10:11

BOH