老エンジニアだけど dotfiles を更新したい、だけど慣れた設定書き換えるのって怖くない?辛い...って思ってサボってきた更新をなんとかした話
概略
- 最小のSandbox環境を作る。
/home/$USER
をgit init
してコミット- どうせ Sandbox だし乱暴する
- dotfiles をいい感じに書き換えてセットアップ
- どうせ Sandbox だし乱暴する
- 期待通りの挙動をしない場合、gitの機能で元に戻し、うまくいったらコミット
git clean -df
でだいたいうまくいく
以下詳細をまとめます。
debootstrap + chroot なサンドボックス環境を用意する
前はvagrantで律儀にsnapshotをとって戻して差分を確認していたが、もうちょっと雑にやる方法はないものかと chroot 環境を用意。
DebootstrapはDebianのWikiに細かい説明がある。
stable Debianの最小構成をインストールする
sudo apt-get install debootstrap chroot mkdir -p /tmp/workdir cd /tmp sudo debootstrap stable workdir/ sudo chown -R $USER. workdir
これで /tmp/workdir
にdebianがインストールされる。
chroot する
chroot
するには特権が必要なので少し心が傷むが自分のマシンだからまあいいかと割り切ってsudo chroot
をキメる。
sudo chroot workdir/ /bin/bash
cd /root
これで root シェルが取れる。
Debianの基本セットアップをする
最小構成のDebianでは色々とパッケージが足りなくて辛い気持ちになる。 apt update
すらできないからね。
あと、 proc
とか /dev/pts
とかもないね。まあこのあたりはどこまでそれっぽくするかによるし、いらないセットアップな気もする。
/tmp
が必要なら mkdir /tmp
とでもしておけばいいと思う。 (律儀にtmpfs
をmount
しなくてもいいよね)
echo "deb http://ftp.jp.debian.org/debian/ jessie main contrib non-free deb http://ftp.jp.debian.org/debian/ jessie-updates main contrib deb-src http://ftp.jp.debian.org/debian/ jessie main contrib non-free deb-src http://ftp.jp.debian.org/debian/ jessie-updates main contrib" > /etc/apt/sources.list apt update
apt update
したいので、sources.list
を雑に用意する。(apt-getじゃなくなって久しい)。
あとは適当に必要なパッケージ、zsh
とかtmux
とか好きに入れる。
このあとで使うので git
も入れておく。 git
って以外と依存パッケージが多いねって気持ちになるがまあこんなものかもしれない。
apt install zsh tmux curl git
apt
の幾つかで警告が出ることがあるが、心を痛めつつ無視して先に進める。(サンドボックスは乱暴する)
git管理を始める
ロックに $HOME
で git init
をキメて全ファイルをコミットする。
dotfiles
用のリポジトリが用意してあればそれをclone
しておきそれもコミットする。
cd $HOME git init git clone https://github.com/..../dotfiles git add . git commit -m 'Commit all home files'
これで $HOME
以下のファイルはすべて追跡できるようになった。
dotfilesに乱暴をする
大抵の変更は git commit
の時点まで戻せるので、乱暴に自分の dotfiles
を書き換えてchroot環境でセットアップする。
変更が気に入らなかった場合、 git clean
を使いすべての変更を捨てる。怖い場合は dry-run もある。
git clean -df # git clean -dfn (DRY RUN)
変更がうまくいったら、適当にコミットする。このあたりはコミット粒度とかプログラミングスタイルが試される。各自いい感じにしてほしい。
コミットは chroot 環境の外からキメるのが楽。
git commit
終わりに
基本なまけものなのでこういうのは気が向いたときにしかやらない。
終わったらSandboxなので適当に捨てるといいけど、丁寧に proc
とかを mount
していると rm -rf
したときに寒い感じがする。
技術書展2 に出ます
ところでまったく話は変わりますが、2017/4/9に行われる技術書オンリーイベント「技術書典2」に 「mochi mochi laboratory」さんと合同で参加します。 (TechBooster / 達人出版会 さん主催)
「mochi mochi laboratory」と「ゆきいろパラソル」の合同サークル 「もちもちパラソル」 です。
情報は ゆいしろさんの特設ページと、こっちでも少し情報を流していきます。
もちもちパラソル 技術書典2 特設ページ
技術書典2
進展がありましたら更新します。
最近のこと
シンデレラキャラバンのこずえさん、いつのまにかいなくなってて泣きそう
— シリル@技術書典2 う-01 (@d_cyrill1129) 2017年1月16日
デレステのシンデレラキャラバンの回収は期限付き。忘れないようにしないとこうなります。つらい。
マジかよー・・・ pic.twitter.com/5ycNyapB3u
— シリル@技術書典2 う-01 (@d_cyrill1129) 2017年1月9日
iPhoneのディスプレイ割れてる人は強制交換ペナルティ1万2000円がかかります。やったね。
冬コミ、やっぱりコミケ参加したい欲求が高いということがわかり、技術書典2に出ることにしました。夏も申し込むけど、結局同人ソフトで出ることになる…かな。漫画描けるようになりたい。