Linux管理者-CentOSLinux用にPerlを設定する

Perl長い間存在しています。もともとは、テキストファイルの解析に使用されるレポート言語として設計されました。人気が高まるにつれ、Perlは強力なスクリプト言語に必要なモジュールサポートまたはCPAN、ソケット、スレッド、およびその他の機能を追加しました。

PHP、Python、またはRubyに対するPerlの最大の利点は、最小限の手間で物事を成し遂げることです。このPerlの哲学は、物事を正しい方法で行うことを常に意味するわけではありません。ただし、Linuxでの管理タスクの場合、Perlはスクリプト言語の頼りになる選択肢と見なされます。

PythonやRubyに対するPerlのいくつかの利点は次のとおりです。

  • 強力なテキスト処理

  • Perlを使用すると、スクリプトをすばやく汚く書くことができます(通常、PerlスクリプトはPythonやRubyの同等のスクリプトよりも数十行短くなります)

  • Perlは(ほぼ)何でもできます

Perlのいくつかの欠点は次のとおりです。

  • 構文が混乱する可能性があります

  • Perlのコーディングスタイルはユニークであり、コラボレーションを妨げる可能性があります

  • Perlは実際にはオブジェクト指向ではありません

  • 通常、Perlを使用する場合、標準化とベストプラクティスについてはあまり考えられていません。

Perl、Python、またはPHPのいずれを使用するかを決定するとき。次の質問をする必要があります-

  • このアプリケーションにはバージョン管理が必要ですか?
  • 他の人がコードを変更する必要がありますか?
  • 他の人がこのアプリケーションを使用する必要がありますか?
  • このアプリケーションを別のマシンまたはCPUアーキテクチャで使用することはありますか?

上記のすべての答えが「いいえ」の場合、Perlは良い選択であり、最終結果の点で物事をスピードアップする可能性があります。

これを踏まえて、最新バージョンのPerlを使用するようにCentOSサーバーを構成しましょう。

Perlをインストールする前に、Perlのサポートを理解する必要があります。公式には、Perlは最後の2つの安定したバージョンとしてのみサポートされています。そのため、開発環境をCentOSバージョンから分離しておく必要があります。

分離の理由は、誰かがPerlのツールをCentOSコミュニティにリリースした場合、CentOSに同梱されているPerlで動作するように変更される可能性が高いためです。ただし、開発目的で最新バージョンをインストールする必要もあります。Pythonと同様に、CentOSは、最先端ではなく信頼性に重​​点を置いたPerlを出荷しています。

CentOS7で現在のバージョンのPerlを確認してみましょう。

[root@CentOS]# perl -v 
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi

現在、Perl5.16.3を実行しています。この記事の執筆時点での最新バージョンは次のとおりです。perl-5.24.0

コードで最新のPerlモジュールを使用できるように、バージョンをアップグレードしたいと考えています。幸い、Perl環境を維持し、CentOSバージョンのPerlを分離しておくための優れたツールがあります。いわゆるperlbrew

PerlBrewをインストールしましょう。

[root@CentOS]# curl -L https://install.perlbrew.pl | bash 
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current 
                             Dload  Upload   Total   Spent    Left  Speed 
100   170  100   170    0     0    396      0 --:--:-- --:--:-- --:--:--   397 
100  1247  100  1247    0     0   1929      0 --:--:-- --:--:-- --:--:--  1929

Perl Brewがインストールされたので、最新バージョンのPerl用の環境を作成しましょう。

まず、perlbrewインストールをブートストラップするために、現在インストールされているバージョンのPerlが必要になります。したがって、CentOSリポジトリから必要なPerlモジュールをいくつか入手しましょう。

Note −利用可能な場合、CentOSPerlインストールではCPANではなくCentOSPerlモジュールを常に使用したいと考えています。

Step 1 − CentOS Perl Make :: Makerモジュールをインストールします。

[root@CentOS]# yum -y install perl-ExtUtils-MakeMaker.noarch

Step 2 −最新バージョンのperlをインストールします。

[root@CentOS build]# source ~/perl5/perlbrew/etc/bashrc
[root@CentOS build]# perlbrew install -n -j4 --threads perl-5.24.1

Perlのインストール用に選択したオプションは次のとおりです。

  • n −テストなし

  • j4 −インストールルーチン用に4つのスレッドを並行して実行します(クアッドコアCPUを使用しています)

  • threads −Perlのスレッドサポートを有効にする

インストールが正常に実行されたら、最新のPerl環境に切り替えましょう。

[root@CentOS]# ~/perl5/perlbrew/bin/perlbrew use perl-5.24.1

A sub-shell is launched with perl-5.24.1 as the activated perl. Run 'exit' to finish it.

[root@CentOS]# perl -v

This is perl 5, version 24, subversion 1 (v5.24.1) built for x86_64-linuxthread-multi

(with 1 registered patch, see perl -V for more detail)

Copyright 1987-2017, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the GNU General
Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on this system 
using "man perl" or "perldoc perl".  If you have access to the Internet, point your 
browser at http://www.perl.org/, the Perl Home Page.

[root@CentOS]#

私たちのperlbrew環境のコンテキスト内で実行されているperlバージョンを印刷する単純なperlスクリプト-

[root@CentOS]# cat ./ver.pl  
#!/usr/bin/perl
print $^V . "\n";
[root@CentOS]# perl ./ver.pl  
v5.24.1 
[root@CentOS]#

perlをインストールしたら、perlbrewのcpanm-を使用してcpanモジュールをロードできます。

[root@CentOS]# perl-brew install-cpanm

それでは、cpanmインストーラーを使用して、perlbrewで現在のPerlバージョン5.24.1を使用してLWPモジュールを作成しましょう。

Step 1 −現在のPerlバージョンのコンテキストに切り替えます。

[root@CentOS ~]# ~/perl5/perlbrew/bin/perlbrew use perl-5.24.1

サブシェルは、perl-5.24.1をアクティブ化されたperlとして起動されます。'exit'を実行して終了します。

[root@CentOS ~]#

Step 2 −LWPユーザーエージェントPerlモジュールをインストールします。

[root@CentOS ~]# ~/perl5/perlbrew/bin/cpanm -i LWP::UserAgent

Step 3 −次に、新しいCPANモジュールを使用してPerl環境をテストしましょう。

[root@CentOS ~]# cat ./get_header.pl  
#!/usr/bin/perl 
use LWP; 
my $browser = LWP::UserAgent->new(); 
my $response = $browser->get("http://www.slcc.edu/"); 
unless(!$response->is_success) { 
   print $response->header("Server"); 
}

[root@CentOS ~]# perl ./get_header.pl  
Microsoft-IIS/8.5 [root@CentOS ~]#

あります!Perl Brewを使用すると、perl環境を簡単に分離でき、Perlで得られるベストプラクティスと見なすことができます。