cpan2rpmの導入

<<ホームへ戻る

合計:
昨日:
今日:

更新日:2011/11/17

Perlモジュールのパッケージ管理を行いやすくするため、 Perlモジュールパッケージ管理システム(cpan2rpm)を導入して、 PerlモジュールをRPMパッケージでインストールできるようにする。

Perlモジュールをインストールする方法は他にもある。以下の四つの方法を示す。

@cpan2rpmをインストールして、このコマンドでperlモジュールをインストールする(依存パッケージはインストールされない)

Ayumでインストールする(依存パッケージもインストールされるがリポジトリの追加が必要)

Bcpanflute2でインストールする(依存パッケージはインストールされない)

CCPANと対話形式でインストールする(依存パッケージはインストールされない)

 

 
◆cpan2rpm のインストール(centos5までは確認) <<TOP

サーバーが混雑している場合が多いようです。辛抱強くアクセスしてみてください。最新版は、ダウンロードサイトで確認してください。

[root@server ~]# wget ftp://arix.com/cpan2rpm-2.028-1.noarch.rpm ← cpan2rpmダウンロード
--21:47:21--  ftp://arix.com/cpan2rpm-2.028-1.noarch.rpm
           => `cpan2rpm-2.028-1.noarch.rpm'
arix.com をDNSに問いあわせています... 71.106.26.197
arix.com|71.106.26.197|:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。    ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。  ==> CWD は必要ありません。
==> PASV ... 完了しました。    ==> RETR cpan2rpm-2.028-1.noarch.rpm ... 完了しました。
長さ: 63,503 (62K) (確証はありません)

100%[==========================================================>] 63,503        41.90K/s             

21:47:24 (41.78 KB/s) - `cpan2rpm-2.028-1.noarch.rpm' を保存しました [63503]

[root@server ~]# rpm -Uvh cpan2rpm-2.028-1.noarch.rpm ← cpan2rpmインストール
Preparing...                ########################################### [100%]
1:cpan2rpm ########################################### [100%] [root@server ~]# rm -f cpan2rpm-2.028-1.noarch.rpm ← ダウンロードしたファイルを削除

 

 
◆cpan2rpm の動作確認 <<TOP

試しにJCODEをインストールしてみる

[root@server ~]# cpan2rpm --install Jcode ← Jcodeのインストール

-- cpan2rpm - Ver: 2.028 --
Signatures not set up
Upgrade check
Fetch: HTTP

-- module: Jcode --
Using cached URL: http://search.cpan.org//CPAN/authors/id/D/DA/DANKOGAI/Jcode-2.06.tar.gz
Tarball found - not fetching
            ・
      ・
書き込み中: /usr/src/redhat/SRPMS/perl-Jcode-2.06-1.src.rpm
書き込み中: /usr/src/redhat/RPMS/i386/perl-Jcode-2.06-1.i386.rpm
書き込み中: /usr/src/redhat/RPMS/i386/perl-Jcode-debuginfo-2.06-1.i386.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.16189
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd Jcode-2.06
+ '[' /var/tmp/perl-Jcode-2.06-root '!=' / ']'
+ rm -rf /var/tmp/perl-Jcode-2.06-root
+ exit 0
Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.16189
+ umask 022
+ cd /usr/src/redhat/BUILD
+ rm -rf Jcode-2.06
+ exit 0
RPM: /usr/src/redhat/RPMS/i386/perl-Jcode-2.06-1.i386.rpm
SRPM: /usr/src/redhat/SRPMS/perl-Jcode-2.06-1.src.rpm
Installing package
Preparing...                ########################################### [100%]
   1:perl-Jcode             ########################################### [100%]
-- Done --
[root@server ~]# rpm -q perl-Jcode ← インストールされたか確認してみる。
perl-Jcode-2.06-1
[root@server ~]# rpm -e perl-Jcode ← perl-Jcodeのアンインストール。
[root@server ~]# rpm -q perl-Jcode ← perl-Jcodeがインストールされているか確認。
パッケージ perl-Jcode はインストールされていません
[root@server ~]#	  
		  

 

◆yumでインストール <<TOP

試しにperl-Crypt-DSAをインストールしてみる。

[root@server ~]# yum install perl-Crypt-DSA ← perl-Crypt-DSAのインストール
   ・
   ・
   ・
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing     : perl-Data-Buffer-0.04-1.2.el6.rf.noarch                                 1/4 
  Installing     : perl-File-Which-1.09-2.el6.noarch                                       2/4 
  Installing     : perl-Digest-SHA1-2.12-2.el6.i686                                        3/4 
  Installing     : perl-Crypt-DSA-1.16-1.el6.rf.noarch                                     4/4 
    ↑ 依存パッケージもインストールされる
Installed:
  perl-Crypt-DSA.noarch 0:1.16-1.el6.rf                                                        

Dependency Installed:
  perl-Data-Buffer.noarch 0:0.04-1.2.el6.rf         perl-Digest-SHA1.i686 0:2.12-2.el6        
  perl-File-Which.noarch 0:1.09-2.el6              

