web-dev-qa-db-ja.com

ActivePerlまたはStrawberry Perl for Windowsを選択する必要がありますか?

私はPerlを初めて使用しますが、試してみたいと思います。 Windowsプラットフォームで利用可能な2つのライバルディストリビューションについて読みました(他のOSにはjustPerlがあると思います:))。

Wikipedia は、必要に応じてCPANモジュールをコンパイルするための追加の開発ツールがStrawberryに付属していると言います。私にはかなりいいですね。

また、ActivePerlには、PPMでインストールする方が簡単な多くのパッケージ済みモジュールがあると書かれています。素晴らしいですね!

これら2つの間に明確なトレードオフがあります。そして、始めるために何を選ぶべきなのだろうか?一方を選択した場合、もう一方への移行はどれくらい難しいですか?

編集:両方のディストリビューションを数週間実行しました。私は実際に両方が好きで、それは良いことです! これらのいずれかで問題が発生することはありません。ActivePerlには、オフラインドキュメントが付属しているというだけの理由で行きました(HTMLで) -道路を走っている人や、常につながっていない人のための素晴らしい救世主。休暇中にいつもオンラインではなかったときにPerl言語を使い始めるのはとても簡単でした。

イチゴは、少なくともそれほど大きくはありません。だから、私も完全にお勧めできます。そして、私はPerlを学ぶべきだと言わなければなりません-それは非常に美しい言語です。試してみる!

両方とも何年も使用した後、少なくとも私にとっては、Activeperlの方がはるかに便利な選択肢だと思います。 Activeperlに含まれる ppm-Installer を使用すると、CPANで利用可能なほとんどすべての便利なPerlモジュールにアクセスできる 代替ppmリポジトリ を追加できますが、Windows用に準備およびテストされています。これは私にとって、長い目で見ればはるかに優れた(そしてより堅牢な)選択でした。 Apache httpサーバーのWindowsバージョンでも、事前にコンパイルされたmod_Perl(2.0.4)ppmが使用可能です。これはActiveperl 5。12。1および Apache 2.2.15

Windows 7にDBI + DBD :: mysqlをインストールしようとした後にStrawberryをドロップしたと思います(Activeperlではno brainer、ppmsをクリックしてインストールを選択します)。

しかし、多分それは今では解決しています。そして、Strawberryをインストールするディレクトリを選択できるかもしれません(できませんでした)。

ところで:あなた自身のInlineやXSのものをコンパイルするために、ただ ppmでMinGWコンパイラをインストールしてください (私はそれをしませんでしたが、面白そうです)。

よろしく

rbo

補遺:以下のコメントを読んだ後、Strawberry Perlを再度チェックしたところ、インストールディレクトリを変更できるようになりました。これは5.12.0の機能です。リリース(実際のバージョン)。これにより、Strawberry Perlの(Activeperlと比較して)1つの重要な(私見の)欠点が解決されます。

33
rubber boots

Strawberry PerlはCPANを使用します。これは、モジュールに関する限り最新であることを意味します。 CPANに物事が追加されると、すぐにアクセスできます。 Strawberry PerlにはMinGWも付属しています。これは、Strawberry PerlがCPANから多くのXSモジュールを変更せずに直接使用できることを意味します。 MinGWディストリビューションには、gccmakeldおよびモジュールの構築に役立つその他のツールが付属しています。 Strawberry Perlには、PPM(Perl Package Managerファイル)をインストールできるいくつかのモジュールも付属していると思います。

ActivePerlは、PPM(Perl Package Manager)と呼ばれる独自の形式を使用してモジュールをインストールします。公式リポジトリはActiveStateによってホストされています。ほとんどの一般的なモジュールのPPMを見つけることができます。あいまいなパッケージや本当に新しいパッケージを探している場合を除きます(PPMは通常CPANに遅れているため、出血エッジのものは機能しません)。CPANモジュールよりも簡単にインストールできますが、PPMは特別に作成されますWindowsの場合、一部のCPANモジュールは機能しません(Unix固有のことを行うため)。

私は以前に両方を使用しましたが、ほとんどの場合に機能するようでした。しかし、環境がUnixに近く、多くの非互換性がないため、私はStrawberry Perlに傾いています。一方、ActivePerlはWindows用に作成されているため、Windowsで非常にうまく機能します。

もう1つのオプションは、CygwinとCygwinに付属のPerlをインストールすることです。私は前にそれをやったことがあり、それはかなりうまく機能します。 CPANにもアクセスできます。

あなたに最適と思われるものを選んでください。

45
Vivin Paliath

Vivin Paliathの有用な回答を少しだけ増幅します。

AcitveState/PPM pros:使用しているバージョンにPPMがあれば、それは簡単に機能します。

ActiveState/PPM短所:常にPPMが存在するわけではなく、少なくとも常に最新のPPMが存在するとは限りません。

