Bash

如果 bash 腳本帶有不正確的解釋器路徑怎麼辦?

  • January 22, 2011

我正在嘗試在我們的伺服器上安裝 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 包。

引用自:https://serverfault.com/questions/175597