簡體   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