CentOS7でPerlbrewをインストールして複数のバージョンのPerl5を管理する方法

提供:Dev Guides
移動先:案内検索

序章

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

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

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

前提条件

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

ステップ1-Perlbrewをインストールする

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

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


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

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

CentOS7にはデフォルトで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

デフォルトでは、CentOS7には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

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

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がインストールされましたが、シェルの構成ファイルを変更して使いやすくする必要があります。

ステップ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の設定をロードしていることを確認します。 これで、/home/sammy/perl5/perlbrew/binPATH環境変数の前に追加され、Perlbrewが必要とする他のいくつかの環境変数が設定されます。

envコマンドを実行し、テキストPERLに対して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がインストールおよび構成されたので、使用を開始しましょう。

ステップ3–Perlバージョンのインストールとビルド。

Perlbrewを使用して、Perl5の安定バージョンをインストールしましょう。 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から次の出力が表示されます。

[secondary_label Output] 
perl-5.24.1 is successfully installed.

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

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

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

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

ステップ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環境変数を設定します。

現在Perl5.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モジュールをいくつかインストールしましょう。

ステップ5–CPANからモジュールをインストールしてPerlインストールをテストする

Perlは、コア言語を拡張する膨大な数のパブリックコードモジュールを提供します。 これらのモジュールは、Comprehensive Perl Archive Network(CPAN)に保存されています。 あなたが書くことを考えているコードは、すでにCPANで書かれ、テストされ、利用可能であるかもしれません。 CPANリポジトリを使用して、車輪の再発明を回避できます。

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リポジトリから追加のモジュールをインストールする方法も学びました。 同じプロセスを使用して異なるバージョンのPerl5をインストールできるため、アプリに必要なバージョンをインストールできます。