繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM