メメメモモ

プログラミング、筋トレ、ゲーム、etc

Orepanでローカルミラーを作成・管理する

プロジェクトが依存しているモジュールをローカルミラーで管理します。
ローカルミラーはプロジェクトのバージョン管理下に入れます。
こうすることで、依存モジュールのバージョンを固定することができます。

管理ツールインストール

ローカルミラーを管理するツールOrePANをインストールします。

$ cpanm OrePAN

ローカルミラーを作成する

cpanmコマンドを使って、ローカルミラーを作成します。
基本は「--save-dists」オプションを使い、ローカルミラーを作成していきます。


以下のようにcpanmコマンドを実行します。

$ cpanm -L local-tmp --save-dists=cpan-mirror Mojolicious


バージョンを指定してインストールしたい場合は、「Mojolicious@3.82」というように@をつけて指定します。

$ cpanm -L local-tmp --save-dists=cpan-mirror Mojolicious@3.82


Makefile.PLで一括で行いたい場合は、「--installdeps」オプションを使用します。

$ cpanm -L local-tmp --save-dists=cpan-mirror --installdeps .

local-tmpは作業用のディレクトリなので削除してください。


ダウンロードしたファイルの確認は以下のコマンドで行えます。

$ find ./cpan-mirror -name "*.tar.gz"

インデックスの作成

orepan_index.plを利用してインデックスを作成します。

$ orepan_index.pl -r ./cpan-mirror

バージョン管理システムに登録

作成したcpan-mirrorをaddしてください。

$ git add cpan-mirror

ローカルミラーからCPANモジュールをインストール

以下のコマンドで依存モジュールをローカルミラーからインストールすることができます。

$ cpanm --mirror=/path/to/cpan-mirror --mirror-only --installdeps .

ローカルミラーに依存モジュールを追加する

Makefile.PLに依存モジュールを追加し、以下のcpanmコマンドを実行します。

$ cpanm --save-dists=cpan-mirror --installdeps .

ローカルミラーに足りないものだけがダウンロードされます。

そして、インデックスを再生成します。
すでにあるインデックスはrmで削除してください。

$ rm cpan-mirror/modules/02packages.details.txt.gz
$ orepan_index.pl -r cpan-mirror

オリジナルモジュールを追加する

オリジナルモジュールは「make dist」か「./Build dist」でtarballに変換してください。

作者名を指定してローカルミラーに登録します。

$ orepan.pl -d cpan-mirror -p MEMEMEMOMO Hogehoge.tar.gz

モジュールを削除する

tarballを削除してインデックスを再生しします。

$ rm cpan-mirror/authors/id/M/ME/MEMEMEMOMO/Hogehoge.tar.gz
$ rm cpan-mirror/modules/02packages.details.txt.gz
$ orepan_index.pl -r cpan-mirror

アンインストールは「App::pmuninstall」を使うと良いでしょう。