スースが壊れた? glibcが見つかりません


0

私はソースからしか入手できない新しいpostgresベータ版をインストールしたいと思いました。私のサーバーにはgccがインストールされていなかったので、私はgccをインストールしたいと思いました。 yastを実行した後、gcc 4.3.3は何トンものパッケージをダウングレードすることによってしかインストールできませんでした。私はすべてのものをクリックしてインストールをヒットし、そしていくつかのインストールの失敗がポップアップ表示されました。中絶を打った後、私はもう酵母に入ることはできません。

/bin/bash: /lib64/libc.so.6: version GLIBC_2.11 'が見つかりません(/lib64/libreadline.so.5に必要)

ジッパー、rpmも壊れています。私は完全にサーバーを立ち上げなければなりません。すべてを再び稼働させるための修復コマンドはありますか?私はsuse 11.1を実行しています。

回答:


2

修復コマンドはありません。起こったことはあなたのダウングレードがのバージョンを置き換えたということです glibc 現在のバージョンから古いバージョンへのリンク glibc (すなわち、 すべてのもの 最初にダウングレードされたパッケージを除いて)それらがリンクして実行するのに必要なシンボルを見つけることができなくなりました。

このシステムを修復するには、レスキューシステムを起動して(OpenSUSE 11.1 Live CD、またはハードディスクを別のコンピュータに入れて)、正しいバージョンのを手動でダウンロードします。 glibc rpmで解凍し、手動でファイルを破損したシステムに配置します。

実際、サーバーのファイルシステムをマウントできるほとんどすべてのLinuxオペレーティングシステムからこれを実行できます。あなたが必要とする主なものは rpm コマンドが、そのバージョンが rpm それはLZMAアーカイブフォーマットをサポートするように、レスキューシステムでは新しく、11.1がリリースされた時までに展開されたと思います。これを行う最も安全な方法は、レスキューシステムとしてOpenSUSE / SUSE 11.1 Live CDを使用することです。Ubuntu8.04やSUSE 10のように奇妙で古いものではありません。

glibcが再び動作するようになれば、 chroot 壊れたシステムに入って、ダウングレードを再試行またはロールバックしてください。 exit chroot環境から、必要なパッケージをホストにダウンロードし、それらをゲストに解凍します。

実際、OpenSUSE 11.1のレスキューを起動した場合は、そこからすべてのファイルをコピーする方が簡単です。 /usr そして /lib64 レスキューシステムから壊れたルートボ​​リュームに、あなたのすべてのコアプログラムをオリジナルのバージョン(glibc、カーネル、Xorgなど)で上書きするしかし上書きしないでください /boot またはmenu.lst / menu.cfgを失うことになります。上書きしないでください /etc または、fstabを失うことになります。これは重要で、おそらく壊れていません(ただし、レスキューCDのバージョンで上書きすると壊れます)。

これが機能することが保証されていないことに注意してください。あなたはおそらく実行したいと思うでしょう zypper up (rootとして)あなたがこれをする前にレスキューシステムで。これですべてのファイルが更新されます /usr そして /lib64 サーバーに配置する前に、アップデートリポジトリから最新バージョンにアップグレードします。これは、壊れたシステムを起動したときにすべてがうまくいく可能性が最も高いです。

ほとんどの場合、あなたの質問に対する答えは「suse broken?」です。おそらく「はい」ですが、細心の注意を払って自分のしていることを知っていれば、それを修正することができます。しかし、壊れたシステムのrpmデータベースに、すべて問題ないことを納得させることは興味深いかもしれません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.