Net::DBus を入れるまでの道のり
- @mattn さんの作った Growl::Any でなんかつくりたくなって、Linux (Ubuntu 10.10)で使えないかと思ってソースみたら、 Net::DBus を使ってる Desktop::Notify に対応してることがわかったので、せっかくだからインストールしてみようということで、Ubuntu 10.10 で perl-5.12.2 on perlbrew な環境で、Growl::Any を使えるようにするまでの道のりをまとめてみる
環境
OS: Ubuntu 10.10 Japanese Remix (32bit) Perl: perl-5.12.2 on perlbrew CPAN: cpanm
Net::DBus のインストール
まず、Net::DBusをコンパイルするには DBus のヘッダが必要なので、Ubuntu ソフトウェアセンターか、apt-get、あるいはaptitudeで、libdbus-1-devを入れます。
で、これでNet::DBusがコンパイルできるかと思いきや、Net::DBusが require しているXML::TwigがXML::Parserを要求していて、さらにそのXML::Parserがexpatのヘッダを要求するので、libexpat1-devをこれまたインストールします。
これでXML::Parserがインストール可能となり、同時にXML::Twigもインストール可能となるので、あとは端末で適当に、
$ cpanm -v Net::DBus
すればNet::DBusがインストールされます。
Desktop::Notify のインストール
次にGrowl::Anyが使ってるDesktop::Notifyをインストールします。
これは特につまらずに、
$ cpanm -v Desktop::Notify
すれは OK
Growl::Any のインストール
これで下準備は整ったので、cpanmを使って、
$ cpanm -v Growl::Any
すれはGrowl::Anyがインストールされます。
ということで作業は終了
以上でGrowl::Anyのインストール作業は終了です。
あとは、適当なスクリプトで、
#!/usr/bin/env perl use strict; use warnings; use Growl::Any; my $growl = Growl::Any->new; $growl->register('MyApp', [[ 'tweet' ]] ); $growl->notify('tweet', 'My Title', 'hello word!'); 1;
って感じでコードを書けば、DBus の notify を使って通知がきます。
さらに嬉しいことに、Growl::Anyは Windows とか Mac とか Linux とかの通知環境を抽象化してくれるので、スクリプトに環境依存なコードが含まれていない限り、他の環境でも問題なく動作させることができます。
まあGrowl::Any使って何作るかは考えてませんでしたが、これでGrowl::Anyを使う環境は整ったので、また気が向けば何かを作って公開したいかと思います。
つーわけでGrowl::Anyをインストールするための手順でした。