Hatena::ブログ(Diary)

¬¬日常日記 RSSフィード

2008年07月02日

AcidRip の設定メモ

AcidRipって、とっても便利ですよね。ちょっとインターフェースがごちゃついている印象もありますけれども、なんとなくこんな感じ?という設定でうまく動いてくれるのでとても気に入ってます。Perl で書かれているんですね。

Error 404 (Not Found)!!1

ところで Ubuntu 8.04 にアップデートした時からなにかうまく動かなくなりました。あれれ?と思ったのですが、調べてみたらなにかエンコーダーオプションの指定方法が変更になったとかどうかで、とにかく次のような内容の ~/.mplayer/mencoder.conf というファイルを作成しておけば良いらしいです。

x264encopts=subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid:weight_b:threads=auto:qp=20

これで一応動くようになりました。私と同じように困った人がいれば試してみて下さい。各オプションがどういう意味なのか分かってないので本当にこれでいいのか分かりませんが、動くから大丈夫なんだろうと思います。もっとオススメな設定があれば是非教えて下さい。

というわけでメモでした!

2008年06月16日

Augeasはとっても微妙だと思いました

OTPの記事を読んで興味を持ったのでとりあえずインストールして試してみました。Augeasは設定ファイルをなんかうまい事編集し易くしてくれるツールです。ただ実際試してみたものの、なんだか微妙だなぁ、という印象です。あんまり期待しない方がいいんじゃないのかなー、とだけ最初に断わっておきます。もしかして将来的にはとっても便利になっているのかも知れないけど、どれだけ頑張れるのかなぁ?

インストール方法

まずもってAugeasはRedHat製なんです。だからUbuntuな私は素直にソースを落としてきてビルドすることにしました。現在のところ最新版は 0.2.0 なんですけれど、これを make したところなんか失敗しました。レポジトリを見てみたらそこは既に修正済みのようなので、今現在直接ビルドしようと思っている人はレポジトリから最新版を取得した方が良いと思います。

Augeas — Contribute

で、ビルド方法はいつもの通りです。

% ./autogen.sh
% ./configure
% make
% sudo paco -lD make install

みたいな感じ。Augeasのレポジトリmercurial なんですけど、autogen すると git でなんか取ってきたりして、魑魅魍魎感が漂うところですが、まぁ気にしないでおいた方がいいと思います。

使い方

チュートリアルの始めの方をちょこっとやってみます。

Augeas — Quick Tour

% export AUGEAS_ROOT=/tmp/augeas-sandbox # 環境変数 AUGEAS_ROOT がターゲットになります
% mkdir $AUGEAS_ROOT
% sudo cp -pr /etc $AUGEAS_ROOT # 安全を考慮して複製をいじることに
% sudo chown -R $USER $AUGEAS_ROOT

augtool -b # これでaugeasのシェルが起動します
augtool> set /files/etc/hosts/10000/ipaddr 192.168.0.1
augtool> set /files/etc/hosts/10000/canonical pigiron.example.com
augtool> set /files/etc/hosts/10000/alias[1] pigiron
augtool> set /files/etc/hosts/10000/alias[2] piggy
augtool> save
augtool> ls /files/etc/hosts/10000
ipaddr = 192.168.0.1
canonical = pigiron.example.com
alias[1] = pigiron
alias[2] = piggy

みたいな。本当はとっても複雑な条件で探したり書いたり出来ちゃってウハウハらしいです。でもOTPの記事でも指摘されているように、hostsファイルに空行があると変更が保存されないよ!この辺はlensとかいう設定ファイルの読み込み指定如何らしいので、そのうち改善が期待できると思います。

感想

でも結局のところ便利かどうかは疑わしいと思います。まずRedHat製なのでUbuntuとかの環境でも使う人がいるのかがあやしい。広く普及しない場合こういうツールは結構使いづらいのではないでしょうか。あとはlensの出来がどうなるかですが、これについては時間が解決してくれると思うのでは心配いらないだろうと思います。

なお、良い点はRubyOCamlバインディングが用意されていることです。

