CentOS 7でPerlbrewをインストールし、Perl 5の複数のバージョンを管理する方法

前書き

Perl 5は、成熟したフル機能のプログラミング言語です。 世界中のミッションクリティカルなビジネスシステムを含む、あらゆる種類の本番プロジェクトで使用されています。 Perlbrewソフトウェアパッケージを使用すると、Perl 5プログラミング言語のバージョンをインストール、削除、および切り替えることができます。

PerlbrewはPerlをホームディレクトリにインストールし、インストールするPerlの各バージョンは他のバージョンから独立しています。 これにより、他のバージョンに干渉したり影響を受けたりすることなく、複数のPerlバージョンに対してコードをテストできます。 これには、オペレーティングシステムのデフォルトPerlパッケージが含まれます。これは通常、最新の安定バージョンよりもはるかに古いものです。

このチュートリアルでは、Perlbrewをインストールし、それを使用してPerl 5のバージョンをインストールしてテストします。

前提条件

このガイドに従うには、次のものが必要です。

[[step-1 -–- installing-perlbrew]] ==ステップ1-Perlbrewのインストール

Perlbrewをインストールする前に、いくつかの前提条件パッケージが必要です。 Perlbrewは、Perlをコンパイルしてインストールするために、コンパイラであるgccと圧縮ユーティリティであるbzip2を必要とします。 これらのパッケージはデフォルトでCentOS 7にインストールされていませんが、サーバーにいくつかのパッケージを追加した場合、これらの2つのパッケージが既にある可能性があります。 不足しているものを簡単に見つけることができます。

[.note]#Note:次の例に表示されるパッケージのバージョン番号は、これらのパッケージが定期的に改訂されているため、このガイドに表示されているものよりも大きい場合があります。

Perlのビルドには、2つのgcc関連パッケージlibgccgccが必要です。 これらのパッケージが既にあるかどうかを確認するには、次のコマンドを実行します。

rpm -qa | grep gcc

インストールされている場合、次の出力が表示されます。

Is the gcc package installed?libgcc-4.8.5-11.el7.x86_64
gcc-4.8.5-11.el7.x86_64

CentOS 7にはデフォルトでlibgccパッケージのみが含まれているため、次のコマンドでgccをインストールできます。

sudo yum install gcc

bzip2-libsおよびbzip2パッケージも必要です。 それらもインストールされていることを確認してください:

rpm -qa | grep bzip2

両方がインストールされている場合、次のように表示されます。

Is the bzip2 package installed?bzip2-libs-1.0.6-13.el7.x86_64
bzip2-1.0.6-13.el7.x86_64

デフォルトでは、CentOS 7にはbzip2-libsパッケージのみが含まれています。 bzip2パッケージを追加します。

sudo yum install bzip2

最後に、patchユーティリティをインストールします。

sudo yum install patch

前提条件が整っていれば、Perlbrewをインストールできます。 サーバーにインストールスクリプトをダウンロードします。

curl -L https://install.perlbrew.pl -o install.perlbrew.pl

スクリプトを実行する前にスクリプトの内容を監査するには、テキストエディターで開いてその内容を表示します。

vi install.perlbrew.pl

スクリプトの内容に慣れたら、pipebashに変換して、インストールスクリプトを実行します。

cat install.perlbrew.pl | bash

これにより、/home/sammy/perl5に新しいディレクトリ構造が作成され、PerlbrewはサポートファイルとPerlのバージョンを保存します。 インストールスクリプトから次の出力が表示されます。

Output## Download the latest perlbrew

## Installing perlbrew
perlbrew is installed: ~/perl5/perlbrew/bin/perlbrew

perlbrew root (~/perl5/perlbrew) is initialized.

Append the following piece of code to the end of your ~/.bash_profile and start a
new shell, perlbrew should be up and fully functional from there:

    source ~/perl5/perlbrew/etc/bashrc

Simply run `perlbrew` for usage details.

Happy brewing!

## Installing patchperl

## Done.

次に、perlbrewユーティリティを使用して、/home/sammy/perl5/perlbrewにいくつかの初期構成ファイルとディレクトリを作成します。

~/perl5/perlbrew/bin/perlbrew self-install

次の出力が表示されます。

OutputYou are already running the installed perlbrew:
    /home/sammy/perl5/perlbrew/bin/perlbrew

これでPerlbrewがインストールされましたが、使いやすくするためにシェルの構成ファイルを変更する必要があります。

[[step-2 -–- editing-your-bash_profile-to-include-perlbrew]] ==ステップ2 –.bash_profileを編集してPerlbrewを含める

