Bash
如果 bash 腳本帶有不正確的解釋器路徑怎麼辦?
我正在嘗試在我們的伺服器上安裝 BugZilla。問題是 BugZilla 的 perl 腳本將路徑定義為
/usr/bin/perl
,而我的 perl 安裝位於/usr/local/bin/perl
.我在安裝其他應用程序時也遇到了這個問題,我不得不手動編輯解釋器路徑。
你如何處理這樣的情況?
**編輯:**我剛剛注意到我們在伺服器上有兩個 perl 副本,一個在標準位置,在 /usr/local/bin/perl 中,但
which perl
返回以前的路徑。順便說一句,這是我在執行 bugzilla 的 perl 腳本時遇到的錯誤
bash: ./checksetup.pl: /usr/bin/perl: bad interpreter: Permission denied
您可以使用ln創建軟連結,將 /usr/bin/perl 連結到 /usr/local/bin/perl
ln -s /usr/local/bin/perl /usr/bin/perl
我們在我的環境中這樣做:我們將系統 perl 留在 /usr/bin/perl 中,並在 /usr/local/bin/perl 中安裝我們自己的解釋器;這使我們能夠保留一個可靠的 perl,我們知道作業系統更新不會被吹走。
我想說解決這個問題的最簡單方法是完全避開 shebang 行,只需使用您實際想要執行它們的 perl 解釋器呼叫這些腳本:
/usr/local/bin/perl /path/to/someBugzillaScript.pl
這使您可以控制您的執行環境,而無需進行系統級更改以適應 Bugzilla 包。