g-cpan で Carton を入れる
古くて依存関係の多い Perl モジュール(具体的には昔懐かしい Plagger)をインストールしたい。 ただ、全てを g-cpan でインストールするのは気が進まないし絶対にハマるので Carton で局所化したい。
まあそうすんなりとはインストールさせてくれないので、手探りで泥臭くどうにかした。 真似はしない方がいい。
g-cpan --install Carton
すると Manifest がないと怒られる。
ログを追うと、v
なしの Carton-1.0.34.tar.gz を GET しようとして失敗している様子。
とりあえず ebuild を保存させないと修正のしようもないので、 overlay を設定する。
# mkdir /usr/local/portage
# chgrp portage /usr/local/portage
# chmod g+s /usr/local/portage
# vi /etc/portage/make.conf
[...]
PORTDIR_OVERLAY="/usr/local/portage ${PORTDIR_OVERLAY}"
# g-cpan --install Carton
ebuild の MODULE_VERSION
を v
ありに修正する。
# vi /usr/local/portage/perl-gcpan/Carton/Carton-1.0.34.ebuild
[...]
MODULE_VERSION="v1.0.34"
Manifest を作成する。
DIST のファイル名は v
ありにする。
チェックサムは b2sum
と sha512sum
で計算する。
# cat << __EOM__ > /usr/local/portage/perl-gcpan/Carton/Manifest
DIST Carton-v1.0.34.tar.gz 85808 BLAKE2B d627061ff260fbf0f12eec71c030a37cf9d90d3d40a316e67184f50b9ca6a330f8e0cc604093eeaa9a1b3d3cd9dab45106687e95bcf2a09570904e7690bff367 SHA512 6c34dd95f749a8fd91843a63c87b802f1bb967511e3737a58fa2d80360f36cb62db1d66f740921ec3d4d6c624872bd7aa9c146e5eccdb8ac58f6d0a300ddba9e
EBUILD Carton-1.0.34.ebuild 867 BLAKE2B 14215a3e910e78308cded33cf61043d0673c5bd9ce473099c9a608cf9218094b11eb2edc6f3122040f53f565ebdf766eb85c739ca55dd8377780124e0f75529b SHA512 0d7bb8945f9de709cc6ed1eb3022045c6771081ccd09e6d53692251b83a52245af79902a088a034fb46c083acc782ddcb15d44266cac22b52de2eaeff4f3a17d
__EOM__
これでたぶんインストールできる。
おまけ。
依存関係にある perl-gcpan/Parse-PMFile のインストール時、ExtUtils::MakeMaker::CPANfile
が missing だと怒られる。
この期に及んで /usr/local
には入れたくなかったので、アーカイブから持ってきて雑に対処した。
# cp CPANfile.pm /usr/lib64/perl5/5.30.3/ExtUtils/MakeMaker/
未来の自分にトラップを仕掛けた、かもしれない。
参考