您好我尝试安装ruby gem json但它出现以下错误
`构建原生扩展。这可能需要一段时间...... 错误:安装json时出错: 错误:无法构建gem原生扩展。
mkmf.rb在/usr/share/include/ruby.h找不到ruby的头文件
Gem文件将保留在/home/jenkins/.gem/ruby/gems/json-2.0.2中进行检查。 结果记录到/ home / jenkins / .gem / ruby / gems / json-2.0.2 / ext / json / ext / generator / gem_make.out`
我抬起了类似的帖子,被指示安装ruby-devel。但那也让我很难过。
yum install ruby-devel
Loaded plugins: addreleaserel, priorities, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Resolving Dependencies
--> Running transaction check
---> Package ruby-devel.x86_64 0:2.0.0.598-25.el7_1 will be installed
--> Processing Dependency: ruby(x86-64) = 2.0.0.598-25.el7_1 for package: ruby-devel-2.0.0.598-25.el7_1.x86_64
--> Finished Dependency Resolution
Error: Package: ruby-devel-2.0.0.598-25.el7_1.x86_64 (RHN-rhel-x86_64-server-optional-7-1-locked)
Requires: ruby(x86-64) = 2.0.0.598-25.el7_1
Installed: ruby-2.0.0.648-29.el7.x86_64 (@RHN-rhel-x86_64-server-7-latest)
ruby(x86-64) = 2.0.0.648-29.el7
Available: ruby-2.0.0.353-20.el7.x86_64 (RHN-rhel-x86_64-server-7)
ruby(x86-64) = 2.0.0.353-20.el7
Available: ruby-2.0.0.353-22.el7_0.x86_64 (RHN-rhel-x86_64-server-7)
ruby(x86-64) = 2.0.0.353-22.el7_0
Available: ruby-2.0.0.598-24.el7.x86_64 (RHN-rhel-x86_64-server-7)
ruby(x86-64) = 2.0.0.598-24.el7
Available: ruby-2.0.0.598-25.el7_1.x86_64 (RHN-rhel-x86_64-server-7-1-locked)
ruby(x86-64) = 2.0.0.598-25.el7_1
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
有人可以建议我使用yum安装ruby-devel的步骤吗?请
答案 0 :(得分:0)
您配置的存储库似乎有些不可思议。
从错误消息中,YUM正在尝试从" RHN-rhel-x86_64-server-optional-7-1-locked"安装ruby-devel.x86_64 0:2.0.0.598-25.el7_1
。频道,但您目前已经安装了ruby-2.0.0.648-29.el7.x86_64
来自" @ RHN-rhel-x86_64-server-7-latest"因发布版本不匹配而无法满足依赖关系的通道。
为了让YUM完成您发布的交易,它必须安装旧版本的RedHat ruby软件包,并且我不认为它希望在没有明确告知的情况下这样做。
我可以考虑几种选择,具体取决于您希望如何解决此问题。我的第一个建议是,如果我管理这个服务器,我会做什么,这是为了理顺存储库配置并发现为什么yum install ruby-devel
试图安装旧包(它可能与该锁定通道有关)
另一个选择是以任何必要的方式安装ruby-devel软件包,这可能对你的RedHat订阅不利或者可能会破坏。您将首先用与ruby-devel匹配的旧版本替换已安装的ruby版本,然后尝试安装ruby-devel:
yum downgrade ruby-2.0.0.598-25
yum install ruby-devel-2.0.0.598-25
我没有配备订阅的RedHat机器,因此我无法测试第二个建议是否有效,使用风险由您自行承担。我还会再次建议您尝试修复存储库的第一个建议,或者弄清楚为什么其中一个通道被锁定,因为该方法会更安全,如果需要,您可以从RedHat获得支持。
希望有所帮助