カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

Ubuntu 10.10でGrowl::Anyを使うまでの手順

概要: 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::TwigXML::Parserを要求していて、 さらにそのXML::Parserexpatのヘッダを要求するので、 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をインストールするための手順でした。