glibcを適切にアップグレードする方法は?


10

私のNASのファームウェアには、glibc2.5 というかなり古いバージョンが付属しています。リンクされ、いくつかのコンパイル済みのバイナリに対応するためには*glibc2.15、私はそれをアップグレードしたいと思います。chroot環境での簡単なテストから、新しいものlibc-2.15.soを追加してシンボリックリンクlibc.so.6を更新するだけでシステムが使用できなくなることを学びました。おそらく順libc-2.15.soにリンクさld-linux.so.3れているため、2.5バージョンではなく2.15バージョンも必要になります。でも、試行錯誤を繰り返す前に、

glibcを手動でアップグレードするための正しい手順は何ですか?


*「静的」、彼らはリンクされているにもかかわらず、まだ動的にはglibcにリンク...


「glibc 2.15にリンクされたいくつかのプリコンパイルされたバイナリに対処するために(「静的に」リンクされているにもかかわらず、動的にglibcにリンクされています...)。ブラケットを取り除くと、これは「glibc 2.15にリンクされたいくつかのプリコンパイルされたバイナリに対処するため」に減少します。どういう意味かわかりません。
Faheem Mitha、2014年

@FaheemMithaそれを指摘してくれてありがとう、私はその文章を終えるのを忘れたことに気づかなかった-今それがもっと理にかなっていると
いいのに

はい、読みやすくなりましたが、ブラケットが埋め込まれているとわかりやすくなります。新しいlibcでファームウェアを再構築することはオプションではないと思いますか?
Faheem Mitha 2014年

@FaheemMitha Debracketedになりました。いいえ、残念ながらファームウェアには独自のコンポーネントが含まれています:/
Tobias Kienzler

ニトピック市。テキストを*でマークしていますが、「脚注」で1を使用しています。はい、それは(理由の一部ですが)独占的なソフトウェアはひどいです。おそらく無料のサードパーティ製ファームウェアを探しますか?または独自に開発します。言うよりも、言うのは簡単です。
Faheem Mitha 14年

回答:


7

一部のプログラムとライブラリは現在のバージョンに依存している可能性があるため、標準ライブラリのアップグレードは危険です。

新しいプログラムを実行する必要がある場合の推奨事項は、完全なchrootされたディストリビューションをインストールすることです。これにはより多くのディスク領域が必要ですが、libcを更新しようとするよりもはるかに単純でリスクが少なくなります。Debianは、chrootへのインストールを容易にするツール、debootstrapを提供しています。詳細については、debian / ubuntuに2つのglibcを一緒にインストールする(非常によく似た状況)と64ビットのDebian / Ubuntuで32ビットプログラムを実行するにはどうすればよいですか?を参照してください。少し異なる状況での完全なハウツー。


2
私も同じくらい恐れていました...実際、私現在、chrootされたGentooインストールを使用しています。chroot以外のバイナリをコンパイルするには、おそらくGentooのglibcをダウングレードするか、十分に古いバージョンを使用する方が簡単でしょう...そして、私はこれを最終的に疑っています(または、少なくとも望んでいません)。
Tobias Kienzler 2013年

glibcのアップグレードは「リスクが高い」とはどういう意味ですか?Glibcは下位互換性があるため、通常は機能するはずですが、ここで何か理解できませんでしたか?
ニルス2017

3
@Nils何が欠けているのは間違いがあるはずですし、ありません。プログラムは、バージョン間で異なる文書化されていない動作に依存する場合があります。
Gilles「SO-邪悪なことをやめなさい」
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.