昔作ったCPANモジュールにバグレポートをいただいたので、5~6年ぶりにCPANにモジュールをアップすることになりました。
んが!ずっとPerlを書いていなかったので、手元にPerl開発環境が入っていなかった。しかも、セットアップ方法を忘れていました。
インストールでいろいろハマったので、自分のメモ用にインストールメモを残しておきます。
今回整える環境
修正するモジュールが Minilla を使って作られていた1ので、現在メインで使っているWSL1のUbuntuの上にMinillaをインストールします。
次のものはすでに入っているものとします:
- Windows 10 Pro
- WSL1
- Ubuntu 18.04
- perl 5.30
aptでビルドツールをインストールする
CPANモジュールのビルドに必要になるコマンド類をインストールします。aptで次のものをインストールしましょう:
sudo apt install build-essential patch
cpanmをインストールする
なにはともあれ cpanm をいれます:
curl -L https://cpanmin.us | perl - App::cpanminus
Minillaをインストールする
上で入れた cpanm でを使って Minilla をインストールします:
cpanm Minilla
が、ここでいきなりビルドにつまづきます。build.logを見ると、ヘッダファイルがないとか言われています:
Building and testing Module-Build-Tiny-0.039
cp lib/Module/Build/Tiny.pm blib/lib/Module/Build/Tiny.pm
t/00-compile.t .......... ok
t/release-pod-syntax.t .. skipped: these tests are for release candidate testing
In file included from lib/Simple.xs:3:0:
/home/ubuntu/.plenv/versions/5.30.0/lib/perl5/5.30.0/x86_64-linux/CORE/perl.h:732:13: fatal error: xlocale.h: No such f
# include <xlocale.h>
^~~~~~~~~~~
compilation terminated.
xlocale.h
がないとか言われても知らんがな・・・と思ってGoogle先生に聞くと、なんでもしばらく前にglibcから消えたヘッダファイルなんだとか。
workaroundはシンボリックリンクを張ることらしいので、おとなしく従います:
sudo ln -s /usr/include/locale.h /usr/include/xlocale.h
これで Minilla のインストールが成功します:
cpanm Minilla
Minillaのoptionalモジュールのインストール
minil release
を実行しようとすると、Version::Next が必要だと言われるのでインストールします:
cpanm Version::Next
さらに、CPAN::Uploader も必要と言われるのでインストールします:
cpanm CPAN::Uploader
が、ここで問題が。
CPAN::Uploader は HTTPS で通信するのでビルドに OpenSSL が必要です:
SSLeay.xs:163:10: fatal error: openssl/err.h: No such file or directory
#include <openssl/err.h>
^~~~~~~~~~~~~~~
compilation terminated.
さらに、Zlib も必要でした:
LD_RUN_PATH="/usr/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu" cc -shared -O2 -L/usr -L/usr/lib -L/usr/local/lib -fstac
-L/usr -L/usr/lib -lssl -lcrypto -lz \
/usr/bin/ld: cannot find -lz
collect2: error: ld returned 1 exit status
Makefile:493: recipe for target 'blib/arch/auto/Net/SSLeay/SSLeay.so' failed
というわけで、再び apt に戻って依存ライブラリをインストールしましょう:
sudo apt install libssl1.0-dev zlib1g-dev
Ubuntuではこの2つをインストールすれば良さそうです。
これで CPAN::Uploader がビルドできます:
cpanm CPAN::Uploader
これで無事に minil release
ができるようになりました。
めでたし、めでたし。
-
ちなみに、Minilla v0.8.0 で生成されておりました。何年前だ? ↩