我有一个最近安装的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文件,因为它已经存在,只是它已被禁用.
要首先启用,您需要名称.我用grep做了这个:
grep -B1 -i optional /etc/yum.repos.d/*
Run Code Online (Sandbox Code Playgroud)
在每个名称上方将包含的repo id [ ]
查找可选的not optional-source
启用可选的repo:
yum-config-manager --enable <repo-id>
Run Code Online (Sandbox Code Playgroud)刷新yum缓存(不确定是否有必要,但不会造成伤害):
sudo yum makecache
Run Code Online (Sandbox Code Playgroud)最后,你可以安装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)