Strawberry/CPANの長所:リポジトリはCPANであり、サードパーティが管理しているバイナリの集まりではありません。作成者がリリースした瞬間に新しいモジュールがあり、作成者が意図したビルドシステムを使用しています。

Strawberry/CPANの短所:Windowsツールですべてが完全にビルドされるとは限りません。

Strawberry/CPANの緩和要因:Strawberry開発者は本当に、本当に難しいを試みて、すべてがスムーズに進み、可能な限り多くのCPANが利用可能であり、モジュールがトラブルスポットとして特定されたときに( Windowsでのビルドは困難ですが、他の一般的なモジュール/アプリには必要です)、作成者と協力してモジュールを修正し、全員がcanをインストールするか、例外的な場合にはそれらを適用します独自の修正を行い、モジュールをStrawberryまたはStrawberry Professionalにバンドルします。

私の好みはストロベリーです。 ActiveStateがやろうとしていることに感謝していますが、それは開発プロセスのボトルネックだと思います。コミュニティが集まり、WindowsをPerlエコシステムの「最初の世界」に持ち込むためにStrawberryを構築する前は、それらは必須でしたが、もはや必要ではありません。

37
hobbs

StrawberryはそのアプローチがよりUnixであり、それを使って仕事をしたとき、私はいつもとても幸せでした。

ただし、ActiveStateは、カスタムパッケージ管理システムのため、私がそれを扱ったときは非常に大きな痛みでした。これは、エンタープライズ環境にいるときに重要です。

IMOをいじくり回すには、イチゴのほうがいい。 /主観

19
Paul Nathan

どちらも素晴らしく、同じように機能します。 StrawberryはXSモジュールを構築できることで知られていますが、Visual Studio SDK(または無料の高速バージョン)をインストールするだけでActiveStateでも構築できます。

さらに言えば、Visual Studioにアクセスできる場合、できることはソースからPerlをビルドすること(READMEを読めばかなり簡単です)と同じコンパイラーでモジュールをビルドし続けることです。実際には、コンパイラ/モジュールを混在させるよりも良いアイデアです。

ActiveStateを使用する場合に考慮しなければならないこと:インターネットに面したサーバーにインストールする場合は、ビジネスライセンスを購入する必要があります(Ron Warshawskyによると、サーバーあたり年間1000ドル)。機能しないという意味ではなく、EULAの要件であるということだけです。多くの人はこれを知らず、対応するライセンスを購入せずにインターネットに接続されたサーバーにインストールします。

13

ActivePerlは、Community Editionから大量のモジュールを除外し、Windowsでそれらを構築するのは非常に苦痛です。

また、最新のエディションのみを無料でダウンロードして使用できます。 5.8.8や以前のバージョンのモジュールへのアクセスなど、他のすべては、ビジネス($ 1000 /年/サーバー)またはエンタープライズエディション(引用ごと)です。

3
Ron Warshawsky

完璧な世界では、 debian-interix または pkgsrc-interix Perl(Interix/SFU/SUAに同梱されている古代のPerlではありません)を選択します。 POSIX/UNIXライクシステム(CygwinからのWindowsフォークエミュレーションではなく、実際のコピーオンライトフォークを含む)。私は過去に持っていました(そして、ここでWindowsマシンにインストールされています)が、Perlだけのために誰もがSFU/SUAをインストールできるわけではありません。これらの場合、主にWindowsユーザー(PPMグラフィカルシェルとCPAN)のインターフェイスの使いやすさと、Perl Dev Kit(PerlExe、PerlNET、PerlSvc、およびフレンド)との統合のために、ActivePerlをお勧めします。また、他の人が答えたものとは反対に、CPAN(およびCPANシェル)をActivePerlで使用できます(ただし、必要な場合は、PPM最初に)必要な開発ツールをインストールする必要があります)。

3
MkV

Larry WallがStrawberry Perlを使用している場合、そうするべきです。 ;)

2
Steve Lloyd

アプリケーションを適切に設計する場合、どちらを選択してもかまいません。

大きなポイントは、それぞれが提供できる、または提供できないさまざまなモジュールのバージョンです。 PPMパッケージはCPANリリースより遅れることがありますが、注意しないと、Edge CPANリリースの出血は後方互換性を壊す可能性があります。さらに、時々PPM Strawberryで適切にビルドされないもののパッケージ(これは、モジュールの設計が不十分であることが多いことを意味します)。

使用するモジュールのバージョンに注意してください。どちらを選択しても問題ありません。

2
Charles

Box.comクライアントを使用してファイルを同期している場合は、おそらく(少なくとも現時点では)Strawberry Perlを使用することをお勧めします。 ppm実行可能ファイルは、Box.com DLLの1つと競合します。 GUIはまったく起動しません(「Perl ...インタプリタが動作を停止しました」というWindowsメッセージが表示されます)。Box​​.comクライアントのインストール時にコマンドラインバージョンのppmを使用すると、断続的に問題が発生します。

1
Kevin Coombes