最近我一直在研究远程集群(Scientific Linux 6操作系统),我没有root权限来安装编译C代码所需的库。
我遇到了几个问题:
1)如果你无法运行yum来安装你需要的东西,你能做什么?
2)如果你不能安装,你能做什么?
3)当他们可能需要调用未安装在机器上的库时,如何运行我的可执行文件(假设我可以编译它们)?
我已发布此问题,因此我可以分享我找到的解决此问题的方法。我希望它有用......
答案 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)。
希望有所帮助!最好的远程计算和好运!