インストール: cpan | Perlの標準的なパッケージマネージャー
Perlの標準的なパッケージマネージャーであるcpanをソースコードからインストールする。
Ubuntu 18.04などではPerlと一緒にデフォルトでインストールされている。しかし,AWSのAmazon Linux 2などRedHat系のOSだとPerlはあってもcpanはインストールされていないことに気がついた。
GNU StowなどのPerl製のプログラムをまとめてインストールするために,cpanをインストールする。
ただし,cpanはインストールしたパッケージをアンインストールできないなど,パッケージマネージャーとして欠陥があることに注意する。
パッケージをアンインストールしたい場合,cpanmコマンドをcpanでインストールしてcpanmでアンインストールする。
項目 | 説明 |
---|---|
配布元 | cpan – easily interact with CPAN from the command line – metacpan.org |
リポジトリー | andk/cpanpm: CPAN.pm |
手順 | ExtUtils::MakeMaker – Create a module Makefile – metacpan.org |
依存情報 | cpanpm/Makefile.PL at master · andk/cpanpm |
依存先 (必須) | Make (GNU Make), Perl |
依存先 (任意) | |
依存元 |
sh -eux <<-"EOT"
PKG=cpan VER=2.28 TAG=$VER PKG_VER=$PKG${VER:+-$VER}
LOCAL=~/.local J=$(grep -cs '^processor' /proc/cpuinfo || echo 2)
mkdir -p "$LOCAL/src"
cd "$LOCAL/src"
if command -v git >/dev/null; then
[ -e $PKG ] || git clone --depth 1 git://github.com/andk/cpanpm $PKG
cd $PKG
git fetch --depth 1 ${TAG:+origin tag $TAG}
git checkout -f ${TAG:-master}
git clean -dfX
else
[ -e $PKG_VER ] || wget -O $PKG_VER.tgz https://github.com/andk/cpanpm/archive/$VER.tar.gz
tar -xf $PKG_VER.*
cd $PKG_VER
fi
make -kj $J distclean clean || :
[ -e configure ] || [ -e configure.ac ] && autoreconf -is
perl Makefile.PL INSTALL_BASE="$LOCAL/stow/$PKG_VER" \
INSTALLMAN1DIR="\$(INSTALL_BASE)/share/man/man1" \
INSTALLMAN3DIR="\$(INSTALL_BASE)/share/man/man3"
make -j $J
make -j $J test
make -j $J install
cd "$LOCAL/stow"
echo $PKG${VER:+-}[0-9]* | xargs -n 1 stow -D
stow $PKG_VER
EOT
日付 | バージョン | OS | 依存関係 |
---|---|---|---|
2020-07-17 | 2.28 | Ubuntu 18.04 | GNU Make 4.2.1, Perl 5.26.1 |
cpanはビルドにExtUtils::MakeMaker
(ExtUtils::MakeMaker – Create a module Makefile – metacpan.org) を使っているため,これに沿ったビルドを行う。
INSTALL_BASE
がAutotoolsのconfigure --prefix
相当となっているので,これにインストール先を指定する。
この他に,manページのインストール先を指定するINSTALLMAN1DIR
とINSTALLMAN3DIR
がある。デフォルトだと,$INSTALL_BASE/man/man1
のように,間にshareが入っておらず,他のインストーラーと構成が違うのが気に入らない。そのため,間にshare
を挟むように修正した。
インストールが完了したら,「cpanコマンドによるPerlモジュールのローカルインストール」を参考にcpanの初期設定も行っておく。
なお,cpanはPerlをソースコードからビルドすると同梱されているので,cpanをソースコードからビルドするくらいならば,Perlをソースコードからビルドしたほうがいいと思う。