2009-01-06

自分の環境を手っ取り早く再現するツールの構想

※ 実際にはこの日記は3月に書いていて、すでにツールはある程度形になっています。

wtnabe's myenv-builder at master - GitHub

とりあえず dot file にリンクを張る

年末からいい加減 .zshrc とか .emacs とか整理しなきゃと思って作業しているわけだけど、これはただ整理するだけでなく、

一本化したうえでバージョン管理することで、どの環境でも間違いなく最新のものを利用できるようにする

ことを目的にしている。しかしドットファイルはホームディレクトリに置くのでそのまま素直にやると

~/
|-- .colordiffrc
|-- .fd2rc
|-- .irbrc
|-- .screenrc
|-- .subversion/
|-- .zshrc
|
|   ものすごく大量の要らないファイル
|
`-- ...

という形になって、ものすごく無駄かつ現実的じゃない。そこでこういう形を取ることにした。

~/
|-- .colordiffrc -> ~/dotfiles/colordiffrc
|-- .fd2rc -> ~/dotfiles/fd2rc
|-- .irbrc -> ~/dotfiles/irbrc
|-- .screenrc -> ~/dotfiles/screenrc
|-- .subversion -> ~/dotfiles/subversion/
|   `-- config
|-- .zshrc -> ~/dotfiles/zshrc
`-- dotfiles/
    |-- .svn/
    |-- colordiffrc
    |-- fd2rc
    |-- irbrc
    |-- screenrc
    |-- subversion
    |   `-- config
    `-- zshrc

dotfiles/ というディレクトリを掘ってここにドットファイルの実体を置き、このディレクトリをバージョン管理する。使うときにはホームディレクトリからこのディレクトリの中の対応するファイルに symbolic link を張る。

実際にはこれは rake の練習を兼ねているので dotfiles/ の中に Rakefile を置いて、自動で link を張れるようにしている。ホームディレクトリに対応するファイルがあったら当然止まっちゃうんだけど、そこはメッセージを分かりやすくしたうえで止まるままとしておいた。問答無用で消しちゃったりすると悲しいことになるかもしれない。

Windows でどうするかは未定

問題は Windows で。

Windows には symbolic link の機能はない。でも Windows でも同じように恩恵に預かりたい。まぁ Windows を使う時間は長くないのでそんなに困らないんだけど、長くないからこそ使うときにはすぐにいつもの環境になってほしい。環境構築に時間を掛けるのが楽しい時期はとっくに過ぎてしまったもの。

なんか方法ないかなーと思いながら

Rubyist Magazine - Ruby Library Report 【第 4 回】 Win32Utils

を読みつつあれこれ試してみたけど、やっぱ無理っぽい。shortcut を作っても認識はされないし、hard link でいいかと思ったけど hard link はディレクトリに対しては無理だ。

どうしたもんかなぁ。

About

例によって個人のなんちゃらです