[英]How to Recreate Brew Aliasing, Without Brew?
由于我组织的安全更新,我不能再使用 brew 进入我组织的存储库来安装 package。但是,我可以手动下载 brew 正在安装的 .jar 文件。
所以之前我做了:
brew tap <repo>
brew install <package>
<package> # Run the package from anywhere
我可以从任何地方运行 package,只需在终端中输入即可。 十分简单。
通常 Brew 安装在usr/local/Cellar/<package>/some/internal/structure/<package.exe>
中。 但是在此过程中的某个地方,它使用别名和符号链接以及 $PATH [我对此感到困惑]进行了一些操作,以便我可以从/usr/local/bin
运行给定的 package,它位于我的 $PATH 中,只需键入<package>
在终端的任何地方。
我正在尝试重现这种行为。 我能够手动下载 jar 文件并将它们放在文件夹/usr/local/bin/<package>
中。 如果我运行java -jar /usr/local/bin/<package>/<package.exe>
然后一切运行正常。
我如何获得它以便我可以从终端的任何地方运行<package>
,就像使用 Brew 一样? 另外,为了 100% 清楚,我想选择别名; 我希望能够键入“abc”来运行 jar 文件。
/usr/local/bin/
可能已经在您的PATH
变量中。 如果要检查,请使用echo "$PATH"
将其打印到终端。 如果不是,您可以选择其中一个其他目录或将其添加到。 如果你想将该目录添加到你的PATH
变量,你想将其添加到相关的点文件(可能是~/.bashrc
):
export PATH="/usr/local/bin:$PATH"
PATH
是一个冒号分隔的目录列表,您的系统将在其中查找可执行文件。
现在,您只需编写一个简短的脚本来为您运行 java。 例如,如果我们有一个名为 foo.jar 的 jar 文件,您可以使用 foo.jar 的完整路径制作一个运行 java 的简短脚本,如下所示:
/usr/local/bin/foo
:
#!/bin/bash
java -jar '/path/to/foo.jar' "$@"
偷偷摸摸的编辑:确保你给这个文件可执行权限:
chmod +x /usr/local/bin/foo
现在,在终端上,如果我在没有完整路径的情况下运行foo
,它将运行这个脚本。
"$@"
只是将您发送到此脚本的任何 arguments 传递到 java 程序中。
这不是实现这一目标的唯一选择。 您也提到了别名。 你可以为 your.bashrc 写一个别名来做同样的事情:
alias foo='java -jar "path/to/foo.jar"'
符号链接在这里并不是最好的选择。 如果您的 jar 文件不在PATH
中并且您想要它在那里,这将没问题。 但是, PATH
变量实际上只适用于可以直接执行的文件。 如您所知,jar 个文件不能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.