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整理し、古いパッケージをインストールしようとしている理由を発見することです (ロックされたチャネルと関係がある可能性があります)。

もう 1 つのオプションは、その 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 マシンを持っていないため、この 2 番目の提案が機能するかどうかをテストすることはできません。自己責任で使用してください。また、リポジトリを修正する最初の提案を試すか、チャネルの 1 つがロックされている理由を突き止めることをお勧めします。その方法の方が安全であり、必要に応じて RedHat からサポートを受けることができます。

それが役立つことを願っています

于 2016-12-15T01:20:52.157 に答える