2009年2月16日月曜日

【Ubuntu】ポータブルな制作環境準備

Ubuntuに引っ越しするには、現在のOSX上の制作環境自体をまずポータブルにせねば。これはそこそこしっかりやっておこうと思う。ここでしっかりやっておけば、複数の機体に跨がった制作も統一的にできるし、将来UbuntuからBSDに移りたいなんて思っても速やかに移れるから。

* : [Unix][作業環境][mac][ubuntu]

~/local に制作環境をまとめて、制作環境をポータブルにする。



~/local/config/

- 自分のリポジトリでバージョン管理
- バックアップ非対象

~/におかれるdot的初期化ファイルについては、それ自体はそこに設置する。
ただしそこに置いたものは、ユーザー設定としてはいわゆるload機能のみ
とする。

Emacs :
~/.emacs : Emacsの起動時に実行されるファイル
(load-file "~/local/config/emacs.el")

ACL :
~/.clinit.cl : ACLの起動時に実行されるファイル
(load "~/local/config/clinit.cl")

GNU Screen :
~/.screenrc : Screenの起動時に実行されるファイル

screenの設定ファイルに外部ファイルのload機能は存在しない。
そこで、bashの設定として、

alias cscreen='screen -c ~/local/config/.screenrc'

とする。

bash :
~/.bash_profile : ログインシェルとしての起動時に実行されるファイル
- OSXのTerminalではTerminalの起動毎に実行される。
- ただしTerminal内でのbashの起動時には実行されない。

~/.bashrc : bashの起動時に(ログイン時含めていつでも)実行されるファイル
- OSXのTerminal起動時には実行されない。
- Terminal内のbash起動時毎に実行される。

このようにOSXは乱れている。なので次のようにする。

~/.bash_profile :
source ~/local/config/.bash_profile

~/.bashrc :
source ~/local/config/.bashrc

そしてOSXでは、

~/local/config/.bash_profile :
source ~/local/config/.bash_parent_start
source ~/local/config/.bash_every_start

~/local/config/.bashrc :
source ~/local/config/.bash_every_start

として、

~/local/config/.bash_parent_start
~/local/config/.bash_every_start

にはそれぞれ、親起動時に一回のみ実行させたいことと、bashが呼ばれる
たびに起動させたいことをそれぞれ書く。




~/local/lib/

- 自分のリポジトリでバージョン管理
- バックアップ非対象


ライブラリファイルについて。

- 環境毎のパッケージ管理機構によってライブラリも管理されている場合、
もしくはそういったライブラリはその機構に従う。

- 環境非依存のパッケージ管理機構によってライブラリを管理している場
合は、~/local/lib/以下にファイルを設置する。

- 手で管理しているライブラリも~/local/lib以下にファイルを設置する。


lib内は、今のところ、次のような配置とする。

catalog : XMLcatalogファイル
cl : Common Lisp 手管理ライブラリ
clbuild : Common Lisp clbuild 管理ライブラリ
elisp : Emacs Lisp ライブラリ
java : java ライブラリ
xml : XMLスキーマファイル

OS毎に分離が必要なものは各ディレクトリの中でディレクトリに分ける。


~/local/tmp/

配置先が決まっていないファイルの一時置き場。
- 自分のリポジトリでバージョン管理
- バックアップ非対象


~/local/var/

リポジトリなどを設置。
- 自分のリポジトリでのバージョン管理はしない。
- バックアップ対象


~/local/bin/

自分で作成した便利shell command。
- 自分のリポジトリでのバージョン管理はしない
- バックアップ対象
- binの中身をmakeするスクリプトを用意する。


~/local/work/

制作作業に係わるもの。


~/local/work/scratch/

自身の日々のプロジェクトに関するもの。それを落書きと捉える。
- 自分のリポジトリでバージョン管理
- バックアップ非対象


~/local/work/external/

他の人が絡むプロジェクトに関するもの。それはそれ用のリポジトリがあ
るはず。
- プロジェクトのリポジトリでバージョン管理
- バックアップ非対象

さて、ここまで来て、リビジョン管理の中心となるsubversion + svkの内部構造についてほとんど何も知らないことに気付いた。そこでSubversionについて調べはじめたら、これがドツボにはまっていくことになる。次回はそのエントリ。

こつこつ。

0 件のコメント: