GLIBCを更新せずに新しいソフトウェアを実行するには?

GLIBCを更新せずに新しいソフトウェアを実行するには?

以前のRed Hat Enterprise Linux ASバージョン4システムにMathematica 9をインストールしました。インストール後にMathematicaを起動しようとすると、次のメッセージが表示されます。

/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica:/lib64/tls/libc.so.6: 'GLIBC_2.4' バージョンが見つかりません (/ required ) ホーム/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/Libraries/Linux-x86-64/libML64i3.so)

/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica:/lib64/tls/libc.so.6: 'GLIBC_2.4' バージョンが見つかりません (/ required ) ホーム/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/Libraries/Linux-x86-64/libQtCore.so.4)

危険で管理者がこれを許可しないため、システムglibcを更新したくありません。

誰かが他の場所にglibcの新しいバージョンをインストールし、プログラムを実行できることを提案しました。

LD_LIBRARY_PATH=/lib/new your_application

そしてこれはシステムに影響を与えません。

だから私はこの方法が実際に効果があるかどうか尋ねたいと思います。うまくいけば、段階的にどのように行うかを知りたいです。 (私は現在Linuxの経験がほとんどなく、すぐにLinuxでMathematicaを使用したいと思います。)

編集する:

「Ermine」というソフトウェアがあることがわかりました。外部環境に依存せずにスタンドアロンパッケージにソフトウェアを配布できるようです。残念ながらシェアウェアです。だから私は「Ermine」がそれを行うことができるので、古いシステムで新しいソフトウェアを使用する方法があると思いました。

ベストアンサー1

新しいバージョンの GLIBC をコンパイルして別のディレクトリに保存できます。最初にすべきことは、必要なglibcバージョンをダウンロードすることです。http://ftp.gnu.org/gnu/glibc/

スクリプトを実行し、次のようにconfigure設定します。--prefix=/home/you/mylibs

LD_LIBRARY_PATHこのディレクトリにインストールしたら、新しいglibcの場所に設定する必要があります。

コンパイルする必要がある依存関係を見つける必要があります。 LD_*変数を設定し、プログラムを実行するシェルスクリプトを生成して(とにかく実行する必要があります)、それを繰り返し実行して、不足しているライブラリをダウンロード/再コンパイルできます。

また、それを使用してlddプログラムに必要な共有ライブラリを確認し、ldd各ライブラリと一緒に使用してglibcが必要かどうかを判断できます。

これは非常に辛抱強い人や心臓が弱い人には時間がかかるプロセスです。- アプリケーションが動作するために必要な可能性のある依存関係をナビゲート/再コンパイルすると、時には髪を抜きたいと思うことがあります。

アップデート1:

glibc-2.4をダウンロードしてCentOS 6でコンパイルしようとしました。これが機能するには、次のように変更してバージョンを確認するconfigure必要があります。acld

2.1[3-9]*)

到着する:

2.*)

4045とファイル自体の両方4106からconfigure。 *FLAGS 環境変数を次のように設定しました。

LDFLAGS="-Wl,--sort-common -Wl,-zcombreloc -Wl,-znow" 
CFLAGS="-pipe -fomit-frame-pointer -g1 -O3 -frename-registers -fweb -ftracer -fmodulo-sched -fvariable-expansion-in-unroller -fgcse-sm"
CXXFLAGS="${CFLAGS}" 
CFLAGS="${CFLAGS} -freorder-blocks-and-partition" 
export LDFLAGS CFLAGS CXXFLAGS

次に実行します./configure --prefix=/home/tim/masochist。正しく設定されており、正しく構築され始めましたが、エラーが発生し始めました。主にコンパイラがオーバーライドされることについて文句を言いました。

その時あきらめました……どんどん変わっていくから時間がかかりすぎます。 ;)

おすすめ記事