ActiveState Home Page       Win32 FAQ




文書名

perlwin32faq11 - PPMを使ったモジュールインストール





概要

PPMによる Perl for Win32 用モジュールのインストールおよびアップグレード方法


Perl Package Manager (PPM)とは何ですか?

Perl Package Manager (PPM)は、Win32互換のPerlモジュールとエクステンション(パッケージ)を管理するためのコマンドラインインターフェースを提供するものです。 PPMを使うと、リポジトリへのアクセス、システムへのパッケージのインストール・削除が可能になります。また、PPMを使ってパッケージをインストールしたものについては、最新版へのアップデートもPPMで簡単に行えます。


PPMをインストールするにはどうすればよいのでしょうか?

Perl for Win32 をインストールすると、PPMも一緒にインストールされます。Perl for Win32 は、ActivePerlのインストーラでインストールします。


PPMを実行するにはどうすればよいのでしょうか?

PPMを実行する前に、インターネットに接続しておかなければなりません。インターネット接続がファイアウォールやプロキシ経由の場合、環境変数HTTP_proxyにプロキシサーバ名をセットしておきます。プロキシサーバがユーザ名・パスワードを要求してくる場合は、環境変数HTTP_proxy_userとHTTP_proxy_passに値をセットします。詳しくは、 PPM、プロキシ、ファイアウォールを参照してください。

PPMを実行するには、コマンドプロンプト画面で「ppm」と入力します。


PPMを使用するにはどうすればよいのでしょうか?

近道:利用可能な全パッケージのリストを得るには、PPMコマンドプロンプトで、「search」と入力します。「search」コマンドで表示された<パッケージ名>を確認して、「install <パッケージ名>」と入力します。 PPMでインストールしたパッケージの一覧を調べるには、「query」コマンドを使います。

パッケージリストのスクロールが早すぎる場合は、「set more <number>」コマンドを使うとよいでしょう。<number>分のパッケージが表示されると、一旦リスト表示を停止するようになります。次回以降のPPMセッション用に設定を保存するには、「set save」コマンドを使います。

デフォルトでは、PPMはActiveState社のパッケージリポジトリを使用しますが、これは「set」で設定変更可能です。詳細は、下記のパッケージリポジトリはどこにあるのですか?を参照してください。

以下は、主なPPMコマンドの一覧です(特定の<コマンド>の詳しい使用方法を調べるには、PPMプロンプトで「help <コマンド>」と入力します)。[ブランケット]内の項目はオプションです。

コマンド 機能
genconfig 標準出力に最小のPPM設定ファイルを出力。
help [command] コマンド一覧、もしくは、コマンドのヘルプを表示。
info [package1...] インストール済みのパッケージのサマリを出力。
install package1 [package2...] 指定したパッケージをインストール
quit プログラムを終了。
query [pattern] インストール済みのパッケージのリスト、もしくはpatternを含むパッケージのリストを表示。
query /abstract [pattern] インストール済みのパッケージの概説のリスト、もしくはpatternを含むパッケージの概説のリストを表示。
remove package1 [package2...] システムから指定したパッケージを削除。
search [pattern] 利用可能なパッケージのリスト、もしくはpatternを含むパッケージのリストを表示。
search /abstract [pattern] 利用可能なパッケージの概説のリスト、もしくはpatternを含むパッケージの概説のリストを表示。
set 現在のオプションをセット/表示。
set save 現在のオプションを保存。
summary [package1...] 利用可能なパッケージのサマリを出力。 /td>
verify [package1...] インストール済みのパッケージが最新のものか確認。
verify /upgrade [package1...] パッケージのアップグレード版をインストール。

patternは正規表現のような検索文字列です。 たとえば、次のコマンドで検索する場合、

search ODBC|DBI

(これは「ODBCとDBIという文字列のどちらか、または両方を含んでいるパッケージを検索する」という意味ですが、)結果は以下のようになります。

Apache-DBI
DBD-ODBC
DBI
FindBin
Win32-ODBC

'search /abstract [pattern]'を使う場合、パッケージ名だけではなく、パッケージファイルの概説部も検索されます。


パッケージリポジトリはどこにあるのでしょうか?

PPMは、デフォルトではActiveStateのパッケージリポジトリを使いますが、インターネット上には他のリポジトリもあります。現時点では下記のリポジトリが確認されています。:

http://www.activestate.com/packages ActiveState社のデフォルトパッケージリポジトリ
http://Jenda.Krynicky.cz/perl Jan Krynickyのパッケージリポジトリ
http://www.roth.net/perl/packages/ Roth Consulting社のパッケージリポジトリ
http://www.xray.mpe.mpg.de/~ach/ptk/ppm Achim Bohnetのパッケージリポジトリ
http://rto.dk/packages/ RTO社のパッケージリポジトリ (大半は上記のミラー)

http://www.fastnetltd.ndirect.co.uk/Perl/zips/ Fastnet Software Ltdのパッケージ - 現時点では、PPMからの直接アクセスは不可。

