在Linux上安装软件时,添加软件箱或只在bin中添加可执行文件的软链接?

问题描述 投票:1回答:2

我不是linux服务器的root用户, 所以我选择在我的$HOME/local/bin中安装软件,我已经将$HOME/local/bin目录添加到PATH环境变量中,在我的.bashrc中写道。

有些软件安装方式如下:

tar xvzf ncurses-5.9.tar.gz
cd ncurses-5.9
./configure --prefix=$HOME/local
make
make install
cd ..  

所以它会直接安装在我的$HOME/local/bin中。

但对于某些软件,在下载像sbt-1.2.1.zip(基于java)和解压缩后,只显示文件折叠sbt,它包含三个foldsbin conf lib,并在其bin中,包含一个名为sbtjava9-rt-export.jar sbt-launch-lib.bash sbt-launch.jar sbt.bat的可执行文件。

我想知道:

  • 我应该在我的sbt下软链接这个可执行的$HOME/local/bin文件路径,然后来源我的.bashrc? 或者,在解压缩后,在我的.bashrc export PATH="downloadpath/sbt/bin:$PATH"中添加一行? 由于只有一个可执行的downloadpath/sbt/bin,所以我不确定添加整个bin折叠路径是否正确,如果软件的bin折叠包含可执行文件(一个或多个),我认为这种情况更方便只需在.bashrc中添加它的bin ,即便如此,我不确定它是对的吗?
  • 我不熟悉安装软件,现在我通常知道但不是为什么。这里我展示了两种方式(这里没有显示更多方法)安装,可执行文件总是写在bin或src中?但有些软件没有bin只是src但没有可执行文件...
  • Slurm也可以使用模块安装软件,conda也可以用其他方式,但我想确认我提到的这两种传统方式(那两个)仍然可以用于slurm或conda?

但是,任何建议甚至一方面的提醒都将不胜感激!

linux installation software-design slurm
2个回答
2
投票

对于预编译软件,或者通常情况下,不提供配置脚本或(C)制作文件的软件,最好将它们保留在目标目录中并使*PATHPATH适应二进制文件,以及LD_LIBRARY_PATHLIBRARY_PATH适应库)和CPATH包含文件和MANPATH到手册页)环境变量。

原因是软件可能被配置为读取具有硬编码路径的文件,相对于可执行文件的位置,例如库等。

在您的情况下,您可能还需要使用CLASSPATH文件将jar env变量设置到目录。

为了简化软件安装,您可以使用easybuild等可以提供帮助的工具,甚至可以创建用户模块,就像系统管理员安装的系统模块一样。


1
投票

我对你的设置有点不对劲。如果您的服务器上没有root帐户,那么在更安全的环境中测试您必须测试的内容并不是更好 - 例如您的开发机器上的虚拟机/容器?但是,在您的情况下,通过使用单独的bash脚本而不是修改.bashrc可能更好地启动sbt

© www.soinside.com 2019 - 2024. All rights reserved.