Perlbrewを使用してPerlのバージョンをインストールする前に、.bash_profileファイルを編集して、いくつかの重要なPerlbrew環境変数を自動的に設定する必要があります。 Perlbrewは、.bash_profileに含めることができる別の構成ファイルに必要なコードを含めることにより、これを簡単にします。

エディターでファイル~/.bash_profileを開きます。

vi ~/.bash_profile

ファイルの最後に次の行を追加して、Perlbrew設定を含めます。

source ~/perl5/perlbrew/etc/bashrc

ファイルを保存し、エディターを終了します。

次に、ログアウトしてから再度ログインし、.bash_profileファイルがPerlbrewの設定をロードしていることを確認します。 これで、PATH環境変数の前に/home/sammy/perl5/perlbrew/binが追加され、Perlbrewが必要とする他のいくつかの環境変数が設定されます。

テキストPERLに対してenvコマンドとfiltering the results with grepを実行して、これらの環境変数が設定されていることを確認します。

env | grep PERL

次のようなエントリが表示されます。

OutputPERLBREW_BASHRC_VERSION=0.78
PERLBREW_ROOT=/home/sammy/perl5/perlbrew
PERLBREW_HOME=/home/sammy/.perlbrew

これらの環境変数は、重要なディレクトリの場所をPerlbrewに伝えます。 このチュートリアルの発行後にPerlbrewが改訂された場合、バージョン番号が高くなる可能性があります。

which perlbrewと入力すると、perlbrewコマンドへのフルパスが識別されます。

which perlbrew

端末に次のように表示されるはずです。

Expected Output~/perl5/perlbrew/bin/perlbrew

Perlbrewがインストールされ、構成されたので、使用を開始しましょう。

[[step-3 -–- installing-and-building-your-perl-version]] ==ステップ3–Perlバージョンのインストールとビルド。

Perlbrewを使用して、Perl 5の安定バージョンをインストールしましょう。 perlbrewコマンドを使用して、インストールに使用できるPerlバージョンを確認します。

perlbrew available

次の部分的なリストに類似したリストが表示されます。

Partial Listing  perl-5.25.11
  perl-5.24.1
  perl-5.22.3
  perl-5.20.3
  perl-5.18.4
  ...

perl-5.25などの奇数番号のメジャーバージョンは活発に開発中であり、安定しているか、本番環境に対応しているとは見なされません。 一般に、これらの古いバージョンのいずれかを必要とするレガシーコードがない限り、5.10.1より古いバージョンは使用しません。

出力によると、perl-5.24.1は、メジャー番号が偶数であるため、最新の安定バージョンです。 リストに表示されている任意のPerlバージョンを選択できますが、このチュートリアルでは、perl-5.24.1をインストールします。

perlbrew installでインストールします。

perlbrew install perl-5.24.1

Perlのインストールは、ビルドとインストールにかなり時間がかかります。通常は約20分です。 ビルドプロセスを中断しないでください。 ビルドの進行状況を確認したい場合は、別のターミナルセッションを開き、tail -f ~/perl5/perlbrew/build.perl-5.24.1.logを使用してビルドログを監視できます。

ビルドが完了すると、Perlbrewから次の出力が表示されます。

Output perl-5.24.1 is successfully installed.

ビルドが完了すると、ビルドログファイルの最後の行は次のようになります。

Output
##### Brew Finished #####

インストールするPerlのバージョンごとにこのプロセスを繰り返すことができます。 このガイドでは、1つのバージョンのインストールのみを示していますが、このステップは必要な数のバージョンに対して繰り返すことができます。

次に、Perlbrewを使用して複数のバージョンのPerlを操作する方法を見てみましょう。

[[step-4 -–- managing-your-new-perl-installation]] ==ステップ4–新しいPerlインストールの管理

この時点で、システムには2つのバージョンのPerlがあります。オペレーティングシステムで提供されているベンダーバージョンと、Perlbrewで~/perl5ディレクトリ内にインストールしたばかりのPerlバージョンです。

新しいPerlインストールを使用するには、次のコマンドを実行します。

perlbrew use perl-5.24.1

このコマンドは、PERLBREW_PERL環境変数を更新して、現在のログインセッションで指定されたPerlバージョンを指すようにします。

ログインするたびにPerlのバージョンをデフォルトにする場合は、次のコマンドを実行します。

perlbrew switch perl-5.24.1

このコマンドは、ログインするたびに、指定されたPerlバージョンを指すようにPERLBREW_PERL環境変数を設定します。

Perl 5.24.1を使用していることを確認します。

perl -V

次のような出力が表示されるはずです。

