0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【自分用メモ】WSLでMinillaを使うことになったのでインストールメモ

Last updated at Posted at 2020-04-22

 昔作った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 ができるようになりました。

 めでたし、めでたし。

  1. ちなみに、Minilla v0.8.0 で生成されておりました。何年前だ?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?