Complete!
[root@server ~]# 

 

◆cpanflute2でインストール <<TOP
 

@cpanfluteのインストール

rpmforgeリポジトリを追加しておく必要があります。

[root@server ~]# yum -y install perl-RPM-Specfile ← perlモジュールのインストール 
   ・
   ・
   ・
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing     : 1:perl-Package-Constants-0.02-115.el6.i686                              1/5 
  Installing     : 1:perl-IO-Zlib-1.09-115.el6.i686                                        2/5 
  Installing     : perl-Archive-Tar-1.58-115.el6.i686                                      3/5 
  Installing     : perl-YAML-0.70-4.el6.noarch                                             4/5 
  Installing     : perl-RPM-Specfile-1.51-1.el6.rf.noarch                                  5/5 

Installed:
  perl-RPM-Specfile.noarch 0:1.51-1.el6.rf                                                     

Dependency Installed:
  perl-Archive-Tar.i686 0:1.58-115.el6                perl-IO-Zlib.i686 1:1.09-115.el6         
  perl-Package-Constants.i686 1:0.02-115.el6          perl-YAML.noarch 0:0.70-4.el6            

Complete!
[root@server ~]# 		  

A試しにJcodeをインストールしてみる。SRPMパッケージからビルドする方法。

[root@server ~]# mkdir -p rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}  
         ↑ 必要なディレクトリ作成

[root@server ~]# cd /root/rpmbuild/SOURCES ← 移動 
[root@server SOURCES]# wget http://search.cpan.org/CPAN/authors/id/D/DA/DANKOGAI/Jcode-2.07.tar.gz
         ↑ perlモジュールダウンロード
   ・
   ・

`Jcode-2.07.tar.gz' に保存中

100%[=====================================================>] 350,179     1.70M/s 時間 0.2s    

2011-11-11 17:48:14 (1.70 MB/s) - `Jcode-2.07.tar.gz' へ保存完了 [350179/350179]

[root@server SOURCES]# cpanflute2 Jcode-2.07.tar.gz ← cpanflute2コマンド実行 
書き込み完了: /root/rpmbuild/SRPMS/perl-Jcode-2.07-8.src.rpm
実行中(--clean): /bin/sh -e /var/tmp/rpm-tmp.fklvC8
+ umask 022
+ cd /root/rpmbuild/BUILD
+ rm -rf Jcode-2.07
+ exit 0

[root@server SOURCES]# cd ../SRPMS ← ディレクトリ移動 
[root@server SRPMS]#  rpmbuild --rebuild perl-Jcode-2.07-8.src.rpm ← rpmbuild実行
perl-Jcode-2.07-8.src.rpm をインストール中です。
   ・
   ・
   ・
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: ← こんなエラーが出たら
BEGIN failed--compilation aborted at Makefile.PL line 6.
エラー: /var/tmp/rpm-tmp.PnsLY2 の不正な終了ステータス (%build)


RPM ビルドエラー:
    /var/tmp/rpm-tmp.PnsLY2 の不正な終了ステータス (%build)
[root@server SRPMS]# cd
[root@server ~]# yum install ExtUtils-MakeMaker ← ないといわれているのをyumでインストール
   ・
   ・
   ・
Running Transaction
Warning: RPMDB altered outside of yum.
  Installing     : perl-ExtUtils-MakeMaker-6.55-115.el6.i686                               1/4 
  Installing     : perl-Test-Harness-3.17-115.el6.i686                                     2/4 
  Installing     : 4:perl-devel-5.10.1-115.el6.i686                                        3/4 
  Installing     : 1:perl-ExtUtils-ParseXS-2.2003.0-115.el6.i686                           4/4 

Installed:
  perl-ExtUtils-MakeMaker.i686 0:6.55-115.el6                                                  

Dependency Installed:
  perl-ExtUtils-ParseXS.i686 1:2.2003.0-115.el6      perl-Test-Harness.i686 0:3.17-115.el6     
  perl-devel.i686 4:5.10.1-115.el6                  

Complete!
[root@server ~]# cd /root/rpmbuild/SRPMS ← ディレクトリ移動
[root@server SRPMS]# rpmbuild --rebuild perl-Jcode-2.07-8.src.rpm ← 再挑戦 
perl-Jcode-2.07-8.src.rpm をインストール中です。
   ・
   ・
   ・
+ umask 022
+ cd /root/rpmbuild/BUILD
+ rm -rf Jcode-2.07
+ exit 0
[root@server SRPMS]# rpm -Uvh perl-Jcode-2.07-8.src.rpm
   1:perl-Jcode             ########################################### [100%]
[root@server SRPMS]# rm -f perl-Jcode-2.07-8.src.rpm
[root@server SRPMS]# 

BNet-NISを取得し、ダイレクトにRPMを作成する 方法。

