先日、CentOS 7にlogwatchをインストールしてrangeにて集計期間の設定方法を記事にしました。
全く気にしていなかったのですが、これはDate::Manip perlモジュールがインストールしてあれば’date1 and date2’ができるとのことです。
そこでインストールしてあるPerlモジュールはどう調べるの? どうもfindで検索するようです。
1 2 3 4 5 |
# find `perl -e 'print "@INC"'` -name '*.pm' -print | grep Manip.pm find: '/usr/local/lib64/perl5': No such file or directory find: '/usr/local/share/perl5': No such file or directory /usr/share/perl5/vendor_perl/Date/Manip.pm /usr/share/perl5/vendor_perl/Date/Manip.pm |
いままでもエラーが表示されて気にはなっていたので解決しようと調べてみました。
find: ‘/usr/local/lib64/perl5’: No such file or directory
find: ‘/usr/local/share/perl5’: No such file or directory
エラーは単純でフォルダが無いと言っているだけなんですが、PerlはCentOS 7インストール時のままです。
3.3.11.2. インストール
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Developer_Guide/installation.html
CPAN からのモジュール
perl-CPAN パッケージが提供する cpan ツールを使用して CPAN Web サイトから直接モジュールをインストールします。これは /usr/local/share/perl5 と、32 ビットアーキテクチャーの場合は /usr/local/lib/perl5 に、64 ビットアーキテクチャーの場合は /usr/local/lib64/perl5 にインストールされます
CPANでPerlモジュールをインストールした場合に/usr/local/share/perl5,/usr/local/lib64/perl5に保存されるようです。
CPANでPerlモジュールをインストールしない限りこのフォルダは作成されなくてエラーが毎回表示されることになるのか。
設定されているPerlのパスを削除してもいいかも知れませんが、そうなると実際にCPANでインストールしても利用できないことになります。
1 2 3 4 5 6 7 |
# perl -E 'say for @INC' /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 |
それならば取り敢えず
mkdir /usr/local/lib64/perl5
mkdir /usr/local/share/perl5
でエラーは回避できそうですが、折角なのでCPANの勉強も兼ねてインストールしてみます。
- perl-CPAN インストール
- 環境設定
- Perlモジュールのインストール
この時にはまだ二つのフォルダは作成されません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# yum -y install perl-CPAN (snip) Installed: perl-CPAN.noarch 0:1.9800-286.el7 Dependency Installed: gdbm-devel.x86_64 0:1.10-8.el7 libdb-devel.x86_64 0:5.3.21-19.el7 perl-Digest.noarch 0:1.17-245.el7 perl-Digest-SHA.x86_64 1:5.85-3.el7 perl-ExtUtils-Install.noarch 0:1.58-286.el7 perl-ExtUtils-MakeMaker.noarch 0:6.68-3.e perl-ExtUtils-Manifest.noarch 0:1.61-244.el7 perl-ExtUtils-ParseXS.noarch 1:3.18-2.el7 perl-devel.x86_64 4:5.16.3-286.el7 perl-local-lib.noarch 0:1.008010-3.el7 pyparsing.noarch 0:1.5.6-9.el7 systemtap-sdt-devel.x86_64 0:2.8-10.el7 Complete! |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# cpan CPAN.pm requires configuration, but most of it can be done automatically. If you answer 'no' below, you will enter an interactive dialog for each configuration option instead. Would you like to configure as much as possible automatically? [yes] yes <install_help> Warning: You do not have write permission for Perl library directories. To install modules, you need to configure a local Perl library directory or escalate your privileges. CPAN can help you by bootstrapping the local::lib module or by configuring itself to use 'sudo' (if available). You may also resolve this problem manually if you need to customize your setup. What approach do you want? (Choose 'local::lib', 'sudo' or 'manual') [local::lib] Autoconfigured everything but 'urllist'. Now you need to choose your CPAN mirror sites. You can let me pick mirrors for you, you can select them from a list or you can enter them by hand. Would you like me to automatically choose some CPAN mirror sites for you? (This means connecting to the Internet) [yes] Trying to fetch a mirror list from the Internet Fetching with HTTP::Tiny: http://www.perl.org/CPAN/MIRRORED.BY Looking for CPAN mirrors near you (please be patient) ........................ done! New urllist http://mirror.navercorp.com/CPAN/ http://cpan.mirror.choon.net/ http://ftp.neowiz.com/CPAN/ Autoconfiguration complete. Attempting to bootstrap local::lib... (snip) |
YAMLをインストールしてみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# cpan Terminal does not support AddHistory. cpan shell -- CPAN exploration and modules installation (v1.9800) Enter 'h' for help. cpan[1]> ? Display Information (ver 1.9800) command argument description a,b,d,m WORD or /REGEXP/ about authors, bundles, distributions, modules i WORD or /REGEXP/ about any of the above ls AUTHOR or GLOB about files in the author's directory (with WORD being a module, bundle or author name or a distribution name of the form AUTHOR/DISTRIBUTION) Download, Test, Make, Install... get download clean make clean make make (implies get) look open subshell in dist directory test make test (implies make) readme display these README files install make install (implies test) perldoc display POD documentation Upgrade r WORDs or /REGEXP/ or NONE report updates for some/matching/all modules upgrade WORDs or /REGEXP/ or NONE upgrade some/matching/all modules Pragmas force CMD try hard to do command fforce CMD try harder notest CMD skip testing Other h,? display this menu ! perl-code eval a perl command o conf [opt] set and query options q quit the cpan shell reload cpan load CPAN.pm again reload index load newer indices autobundle Snapshot recent latest CPAN uploads cpan[2]> install YAML (snip) Appending installation info to /usr/lib64/perl5/perllocal.pod TINITA/YAML-1.18.tar.gz /usr/bin/make install -- OK cpan[3]> q Terminal does not support GetHistory. Lockfile removed. |
フォルダが作成されたか確認してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# ll /usr/local/lib64/perl5/ total 0 drwxr-xr-x 7 root root 68 Sep 30 16:58 auto # ll /usr/local/share/perl5/ total 88 drwxr-xr-x 2 root root 101 Sep 30 16:58 Algorithm drwxr-xr-x 2 root root 21 Sep 30 16:58 Spiffy -r--r--r-- 1 root root 15485 Aug 17 2014 Spiffy.pm -r--r--r-- 1 root root 18181 Aug 17 2014 Spiffy.pod drwxr-xr-x 6 root root 4096 Sep 30 16:58 Test drwxr-xr-x 8 root root 4096 Sep 30 16:58 Test2 -r--r--r-- 1 root root 6353 Sep 26 04:32 Test2.pm drwxr-xr-x 3 root root 31 Sep 30 16:58 Text drwxr-xr-x 4 root root 4096 Sep 30 16:58 YAML -r--r--r-- 1 root root 2633 Jul 8 23:52 YAML.pm -r--r--r-- 1 root root 22235 Jul 8 23:52 YAML.pod -r--r--r-- 1 root root 967 Sep 26 04:32 ok.pm # find `perl -e 'print "@INC"'` -name '*.pm' -print | grep CPAN.pm /usr/share/perl5/CPAN.pm |
エラーは無くなりましたが、やったぜ感が全然無い(^^;