CentOS7でPerlbrewをインストールして複数のバージョンのPerl5を管理する方法
序章
Perl 5 は、成熟したフル機能のプログラミング言語です。 これは、世界中のミッションクリティカルなビジネスシステムを含む、あらゆるタイプの生産プロジェクトで使用されています。 Perlbrew ソフトウェアパッケージを使用すると、Perl 5プログラミング言語のバージョンをインストール、削除、および切り替えることができます。
PerlbrewはホームディレクトリにPerlをインストールし、インストールするPerlの各バージョンは他のバージョンから独立しています。 これにより、他のバージョンに干渉したり、影響を受けたりすることなく、複数のPerlバージョンに対してコードをテストできます。 これには、オペレーティングシステムのデフォルトのPerlパッケージが含まれます。これは通常、最新の安定バージョンよりもはるかに古いものです。
このチュートリアルでは、Perlbrewをインストールし、それを使用してPerl5のバージョンをインストールしてテストします。
前提条件
このガイドに従うには、次のものが必要です。
- CentOS7初期サーバーセットアップガイドに従ってセットアップされた1台のCentOS7サーバー(sudo非rootユーザーとファイアウォールを含む)。
ステップ1-Perlbrewをインストールする
Perlbrewをインストールする前に、いくつかの前提条件パッケージが必要です。 Perlbrewをコンパイルしてインストールするには、コンパイラであるgcc
と、圧縮ユーティリティであるbzip2
が必要です。 これらのパッケージはデフォルトではCentOS7にインストールされていませんが、サーバーにいくつかのパッケージを追加している場合は、これら2つのパッケージがすでにインストールされている可能性があります。 足りないものを簡単に見つけることができます。
注:次の例に表示されるパッケージのバージョン番号は、これらのパッケージが定期的に改訂されているため、このガイドに示されている番号よりも大きい場合があります。
Perlのビルドには、libgcc
とgcc
の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/bin
がPATH
環境変数の前に追加され、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をインストールできるため、アプリに必要なバージョンをインストールできます。