[root@server ~]# cd /root/rpmbuild/SOURCES ← ディレクトリ移動 
[root@server SOURCES]# wget http://search.cpan.org/CPAN/authors/id/E/ES/ESM/Net-NIS-0.43.tar.gz 
            ↑ Net-NISをダウンロード
   ・
   ・ 

2011-11-11 19:22:04 (373 KB/s) - `Net-NIS-0.43.tar.gz' へ保存完了 [16484/16484]

[root@server SOURCES]# cpanflute2 --buildall Net-NIS-0.43.tar.gz ←  --buildallオプション使用
   ・
   ・
   ・
実行中(--clean): /bin/sh -e /var/tmp/rpm-tmp.tDbwcs
+ umask 022
+ cd /root/rpmbuild/BUILD
+ rm -rf Net-NIS-0.43
+ exit 0
[root@server SOURCES]# cd ../RPMS/i386 ← ディレクトリ移動
[root@server i386]# rpm -Uvh perl-Net-NIS-debuginfo-0.43-8.i386.rpm ← rpmインストール
準備中...                ########################################### [100%]
   1:perl-Net-NIS-debuginfo ########################################### [100%]
[root@server i386]# 

 

 
 
 
◆cpanでインストール <<TOP
cpanで対話方式でインストールするためperl-CPANをインストールする(されていない場合)
cpanの場合、アンインストールが面倒です。上記のrpm化してインストールする方が後始末が簡単。
[root@server ~]# yum -y install perl-CPAN ← perl-CPANのインストール

   ・
   ・
   ・
Transaction Test Succeeded
Running Transaction
  Installing     : perl-CPAN-1.9402-115.el6.i686                                            1/1 

Installed:
  perl-CPAN.i686 0:1.9402-115.el6                                                               

Complete!
[root@server ~]# perl -MCPAN -e shell ← cpanコマンド実行
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.9402)
Enter 'h' for help.

cpan[1]> install Jcode ← Jcodeをインストールしてみる
CPAN: Storable loaded ok (v2.20)
Going to read '/root/.cpan/Metadata'
  Database was generated on Tue, 15 Nov 2011 06:27:50 GMT
Running install for module 'Jcode'
CPAN: Data::Dumper loaded ok (v2.124)
'YAML' not installed, falling back to Data::Dumper and Storable to read prefs '/root/.cpan/prefs'
   ↑ YAMLがインストールされていないのでJcodeをインストールできない
Running make for D/DA/DANKOGAI/Jcode-2.07.tar.gz
   ・
   ・
   ・
cpan[2]> install YAML ← YAMLをインストール
Running install for module 'YAML'
'YAML' not installed, falling back to Data::Dumper and Storable to read prefs '/root/.cpan/prefs'
Running make for I/IN/INGY/YAML-0.77.tar.gz
CPAN: LWP::UserAgent loaded ok (v5.833)
   ・
   ・
   ・
  INGY/YAML-0.77.tar.gz
  /usr/bin/make install  -- OK
CPAN: YAML loaded ok (v0.77)

cpan[3]> install Jcode ← もう一度Jcodeのインストール
Running install for module 'Jcode'
Running make for D/DA/DANKOGAI/Jcode-2.07.tar.gz
  Has already been unwrapped into directory /root/.cpan/build/Jcode-2.07-tB3k4H
  Has already been made
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/append.t ... ok     
t/convert.t .. ok     
t/getcode.t .. ok   
t/h2z.t ...... ok   
t/jfold.t .... Can't locate Test/More.pm in @INC (@INC contains: ← こんなエラーが出たら 
   ・
   ・
   ・
cpan[6]> install Test::More ← ないといわれているTest::Moreのインストール
Running install for module 'Test::More'
Running make for M/MS/MSCHWERN/Test-Simple-0.98.tar.gz
Fetching with LWP:
   ・
   ・
  /usr/bin/make install  -- OK

cpan[7]> install Jcode ← インストール再トライ
Running install for module 'Jcode'
Running make for D/DA/DANKOGAI/Jcode-2.07.tar.gz
   ・
   ・
   ・
  DANKOGAI/Jcode-2.07.tar.gz
  /usr/bin/make install  -- OK

cpan[18]> m Jcode ← Jcodeインストール確認
Module id = Jcode
    DESCRIPTION  Japanese Encodings Handler
    CPAN_USERID  DANKOGAI (Dan Kogai <dankogai+cpan@gmail.com>)
    CPAN_VERSION 2.07
    CPAN_FILE    D/DA/DANKOGAI/Jcode-2.07.tar.gz
    UPLOAD_DATE  2008-05-10
    DSLIP_STATUS Rmhhp (released,mailing-list,hybrid,hybrid,Standard-Perl)
    MANPAGE      Jcode - Japanese Charset Handler
    INST_FILE    /usr/local/share/perl5/Jcode.pm
    INST_VERSION 2.07


cpan[19]>  quit ← cpanを出る
Terminal does not support GetHistory.
Lockfile removed.
[root@server ~]# 

 

◆広告等 <<TOP
 

 
   
TOPへ

Copyright(C) 2005-2011 arisonserver. All rights reserved.