如何在没有 Brew 的情况下重新创建 Brew 别名?

How to Recreate Brew Aliasing, Without Brew?

由于我的组织进行了安全更新,我无法再使用 brew 进入我组织的存储库来安装软件包。但是,我可以手动下载 brew 安装的 .jar 文件。

所以我之前做过:

brew tap <repo>
brew install <package>
<package> # Run the package from anywhere

而且我可以从任何地方 运行 打包,只需在终端中输入即可。简单易行。

通常 Brew 安装在 usr/local/Cellar/<package>/some/internal/structure/<package.exe> 中。但是在这个过程中的某个地方,它使用别名和符号链接以及 $PATH [我对此感到困惑],这样我就可以 运行 来自 /usr/local/bin 的给定包,它在我的 $PATH 中,只需在终端的任意位置输入 <package>

我正在尝试重新创建此行为。我能够手动下载 jar 文件并将它们放在文件夹 /usr/local/bin/<package> 中。如果我 运行 java -jar /usr/local/bin/<package>/<package.exe> 那么一切 运行 都很好。

如何获取它以便我可以从终端的任何地方 运行 <package>,就像使用 Brew 一样?另外,为了 100% 清楚,我想选择别名;我希望能够在 运行 jar 文件中输入“abc”。

/usr/local/bin/ 可能已经在您的 PATH 变量中。如果要检查,请使用 echo "$PATH" 将其打印到终端。如果不是,您可以选择其中一个其他目录或将其添加到。如果你想将该目录添加到你的 PATH 变量,你想将其添加到相关的点文件(可能 ~/.bashrc):

export PATH="/usr/local/bin:$PATH"

PATH 是冒号分隔的目录列表,您的系统将在其中查找可执行文件。

现在,您只需为运行java编写一个简短的脚本即可。例如,如果我们有一个名为 foo.jar 的 jar 文件,您可以制作一个 运行s java 的短脚本,其完整路径为 foo.jar,如下所示:

/usr/local/bin/foo:

#!/bin/bash

java -jar '/path/to/foo.jar' "$@"

偷偷摸摸的编辑:确保您授予此文件可执行权限:

chmod +x /usr/local/bin/foo

现在,在终端上,如果我 运行 foo 没有完整路径,它将 运行 这个脚本。

"$@" 只是将您发送给此脚本的任何参数传递给 java 程序。

这不是实现此目的的唯一选择。您也提到了别名。你可以为你的 .bashrc 写一个别名来做同样的事情:

alias foo='java -jar "path/to/foo.jar"'

符号链接在这里并不是最好的选择。如果您的 jar 文件不在 PATH 中并且您想要它在那里,这将是可以的。 BUTPATH变量真的只是针对可以直接执行的文件。如您所知,jar 文件不能。