WebARENAのVPSサーバー設定メモ(4) cpan2rpmの導入
cpan2rpmを導入し、PerlモジュールをRPMパッケージでインストールできるようにします。
cpan2rpmインストール
[root@localhost ~]# wget http://nchc.dl.sourceforge.net/sourceforge/cpan2rpm/cpan2rpm-2.027-1.noarch.rpm ※最新版の確認 [root@localhost ~]# rpm -Uvh cpan2rpm-2.027-1.noarch.rpm ← cpan2rpmインストール Preparing... ########################################### [100%] 1:cpan2rpm ########################################### [100%] [root@localhost ~]# rm -f cpan2rpm-2.027-1.noarch.rpm ← ダウンロードしたファイルを削除 [root@localhost ~]#
cpan2rpm確認
cpan2rpmが正しく動作するか、試しにURI::Findをインストールしてみます。
[root@localhost ~]# cpan2rpm –install URI::Find -- cpan2rpm - Ver: 2.027 -- Upgrade check * A newer version of this program is now available. To upgrade * enter the following command: /usr/bin/cpan2rpm --upgrade Fetch: HTTP -- module: –install -- Module not found on CPAN web site! at /usr/bin/cpan2rpm line 1201. -- Done -- [root@localhost ~]#
あれ?新しいバージョンを入れてくださいとエラーが出ました。
最新版のはずなのに、、、と思いつつupdate実行
[root@localhost ~]# /usr/bin/cpan2rpm --upgrade ← cpan2rpmのアップグレード
-- cpan2rpm - Ver: 2.027 --
Upgrading...
Latest ver: 2.028
Retrieving URL
Generating spec file
SPEC: ./cpan2rpm.spec
-- Done --
Installing package
Preparing... ########################################### [100%]
1:cpan2rpm ########################################### [100%]
-- Done --
[root@localhost ~]#
これで最新のcpan2rpmがインストールされました。
気を取り直して、再度URI::Findをインストールしてみます。
[root@localhost ~]# cpan2rpm --install URI::Find -- cpan2rpm - Ver: 2.028 -- Upgrade check Fetch: HTTP -- module: URI::Find -- Found: URI-Find-20100505.tar.gz At: http://search.cpan.org//CPAN/authors/id/M/MS/MSCHWERN Retrieving URL Metadata retrieval Tarball extraction: [/usr/src/redhat/SOURCES/URI-Find-20100505.tar.gz] Module::Build unloadable Can't locate Module/Build.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at (eval 24) line 2. BEGIN failed--compilation aborted at (eval 24) line 2. -- Done -- [root@localhost ~]#
Module/Build.pmが無いと怒られましたので、インストールします。
[root@localhost ~]# yum install --enablerepo=rpmforge perl-Module-Build
Loaded plugins: downloadonly, fastestmirror, priorities
Loading mirror speeds from cached hostfile
* addons: rsync.atworks.co.jp
* base: rsync.atworks.co.jp
* extras: rsync.atworks.co.jp
* rpmforge: fr2.rpmfind.net
* updates: rsync.atworks.co.jp
addons | 951 B 00:00
base | 2.1 kB 00:00
extras | 2.1 kB 00:00
updates | 1.9 kB 00:00
Excluding Packages in global exclude list
Finished
402 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package perl-Module-Build.noarch 1:0.3607-1.el5.rf set to be updated
--> Processing Dependency: perl(ExtUtils::CBuilder) >= 0.27 for package: perl-Module-Build
--> Processing Dependency: perl(ExtUtils::ParseXS) >= 2.21 for package: perl-Module-Build
--> Running transaction check
---> Package perl-ExtUtils-CBuilder.noarch 0:0.2603.01-1.el5.rf set to be updated
---> Package perl-ExtUtils-ParseXS.noarch 0:2.20.02-1.el5.rf set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================
Package Arch Version Repository Size
==========================================================================================
Installing:
perl-Module-Build noarch 1:0.3607-1.el5.rf rpmforge 298 k
Installing for dependencies:
perl-ExtUtils-CBuilder noarch 0.2603.01-1.el5.rf rpmforge 36 k
perl-ExtUtils-ParseXS noarch 2.20.02-1.el5.rf rpmforge 32 k
Transaction Summary
==========================================================================================
Install 3 Package(s)
Upgrade 0 Package(s)
Total download size: 366 k
Is this ok [y/N]: y
Downloading Packages:
(1/3): perl-ExtUtils-ParseXS-2.20.02-1.el5.rf.noarch.rpm | 32 kB 00:00
(2/3): perl-ExtUtils-CBuilder-0.2603.01-1.el5.rf.noarch.rpm | 36 kB 00:00
(3/3): perl-Module-Build-0.3607-1.el5.rf.noarch.rpm | 298 kB 00:01
------------------------------------------------------------------------------------------
Total 93 kB/s | 366 kB 00:03
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : perl-ExtUtils-CBuilder 1/3
Installing : perl-ExtUtils-ParseXS 2/3
Installing : perl-Module-Build 3/3
Installed:
perl-Module-Build.noarch 1:0.3607-1.el5.rf
Dependency Installed:
perl-ExtUtils-CBuilder.noarch 0:0.2603.01-1.el5.rf
perl-ExtUtils-ParseXS.noarch 0:2.20.02-1.el5.rf
Complete!
[root@localhost ~]#
今度こそURI::Findは入るでしょうか。再チャレンジです。
[root@localhost ~]# cpan2rpm --install URI::Find -- cpan2rpm - Ver: 2.028 -- Upgrade check Fetch: HTTP -- module: URI::Find -- Using cached URL: http://search.cpan.org//CPAN/authors/id/M/MS/MSCHWERN/URI-Find-20100505.tar.gz Tarball found - not fetching Metadata retrieval Tarball extraction: [/usr/src/redhat/SOURCES/URI-Find-20100505.tar.gz] No version found, please use --version option. Stopped at /usr/bin/cpan2rpm line 580. -- Done -- [root@localhost ~]#
今度は見つからないとエラーが、、、
URLを指定するか、バージョンを指定すればダウンロードできました。
[root@localhost ~]# cpan2rpm http://search.cpan.org//CPAN/authors/id/R/RO/ROSCH/URI-Find-0.16.tar.gz --no-sign --install --author URI::Find -- cpan2rpm - Ver: 2.028 -- Upgrade check Fetch: HTTP -- module: http://search.cpan.org//CPAN/authors/id/R/RO/ROSCH/URI-Find-0.16.tar.gz -- Retrieving URL Metadata retrieval Tarball extraction: [/usr/src/redhat/SOURCES/URI-Find-0.16.tar.gz] Generating spec file SPEC: /usr/src/redhat/SPECS/URI-Find.spec Generating package Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.94103 + umask 022 + cd /usr/src/redhat/BUILD + cd /usr/src/redhat/BUILD + rm -rf URI-Find-0.16 + /bin/gzip -dc /usr/src/redhat/SOURCES/URI-Find-0.16.tar.gz + tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd URI-Find-0.16 ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chown -Rhf root . ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chgrp -Rhf root . + /bin/chmod -Rf a+rX,u+w,g-w,o-w . + chmod -R u+w /usr/src/redhat/BUILD/URI-Find-0.16 + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.94103 + umask 022 + cd /usr/src/redhat/BUILD + cd URI-Find-0.16 + grep -rsl '^#!.*perl' . + grep -v '.bak$' + xargs --no-run-if-empty /usr/bin/perl -MExtUtils::MakeMaker -e 'MY->fixin(@ARGV)' + CFLAGS='-O2 -g -m64 -mtune=generic' ++ /usr/bin/perl -MExtUtils::MakeMaker -e ' print qq|PREFIX=/var/tmp/perl-URI-Find-0.16-root/usr| if $ExtUtils::MakeMaker::VERSION =~ /5\.9[1-6]|6\.0[0-5]/ ' + /usr/bin/perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for URI::Find + /usr/bin/make cp lib/URI/Find.pm blib/lib/URI/Find.pm cp lib/URI/Find/Schemeless.pm blib/lib/URI/Find/Schemeless.pm Manifying blib/man3/URI::Find.3pm Manifying blib/man3/URI::Find::Schemeless.3pm + /usr/bin/make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/Find...............ok t/load-schemeless....ok All tests successful. Files=2, Tests=382, 0 wallclock secs ( 0.09 cusr + 0.03 csys = 0.12 CPU) + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.35008 + umask 022 + cd /usr/src/redhat/BUILD + cd URI-Find-0.16 + '[' /var/tmp/perl-URI-Find-0.16-root '!=' / ']' + rm -rf /var/tmp/perl-URI-Find-0.16-root ++ /usr/bin/perl -MExtUtils::MakeMaker -e ' print $ExtUtils::MakeMaker::VERSION <= 6.05 ? qq|PREFIX=/var/tmp/perl-URI-Find-0.16-root/usr| : qq|DESTDIR=/var/tmp/perl-URI-Find-0.16-root| ' + make prefix=/var/tmp/perl-URI-Find-0.16-root/usr exec_prefix=/var/tmp/perl-URI-Find-0.16-root/usr bindir=/var/tmp/perl-URI-Find-0.16-root/usr/bin sbindir=/var/tmp/perl-URI-Find-0.16-root/usr/sbin sysconfdir=/var/tmp/perl-URI-Find-0.16-root/etc datadir=/var/tmp/perl-URI-Find-0.16-root/usr/share includedir=/var/tmp/perl-URI-Find-0.16-root/usr/include libdir=/var/tmp/perl-URI-Find-0.16-root/usr/lib64 libexecdir=/var/tmp/perl-URI-Find-0.16-root/usr/libexec localstatedir=/var/tmp/perl-URI-Find-0.16-root/var sharedstatedir=/var/tmp/perl-URI-Find-0.16-root/usr/com mandir=/var/tmp/perl-URI-Find-0.16-root/usr/share/man infodir=/var/tmp/perl-URI-Find-0.16-root/usr/share/info install DESTDIR=/var/tmp/perl-URI-Find-0.16-root Installing /var/tmp/perl-URI-Find-0.16-root/usr/lib/perl5/site_perl/5.8.8/URI/Find.pm Installing /var/tmp/perl-URI-Find-0.16-root/usr/lib/perl5/site_perl/5.8.8/URI/Find/Schemeless.pm Installing /var/tmp/perl-URI-Find-0.16-root/usr/share/man/man3/URI::Find.3pm Installing /var/tmp/perl-URI-Find-0.16-root/usr/share/man/man3/URI::Find::Schemeless.3pm Writing /var/tmp/perl-URI-Find-0.16-root/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/URI/Find/.packlist Appending installation info to /var/tmp/perl-URI-Find-0.16-root/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/perllocal.pod + cmd=/usr/share/spec-helper/compress_files + '[' -x /usr/share/spec-helper/compress_files ']' + cmd=/usr/lib/rpm/brp-compress + '[' -x /usr/lib/rpm/brp-compress ']' + /usr/lib/rpm/brp-compress + '[' -e /etc/SuSE-release -o -e /etc/UnitedLinux-release ']' + find /var/tmp/perl-URI-Find-0.16-root -name perllocal.pod -o -name .packlist -o -name '*.bs' + xargs -i rm -f '{}' + find /var/tmp/perl-URI-Find-0.16-root/usr -type d -depth -exec rmdir '{}' ';' + /usr/bin/perl -MFile::Find -le ' find({ wanted => \&wanted, no_chdir => 1}, "/var/tmp/perl-URI-Find-0.16-root"); print "%doc TODO Changes INSTALL README"; for my $x (sort @dirs, @files) { push @ret, $x unless indirs($x); } print join "\n", sort @ret; sub wanted { return if /auto$/; local $_ = $File::Find::name; my $f = $_; s|^\Q/var/tmp/perl-URI-Find-0.16-root\E||; return unless length; return $files[@files] = $_ if -f $f; $d = $_; /\Q$d\E/ && return for reverse sort @INC; $d =~ /\Q$_\E/ && return for qw|/etc /usr/man /usr/bin /usr/share|; $dirs[@dirs] = $_; } sub indirs { my $x = shift; $x =~ /^\Q$_\E\// && $x ne $_ && return 1 for @dirs; } ' + '[' -z URI-Find-0.16-filelist ']' + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip + /usr/lib/rpm/brp-strip-static-archive + /usr/lib/rpm/brp-strip-comment-note Processing files: perl-URI-Find-0.16-1 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.99301 + umask 022 + cd /usr/src/redhat/BUILD + cd URI-Find-0.16 + DOCDIR=/var/tmp/perl-URI-Find-0.16-root/usr/share/doc/perl-URI-Find-0.16 + export DOCDIR + rm -rf /var/tmp/perl-URI-Find-0.16-root/usr/share/doc/perl-URI-Find-0.16 + /bin/mkdir -p /var/tmp/perl-URI-Find-0.16-root/usr/share/doc/perl-URI-Find-0.16 + cp -pr TODO Changes INSTALL README /var/tmp/perl-URI-Find-0.16-root/usr/share/doc/perl-URI-Find-0.16 + exit 0 Provides: perl(URI::Find) = 0.16 perl(URI::Find::Schemeless) = 1.8 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(VersionedDependencies) <= 3.0.3-1 Requires: perl >= 0:5.005 perl(Carp) perl(URI) perl(URI::Find) perl(URI::URL) perl(base) perl(constant) perl(strict) perl(vars) Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/perl-URI-Find-0.16-root Wrote: /usr/src/redhat/SRPMS/perl-URI-Find-0.16-1.src.rpm Wrote: /usr/src/redhat/RPMS/noarch/perl-URI-Find-0.16-1.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.99301 + umask 022 + cd /usr/src/redhat/BUILD + cd URI-Find-0.16 + '[' /var/tmp/perl-URI-Find-0.16-root '!=' / ']' + rm -rf /var/tmp/perl-URI-Find-0.16-root + exit 0 Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.99301 + umask 022 + cd /usr/src/redhat/BUILD + rm -rf URI-Find-0.16 + exit 0 RPM: /usr/src/redhat/RPMS/noarch/perl-URI-Find-0.16-1.noarch.rpm SRPM: /usr/src/redhat/SRPMS/perl-URI-Find-0.16-1.src.rpm Installing package Preparing... ########################################### [100%] 1:perl-URI-Find ########################################### [100%] -- Done -- [root@localhost ~]#
正しくインストールされたか確認します。
[root@localhost ~]# rpm -q perl-URI-Find
perl-URI-Find-0.16-1 ← インストールされていれば表示される
この記事が気に入ったら
いいね!しよう
最新情報をお届けします