読者です 読者をやめる 読者になる 読者になる

なんかかきたい

プログラミングなどの個人的なメモやサークル「ゆきいろパラソル」の情報を載せてます

老エンジニアだけど dotfiles を更新したい、だけど慣れた設定書き換えるのって怖くない?辛い...って思ってサボってきた更新をなんとかした話

概略

  • 最小のSandbox環境を作る。
    • イマドキ風にやるならdockerとかVMとか。
    • とりあえずDebian系で動けばいいので、debootstrap + chrootで動かす。
  • /home/$USERgit init してコミット
    • どうせ Sandbox だし乱暴する
  • dotfiles をいい感じに書き換えてセットアップ
    • どうせ Sandbox だし乱暴する
  • 期待通りの挙動をしない場合、gitの機能で元に戻し、うまくいったらコミット
    • git clean -df でだいたいうまくいく

以下詳細をまとめます。

debootstrap + chrootサンドボックス環境を用意する

前はvagrantで律儀にsnapshotをとって戻して差分を確認していたが、もうちょっと雑にやる方法はないものかと chroot 環境を用意。

DebootstrapはDebianWikiに細かい説明がある。

stable Debianの最小構成をインストールする

sudo apt-get install debootstrap chroot
mkdir -p /tmp/workdir
cd /tmp
sudo debootstrap stable workdir/
sudo chown -R $USER. workdir

これで /tmp/workdirdebianがインストールされる。

chroot する

chrootするには特権が必要なので少し心が傷むが自分のマシンだからまあいいかと割り切ってsudo chrootをキメる。

sudo chroot workdir/ /bin/bash
cd /root

これで root シェルが取れる。

Debianの基本セットアップをする

最小構成のDebianでは色々とパッケージが足りなくて辛い気持ちになる。 apt update すらできないからね。

あと、 proc とか /dev/pts とかもないね。まあこのあたりはどこまでそれっぽくするかによるし、いらないセットアップな気もする。 /tmp が必要なら mkdir /tmp とでもしておけばいいと思う。 (律儀にtmpfsmountしなくてもいいよね)

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管理を始める

ロックに $HOMEgit 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

techbookfest.org

進展がありましたら更新します。

最近のこと

デレステのシンデレラキャラバンの回収は期限付き。忘れないようにしないとこうなります。つらい。

iPhoneのディスプレイ割れてる人は強制交換ペナルティ1万2000円がかかります。やったね。

冬コミ、やっぱりコミケ参加したい欲求が高いということがわかり、技術書典2に出ることにしました。夏も申し込むけど、結局同人ソフトで出ることになる…かな。漫画描けるようになりたい。