2017-04-24 9 views
10

ソースから完全に再コンパイルせずにPerlの新しいマイナーバージョン(およびバイナリ互換)にアップグレードする標準的な方法はありますか?ソースからのインプレースPerlアップグレード

たとえば、Perl v5.24.0に多数のCPANモジュールがインストールされている場合、このインストールをv5.24.1にアップグレードすることはできますか?新しいビルド全体を再コンパイルせずにv5でインストールされたすべてのCPANモジュール24.0?あるいは、インストールされているすべてのCPANモジュールのリストを作成し、新しいPerlをコンパイルし、新しくコンパイルされたバージョンを使用してそれらのCPANモジュールを再インストールする必要がありますか?

最新のリリースのソースコードを使用して、現在のシステムに簡単にパッチを当てる方法はありません。 (注:これを行うネイティブな方法があるかどうかは疑問です(つまり、perlbrewを使用しない))。

+1

モジュールを再インストールする必要はありません。 – melpomene

+0

関連:http://modernperlbooks.com/mt/2009/05/perl-5-and-binary-compatibility.html – jm666

+7

ダウン投票を気にしないでください。これはStackOverflowですが、正しいperlの質問はperl_などのリストを逆にするようなものだと思うユーザーもいます。彼らは、以下のトピックについてのトピック([ヘルプ/オントピック])の質問もここにあることを忘れています:_プログラマーがよく使うツール。ソフトウェア開発特有の実用的で解決不可能な問題です - あなたの質問は上記と完全に一致しています。 – Nemo

答えて

3

私は、いや、私の知る限りでは、まったく新しいビルド

を再コンパイルせずv5.24.1に、このインストールをアップグレードすることができ、CPANモジュールの束と一緒にインストールするPerl v5.24.0を持っている場合。新しいperlをゼロから設定/コンパイル/インストールする必要があります。

v5.24.0でインストールされたすべてのCPANモジュールで同じことをしていますか?

はい:Configureは、既存のperlのバージョンについては、それが@INCで自分のディレクトリを含めるかどうかを尋ねられます。 yes(私がデフォルトと思う)と言うなら、すでにインストールされているすべてのモジュールがあなたの新しいperlで利用可能です。

言っ

それとも私がインストールされているすべてのCPANモジュールのリストを作成する

を持っています。これは、cpan -aと簡単です:

$ cpan -a 
... lots of modules listed here ... 

Wrote bundle file 
    /home/user/.cpan/Bundle/Snapshot_2017_04_25_00.pm 

それらのCPANモジュールを再インストールする新しくコンパイルされたバージョン?

新しいPerlをインストールした後、

$ cpan Bundle::Snapshot_2017_04_25_00 

(または任意の名前cpan -a前の手順でスナップショットファイルを与えた)を実行し、それはあなたが前に持っていたすべてのものをインストールする必要があります。

+0

ありがとうございます。これは解決策として機能します。私はまだ最新のマイナーリリースにアップグレードできる直接ビルドインがないことに驚いています。 – secJ

関連する問題