Perlのローカルインストール

自分のマシンでExercismの演習を解けるように、Perlをローカルにインストールする方法を学びましょう


Perlのバージョンに関する注意

このトラックはPerlの最新の安定版リリースを対象としています。 古いバージョンのPerlを使うこともできますが、互換性のために用意されたスタブファイルに調整を加える必要があるかもしれません。 スタブファイルで指定されているバージョンを使えない場合は、use v5.XX;を次のコードに置き換えることをおすすめします。

use strict;
use warnings;
use feature qw<signatures>;

スタブファイルにuse experimental qw<class>;が含まれていて、使っているPerlのバージョンがこれをサポートしていない場合は、これをuse Feature::Compat::Class;に置き換えるか、別のオブジェクト指向システム(例えばMoo)を使うという選択肢があります。

Unix/Linux/Mac OSX

Perlはすでにインストールされている可能性が高いですが、それが最新バージョンとは限りません。 perl -vを実行すると、使っているバージョンを確認できます。 より新しいバージョンを使いたい場合は、「その他のオプション」のセクションを確認してください。

Fedora/Red Hat/CentOSを使っている場合、一部のコアモジュールがPerlに含まれていません。 yum install perl-coreコマンドでインストールしてください。

Windows

Strawberry Perlは、Windows向けの100%オープンソースのPerlで、他の環境のPerlとまったく同じです。 CPANのモジュールも、バイナリパッケージを必要とせずに使えます。

サイトから直接インストールするか、chocolateyパッケージマネージャーを使うこともできます。

その他のオプション

  • asdf: 複数の言語をインストールできるツールのバージョンマネージャーです。Perlも対象で、コミュニティプラグインとして利用できます。
  • perlbrew: $HOMEディレクトリにある複数のPerlインストールを管理するツールです。 それぞれが完全に独立したPerlの世界です。
  • plenv: ホームディレクトリの下にPerlをインストールし、モジュールをローカルにインストールできるほか、シェル上で任意のPerlバージョンに切り替えられます。
  • ActivePerl Community Edition: Windows、Linux、Mac OS X向けの無料でインストールするだけですぐ使えるPerlディストリビューションで、ビジネスクリティカルでもミッションクリティカルでもないコミュニティのエンジニアやオープンソースプロジェクト向けに設計されています。

必要なモジュールのインストール

5.40より古いバージョンのPerlを使っている場合は、テストバンドルTest2::V0をインストールする必要があります。 また、OOPの演習にはFeature::Compat::Classか、代替のオブジェクト指向システムのどちらかをインストールする必要があります。 セットアップには次の手順を使ってください(Perlにすでに慣れているなら、お気に入りのモジュールインストーラーを使ってもかまいません)。

local::lib

  • exercism CLIがすでにインストールされ、設定されていることを確認してください。 exercism workspaceを実行すると、適切なパスが表示されるはずです。

  • cpmモジュールインストーラーをダウンロードし、それを使ってcpm自身、local::lib、Test2::V0、Feature::Compat::Classをexercism/perl5ディレクトリにインストールします。

# *nix
curl -sL --compressed https://git.io/cpm | \
  perl - install -L $(exercism workspace)/perl5 App::cpm local::lib Test2::V0 Feature::Compat::Class

# Microsoft PowerShell
(Invoke-WebRequest -UseBasicParsing 'https://git.io/cpm').Content |
  perl - install -L "$(exercism workspace)/perl5" App::cpm local::lib Test2::V0 Feature::Compat::Class
  • local::libを実行して、exercism/perl5にインストールしたモジュールを使えるように環境を設定します。
# *nix
eval $(perl -I$(exercism workspace)/perl5/lib/perl5 -Mlocal::lib=$(exercism workspace)/perl5)

# Microsoft PowerShell
perl -I"$(exercism workspace)/perl5/lib/perl5"
  -M"local::lib=--shelltype=powershell,$(exercism workspace)/perl5" | Invoke-Expression

上記のコマンドによる環境の変更は保存されないので、シェルを再起動した場合はもう一度実行する必要があります。 毎回自動的に環境を設定したい場合は、.bashrc(または*nix系の同等のファイル)やPowerShell_profile.ps1を編集して、上記のコマンドを追加してください。

local::libのドキュメントはこちらにあります。

OSのパッケージ

あるいは、使っているOSのパッケージマネージャーに、インストールできるTest2 Suiteのパッケージが用意されているかもしれません。 利用できるものには次のようなものがあります。