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


20

古い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 'が見つかりません(必要/ home / 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 'が見つかりません(必要/ home / 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」というソフトウェアがあることに気付きました。外部環境に依存しないスタンドアロンパッケージとしてソフトウェアを展開できるようです。残念ながら、それはシェアウェアです。だから私は「アーミン」がそれをすることができるので、古いシステムで新しいソフトウェアを使用する方法がなければならないと思います。


2
うまくいくでしょう。セットアップにはかなりの作業が必要になる可能性があります(Mathematicaが依存するすべてのライブラリをインストールする必要があります)。私の推奨事項は、新しいリリースのrpmパッケージを自宅のサブディレクトリにインストールすることです。RHに精通している人に、その方法を説明する答えを書いてもらいます。
ジル「SO-悪であるのをやめる」

@Gillesこんにちは、Gilles、ありがとうございました!!! 楽しみにしてます。
user15964

ある他の場所でのglibcをインストールすることは危険。
BenjiWiebe

@BenjiWiebe-あなたは正確にどのようなリスクに言及していますか?
FooF

1
スーパーユーザーからクロスポスト:superuser.com/questions/543249/…そこから私のコメントを繰り返します:「RHEL4は8歳で、通常のサポートライフサイクルの終わりに達しました。インストールできる別のマシンはありませんか?たとえば、デスクトップマシン。」
バーハンアリ

回答:


10

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適切に機能させるにはac、以下を変更してldバージョンチェックを変更する必要がありました。

2.1[3-9]*)

に:

2.*)

ラインでの40454106では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。それは適切に設定され...そしてそれも適切に構築し始めました...しかし、それから私はエラーに遭遇し始めました-大部分はコンパイラが再定義されることについて不平を言っています。

その時点で私はあきらめました...それは時間がかかりすぎていたからです。;)


最後の行は重要ですが、情報については+1。OPは、関与する労力に見合う価値があるかどうかを判断する必要があります。
バーハンアリ

皆さん、ありがとうございました!はい、辞任します。妥協案としてMathematica 8に固執した方が良いと思います。Red Hat 4で動作します
。– user15964

@livingstaccatoこんにちは、しかし、どうやってvonbrandの言葉にコメントしますか?:「奇妙な場所に新しいバージョンをインストールするのは危険です...奇妙な場所のライブラリは、ランダムなものに拾われる可能性があります...」。本当に危険ですか?あなたの答えに記載されている方法を試したことはありますか?
user15964

あなたはあなたのようにやっていることに注意を払っていない場合を除き、@ user15964それは危険ではないroot 、あなたのセッションのinitスクリプトに変更あなたのLD_PRELOADのような奇妙な何かをして、自分自身をロックアウト。
リビングスタッカート

@ user15964また-はい-glibcを再構築しました。
リビングスタッカート

1

glibcをディストリビューションでサポートされているバージョンに更新することは、低リスクです。これは、はるか昔のバージョンとの互換性を処理するために書かれており、(むき出しのバグ)新しいバージョンは単なる置き換えになります。奇妙な場所に新しいバージョンをインストールするのは危険です、私見。


4
問題は、私が管理者ではなく、権限を持っていないことです。たとえ許可を得たとしても、システムに変更を加えることを恐れています。それは私のコンピューターではなく、実際にはクラスターであり、多くの人々がそれに取り組んでいるからです。ところで、なぜ他の場所にある新しいバージョンが危険なのですか?システム全体ではなく、新しいlibに必要なソフトウェアをリンクするだけです。
user15964

1
そして、あなたはいくつかのランダムなパッケージを自由にインストールできますか?システム管理ポリシーは、重大な改訂が遅れています。奇妙な場所にあるライブラリはランダムに拾い上げられる可能性がありアプリケーション(およびそれによって開始される可能性のある、標準プログラムを含まないプロセス)の実行のみを解決するのは非常に困難です...
vonbrand

1
@vonbrand-ナンセンス。ただし、セキュリティの高いマシン(共有の開発者やテストマシン/クラスターなどではない)については、外国の未監査ソフトウェアについて健全な妄想が必要な場合を除きます。ランダムな破損に関しては、信頼できるソースから隔離されたアプリケーションプログラムをインストールするだけではなく、libcを更新すること(すべてのシステムに影響を与え、システムの破損を引き起こす可能性があります)(Mathematicaはランダムパッケージであるという考えに同意しません)。もちろん、リソースの枯渇は有能なシステム管理者が対処すべき有効な懸念事項です。
-FooF

@FooF、私はあまりにも多くの例を見てきました「投与は、最高の知っているし、彼らが望むようユーザーがやらせていないこの領域の幻想を持っているのサポート」。
フォンブランド

1
@vonbrand-最後のコメントに同意する傾向があります。しかし、libcの更新または有名なソフトウェア(「ランダムパッケージ」ではない)のインストールが何らかの形で匹敵すること(悪意がないと仮定)に強く反対します。ここで決定的な意見を述べる環境とそのユーザーの性質についてはほとんど知りません。ソフトウェア開発マシン(有能なユーザーが多い)では、ユーザーが独自のソフトウェアを実行できるようにすることは理にかなっています。場合によっては、当然のことです(OpenWRTとOpenEmbeddedは、ターゲットの組み込みプラットフォームがソースからf / wイメージのビルドに必要ないくつかのツールをビルドすることです)。
FooF

-3

この特定の例では、この共有システムの管理者から支援(および許可)がない限り、気にしないでください。

MathematicaはWindows、Mac、Linuxで動作しますので、デスクトップマシンにインストールするだけで、他の人に影響を与える心配はありません。また、OSがRHEL4よりも新しい可能性が高いため、OSをインストールするためにゆがみを行う必要はありません。

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