/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実際には最新ではないかもしれません。

一般的なトレードオフは、envshebang / hashbang行を使用してユーザーが決定できるようにすることです(しかし、繰り返しますが、システムによって異なる場合がありますenv。)shebang行はスクリプトの最初の行を表し、次のいずれかに似ています。

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

最初の2つはPerlが実行されるディレクトリを指定します。ボーナスとして、このフォームは-w(警告をオンにする)などの転送オプションを受け入れます。最後の行では、プログラムを使用してユーザーの環境変数にリストされているディレクトリを検索してenv最初の項目を選択します。perlPATH

次のスクリプトを実行することもできます。

perl myscript

(たとえば)そこにリストされているディレクトリのenv最初のエントリを選択するようにシェルに指示します。perlPATH

明らかに

./perl myscript

もちろん上書きされますPATH。しかし、Shebangラインを持つスクリプトは、ほとんどの人がPerlスクリプトを使用する方法です(Perlワンライナーは別の話です)。

追加資料:

答え2

誰のためですか?あなただけが当てはまるなら、あなたが持っているPerlの両方のバージョンが最新バージョンであれば問題はありません。業務環境のためか?その場合は、展開ポリシーを確認してください。答えがあるかもしれません。一般に配布する場合は、パッケージの種類に応じて多様に使用することをお勧めします。具体的には、debs(debian ガイドによる)と rpms(Red Hat は明示的に rpms のインストールを許可しないため)には /usr/bin/perl を使用することをお勧めします。 /usr/local)、しかし/usr/bin/env perlは、任意のUNIXシステムで動作する可能性が最も高いため、tarおよびsharパッケージ用です。

関連情報