1
Linuxで非ルートとして別の(新しい)glibc / gcc /…スタックを維持するにはどうすればよいですか
私たちの計算クラスターは、非常に古いバージョンのCentOSを実行し、古いカーネル(2.6.18)と、もちろん古いライブラリとバイナリを使用しています。すべてを更新するには、すべてのノードで多くの作業が必要になるため、これはオプションではありません。 (および/または)のC++11新しいバージョンを必要とする、したがって新しいバージョンを必要とするプログラムをコンパイルして使用しようとしています。私はシステムをいじりたくないので、ローカルディレクトリツリーで非rootユーザーとしてこれを実行したいと思います。gccclang 問題は、マシンに存在するものgccよりglibcも新しいものが必要であることです。したがって、おそらくここで説明するようglibcに、ローカルlib/ツリーでの別の新しいバージョンを維持する必要があります。 私は失われていますどこでどのように必要なすべてのバイナリに私の地元のlibsのパスI「決め打ち」を行う、すなわち、あるgcc、g++など?LD_LIBRARY_PATHをローカルlib/ツリーに設定すると、コンパイルされていないELF file OS ABI invalid新しいlibm.so/ を使用したいため、すべてのシステムバイナリが機能しなくなります()libc.so。 だから、それを包むために:(含む新しい、ローカル開発スタックを維持する適切な方法は何でglibc、gccrootとしていじりせずに古いシステムに並列など)は? 副次的な質問として、LD_LIBRARY_PATHを設定することは、SE全体で解決策として投稿されglibcます。私にとって、システムバイナリ(などls)を実行しようとすると、上記のエラーが発生します。どうして?私は何か間違ったことをしましたか、これは意図された動作ですか?