远程计算机上的编译的变通方法

时间:2016-10-20 15:25:39

标签: compilation installation

最近我一直在研究远程集群(Scientific Linux 6操作系统),我没有root权限来安装编译C代码所需的库。

我遇到了几个问题:

1)如果你无法运行yum来安装你需要的东西,你能做什么?

2)如果你不能安装,你能做什么?

3)当他们可能需要调用未安装在机器上的库时,如何运行我的可执行文件(假设我可以编译它们)?

我已发布此问题,因此我可以分享我找到的解决此问题的方法。我希望它有用......

1 个答案:

答案 0 :(得分:0)

我们走了!

1)如果您无法通过" yum" 进行安装,则可以尝试

1.1)找出" .rpm"存储库有你需要的库(google for it)。

1.2)下载相关的" .rpm"到你的家用机器上。

1.3)然后scp" rpm"存储库到您的远程机器 - 或

 scp repository.rpm user@remotemachine.com:/home/user

1.4)然后

ssh user@remote.com

执行以下操作(到#34;安装"没有root权限的rpm文件):

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

这将解压缩你的rpm文件,通常是一个文件夹/ home / user / usr / lib64。

1.5)然后你可以

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

2)而不是" make install":

2.1)运行

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

到"安装"你的库进入/ home / user / file

2.2)然后将/ home / user / file添加到LD库路径中。

3)当你拥有图书馆的时候进行编译"搞笑"目录:

3.1)将所有必要的库复制到新目录/ home / user / libs

3.2)将此目录放在LD库路径上,即

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

3.3)对于可执行文件的Makefile,添加

$LIBDIR = /home/user/libs

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

(其中lib1 ... libn是您的库的指示符(例如,例如LAPACK库的-llapack)。

希望有所帮助!最好的远程计算和好运!