というかシェル内だけじゃなくて、FUSEとかで全部ファイルとしてマウントしちゃってくれたら便利なのに、と思いました。そういう方向で進化しないかなぁ。

2008年01月07日

とってもやさしいリバースプロキシVarnishの使い方

RubyのウェブアプリケーションフレームワークRamazeがとってもとっても素敵なので、ただいま実験としてささいなものを作成しております。HTTPdには今話題のthinを使おうかな、と思っているのですが、こうなると考えなければならないのがリバースプロキシですよね。"reverse proxy rails" あたりで検索すると真っ先にapacheの設定方法が出てくるわけですが、なんでもapacheというのもどうかな、と思いました。設定が煩雑になりますしね。そこでリバースプロキシである varnish を試してみました。varnishに関するドキュメントはあまり多くないのですが、varnish はとっても簡単なので素晴しいと思います。せっかくですから、varnishに関する設定方法などを簡単にまとめておきたいと思います。なお、私はサーバであっても ubuntu を使っておりますので(手抜き!)、ubuntu以外をお使いの方はそのつもりで適時読み替えてご覧下さい。

Varnish って何?

varnish はリバースプロキシサーバです。リバースの方向専門のサーバなので、普通のフォワードプロキシとしての機能は持ちません。リバースプロキシに関してはlivedoor ディレクター Blogさんの「サーバの種類とDBサーバ超基礎入門」がとってもとっても分かり易くて素敵な資料だなぁと思うのでそちらをご覧下さい。

なんでSquidを使わないの?

実績と信頼のプロキシサーバSquidは当然リバースプロキシとしても設定できるわけですが、私の目的ではフォワードプロキシは不要である以上、設定を間違えてうひょー!みたいな事にならないようにSquidは避けたいと思いました。そのため、varnishです。おまけに設定ファイルの構成が簡単という利点もあります。

リバース方向のプロキシサーバとしては他にもSwitchFlow, Perlbal, Nginx, YXORP などもあるようですが、varnishが一番シンプルなように見えましたので選択しました。SwitchFlowはメンテナンスされているのかよく分からない点が不安です。Perlbalはperlの方には良いのだろうと思いますが、私は最近はすっかりperlを使っていないので色々と敬遠したいなぁと思いました。Nginxは素敵な雰囲気ですが、HTTPdの機能は不要ですので選択肢に入りませんでした。YXORPはなかなか良さそうですが、とっても多機能なようなので今回は避けました。特に"Multiple listeners: one YXORP can monitor several TCP ports and process incoming traffic"とのことなので大変に便利そうです、いずれ使ってみたいと思います。

インストール

もちろん aptitude でインストールできます。

sudo aptitude install varnish

これでインストールは完了です、とっても楽チン!

設定

私の目的は port 80 でリバースプロキシさんに色々振り分けてもらうことです。まず、port 80 でサーバが起動するように設定しておきます。まずは皆さんの大好きな jed で /etc/default/varnish を編集します。

sudo jed /etc/default/varnish

ここで書き換えなければならないのは VARNISH_LISTEN_PORT です。以下のように80を指定します。

VARNISH_LISTEN_PORT=80

あと、必要があればキャッシュサイズも変更しておくと良いかと思います。

VARNISH_BACKEND_STORAGE_SIZE=20480000

なお varnish は ubuntu 標準では management port として port 6082 あたりで待ち構えますので、その点十分にご注意下さい。戸締り用心のため以下のように /etc/init.d/varnish を書き換えておくことをオススメします。

# -T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \
# の行を消します。

DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \
                -h ${VARNISH_HASHOPTION} \
                -f ${VARNISH_VCL_CONF} \
                -t ${VARNISH_TTL} \
                -w ${VARNISH_MIN_WORKER_THREADS},${VARNISH_MAX_WORKER_THREADS},${VARNISH_WORKER_THREAD_TIMEOUT} \
                -s ${VARNISH_BACKEND_STORAGE}"  

/etc/init.d/varnish を編集するのはとっても行儀が悪いような気がしますが、/etc/default/varnish で VARNISH_ADMIN_LISTEN_ADDRESS, VARNISH_ADMIN_LISTEN_PORT をコメントアウトしても tcp6 でポートを開いてくれたりしますので、油断なさらないように。