Parial Output...
%ENV:
    PERLBREW_BASHRC_VERSION="0.78"
    PERLBREW_HOME="/home/sammy/.perlbrew"
    PERLBREW_MANPATH="/home/sammy/perl5/perlbrew/perls/perl-5.24.1/man"
    PERLBREW_PATH="/home/sammy/perl5/perlbrew/bin:/home/sammy/perl5/perlbrew/perls/perl-5.24.1/bin"
    PERLBREW_PERL="perl-5.24.1"
    PERLBREW_ROOT="/home/sammy/perl5/perlbrew"
    PERLBREW_VERSION="0.78"
@INC:
    /home/sammy/perl5/perlbrew/perls/perl-5.24.1/lib/site_perl/5.24.1/x86_64-linux
    /home/sammy/perl5/perlbrew/perls/perl-5.24.1/lib/site_perl/5.24.1
    /home/sammy/perl5/perlbrew/perls/perl-5.24.1/lib/5.24.1/x86_64-linux
    /home/sammy/perl5/perlbrew/perls/perl-5.24.1/lib/5.24.1
    .

Perlbrewは、コアPerlコードのみをインストールします。 Perlの特定のバージョンのコアを構成するモジュールを確認するには、次のコマンドを実行します。

corelist -v 5.24.1

perlbrew useまたはperlbrew switchコマンドを使用した後はいつでも、コマンドperlbrew offを使用してPerlのベンダーバージョンの使用に戻ることができます。 perlbrew switchを使用して新しいデフォルトのPerlを設定した場合は、perlbrew switch-offを使用してそのデフォルト設定を削除できます。

フラグなしで発行されるperlbrewコマンドは、役立つコマンドの簡単なリストを生成します。 コマンドperlbrew helpは、より詳細なヘルプ情報を生成します。

追加のPerlモジュールをインストールしてみましょう。

[[step-5 -–- testing-your-perl-installation-by-installing-modules-from-cpan]] ==ステップ5–CPANからモジュールをインストールしてPerlインストールをテストする

Perlは、コア言語を拡張する公開コードモジュールの膨大な配列を提供します。 これらのモジュールは、包括的なPerlアーカイブネットワーク(CPAN)に保存されます。 あなたが書いていると考えているコードは、すでに書かれ、テストされ、CPANで利用可能です。 CPAN repositoryを使用して、車輪の再発明を回避できます。

App::cpanminusは、CPANリポジトリを探索してモジュールをダウンロードできるPerlモジュールです。 人気があり使いやすいです。 このモジュールをインストールし、それを使用して新しいPerlインストールをテストしましょう。

新しいPerlインストールを使用していることを確認します。

perlbrew use perl-5.24.1

cpanminusモジュールをインストールします:

curl -L https://cpanmin.us | perl - App::cpanminus

次の出力が表示されます。

Output--> Working on App::cpanminus
Fetching http://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7043.tar.gz ... OK
Configuring App-cpanminus-1.7043 ... OK
Building and testing App-cpanminus-1.7043 ... OK
Successfully installed App-cpanminus-1.7043
1 distribution installed

cpanminusモジュールが存在することを確認します。

perlbrew list-modules

出力にApp::cpanimusが表示されます。

OutputApp::cpanminus
Perl

コマンドラインユーティリティcpanmを使用して、追加のモジュールとその依存関係をインストールできるようになりました。 これを使用して、Email::Simpleモジュールをインストールしましょう。これは、電子メールメッセージを送信するためのPerlコードを作成する場合に必要です。

cpanm Email::Simple

インストールが完了したら、モジュールのリストを再度確認します。

perlbrew list-modules

次の出力が表示されます。

Expected OutputApp::cpanminus
Email::Date::Format
Email::Simple
Perl

Email::SimpleモジュールにはEmail:Date::Formatモジュールが必要です。 cpanmプログラムが依存関係をインストールしました。

コアPerlインストールを完了するために何をインストールすればよいかわからない場合は、Task::Kenshoを参照してください。これは、実稼働に対応していると見なされるさまざまなタスクに対応する多数のモジュールについて説明しています。

結論

このチュートリアルでは、Perlbrewをインストールし、それを使用してホームディレクトリにローカルバージョンのPerlをインストールしました。 また、Perlbrewを使用してPerlの複数のバージョンをインストールおよび管理する方法、およびcpanmユーティリティを使用してCPANリポジトリから追加のモジュールをインストールする方法も学習しました。 同じプロセスを使用して異なるバージョンのPerl 5をインストールできるため、アプリに必要なバージョンをインストールできます。

Related