應該使用 /usr/bin/perl 或 /usr/local/bin/perl 中的哪一個?

應該使用 /usr/bin/perl 或 /usr/local/bin/perl 中的哪一個?

如果我在一個系統上同時擁有/usr/bin/perl/usr/local/bin/perl,我應該使用哪一個?

答案1

這取決於:在某些系統上,例如BSD打包,/usr/local/bin可能是套件安裝執行檔的目錄。在這種情況下,它會更新(也許更好),但/usr/bin/perl會更穩定。

您可以使用perl -V查看哪個版本號較新。有時(在多用戶系統上)的內容/usr/local/bin並不是真正更新的。

通常的妥協是讓使用者決定,透過env在 shebang/hashbang 行中使用(但同樣,小路可能env因係統而異)。 shebang 行指的是腳本的第一行,可能類似於以下其中之一:

#!/usr/bin/perl
#!/usr/bin/perl -w
#!/usr/bin/env perl

前兩個指定運行 Perl 的目錄。作為獎勵,此表單允許傳遞選項,例如-w(用於開啟警告)。最後一行使用程式透過搜尋使用者環境變數中列出的目錄來env選擇第一次出現的。perlPATH

也可以運行這樣的腳本:

perl myscript

它(如)告訴 shell從 中列出的目錄中env選擇第一個出現的。perlPATH

明確的

./perl myscript

當然會覆蓋PATH.但是帶有 shebang 行的腳本是大多數人使用 Perl 腳本的方式(Perl 單行是另一回事)。

延伸閱讀:

答案2

它是給誰用的?如果只有你一個人,只要你的兩個版本的 perl 都夠新就沒關係。是為了工作環境嗎?如果是這樣,請檢查您的部署策略,因為他們可能有答案。如果是為了向公眾分發,我建議根據軟體包類型進行變化,特別是對 debs(根據 debian 指南)和 rpms 使用 /usr/bin/perl(因為 Red Hat 明確不允許 rpms 安裝到 /usr/ local),但/usr/bin/env perl 用於tar 和shar 軟體包,因為它最有可能在隨機的UNIX 電腦上工作。

相關內容