[macOS General] Perl: cpanm とモジュールをインストールする

動かしてみたいサンプルスクリプトが Perl モジュールを要求したので、インストールしてみました。

手順としては、Mac に限らないはず。

状況

DBIx/Simple.pm が必要なよう。

% perl view2kobito.pl
Can't locate DBIx/Simple.pm in @INC (@INC contains: /Library/Perl/5.16/darwin-thread-multi-2level /Library/Perl/5.16 /Network/Library/Perl/5.16/darwin-thread-multi-2level /Network/Library/Perl/5.16 /Library/Perl/Updates/5.16.2 /System/Library/Perl/5.16/darwin-thread-multi-2level /System/Library/Perl/5.16 /System/Library/Perl/Extras/5.16/darwin-thread-multi-2level /System/Library/Perl/Extras/5.16 .) at view2kobito.pl line 6.
BEGIN failed--compilation aborted at view2kobito.pl line 6.

cpanm とモジュールのインストール

たしか cpanm というのを使うはずということで、Google 先生に聞いてみる。

プロジェクトディレクトリに /bin を作って、そこにおいてみる。

% mkdir bin
% cd bin
% curl -LOk http://xrl.us/cpanm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   216    0   216    0     0    481      0 --:--:-- --:--:-- --:--:--   482
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   120  100   120    0     0     64      0  0:00:01  0:00:01 --:--:--   140
100  262k  100  262k    0     0   104k      0  0:00:02  0:00:02 --:--:--  485k
% chmod +x cpanm

コマンド実行。
ユーザディレクトリに ~/perl5 を作って、そこに設置してくれたそう。

% bin/cpanm DBIx::Simple
!
! Can't write to /Library/Perl/5.16 and /usr/local/bin: Installing modules to /Users/****/perl5
! To turn off this warning, you have to do one of the following:
!   - run me as a root or with --sudo option (to install to /Library/Perl/5.16 and /usr/local/bin)
!   - Configure local::lib your existing local::lib in this shell to set PERL_MM_OPT etc.
!   - Install local::lib by running the following commands
!
!         cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)
!
--> Working on DBIx::Simple
Fetching http://www.cpan.org/authors/id/J/JU/JUERD/DBIx-Simple-1.35.tar.gz ... OK
Configuring DBIx-Simple-1.35 ... OK
Building and testing DBIx-Simple-1.35 ... OK
Successfully installed DBIx-Simple-1.35
1 distribution installed

確認してみる。

~/perl5
├── lib
│   └── perl5
│       ├── DBIx
│       │   ├── Simple
│       │   │   ├── Comparison.pod
│       │   │   ├── Examples.pod
│       │   │   └── Result
│       │   │       └── RowObject.pm
│       │   └── Simple.pm
│       └── darwin-thread-multi-2level
│           ├── auto
│           │   └── DBIx
│           │       └── Simple
│           └── perllocal.pod
└── man
    └── man3
        ├── DBIx::Simple.3pm
        ├── DBIx::Simple::Comparison.3pm
        ├── DBIx::Simple::Examples.3pm
        └── DBIx::Simple::Result::RowObject.3pm
11 directories, 9 files

設定を追加する

.bash_profile.zshenv あたりに設定を加える。

~/.zshenv
export PERL_CPANM_OPT="--local-lib=~/perl5"
export PATH=$HOME/perl5/bin:$PATH;
export PERL5LIB=$HOME/perl5/lib/perl5:$PERL5LIB;

以上で使えるようになりました。

問題は本来の目的を果たせていないこと。。。
またいつか調べよう。