初めて Unix のアカウント貰ってログインしたとき、まっさらなホームディレクトリをどう使えばいいか悩みませんでした?
もちろん好きにすればいいんですが、ベストプラクティスを知りたいなあと思いました。とりあえず自分のを晒してみます。
/home/*/local/
個人用途のツールをインストールするディレクトリ。
apt にパッケージがないもの (あっても古すぎるもの) で、常用する確信があるものが対象。ちょっと試してみたいだけなら、後述の /home/*/work/local/ を使う。
個人用途のツールを /usr/local/ にインストールすることはない。むやみに sudo したくないので。*1
ぼくの場合は、主に ruby 関係のファイル (リリース版) が占める。
$ ls local bin include lib share $ ls local/bin bundle erb ... ruby ...
/home/*/build/
/home/*/local/ にインストールするツールをビルドするディレクトリ。
ビルドしたものは、よほどディスクが逼迫しない限り消さない。local が壊れた時に、make install だけで復元できるといいなあと思って (実際にそんな状況になったことはないけど) 。あと、ツールに何か問題が起きた時にソースがすぐ参照できるとたまに嬉しい。
$ ls build ... ruby-1.9.3-p125/ ruby-1.9.3-p125.tar.bz2 ...
/home/*/config/
dot.bashrc やら dot.vimrc やらを置いてある。/home/*/.bashrc などはこれらへのシンボリックリンクになっている。
こういう構成になってるのは、git で管理してるから。といっても設定は大嫌いなので、大した内容はない。
これ書いてて思ったけど、/home/*/work/config/ の方がいい気がしてきた。
/home/*/work/
作業環境。別に仕事関係のものとは限らない。まじめに何か作りたくなったら、まずこの下にサブディレクトリを作ってやる。git clone してくる時も大抵ここ。
$ ls work Phun Rubinius jruby local ruby tmp walking ...
/home/*/work/local/
自分でソースをいじった (いじる可能性のある) ツールを試しにインストールするディレクトリ。
このディレクトリは不定期で全消去するので、常用するものはインストールしない。PATH も通してない。
ぼくの場合は主に ruby-trunk 関係が入る。
/home/*/work/tmp/
意気揚々と work にディレクトリを作ったけれど飽きたものを移動する。つまりプロジェクトの墓場。
補足
/home/*/work/ のサブディレクトリ以外には、ファイルやディレクトリを作りません。
……というルールが厳格に守れればいいのですが、実際には色んなところにゴミファイルが氾濫してます。t.c とか t.rb とか *.patch とかアーカイブとか。整理ができないタイプ。
*1:sudo gem install とかは無防備すぎると思う。