では次に /etc/varnish/vcl.conf を編集します。例えば subdomain.example.com に対するアクセスを localhost の port 8000 に振り分けて欲しい場合は、まずbackend 設定を追加します。

backend subdomain {
        set backend.host = "127.0.0.1";
        set backend.port = "8000";       
}

backend設定の次には vcl_recv 内でリクエスト内容によってこれを backend subdomain に振り分けるように指定します。

sub vcl_recv {
  if (req.http.host == "subdomain.example.com") {
    set req.backend = subdomain;
  }
# 以下略

この振り分けの設定には"=="だけでなく、 "~"を用いて正規表現によって振り分けることも出来ますので色々と柔軟な設定が出来ます。とっても簡単で便利ですね! vcl.conf の記法や意味の詳細は man 7 vcl でご覧下さい。

サーバの起動

設定が整いましたので、晴れてサーバを起動してみましょう。

/etc/init.d/varnish start # 既に起動していれば restart

ブラウザでsubdomain.example.comにアクセスし、port 8000 で動いているサーバさんの内容が表示されればOK!

varnishdの管理

動いている varnishd さんと色々と密談したい時には、以下のように telnet を通して語り掛けます。

telnet 127.0.0.1 6082

help するとコマンドリストが表示されます。これに従って適切に色々やって下さい。例えばキャッシュの消去は

url.purge *

みたいな感じで。ただ、これ、認証が一切ないんですけどいいの?マジで?じゃあ一般ユーザがvarnishdを一時停止出来ちゃったりするわけですか。あとなんか色々やると落としちゃったりできるんですけど、どうなの!?ちなみに ubuntu の varnishd は 1.0.3 とちょっと古めなので、そのせいかも知れません。

というわけですから、信頼できないユーザが存在する場合には、念の為に management port を閉じておくのがよろしいかと思います。

感想

varnish、とっても簡単ですね!management port の設定に多少注意が必要なのが面倒っちい感じですが、それでもこの設定の分かり易さと簡単さは大変に素晴らしいことだと思います。そんなわけで皆様、varnish 良いと思います。使いましょう。

2007年08月23日

とってもやさしいwineの使い方

/.Jでwineの使い方を教えろって言われたから書きます。ちなみに私はwineのこと良く知らない子だから詳しい事は書けませんので、使い方だけに絞って書いておきます。

インストール

各自ディストロのやり方に従ってwineをインストールしておいて下さい。私は今はUbuntuしかないから一応Ubuntuのやり方を書きます。

  • メニューから「システム」「システム管理」「synaptic」とたどって人類の叡智たるsynapticを起動して下さい。
  • 起動したら「wine」で検索します、それっぽいボタンを押すと検索できます。
  • wineを選んでそれっぽくインストールします。

以上です。とっても簡単ですね。Fedoraだったらyumっとけばいいと思います。

winefileを起動します

難しいことは考えずにとりあえずwinefileを起動して下さい。winefileとはwindowsのエクスプローラをとってもとってもとっても貧弱にしたものです。でもwinefileは素晴しいのでとにかく起動しましょう。winefileを起動するには、メニューから「アクセサリ」「Wine File」をクリックします。もしみつからなかったら、コンソールから winefile と入力して実行して下さい。

なにかそれっぽいものが起動しましたでしょうか?起動したらあとはwindowsの時と操作はほぼ一緒です。とっても簡単ですね!お疲れ様でした。

Tips

以上で本当に使い方の紹介は終わりなのですが、これだけでは困ることもあるかと思いますので、余計なお世話かも知れせんが先に諸注意だけ申し上げておきます。

winefileにおける日本語の表示

winefileは初期状態だと日本語が表示できません。これはあまりに悲しいので winefile のメニューバー「options」「Font」をクリックして、フォント設定をしましょう。IPA UI Gothic で 12ポイントくらい指定しておけば良いかと思います。

ドライブ名に関して

winefileにドライブ名が表示されているかと思いますが、c:\ には Program Files やら windows ディレクトリがありますので覚えておくと便利ではないでしょうか。なお私の場合 C ドライブは ~/.wine/drive_c/ にマップされていました。他のドライブがどこにマップされているのかは、クリックして中身を見ればなんとなく適当に把握できるのではないでしょうか。重要なのは H ドライブで、私の場合はこれが ~/ にマップされているようなのでとっても良く使います。

実践例1:xyzzyを動かしてみましょう

windowsで秀丸同様に人気のあるエディタと言えばxyzzyだと思います!じゃあxyzzyを動かしてみましょう。

http://www.jsdlab.co.jp/~kamei/

ダウンロードします。まずfile-rollerを使って普通に展開します。次にwinefileで展開したディレクトリに移動しておもむろにxyzzy.exeを実行します。

やった、動きましたね!

実践例2:秀丸をインストールしてみましょう

/.Jでもやっぱり秀丸さんは人気者ですね!じゃあ秀丸をインストールしてみましょう。

http://hide.maruo.co.jp/software/hidemaru.html

ダウンロードします(私はhm614_signed.exeをダウンロードしてみました)。winefileを使ってダウンロードしてきた実行ファイルをためらうことなく実行します。制限ユーザだとセットアップできないかもよ?それでもやるの?おたく本気?と尋ねられますが、潔く「はい」と答えます。その後もよく分からないので「はい」と答えておきます。すると、無事にインストールが終わったみたいです。

では次に起動します。winefileでCドライブのアイコンをクリックします。「Program Files」「Hidemaru」と移動していきます。そこに Hidemaru.exe というものがあるかと思いますので、豪快にクリックして実行します。

やった、動きましたね!

ちなみに通常であればデスクトップに秀丸アイコンが作成されているかと思いますから、そこから秀丸を起動してもOKです。なんて親切簡単なんでしょう。

感想

ホントはEmEditorを例にしようとしたのですが、EmEditorはインストールこそ出来るものの、

err:statusbar:StatusWindowProc unknown msg 204e wp=0101 lp=7c8df52c

というエラーを出して起動できませんでした。とても残念です。

以上、wineの簡単な使い方の紹介でした。xyzzyと秀丸派の皆さんはこれで安心してLinuxを使えますね。EmEditor派の皆さんはもう少し我慢して待ってて下さい。いずれ時が解決してくれるのだろうと思います。人生って難しいな。

ちなみに、vectorにあるような無料のゲームは結構動きますよ(Direct3Dなゲームはまだ動かないものが多いと思います、でも最近のChangeLogを見る限りではそれも時間の問題かも知れません)。wineってすごいですね!wine開発者の皆様に深く深く感謝しましょう。

とってもやさしいpacoの使い方

今時自前で make install することは滅多にありません。しかしそんな現代だからこそ package organizer たる paco を使うべきです。なぜか?だってUbuntuocaml、まだ3.09なんだもん。

ダウンロード

http://paco.sourceforge.net/downloads.html を見れば分かりますように、主要なディストロのパッケージは大抵揃っております。Fedora 7, Mandriva 2007, Ubuntu 7.04, そしてVine 4も!

ちなみに自前で入れる時には make して make install して、さらに paco -lD make install します。最後を忘れると paco を paco 自身で管理できなくなりますので要注意。

使い方

インストール

pacoを使って何かをインストールしたい時には次のようにします。

paco -lD make install

paco -lD さえ覚えておけば大丈夫です、きっと。

アンインストール

逆に消したい時には次のようにします。

paco -r package_name
パッケージの一覧

一覧ってことは all なので(?)、-a です。でも見辛いので次のようにします。

paco -1a
ファイルの一覧

パッケージに含まれるファイルの一覧を見たい時には次のようにします。

paco -f package_name

まとめ

GTK+版のgpacoもありますが、使い勝手が悪いので要らない子だと思います。上の四つのオプションを覚えておけば実用上十分です。こんなに簡単なpacoですが、最近本当に自前でmakeする機会がないので毎回使い方を忘れています。今回はpacoの使い方を忘れないよう呪いながら書きました。upTeXをアップデートする時に使ったのが二ヶ月ぶりくらい?