在 linux 上安装软件时,添加软件 bin 还是只为 bin 中的可执行文件添加 soft link?

Add software bin or just add soft link for executable file in bin when install software on linux?

我不是 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,包含三个文件夹bin conf lib,并在其 bin 中包含一个名为 sbtjava9-rt-export.jar sbt-launch-lib.bash sbt-launch.jar sbt.bat.

的可执行文件

这里我想知道:

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

我认为您的设置有问题。如果你的服务器上没有 root 帐户,在更安全的环境中测试你必须测试的东西不是更好吗 - 例如你的开发机器上的 vm/container? 但是,在您的情况下,使用单独的 bash 脚本启动 sbt 可能比修改 .bashrc

更好

对于预编译软件,或者一般来说,不提供配置脚本或 (C)make 文件的软件,最好将它们留在目标目录中并调整 *PATH (PATH 二进制文件,LD_LIBRARY_PATHLIBRARY_PATH 库和 CPATH 包含文件,MANPATH 手册页)环境变量。

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

在您的情况下,您可能还需要将 CLASSPATH 环境变量设置为包含 jar 文件的目录。

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