これらのパッケージを使うには、PPMを起動し、プロンプトで次のように入力します。

set repository 名前 URL

名前は、PPMから参照しようとしているリポジトリの名前で、URLはそのリポジトリへのURLです。 たとえば、次のように入力します。

set repository JENDA http://Jenda.Krynicky.cz/perl

次に'search'を行う時は、ActiveState社のパッケージリポジトリだけではなく、追加したリポジトリも検索します。 PPMを終了する前に、'set save'コマンドを入力して、変更した設定内容を保存しておいた方がよいでしょう。


PPMパッケージを作るにはどうすればよいのでしょうか?

他機でも使用できるようにPPMパッケージを作りたい場合は、下記のようにするとよいでしょう。:

Makefile.PL内にAUTHORとABSTRACTパラメータをセットします。これは、 Perlのバージョンが5.005以上であれば、WriteMakefileにパラメータを渡すだけのことです。しかし、 5.005より前のPerlにはこれらの追加パラメータはありませんでしたし、あっても無視されます。 以下はMakefile.PLのサンプルです。:

use ExtUtils::MakeMaker;
# Makefileの内容にどう作用するかについては
# lib/ExtUtils/MakeMaker.pmを参照
WriteMakefile(
    'NAME' => 'Term::Control',
    'VERSION_FROM' => 'Control.pm', # $VERSIONを見つける
    ($] ge '5.005') ? (
        'AUTHOR' => 'Johnny Doel (johnny@doel.org)',
        'ABSTRACT' => 'Control the IO for terminals',
    ) : (),
);

それから、次のコマンドでアーカイブを作成します。

perl Makefile.PL
nmake

生成されたファイルは、nmakeを実行した時に作成されるblibディレクトリに格納されます。 このファイルは、次のようにして一つのアーカイブにまとめます。

tar cvf package.tar blib
gzip --best package.tar

これで、package.tar.gzというアーカイブができました。 次は、以下のようにしてPPDファイルを作成します。:

nmake ppd

出来たPPDファイルは編集して、<CODEBASE HREF="" />にパッケージアーカイブのロケーションを追加しなければなりません。

nmakeは、 ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe で入手することができます。 tarとgzipは、 http://www.itribe.net/virtunix/ から入手可能です。


PPM、プロキシ、ファイアウォール

プロキシサーバやファイアウォールを使っていると、PPMの実行に問題が生じることがあります。解決策は以下の通りです。

注意) このドキュメントによる修正で全く効果が出なかった場合、 ここから個別パッケージをダウンロードし、ZIPファイルに入っているREADMEファイルの指示に従ってインストールしてください。 固定リポジトリディレクトリの.ppdファイル及びそのしたのx86ディレクトリの.tar.gzファイルで構成されるローカルなリポジトリを作ることができます。

  1. 環境変数をセットする

最大で3つの環境変数をセットする必要があります。

Windows NTでは
"マイ コンピュータ"を右クリックし、"プロパティ"をクリックして"環境"タブを選択します。 それが現在の環境設定内容です。ここで、次の修正を行います。:

  1. 値としてプロキシ名をセットしたHTTP_proxyを追加します(先頭には"http://"を付けておかなければなりません)。必要であれば、末尾にコロンとプロキシ用ポート番号を付加します。;例) "http://proxy:8080"
  2. プロキシサーバが、ユーザ名及び/あるいはパスワードを要求する場合は、HTTP_proxy_userとHTTP_proxy_passを追加設定します。値には、それぞれユーザ名とパスワードをセットします。

Windows 95では
AUTOEXEC.BATファイルに次の行を追加したら、変更内容を有効にするためにリブートします。:

  1. SET HTTP_proxy=<your proxy server (先頭には"http://" >を付けなければなりません。必要であれば、、末尾にコロンとプロキシ用ポート番号を付加します。;例) SET HTTP_proxy=http://proxy:8080
  2. SET HTTP_proxy_user=<あなたのユーザ名> (必要な場合のみ)
  3. SET HTTP_proxy_pass=<あなたのパスワード> (必要な場合のみ)

  1. PPMを使ってみる

インターネットに接続して、再度PPMを使ってみてください。 まず、File-Slurpのような小さなパッケージをインストールしてみるとよいでしょう。 指定したパッケージ用のppdファイルが見つからないというエラーが出る場合は、うまくいっていないということです。

  1. 詳細情報とヘルプ

上記のヒントに不明な点がある場合、こちらを参照してください。



著者および著作権について

この FAQ は、元々Evangelo Prodromou evangelo@endcontsw.comが作成し、保守していたものです。 現在、この文書は、O'Reilly社のBrian Jepson、ActiveState社のDavid GroveとDavid DmytryshynとMurray Nesbitt、RTO社のHenning Michael Møller-Nielsen、Kevin Meltzerが改訂・更新しています。

このFAQはパブリックドメインですが、使用する場合はオリジナルの作者について明示してください。

ActiveState Home Page       Win32 FAQ