2010年12月29日水曜日

TwidgeをUbuntuで使えるようにする。

Ubuntuのレポジトリに入ってるTwidgeはバージョンが、1.0.2で、9月くらいからTwitterの新しい認証方法、OAuthに対応していないため使えない。
で、公式サイトから、OAuth対応の1.0.6のパッケージをダウンロードしたのだが、今度は、twidge update '(ツイート)' の(ツイート)の部分に日本語が(正確に言えば、UTF8のエンコード文字)入ると、文字化けするんで、TwidgeがUTF8に対応してないくさい。
ってことで、ネットから見つけた情報を元にUTF8に対応出来るよう、ソースコードに修正を加えて、ビルドし、インストールすることに。これが大変だった。

まず、Twidgeの公式サイト(http://hackage.haskell.org/package/twidge)から、ソースをダウンロード、解凍。
コンパイル環境ghcをインストール。
sudo aptitude install ghc6 
解凍したディレクトリに移って、ここ(https://gist.github.com/423901)の情報を元に、以下のファイルを次のとおりに編集する。
twidge.cabal
ConfigFile, directory, HSH, regex-posix, utf8-string, binary,
の部分を
ConfigFile, directory, HSH, regex-posix, utf8-string >= 0.3.5, binary,
 に。

twidge.hs
import Codec.Binary.UTF8.String (decodeString, isUTF8Encoded)
を追加。
argv <- getArgs
の部分を
argv <- return . (map decodeHack) =<< getArgs
に。
optionsの直前に、
where
-- until GHC #3309 is fixed
decodeHack s = if isUTF8Encoded s then decodeString s else s
を追加。

ghc --make -o setup Setup.lhs
 ./setup configure
を実行。多分、依存関係でいろいろ足りないとエラーが出るはず。
なので、ここで、aptitudeを使って、適宜インストール。エラーで出たものをaptitude searchで探してやると、libghc6-*-devってのがよく引っかかるので、それを逐一インストールしていく。ただ、依存関係で1つインストールすると、他のも一緒に引っかかるので、./setup configureをやりながら調子をみると良いかと。
ちなみに、私のやった順(たぶん)。
curl 
libghc6-haxml-dev-1.13.3-37cdb
libghc6-hoauth-dev
libghc6-configfile-dev
libghc6-hsh-dev
で、ここまでやると、最後の最後まで、UTF8-string >=0.3.5が残るはず。しかし、UbuntuのレポジトリではUTF8-stringはインストールできない。
なので、ダウンロードしてコンパイル、インストールするしかないっぽい。(これに気づくのに時間がかなりかかった。)
ここ(http://hackage.haskell.org/packages/archive/utf8-string/)から0.3.5以上をダウンロードし(0.3.6が最新だったので、新しいのを入れた)、展開。
runhaskell Setup.lhs configure
runhaskell Setup.lhs build
sudo runhaskell Setup.lhs install 
でビルド、インストール。
ここまできたら、もうゴールは見える。
twidgeのソースのディレクトリに戻り、
 ./setup configure
 ./setup build
ここで、UTF8-stringのバージョンを、twidgeのコンポーネントが、別々に2つ必要としてて、おかしくなるかもよ、とか言われても、無視。
 sudo ./setup install
で、インストール完了!日本語でtwidgeからツイートできる!ああ、疲れた。

0 件のコメント:

コメントを投稿