hack のためのネタ帳, etc,,,

状況

Perl の module は /usr/share/perl5/vendor_perl/<バージョン番号>/ 以下に放り込まれるらしい。
このため Cygwin の perl が 5.26 から 5.30 にバージョンアップ影響で、以前入れた ExifTool が動かなくなっていた。
そこで、アップデートしようとしたのだが Cygwin の公式リポジトリ上で見つからない。
あれ?っと思ったら、私家版 Cygwin ports から入れたのト忘れしてた。

ところが、cygport で build し直そうとしてみたところ、以下のように Makefile.PL でエラーが生じてビルドに失敗してしまった。
$ cygport libimage-exiftool-perl-10.68-1.cygport all
>>> Preparing libimage-exiftool-perl-10.68-1.x86_64
>>> Unpacking source Image-ExifTool-10.68.tar.gz
>>> Preparing working source directory
>>> Compiling libimage-exiftool-perl-10.68-1.x86_64
Only one of PREFIX or INSTALL_BASE can be given.  Not both.
Checking if your kit is complete...
Looks good
*** ERROR: Perl Makefile creation failed
何だ?これは?

さっぱり見当がつかないので、「Only one of PREFIX or INSTALL_BASE can be given. Not both.」でググってみたところ以下のページを見つけた。 曰く、local::lib の設定で、PERL_MM_OPT に INSTALL_BASE が設定されていてそれがぶつかるんだとかなんとかで
PERL_MM_OPT をクリアして make すれば OK らしい。

え〜?そんなの設定したっけ?と思って調べてみると確かに設定されてる。
$ declare -p PERL_MM_OPT
declare -x PERL_MM_OPT="INSTALL_BASE=/home/kou/perl5"
当該箇所の前後を確認してみると確かに local::lib っぽい設定が行われていた。
$ find ~/ -maxdepth 1 -iname '.*' -type f -exec grep -n PERL_MM_OPT {} +
/home/kou/.bashrc:298:PERL_MM_OPT="INSTALL_BASE=/home/kou/perl5"; export PERL_MM_OPT;
$ grep -n ~/.bashrc
...
294:PATH="/home/kou/perl5/bin${PATH:+:${PATH}}"; export PATH;
295:PERL5LIB="/home/kou/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
296:PERL_LOCAL_LIB_ROOT="/home/kou/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
297:PERL_MB_OPT="--install_base \"/home/kou/perl5\""; export PERL_MB_OPT;
298:PERL_MM_OPT="INSTALL_BASE=/home/kou/perl5"; export PERL_MM_OPT;
299:
300:BROWSER=cygstart
301:
普段ほとんど perl は使わなし、全く記憶に残ってなくてメモも残してないみたいなんだが、何時、何に使ったんだっけ???

と、それはさて置き、とりあえず PERL_MM_OPT をクリアして再ビルドしてみたところ、無事ビルドは完了したので当初の目的は達成出来たのであった。
$ PERL_MM_OPT= cygport libimage-exiftool-perl-10.68-1.cygport all
>>> Preparing libimage-exiftool-perl-10.68-1.x86_64
>>> Unpacking source Image-ExifTool-10.68.tar.gz
>>> Preparing working source directory
>>> Compiling libimage-exiftool-perl-10.68-1.x86_64
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Image::ExifTool
Writing MYMETA.yml and MYMETA.json
...

*** Info: No debug files, skipping debuginfo subpackage

>>> Checking packages for missing or duplicate files

>>> Creating source patches
 0 files changed
>>> Creating source package
libimage-exiftool-perl-10.68-1.src/
libimage-exiftool-perl-10.68-1.src/Image-ExifTool-10.68.tar.gz
libimage-exiftool-perl-10.68-1.src/libimage-exiftool-perl-10.68-1.cygport

>>> libimage-exiftool-perl requires: perl perl-Digest-SHA perl-IO-String perl-TermReadKey perl_base

いろいろなところで、記憶力が怪しいの地味に辛い。

関連

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

管理人/副管理人のみ編集できます