GNU/Linux >> Linux の 問題 >  >> Cent OS

Centos – 64ビットRPMは32ビットの依存関係を解決できませんか?

問題

64ビットと32ビットのバイナリが混在するRPMを使用しています。バイナリの1つは、32ビットi686パッケージに依存しています。パッケージをインストールしようとすると、yumはエラーを表示し、パッケージには32ビットパッケージが必要であることに注意してください。ただし、必要なパッケージを自分でインストールしようとすると、問題なく動作します。

詳細

私のスペックファイルには

Requires:       glibc.i686 libstdc++.i686 device-mapper-libs.i686 lshw

CentOS 6.3システムにパッケージをインストールしようとすると、次のようになります。

# yum update gamigo-kvm-tools
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package gamigo-kvm-tools.x86_64 0:0.0.7-4 will be updated
---> Package gamigo-kvm-tools.x86_64 0:0.0.9-4 will be an update
--> Processing Dependency: libstdc++.i686 for package: gamigo-kvm-tools-0.0.9-4.x86_64
--> Processing Dependency: glibc.i686 for package: gamigo-kvm-tools-0.0.9-4.x86_64
--> Processing Dependency: device-mapper-libs.i686 for package: gamigo-kvm-tools-0.0.9-4.x86_64
--> Finished Dependency Resolution
Error: Package: gamigo-kvm-tools-0.0.9-4.x86_64 (gamigo-CentOS-6-x86_64-liv)
           Requires: libstdc++.i686
Error: Package: gamigo-kvm-tools-0.0.9-4.x86_64 (gamigo-CentOS-6-x86_64-liv)
           Requires: device-mapper-libs.i686
Error: Package: gamigo-kvm-tools-0.0.9-4.x86_64 (gamigo-CentOS-6-x86_64-liv)
           Requires: glibc.i686
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

ただし、参照されているパッケージを手動でインストールすると、次のようになります

# yum install libstdc++.i686 device-mapper-libs.i686 glibc.i686
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Install Process
Package libstdc++-4.4.6-4.el6.i686 already installed and latest version
Package device-mapper-libs-1.02.74-10.el6.i686 already installed and latest version
Package glibc-2.12-1.80.el6_3.5.i686 already installed and latest version
Nothing to do

エラーが発生する理由と、エラーが何を伝えようとしているのかよくわかりません。 4番目に必要なパッケージ「lshw」は問題ないように見えるため、32ビットパッケージでのみ発生していることがわかります。 32ビットパッケージを参照するための特別なspecfile構文はありますか?

承認された回答:

答えが見つかりました。 MyRequires行は

である必要があります
Requires:       glibc(x86-32) libstdc++(x86-32) device-mapper-libs(x86-32)


http://www.rpm.org/wiki/PackagerDocs/ArchDependencies

で説明されているように
Cent OS
  1. 「-bash:ファイアウォール:コマンドが見つかりません」 – CentOS/RHEL 7 での解決方法

  2. 「lsb_release:command not found」 – CentOS/RHEL で修正

  3. rpm:コマンドが見つかりません

  1. コマンドがCentOSで属するパッケージを検索します

  2. RPM パッケージを CentOS/RHEL/Fedora の別のディレクトリにインストールする方法

  3. インストールされていない RPM パッケージの依存関係のリストを取得するには?

  1. RHEL 8 / CentOS8LinuxにRPMパッケージをインストールする方法

  2. CentOS/RHEL 7 で削除された rpm パッケージ ファイル (ライブラリ、構成ファイル) を回復する方法

  3. Yum Package Manager から FreeTDS をインストールできない