dotfilesの管理
.vimrcとか.zshrcのような設定ファイルをGitで管理し(てGitHubにアップしておき)たい rcmを使って管理する
ゴール
事例
リポジトリにdotfilesを集約してsymlinkを貼っている
同様
symlinkをはるのを助けるshell script群rcm 方針
rcmを使って管理する
rcmを1人で使う
手順
リポジトリを$HOME/dotfilesに作成する
これをGitHubで管理する
個人情報が入りそうなら、プライベートリポジトリを作るべき
rcmの設定ファイルを作成する
ディレクトリがデフォルトだと~/.dotfilesになるのでpathを変更しているが、そのままでもよい
code:rcrc
EXCLUDES="README*.md LICENSE"
DOTFILES_DIRS="$HOME/dotfiles"
初回の設定
env RCRC=$HOME/dotfiles/rcrc rcup
作成したリポジトリに追加していく
mkrc ~/.bash_profile
確認
code:zsh
$ lsrc
/Users/kadoyau/.zshrc:/Users/kadoyau/dotfiles/zshrc
zshの設定ファイル~/.zshrc(左)がリポジトリのファイル(右)に紐付いていることがわかる
実際に見てみると、実態が右になり、左から右にシンボリックリンクが貼られていることがわかる
GitHubにリポジトリを作成してpushする
新しいPCに管理しているdotfilesを展開する
リポジトリを$HOMEにcloneする
$HOME/dotfilesが作成される
rcrcのDOTFILES_DIRSに指定されたpathにGitHubで管理したファイル群を配置したいということ
rcupをしてシンボリックリンクを貼る
env RCRC=$HOME/dotfiles/rcrc rcup
rcupコマンドのpathをとおしていない場合/usr/local/Cellar/rcm/1.3.4/bin/rcupとかを使う
この段階では.zshrcを設定していないことがある。その場合、brewで入れたrcmにpathが通っていないのでrcupが実行できない。このためまずrcupの実行ファイルのpathを調べる
code:zsh
$ brew info rcm
# 略
/usr/local/Cellar/rcm/1.3.3 (16 files, 67.1KB) * # ここの/binに実態があることがわかった
lsrcで確認できる
管理のコツ
absolute pathをつかわず$HOMEなどを使う
/home/kadoyau/のように名前が入ってしまうとユーザ名の変更に弱い
チームで使う
トラブル
zpreztoが更新できない
symlinkにおきかえられるのでgitでdiffが解決できない
code:zsh
rcdn
zprezto-update
# エディタで変更点をコピペ
env RCRC=$HOME/dotfiles/rcrc rcup