Help us understand the problem. What is going on with this article?

perlのビルド/インストール方法

みなさんは、どのversionのperlをお使いだろうか。
perlは毎年、新しいstable versionがリリースされており、2019年12月現在、最新stable versionは5.30.1である。
perlは後方互換性にとても気を使っており、また新しいperlは細かなパフォーマンスチューニング、バグフィックスをたくさん含んでいる。よって、いつでも最新stable versionのperlを使うのがおすすめである。

おそらくOS付随のperlは最新のものではない。よって最新のperlを使おうとしたとき、自分でビルドしインストールする必要がある。
この記事ではperlのビルド/インストール方法について説明する。

perlのビルド/インストール方法

はじめての方は敬遠しがちかもしれないが、実のところperlをビルドしインストールするのは驚くほど簡単である:

(A) $ wget https://www.cpan.org/src/5.0/perl-5.30.1.tar.gz
(B) $ tar xf perl-5.30.1.tar.gz
(C) $ cd perl-5.30.1
(D) $ ./Configure -Dprefix=$HOME/perl -Dscriptdir=$HOME/perl/bin -des -Dman1dir=none -Dman3dir=none -DDEBUGGING=-g
(E) $ make --jobs=8 install

これでperl 5.30.1をビルドし、$HOME/perlにインストールできる。かかる時間も4分程度である。

以下(A),(D),(E)について説明を加える。

(A) perlのソースコードを取得

perlのソースコードは https://www.cpan.org/src/ から取得可能である。またこのページでperlの最新versionも確認できる。
なお、perlは 5.(偶数).x がstable version, 5.(奇数).x がdeveloper versionとなっている。たとえば、5.26.3, 5.28.2, 5.30.1はstable version、5.27.5, 5.29.1, 5.31.6はdeveloper versionである。
developer versionはperlのcoreを開発している人でない限り使うべきでない。
よって5.(偶数).xのstable versionのうち、もっとも新しいもの選ぶとよいだろう。

(D) Configureオプション

このConfigureオプションが重要である。ひとつひとつ見ていこう。

-Dprefix=(インストール場所)

インストールしたい場所に合わせて自由に設定する。なおperlの実行ファイル自体は (インストール場所)/bin/perl に配置されることになる。インストール後、環境変数PATHに (インストール場所)/bin を追加しておこう。

-Dscriptdir=(インストール場所)/bin

これはあまりいい挙動だとは思っていないのだが、perlはいくつかのスクリプトを/usr/local/scirptなどグローバルなディレクトリにインストールしようとするかもしれない。これを抑止するために、明示的に-Dscriptdir=(インストール場所)/binを指定しておこう。

-des

本当は、このオプションは-d, -e, -sの3つにわかれる。特に-dは、すべての設定値をperlが推奨するデフォルトを使用する、の意味である。これを指定しないと、たくさんの(少なくとも最初は意味不明な)質問に答えないといけなくなる。
ということで-desは指定しておこう。

-Dman1dir=none -Dman3dir=none

perlのドキュメントはpodという形式で書かれており、それはperldocコマンドで参照可能である。よってman形式のドキュメントはほとんどの場合、必要ない。
これらのオプションはman形式のドキュメント作成、インストールを無効化するものである。いつでも指定しておくのがおすすめ。

-DDEBUGGING=-g

いつかperlにデバッグ情報が入っていてよかったと思う日が来るかもしれない。
その日に備えてこのオプションを指定しておくのがおすすめである。

-Duseshrplib

apache httpd mod_perlやnginx unitなどperlと動的リンクさせて動くソフトウェアがある。これらで使うperlをビルドしようと思っているなら必須のオプションである。
逆にいうとその予定がないのなら必要ないオプションである。

-Duseithreads

perlのthread機能を有効にするオプションである。明確にthreadを使うコードがあるというとき以外は必要ない。

(E) makeオプション

--jobsを指定すれば並列でビルドされ時間短縮になる。よって--jobs=8などを指定するのがおすすめである。
なお、古いperlは並列でビルドしようとすると失敗することがあるので注意が必要である。具体的には5.20.0未満だと失敗する可能性がある。

おわりに

perlのビルド/インストール方法を紹介した。
perlをビルドしインストールするのは本当に簡単なので、是非自分でビルドし最新のperlを使うといいと思う。

変更履歴

  • scriptdirオプションを追加。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away