初めに
perlでIRCとのやり取りをするために、まずはチャンネルにログインをするプログラムを作成しようと思いました。
ですが、チャンネルにパスワードがかかっている時にアクセスの仕方がよく分からなかったので、逆転の発想でチャンネルのパスワードチェックマシーンを作成しました(汗)
ユーザアカウントでcpanmを利用しプログラムを作成したので、その事に関しての覚書として書きます。
目次
- サーバ設定
- plenv導入
- cpanm導入
- プログラム作成
- 参考ページ
1. サーバ設定
サーバはawsのEC2を利用しています。
お金は無いので、スペックはもちろんt2.microです。
OSはCentOS 6 x86_64 (2014_09_29) EBS HVMを利用しています。
私のサーバ初期設定は以下で書くつもりなので、ご確認ください。
サーバ初期設定(まだ)
まぁ、最低限 git がインストールされて、ircサーバ(私はngircdを用いています)が動いていればよいので、そちらは yum install およびサービスの実行でよろしくお願いします。
2. plenv導入
- 今回、ユーザアカウントにて環境を構築しなければいけませんので、それ用にplenvを利用します。他にも perlbrew というサービスもありますが、特にこちらを選んだ理由はありません。また調べます。
まずはplenvのインストールから。
製作者のtokuhirom氏のgitからインストールします。
$ git clone git://github.com/tokuhirom/plenv.git ~/.plenv
$ git clone git://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/
ここで、plenvを環境変数に設定します。
何度も書き込むことを防ぐために、grepで書き込まれているか確認するコマンドとorで条件分岐します。
$ grep 'export PATH="$HOME/.plenv/bin:$PATH"' ~/.bash_profile || echo 'export PATH="$HOME/.plenv/bin:$PATH"' >> ~/.bash_profile
$ grep 'eval "$(plenv init -)"' ~/.bash_profile || echo 'eval "$(plenv init -)"' >> ~/.bash_profile
次に、環境変数を現環境に適応させます。
$ exec $SHELL -l
続いて、今回利用するperlの環境のバージョンを指定します。
以下のコマンドで確認が可能です。
$ plenv install -l | less
どれを選べばいいかはよく分かりませんが、とりあえず最新を選びました。
2015/09/22 時点では 5.23.3 が最新であったので、自分はそれをインストールしました。
それをローカル環境に設定を保存するためのコマンドを実行します。
$ plenv install 5.23.3
$ plenv local 5.23.3
3. cpanm導入
こちらはコマンド一つです。
plenv install-cpanm
4. プログラム作成
プログラム用cpanモジュールをインストールします。
cpanm AnyEvent
cpanm AnyEvent::IRC::Client
他のperlのファイルを実行する場合でもそうですが、plenvの環境でperlを動かす場合は以下の文章をソースコードの最初においてください。
# !/usr/bin/env perl
実際に作成したソース(test.pl)は以下のリンクにあります
https://gist.github.com/Critical-Monkey/286afa75048e2c78fb54
実行は以下のコマンドからです。
/usr/bin/env perl test.pl
5. 参考ページ
plenv・cpanmインストール について
http://qiita.com/uchiko/items/127b91001b45ad0312f0
http://www.omakase.org/perl/plenv.html
IRCbotに関して 参考コード
https://gist.github.com/kanetann/1344571/c58c751208a3c3cd210712bab3c5a4ad70a46296
IRC error codeに関して
http://www.geocities.jp/stardust_ircnet/command.html