/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シェバン/ハッシュバン行で(ただし、パス(システムによって異なる場合がenvあります)。シェバン行はスクリプトの最初の行を指し、次のいずれかのようになります。

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

最初の 2 つは、Perl を実行するディレクトリを指定します。ボーナスとして、この形式では、たとえば-w(警告をオンにするために使用) などのオプションを渡すことができます。最後の行では、プログラムを使用して、ユーザーの環境変数にリストされているディレクトリを検索し、envの最初の出現を選択します。perlPATH

次のようなスクリプトを実行することも可能です。

perl myscript

これは ( と同様に) 、 にリストされているディレクトリから のenv最初の出現を選択するようにシェルに指示します。perlPATH

明示的な

./perl myscript

もちろん、 は を上書きしますPATH。しかし、ほとんどの人が Perl スクリプトを使用する方法は、シェバン行を含むスクリプトです (Perl ワンライナーは別の問題です)。

参考文献:

答え2

誰向けですか? あなただけなら、両方のバージョンの Perl が十分に新しい限り問題ありません。仕事環境向けですか? そうであれば、デプロイメント ポリシーを確認してください。答えがあるかもしれません。一般向けに配布する場合は、パッケージの種類に応じて変更することをお勧めします。具体的には、debs (debian ガイドラインによる) および rpm (Red Hat は rpm による /usr/local へのインストールを明示的に禁止しているため) の場合は /usr/bin/perl を使用しますが、tar および shar パッケージの場合は /usr/bin/env perl を使用します。これは、ランダムな UNIX コンピューターで動作する可能性が高いためです。

関連情報