如何从命令行消除第二个安装版本的歧义?

如何从命令行消除第二个安装版本的歧义?

我安装了一个名为 herd 的工具(http://diy.inria.fr/herd/)。我认为它的原始版本位于全局路径中,因此我可以通过编写从任何地方调用它herd7。现在我还有我自己编译的第二个安装。它位于不同的目录中。我不知道如何具体称呼第二个。我认为这与写出整个路径有关,但我什至不确定如何找出路径是什么以及当我猜到并尝试时

./herd --help

它只是告诉我的Is a directory。那么,是的,我如何调用实际的工具呢?

我是 Linux 和命令行的新手,所以我知道我可能使用了错误的术语。

编辑:

好吧,我发现里面有一个名为_buildwith 的目录,它本身有一个文件夹,里面有.然后从该文件夹中运行有效(但没有)。但是,我仍然需要指定吗?它不应该像原始安装一样具有命令行用法吗?defaultherdherd.exe./herd.exe --help./herd --help.exeherd7

答案1

这是惯例问题。我将使用gcc编译器作为示例来解释。

which gcc在 Redhat 8 中输入会产生/usr/bin/gcc.这样做的gcc --version结果version 4.8.5是默认安装的版本。

如果我想下载并安装更高版本(gcc例如版本 11.4),我会在其配置中告诉它,它的安装目录将明确为/usr/local/gcc-11.4.这种方式是不会覆盖现有的gcc-4.8.5下的/usr/bin。当我想运行 gcc-11.4 时,我可以显式地执行/usr/local/gcc-11.4/bin/gcc或修改PATH( 和LD_LIBRARY_PATH) 环境变量,以将/usr/local/gcc-11.4/bin/usr/local/gcc-11.4/lib分别放入/usr/bininside之前PATH,这样当我只输入时,gcc它会导致使用 11.4 版本而不是 11.4 版本。 4.8.5版本。执行echo $PATH将显示该内容,并且首先在其中找到可执行文件的文件夹就是所使用的文件夹。

您可以将较新的herd版本安装在下面/usr/local或下面/opt或其他任何地方。当您在几天(或几小时)后忘记内容时,手动将版本号附加到文件夹名称对管理事情有很大帮助。

您可以通过多种方式进行更新,可以通过您的每个用户进行PATH更新,也可以通过使用 或对所有用户进行全局更新。总的来说,这并不复杂,只是了解数字组织和内部管理的问题。LD_LIBRARY_PATH/home/<account>/.bashrc/etc/profile.d/<some_name>.shmodules

如何在命令行上消除第二个版本的歧义?

这一切都与PATH环境变量下列出的文件夹的顺序以及LD_LIBRARY_PATH.无论您的可执行文件或支持库文件首先在哪个文件夹中找到,都将使用该文件夹。因此,您可以手动重新排序这两个环境变量(如果它只适合您),或者在具有许多用户和许多可能相互冲突的软件版本的工作环境中,然后使用modules...Modules 包是一个工具,可以简化 shell 初始化,并允许用户在会话期间使用模块文件轻松修改其环境。 https://modules.readthedocs.io/en/latest/

相关内容