0

您好我尝试安装 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 的步骤?请

4

1 回答 1

0

您配置的存储库似乎有些不对劲。

根据您的错误消息,YUM 正在尝试ruby-devel.x86_64 0:2.0.0.598-25.el7_1从“RHN-rhel-x86_64-server-optional-7-1-locked”频道ruby-2.0.0.648-29.el7.x86_64安装,但您当前已从“@RHN-rhel-x86_64-server-7-”安装最新”频道,由于发布版本不匹配,因此不满足依赖性。

为了让 YUM 完成您发布的交易,它必须安装旧版本的 RedHat ruby​​ 软件包,我认为它不想在没有明确告知的情况下这样做。

我可以想到几个选项,具体取决于您要如何解决此问题。我的第一个建议是,如果我管理这台服务器,我会做什么,即理顺存储库配置并找出为什么yum install ruby-devel要尝试安装较旧的软件包(它可能与该锁定通道有关)。

另一种选择是通过任何必要的方式安装该 ruby​​-devel 软件包,这可能对您的 RedHat 订阅不利或可能会破坏事情。您首先将已安装的 ruby​​ 版本替换为与 ruby​​-devel 匹配的旧版本,然后尝试安装 ruby​​-devel:

yum downgrade ruby-2.0.0.598-25
yum install ruby-devel-2.0.0.598-25

我没有订阅的 RedHat 机器,所以我无法测试第二个建议是否有效,使用风险自负。我还建议您再次尝试修复存​​储库的第一个建议,或者找出其中一个频道被锁定的原因,因为这种方法会更安全,并且如果需要,您可以从 RedHat 获得支持。

希望有帮助

于 2016-12-15T01:20:52.157 回答