PerlでExpectの続きのような感じですが、Expect.pmを使うためには、Pty.pmというモジュールが必要です。ない環境で実行すると、しょっぱなで、
Can't locate IO/Pty.pm in @INC...
というエラーが出ます。
で、このPty.pmは、IO::Ttyというモジュールに含まれているので、こちらをインストールします。
http://search.cpan.org/~rgiersig/IO-Tty-1.08/Tty.pm
ところが、です。こちらのモジュール、Expectなどの「普通の」モジュールとは違いまして、適当なところに置くだけでは使えません。いままでは、パッケージのフォルダの中にMakefile.PLとかあっても無視していたのですが、ちゃんとインストールしないといけません。
しかしさらに!このインストール処理では、中でしっかりCのコンパイラを使います。それもどうも、gccでなくてはいけないようです。また、他のライブラリとか、GNUのmakeなども入れる必要があります。
このあたり全く初心者のわたくしは、会社の人に教えを請いながらコツコツ入れてみました。
前置きはこのくらいで、導入手順です。
-----
その1~UNIXモジュールのインストール(rootでやります)
・gcc 3.4.6
・libiconv 1.11
・binutils 2.19
・make 3.81
1.sunfreeware.comから、以下のインストールモジュールを落としてくる
gcc-3.4.6-sol10-sparc-local.gz
libiconv-1.11-sol10-sparc-local.gz
binutils-2.19-sol10-sparc-local.gz
make-3.81-sol10-sparc-local.gz
2.各モジュールをgunzipで解凍
3.パッケージのインストール
特に順序は気にしなくても大丈夫みたいです。
#pkgadd –d gcc-3.4.6-sol10-sparc-local
#pkgadd –d libiconv-1.11-sol10-sparc-local
#pkgadd –d binutils-2.19-sol10-sparc-local
#pkgadd –d make-3.81-sol10-sparc-local
「上書きするか?」と質問されたら、とりあえずyで答えておきました。
その2~Perlモジュールのインストール(rootでやります)
・IO::Tty 1.08
1.上記のCPANから、インストールモジュールを落としてくる
2.gunzipで解凍してから、tarで適当なところに展開
(IO-Tty-1.08 というディレクトリが作られて、その中に展開されます。)
3.PerlのConfig.pmをgccでのインストール用のものに置き換える
目的はよく知らないのですが、このファイルを一時的に置き換えておかないと、インストールの時にエラーになります。
(逆に、元のConfig.pmを使う場合、というのがよくわからないので、永久的に置き換えてしまってもいいのかもしれません。)
サーバ上のPerlが5.8.4の場合です。
#cd /usr/perl5/5.8.4/lib/sun4-solaris-64int/
#cp –p Config.pm Config.pm.bak
#cp –p /usr/perl5/5.8.4/lib/Sun/Solaris/PerlGcc/Config.pm .
4.モジュールのインストール
#cd .../IO-Tty-1.08 (先ほど展開して作成されたディレクトリに移動
#perl Makefile.PL
何だかよくわからない記号がいっぱい出てきて、makefileの作成を行っているようです。
このモジュールは、仮想ターミナルを作成する、ということを行うので、システムの構成情報を取ってきて、設定に反映させているのだと思います。
#make
#make test
#make install
この3つは、どうしてこの順序でやるのか理解していないのですが、まあ、定番ですね。make testが一番の山場のようで、ここが問題なく通れば、make installは基本的に大丈夫みたいです。
5.Config.pmを元に戻す
#cd /usr/perl5/5.8.4/lib/sun4-solaris-64int/
#mv Config.pm.bak Config.pm
6.結果の確認
#/usr/perl5/5.8.4/bin/perldoc Tty.pm
これで結果が確認できれば、ちゃんとインストールされているようです。
ちなみに、インストールしたファイルの一覧は、こちらにあります。
/usr/perl5/site_perl/5.8.4/sun4-solaris-64int/auto/IO/Tty/.packlist
モジュールのアンインストール、という処理はないのですが、この一覧のファイルを削除すれば、元に戻るようです。
-----
ここまでやるのだったら、Expect.pmもインストーラを使ってちゃんとインストールしてもよいかもしれないですね。なにぶん自分は、間借りしているサーバだったので、システムレベルのインストールは最小限にしたかったのです。
あ、当然ながら、上記の作業の前には、/usr/local/bin/ や、/usr/sfw/bin の下に既にgccが入っていないかどうか、とかは確認しておきましょう。入っていれば、パスを通すだけで使えるはずです。
2009年9月4日金曜日
登録:
投稿 (Atom)