Bash 如何告诉机器在特定目录中搜索“.so”?
我正在计算集群上运行一堆Fortran程序。由于机器之间的编译器差异,我无法在集群机器上编译,我需要在自己的机器上编译代码。现在,当我在集群上运行代码时,我收到一条消息,告诉我Bash 如何告诉机器在特定目录中搜索“.so”?,bash,shell,terminal,Bash,Shell,Terminal,我正在计算集群上运行一堆Fortran程序。由于机器之间的编译器差异,我无法在集群机器上编译,我需要在自己的机器上编译代码。现在,当我在集群上运行代码时,我收到一条消息,告诉我libgfortran.so.1丢失了。我要求集群管理员安装这个,但他不愿意。他告诉我,我可以将文件从自己的计算机复制到集群中,并将其放置在所需的文件夹中,然后在我的主目录的~/.login文件中放置一个条目(在集群中的所有计算机之间共享) 我这样做了,但信息仍然存在。因此,我尝试将其放在我的~/.bashrc和作业文件(
libgfortran.so.1
丢失了。我要求集群管理员安装这个,但他不愿意。他告诉我,我可以将文件从自己的计算机复制到集群中,并将其放置在所需的文件夹中,然后在我的主目录的~/.login
文件中放置一个条目(在集群中的所有计算机之间共享)
我这样做了,但信息仍然存在。因此,我尝试将其放在我的~/.bashrc
和作业文件(用于将作业上载到集群的bash脚本)中
那么,我如何引导计算机在所需路径中搜索文件呢?我希望您设置
LD\u LIBRARY\u path
(path
与可执行文件相关,而不是库相关)变量并将其导出
有关更多详细信息,请参见和。我希望您设置
LD_LIBRARY_PATH
(PATH
与可执行文件相关,而不是与库相关)变量并将其导出
有关更多详细信息,请参见和我可以将其放在bash脚本文件中吗?@Yotam:这可能发生在尝试加载可执行文件之前的任何时间。我不知道,也许需要一些实验here@IgnacioVazquez-Abrams关于选项
/lib/ld linux.so.2/home/yotama9/lib foo
?它能开吗?此外,在管理员辩护中,这是一个在水冷器旁边的对话。@Yotam:否。加载程序使用环境变量,而不是命令行选项。你也不应该像那样硬编码加载程序。如果必须,请使用子shell(export LD_LIBRARY_PATH=…;./somebinary)
我能把它放在bash脚本文件中吗?@Yotam:它可以在尝试加载可执行文件之前的任何时候发生。我不知道,也许需要一些实验here@IgnacioVazquez-Abrams关于选项/lib/ld linux.so.2/home/yotama9/lib foo
?它能开吗?此外,在管理员辩护中,这是一个在水冷器旁边的对话。@Yotam:否。加载程序使用环境变量,而不是命令行选项。你也不应该像那样硬编码加载程序。如果必须,请使用子shell<代码>(导出LD_库路径=…;/somebinary)
export PATH=$PATH:/home/yotama9/lib