2016-10-20 3 views
0

最近、私はCクラスをコンパイルするために必要なライブラリをインストールするためのルート権限を持っていないリモートクラスタ(Scientific Linux 6オペレーティングシステム)で作業していました。あなたが必要なものをインストールするには、yumを実行できない場合は、あなたが何を行うことができ、リモートマシンでのコンパイルの回避策

1):

は、私はいくつかの問題に遭遇しましたか?

2)インストールできない場合はどうすればよいですか?

3)マシンにインストールされていないライブラリを呼び出す必要があるときに実行ファイルを実行するにはどうすればよいですか?

この質問を投稿したので、この問題を回避するために私が見つけたことを分かち合うことができます。私はそれが役に立つと思います...

答えて

0

ここに行く!あなたは「YUM」経由でインストールできない場合は

1)することは、あなたが「.rpmの」リポジトリは、あなたが(それをグーグル)必要なライブラリを持っているかを調べる)

1.1を試すことができます。

1.2)該当する「.rpm」を自宅のマシンにダウンロードします。

1.3)次に "RPM" あなたのリモートマシンにリポジトリscpコマンド - ルートなしでRPMファイルを "インストール" すること(以下ください

ssh [email protected] 

その後または

scp repository.rpm [email protected]:/home/user 

1.4)がパーミッション):

export ins=repository.rpm 
rpm2cpio $ins | cpio -idv 

これは通常、フォルダ/ home/userでは/ usr/lib64にし、あなたのrpmファイルを解凍します。

1.5)あなたは、その後

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/usr/lib64 

2)の代わりにの "make install" をすることができます

2.1)/家にあなたのライブラリを "インストール" する

make install --prefix=/home/user/file 

を実行します/ user/file

2.2)次に、LD liに/ home/user/fileを追加します上記のようなbraryパス。

3)あなたが "面白い" ディレクトリ内のライブラリがあるときのコンパイル:

3.1)新しいディレクトリ/ home /ユーザーにすべての必要なライブラリをコピー/ libsに

3.2

)このディレクトリを置くをLDライブラリパス上での例:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/libs 

3。3)あなたのMakefileにあなたの実行可能ファイルの、役立ちます。

・ホープ(LIB1 ... libnは、例えばLAPACKライ​​ブラリの-llapackのようなあなたのライブラリーの指定子(している)

$LIBDIR = /home/user/libs 

LIBS = -L$(LIBDIR) -llib1 -llib2 ... -llibn 

を追加!あなたのリモートコンピューティングと幸運のすべてで最高!