2009-01-30 [長年日記]
_ URIベース pear package を管理しやすくする Capistrano レシピ
09:09:35 wtnabe< 思いついたけど pear channel server なくても rake ベー スで管理すれば upgrade も downgrade も自在にできそうだな。 10:02:28 wtnabe< terminal で引ける xpath cheat sheet ってないかな 10:11:13 wtnabe< いつも XPath で正規表現マッチさせる方法が分からなくな るな。いい加減学習しろよ、オレ。 10:17:31 wtnabe< @checkela XPather のヘルプをいつも使ってるんだけど、 正規表現そのものの説明はあるのにどうやってマッチさせるのか分からないん すよw 10:55:35 wtnabe< 違うのかな、これ。正規表現マッチの機能はJavaScript の 機能なのか? 11:10:35 wtnabe< 最終的には Hpricot が対応していませんのワナ。何度とな く同じことをやっている気がする。 11:18:57 wtnabe< jQuery と Hpricot を混同している 11:25:24 wtnabe< Array.reject の反対ってなんだ 11:31:55 wtnabe< map と compact を組み合わせればなんとかなるのか 11:35:41 wtnabe< ほんと、どんどん Ruby を使い始めた初期の頃には忌み嫌っ ていた書き方に近づいて行くな 11:37:11 wtnabe< Apache のソートって前からバージョン番号をそれっぽく解 釈してくれる形だっけ。 11:40:06 wtnabe< お、オプションがあるな。いつからか V=1 がデフォルトに なったってことかな。 11:45:41 wtnabe< ということはソートは Apache に任せるのがいいな 12:13:44 finalfusion> @wtnabe 人は、変わっていくのね…(笑) 12:16:18 wtnabe< @finalfusion ですねぇ(笑) そっちの方が短いし楽だし Ruby っぽいんですよね。コードによって教育されたとも言えるかなぁ。 17:17:41 wtnabe< 朝言ってた pear package 管理の Rakefile できた。 packaging と deploy は自動化できてないけど、upgrade, downgrade は引き 継ぎしやすくなった。
ということでできた。
Rake で作り始めたんだけど設定をコードから追い出すために最後の最後で Capistrano にした。なので sudo を `` の中で生で叩いているとかあちこちおかしい。role とかセットしていけば関連するサーバ群の package を一気に upgrade とかできてウマーな気がする。
やっていることは実に単純で Apache の mod_autoindex の機能でパッケージファイルをバージョン番号順に整列させて、取得した HTML から必要な部分だけ scrape して利用する。また現在のインストール済みバージョンを pear コマンドから取得してこれを比較して upgrade や downgrade を行っている。
つまりパッケージを Apache の公開領域*1に置いてないと意味ないっす。
以下、1月31日の思いつき。
07:12:04 wtnabe< 昨日やってた URI ベースの pear package の install, uninstall, upgrade, downgrade を支援する仕組みは、考えたらいわゆるダウ ンロードページのスクレイプとアーカイブの展開さえできれば pear package 以外にも通用するような気がしてきた。 07:12:40 wtnabe< 問題は現在インストールしてあるバージョンを取得する汎 用の方法がないことと、ダウンロードページからのリンクがきれいにバージョ ン番号順に並んでいるかどうか、かな? 07:18:02 wtnabe< まぁとりあえずは汎用にならなくてもよいわけで、pear package にしないくせにリポジトリにちゃんと tag 打ってくれないようなア プリ、ライブラリの管理も以前考えていたよりはもしかするとスマートにでき るかもしれないな
*1 アクセス制限は自由にしてもらえばいいとして
[ツッコミを入れる]