GLIBCアップグレードで何が問題になるのですか?


9

私は最近、私のグループが来年9月からの研究プロジェクトに必要なソフトウェアをインストールしました。glibc 2.12.1で使用すると、ソフトウェアに既知のクラッシュバグがあることが判明しました。上司は、それを実行するはずのサーバーでglibcをアップグレードできるかどうか尋ねました。私の懐疑的な沈黙の手がかり...

ある時点で、glibcをいじるのは空腹のピューマをいじるのと同じくらい良いアイデアだということを頭の中に入れました。しかし、私はこの信念の根源を特定することができませんでした。したがって、これを続行すると:

  1. 私はひどく愚かなことをしていますか(たとえば、問題を解決しない、サーバーをブリックする、またはゾンビの黙示録を開始するなど)?
  2. 何がうまくいかないのですか?
  3. 何がうまくいかないのでしょうか?
  4. 2と3への回答を回避するにはどうすればよいですか?

3
まず、ディストリビューションにバグを修正するglibcアップグレードがあるかどうかを確認します。ディストリビューションの特定のglibcには、公式のglibcと比較して、そのglibcへの多くのバックポート/バグ修正が含まれている可能性がありますが、ディストリビューションのバージョンは同じです。
番号

1
起動可能なリムーバブルメディア(USBフラッシュスティック、CD、DVD)がある限り、マシンは本当に壊れていません。そこからglibcを再インストールすることで救出が可能になります。危険を回避するために、新しいglibcをroot以外のユーザーとしてコンパイルしてみて、--prefix=$HOMEそれを指してLD_LIBRARY_PATH、動作するかどうか確認してください。root以外のユーザーとして、あなたがいかに失敗しても、システム全体を台無しにすることはできません。それが機能する場合は、変更して、研究プロジェクトの要件として--prefix=/usr/local/bleeding-edge-glibc文書化LD_LIBRARY_PATH=/usr/local/bleeding-edge-glibc/libします
Alan Curry

1
ディストリビューションをアップグレードできませんか?そして、あなたはglibcあなたが恐れているバグが何であるか、そしてあなたがどんな種類のソフトウェアを使っているかを使うように言うべきです。ソフトウェアにパッチを適用するか(ソースコードがあることを前提)、システムを構成して回避することができます。

可能な限り、新しいプロジェクトで古いサーバーソフトウェアを使用しないでください。
マイケルハンプトン

回答:


5

多くの場合、より新しいlibcをコンパイルして、あるソフトウェアで他の人とは異なるライブラリを使用することができます。

libcバージョン間の最大の問題は、スレッドローカルストレージ、IIRCです。このマイルストーンを通過している場合、すべての賭けはオフです。

以上のことをすべて言いましたが、単にディストリビューションを最新のものにアップグレードすることを強くお勧めします。少しずつアップグレードを行うと、何ヶ月も尻尾を追うような痛みにつながる可能性があります。


2

互換性の表を参照して、バイナリ互換バージョンを確認できます。

通常、glibcを新しいバージョンにアップグレードしても問題はありませんが、ディストリビューションで使用されているものと同じ構成フラグでビルドする必要があります(適切なSRPMパッケージのスペックファイルを参照)。

ここに画像の説明を入力してください

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