しばらく前に、私はCentOS 5サーバーにSteamをインストールしようとしましたが、インターネット上で見つけることができるほとんどすべてを試しましたが、両方を含めたり含めたりせずにlibstdc ++をインストールできるようになりました。
CPanelはインストールする正しいバージョンが見つからないため更新できませんが、yumはすでにインストールされているためインストールできません。
¿この状況を解決し、一貫した状態に達するにはどうすればよいですか?
# yum install libstdc++-4.1.2-55.el5
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* contrib: mirror.wiredtree.com
addons | 1.9 kB 00:00
base | 1.1 kB 00:00
centosplus | 1.9 kB 00:00
contrib | 1.9 kB 00:00
extras | 2.1 kB 00:00
updates | 1.9 kB 00:00
wiredtree | 951 B 00:00
Excluding Packages in global exclude list
Finished
Setting up Install Process
Package matching libstdc++-4.1.2-55.el5.i386 already installed. Checking for update.
Nothing to do
# yum remove libstdc++-4.1.2-55.el5
Loaded plugins: fastestmirror
Setting up Remove Process
No Match for argument: libstdc++-4.1.2-55.el5
Loading mirror speeds from cached hostfile
* contrib: mirror.wiredtree.com
addons | 1.9 kB 00:00
base | 1.1 kB 00:00
centosplus | 1.9 kB 00:00
contrib | 1.9 kB 00:00
extras | 2.1 kB 00:00
updates | 1.9 kB 00:00
wiredtree | 951 B 00:00
Excluding Packages in global exclude list
Finished
Package(s) libstdc++-4.1.2-55.el5 available, but not installed.
No Packages marked for removal
# yum reinstall libstdc++-4.1.2-55.el5
Loaded plugins: fastestmirror
Setting up Reinstall Process
Loading mirror speeds from cached hostfile
* contrib: mirror.wiredtree.com
addons | 1.9 kB 00:00
base | 1.1 kB 00:00
centosplus | 1.9 kB 00:00
contrib | 1.9 kB 00:00
extras | 2.1 kB 00:00
updates | 1.9 kB 00:00
wiredtree | 951 B 00:00
Excluding Packages in global exclude list
Finished
No Match for argument: libstdc++-4.1.2-55.el5
Package(s) libstdc++-4.1.2-55.el5 available, but not installed.
Nothing to do
# yum --showduplicates list libstdc++ | expand
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* contrib: mirror.wiredtree.com
Excluding Packages in global exclude list
Finished
Installed Packages
libstdc++.i386 4.3.2-7 installed
Available Packages
libstdc++.i386 4.1.2-55.el5 base
答え1
私に正しい方向を教えてくれたAnthony Geogheganに感謝します。効果的な解決策が見つかりました。
rpm -e --justdb --nodeps libstdc++
ファイルに触れることなくデータベースからパッケージを削除してから簡単にyum install
。
答え2
興味がなかったので、まず次のようにrpm
パッケージを削除してみました。
rpm -e libstdc++
しかし、疑わしい内部データベースがrpm
破損し、上記のコマンドが機能しなかったため、次のようにデータベースを再構築してみました。
rpm --rebuilddb
答え3
これは x86_64 および multilib パッケージで発生する可能性があります。yum remove libstdc++
64ビットバージョンをアンインストールしようとしましたが、インストールされていません。したがって、この場合はアーチを使用してパッケージを処理する必要があります。つまり:
yum remove libstdc++-4.1.2-55.el5.i386
答え4
私の所有者も同様の状況です。
# yum --showduplicates list coreutils-libs
同時にインストールされているように見える同じパッケージの2つのバージョンを返します。
Installed Packages
coreutils-libs.x86_64 8.4-37.el6_7.3 @updates
coreutils-libs.x86_64 8.4-43.el6 installed
Available Packages
coreutils-libs.x86_64 8.4-43.el6 base
私が試したとき
# yum remove coreutils-libs
次のような他の依存関係を削除する必要があるため、失敗しました。まあそれ自体。
しかし、数回の試行錯誤の最後に問題を解決することができました。重要なのは、バージョンとリリースのサフィックスを含むパッケージのフルネームを使用することです。
要点は、パッケージの1つを削除するには物理的な削除が必要ですが、2つのパッケージの一方を削除すると、rpm DBレコードのみが削除され、データベースが一貫した状態になるということです。
私の場合でもcoreutils-8.4-37.el6_7.3パッケージがインストールされているので、-37.el6_7.3バージョンはおそらく正しいバージョンです(例:保持)。
私が言ったときまあ他のものを削除する
# yum remove coreutils-libs-8.4-43.el6
すべてがエラーなしで実行され、RPM DBが再び一貫しています。