MIRACLE
メールサービス申込 ユーザー登録&ログイン パートナー情報
お問い合わせ FAQ サイトマップ
MIRACLE LINUXの特長 製品紹介 サービス案内 購入 サポート 技術フォーラム

プロフィール

日本発のリナックス企業、ミラクル・リナックスで奮闘する社員のブログです。

ミラクル関連リンク

採用情報

サイト検索

最近のトラックバック

2010年2月

  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            

« 都心を離れて、GWぶらり一人旅 | メイン | 超整理法 »

Perl の CPAN モジュールの RPM 化

こんにちは、moriyama です。

次期 Asianux (Asianux Server 3) に、Perl でのエンコーディング変換を行なう Encode モジュールに eucJP-ms などのエンコーディングを追加するために、Encode::EUCJPMS モジュールを入れることになりました。

CPAN に登録されている Perl のモジュールは、cpan2rpm というツールで自動的に spec ファイルを生成して RPM パッケージ化する事ができる為、このツールを使わせてもらいました。

それでは、実際に cpan2rpm を使って、Encode::EUCJPMS モジュールを RPM 化してみましょう。

cpan2rpm のビルド&インストール

  1. cpan2rpm-2.028.tar.gz をダウンロード
    • http://perl.arix.com/cpan2rpm/ からは cpan2rpm の tarball をダウンロードできなかったため、他のミラーサイトから cpan2rpm-2.028.tar.gz をダウンロードしてきました。
  2. tarball の展開
    $ tar zxvf cpan2rpm-2.028.tar.gz
  3. Makefile、spec ファイルの生成
    $ cd cpan2rpm-2.028
    $ perl Makefile.PL
  4. 一般ユーザーの権限で RPM パッケージを作成できるように ~/.rpmmacros に次の様な設定をしておく。
    %_topdir  /home/ユーザー名/rpm
  5. ディレクトリ作成
    mkdir -p ~/rpm/{RPMS,SRPMS,SOURCES,SPECS,BUILD}
  6. ファイルのコピー
    $ cp ../cpan2rpm-2.08.tar.gz ~/rpm/SOURCES
    $ cp cpan2rpm.spec ~/rpm/SPECS
    $ cd ~/rpm/SPECS
  7. cpan2rpm パッケージのビルド
    $ rpmbuild -ba cpan2rpm.spec
  8. cpan2rpm パッケージのインストール
    $ su
    # rpm ../RPMS/noarch/cpan2rpm-2.028-1.noarch.rpm
    # exit

perl-Encode-EUCJPMS パッケージの作成

  1. spec ファイルの生成
    $ cpan2rpm --spec-only Encode::EUCJPMS
  2. spec ファイルの修正
    次の修正をしておきます。
    • buildarch: noarch の削除
    • %post, %postun の追加 - use Encode だけで Encode::EUCJPMS の追加エンコーディングを使えるようにする為。
      %post
      enc2xs -C > /dev/null 2>&1
      exit 0
      
      %postun
      enc2xs -C > /dev/null 2>&1
      exit 0
    • release 番号のアップ
    • その他、必要と思われる修正
    • %changelog への修正内容の追記
  3. perl-Encode-Encode パッケージのビルド
     $ rpmbuild -ba Encode-EUCJPMS.spec

インストール&確認

  1. perl-Encode-Encode パッケージのインストール
    $ su
    # rpm -ivh ../RPMS/i386/perl-Encode-EUCJPMS-*.rpm
    $ exit
  2. piconv コマンドで確認
    $ piconv -l | grep -i eucjp-ms
    eucJP-ms が表示されれば、OK です。

まだ、動作確認はしていませんが、convmv コマンドでも、Encode モジュールを使っているので、eucJP-ms で運用されいた Samba 3.0 を UTF-8 環境へ以降する場合などに、convmv が利用できる事でしょう。

また、Encode::EUCJPMS モジュールには、eucJP-ms 以外にも、Wincows の日本語のコードページとして cp51932 (EUC-JP), cp50220 (ISO-2022-JP 半角カナ→全角カナ変換), cp50221 (ISO-2022-JP + 半角カナ) も含まれているので、Encode モジュール標準でサポートしている cp932 と合わせてつかうと、Perl による Web アプリケーションでの Windows 機種依存文字を適切に処理できるようになるでしょう。

Windows とのデータ交換をスムースに行なえるようにすることで、Linux と Windows との間の障壁を低くして、Linux が得意なところでは、Linux を今まで以上に活用していただけたらと願っています。

トラックバック

このページのトラックバックURL:
http://www.typepad.jp/t/trackback/4447/6928282

このページへのトラックバック一覧 Perl の CPAN モジュールの RPM 化:

コメント

cpan2rpm というツールはCPANからのDL(以下)も自動的に(内部で?)やってくれるのですね。勉強になりました。機会があれば使ってみようと思います:-)

# perl -MCPAN -e shell
cpan> get Encode::EUCJPMS
cpan> install Encode::EUCJPMS
cpan> quit
#

kyagi さん、コメントありがとうございます。

cpan2rpm は、オプション指定なしだと CPANからダウンロードしてきて、RPM パッケージの作成までをやってくれます。
今回は、--spec-only オプションを付けて、spec ファイルを作る所で、一旦止めて、spec ファイルを修正してから RPM パッケージを作るようにしました。

インストールは、rpm コマンドを使うようにします。

コメントを投稿

会社情報 採用情報 個人情報保護方針 商標等取り扱い事項 English
Copyright(c)2000-2006 MIRACLE LINUX CORPORATION. All Rights Reserved.