使用 Yum 安装 Ruby-Devel 时出错?



您好,我尝试安装 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'

我查找了类似的帖子,并被指示安装红宝石开发。但这也让我很难过。

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 安装红宝石的步骤吗?请问

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

从您的错误消息中,YUM 正在尝试从"RHN-rhel-x86_64-服务器可选-7-1-locked"通道安装ruby-devel.x86_64 0:2.0.0.598-25.el7_1,但您当前已从"@RHN-rhel-x86_64-server-7-latest"通道安装ruby-2.0.0.648-29.el7.x86_64,该通道将无法满足依赖项,因为发布版本不匹配。

为了让 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 获得支持。

希望有帮助

最新更新