これまで試したことがあるのは、下記の通りです。
1. root 権限から cpan コマンドでインストールをする
2. cpan コマンドで $HOME ディレクトリに自分で使うモジュールをインストールする
3. パッケージ管理システムからインストールする
しかし、上記の方法は下記のような短所があります。
1. の方法は、依存関係が壊れたのを修復したり、アンインストールが困難。
2. インストールできないモジュールがあったり、管理が煩雑になる。また、影響範囲は限定的になるが、1.の問題解決にはならない。
3. パッケージ管理システムから外れたモジュールをインストールすると、CPAN やパッケージ管理システムの依存関係が壊れてしまう。
特に Plagger をインストールした日には、目も当てられないことになりました…。
特に複数のユーザーで利用する場合、モジュールの依存関係が壊れてしまい、モジュールを利用できなくなる最悪な事態は避けたいです。
また、OS や Perl 本体のアップグレードによる CPAN モジュールの移行方法も知りたいです。
2.の手法ですがlocal::libを使った非rootでのCPAN環境構築 - hide-k.net#blogを参考にlocal::libを使うと煩雑にならずに管理が楽です。
インストールできないCPANモジュールも、だいたいOpenSSLなどのライブラリパスの指定でこけているのが数個あるぐらいなのでCPANインストール時にライブラリパスを指定する事で回避できたりします。
2.の手法ですがlocal::libを使った非rootでのCPAN環境構築 - hide-k.net#blogを参考にlocal::libを使うと煩雑にならずに管理が楽です。
インストールできないCPANモジュールも、だいたいOpenSSLなどのライブラリパスの指定でこけているのが数個あるぐらいなのでCPANインストール時にライブラリパスを指定する事で回避できたりします。
CPAN の管理を CPAN モジュールを利用して、やってしまおうということですね。
root 権限があれば、システム用の Perl とユーザー用の Perl を分けてしまうのも、ひとつの考え方かなと思ったりもします。
まずは、実際に動作をさせて試してみます。
root 権限があれば、システム用の Perl とユーザー用の Perl を分けてしまうのも、ひとつの考え方かなと思ったりもします。
これ、色々入れる場合は結構おすすめの方法です。
404 Blog Not Found:perl - Mac OS X - perlをDIYする
Perl が入っているOSの場合、システムコマンド自体が Perl のモジュールを使っている場合もあるので
うかつにバージョンアップすると面倒なことになる場合があるからです。
1. の方法は、依存関係が壊れたのを修復したり、アンインストールが困難
3. パッケージ管理システムから外れたモジュールをインストールする
これに関しては、RPMS ベースの管理システムであれば、cpan2rpm を使うことで解決できます。
Perlモジュールパッケージ管理システム導入(cpan2rpm) - Fedoraで自宅サーバー構築
OS や Perl 本体のアップグレードによる CPAN モジュールの移行方法
PurePerl なモジュールであればファイルをコピーするだけですむんですが、XS を使用する等
他のライブラリに依存したモジュールに関しては、再インストールしかないです。
> XS を使用する等他のライブラリに依存したモジュールに関しては、再インストールしかないです。
これはけっこう不便ですよね…と思う反面、仕方ないのかもしれませんね。
ただ、バッチが動くサーバーだと、どのタイミングでアップデートをすればいいのか、けっこう悩みますね。
> これに関しては、RPMS ベースの管理システムであれば、cpan2rpm を使うことで解決できます。
RPM 系だと、こんな便利なのがあるんですね。
Debian や FreeBSd でもこういうのがあるといいですね。
CPAN の管理を CPAN モジュールを利用して、やってしまおうということですね。
root 権限があれば、システム用の Perl とユーザー用の Perl を分けてしまうのも、ひとつの考え方かなと思ったりもします。
まずは、実際に動作をさせて試してみます。