PHPメモ

自分も専門でやっているプログラムのメモです。
覚書みたいなもんかな

CPANとモジュールインストール

2007年03月08日 21時34分31秒 | CGI(Perl)
仕事の関係でLWPモジュールをインストールすることになったのですが、せっかくやったのでメモということで・・・

・何故LWPが必要なのか
 →SSLで接続するため

・インストールするサーバー環境
 OSは赤帽

・外部接続ツールは TeraTerm Pro

・ソースからconfigしてmakeしてinstallでやるのかと思ったけど、PerlモジュールインストールするのにCPANというアプリケーションがとても楽。
というか、それはインストールされていました。

取り敢えず、CPANを使ってインストールしる。
CPANコマンド入るときはroot権限でログインしておくこと。

#perl -MCPAN -e shell

これでCPANに入れます。

cpan>

と出ればOK。
いきなりインストールも出来て便利だけど、エラーとか出るとアンインストールしたりなんか嫌なので出来ればmakeしてmake testまでして置きたい。
ということで、慎重なインストール方法は

cpan> make LWP
cpan> make test LWP
cpan> make install LWP

で行きたい。
(知らないのでいきなりinstall LWPで行っちゃったけど)
ちなみに、やっていたサーバーでは、uninstallが行けるらしい。
これでモジュールのアンインストールが出来る訳だけど、エラーとか不具合が出てなければ必要ないかも。

ただ、LWP.pmだけインストールしてもダメなんだな・・・
SSLに繋ぐには最低でも

openSSL
Net::SSLeay

が必要らしい。
なんかよくわからんのでCrypt::SSLeayまでインストールしちゃったけど(爆

openSSLはオープンソースで
日本語だと
http://www.infoscience.co.jp/technical/openssl/
本家は
http://www.openssl.org/
が参考になるっぽい。

インストール手順はまず本家からopenSSLのソースをダウンロードしてきて、それをイロイロやってインストールします。

1.ソースを適当なディレクトリにアップロードする
2.tar.gzとか圧縮されているので解凍。
  % tar xvzf [openSSLのソース]
3.解凍されたディレクトリにcdします。
  % cd [解凍されたディレクトリ]
4.そこで./configします。
  % ./config [オプションつけるならつける]
  今回はオプションなし
5.makeします。
  % make
6.ソースにエラーが無いかテストします。
  % make test
7.エラーが出たらエラー解析。
  オプションとかなんか不明なエラーあるけど、エラー対策はきちんとする。
  エラーと言っておきながらエラーじゃない場合もあるらしい。
8.最後、インストールする(これってroot権限になってやったような気がする)
  # install

これで何とかopenSSLインストール完了。
SSLに繋ぐためにopenSSLのモジュールを使うだけなので設定は特にしません。
しなくてもモジュールだけ使えるし。

ということで、あとはこのopenSSLとLWPを繋ぐモジュールってのが必要らしくて、それがNet::SSLeayなんす。
CPANを使えば簡単にインストール出来るけど、ソースがあれば普通にmakeしてinstallしても出来るってばよ。
あ、ちなみにPerlモジュールのインストールの場合、./configじゃなくってperl Makefile.PLと書いても良いらしい。
あと、確か他にHTML::PerserとHTML::FormatterもLWPを使うために必要らしいのでこれも入れておく(CPANでOK)。

ってなことで、3点を入れればLWPでSSL通信が出来るようになる訳ですな。
Perlでソース組んでテストして、繋がったときの感動はこの上ないです。

ちなみに、いろいろ調べまくって惑わされたIO::Socket::SSLもインストールしようと思ったんだけど、CPANでもソースからもエラーに悩まされてインストール諦め。
情報探していたらバージョン下げれば(確か8→7みたいに?)いけるらしいけど、入れなくてもSSL通信できるのでノープロブレムです。

この作業の為に、分厚い本何冊も買って(合計6.8kg)、早朝から作業して、それでも足りないと思ったのが「英語読解力」でした(爆
英語、今本気で読めるようになりたい・・・

モジュールインストール後再起動は要らず、ただ反映されるまでに数分時間が掛かるみたいだけどね。
運用中のサーバーに影響は無かったっす。