GNU/Linux >> Znalost Linux >  >> Cent OS

Centos – 64bit Rpm nemůže vyřešit 32bitové závislosti?

Problém

Mám RPM, které obsahuje smíšené 64bitové a 32bitové binární soubory. Jedna z binárních souborů závisí na 32bitových balíčcích i686. Když se pokusím nainstalovat balíček, yum mi zobrazí chybu s poznámkou, že balíček vyžaduje 32bitové balíčky. Když se však pokusím nainstalovat požadované balíčky sám, funguje to bezchybně.

Podrobnosti

V mém souboru specifikací mám

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

Když se pokusím nainstalovat balíček na systém CentOS 6.3, zobrazí se:

# 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

Když však ručně nainstaluji odkazované balíčky, dostanu

# 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

Moc nerozumím tomu, proč k chybě dochází a co se mi snaží sdělit. Vidím, že k tomu dochází pouze u 32bitových balíčků, protože čtvrtý požadovaný balíček „lshw“ se zdá být bez problémů. Existuje speciální syntaxe specfile odkazující na 32bitové balíčky?

Přijatá odpověď:

Právě jsem našel odpověď. Můj řádek požadavků by měl být

Requires:       glibc(x86-32) libstdc++(x86-32) device-mapper-libs(x86-32)

jak je popsáno v
http://www.rpm.org/wiki/PackagerDocs/ArchDependencies


Cent OS
  1. Jak nainstalovat balíček RPM do jiného adresáře v CentOS/RHEL/Fedora

  2. Jak obnovit smazané soubory balíčků rpm (knihovny, konfigurační soubory) v CentOS/RHEL 7

  3. Nelze nainstalovat FreeTDS přes Yum Package Manager

  1. Najděte, ke kterému balíčku příkaz patří v CentOS

  2. „-bash:firewall:příkaz nenalezen“ – Jak vyřešit v CentOS/RHEL 7

  3. „lsb_release:příkaz nenalezen“ – Oprava v CentOS/RHEL

  1. Jak nainstalovat balíček RPM na RHEL 8 / CentOS 8 Linux

  2. rpm:příkaz nenalezen

  3. Jak získat seznam závislostí neinstalovaného RPM balíčku?