dotfilesの管理を楽にする話
筆者のdotfilesリポジトリ
使い方
command line toolが入っていない場合は、Xcodeをインストールするか以下のコマンドを実行してください。
xcode-select install
GitHubのリポジトリをクローンして、make
をするだけで環境が揃うようになります。
cd $HOME
git clone git@github.com:tkomatsu/dotfiles.git
make -C dotfiles
CLIのツールはもちろんのこと、Mac App Storeからダウンロードしたものも含めて管理できます。
install.sh
dotfiles
ホームディレクトリ直下に置いてある.
始まりのファイルを管理します。
私が作成しているのは以下のファイルです。
- .gitconfig
- .vimrc
- .zshrc
for file in .vimrc .zshrc .gitconfig .gitignore
do
[ ! -e $file ] && ln -s dotfiles/$file .
done
ホームディレクトリにdotfiles
内の対象ファイルのシンボリックリンクを作成しています。
すでに作成したドットファイルがホームディレクトリにある場合は、それらを管理したいリポジトリ(今回であればdotfiles
内)に移動してシンボリックリンクを作成してください。
Homebrew
HomebrewではstarshipやgitなどのCLIのツールからMac App Storeで配布されているものまでを管理しています。
Brewfileを使うことで簡単に管理することができます。
echo "installing Homebrew ..."
which brew >/dev/null 2>&1 || /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
cd $THIS_DIR
echo "run brew doctor ..."
which brew >/dev/null 2>&1 && brew doctor
echo "run brew update ..."
which brew >/dev/null 2>&1 && brew update
echo "ok. run brew upgrade ..."
brew upgrade
brew bundle
brew cleanup
Install
Homebrewがインストールされていなければ、インストールします。
which brew >/dev/null 2>&1 || /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
パッケージの管理
brew
で管理したいものはBrewfile
で管理をします。
brew bundle
を実行することでBrewfile
の中身のインストールが実行されます。
Brewfileの書き方
フォーミュラとして追加する時。(brew tap
)
tap "homebrew/bundle"
brew install
で入れるもの。主にCLIのツール。
brew "anyenv"
brew install --cask
で入れるもの。主にGUIのツール。
ChromeなどのブラウザやZoomなどはこれで入れる。
cask "google-chrome"
Mac App Storeからインストールできるもの。
IDはAppのURLに記載されているものを記載。
RunCatであれば、URLがhttps://apps.apple.com/jp/app/runcat/id1429033973?mt=12であり、id
と?mt
の間の部分がIDになります。
mas "RunCat", id: 1429033973"
Vimのプラグイン
私はVimのプラグインはVundleで管理しています。
install.sh
ではVundleのインストールだけ行います。
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
その他
anyenvなどのバージョン管理ツールやGitHub CLIの設定を追加しています。
# install rbenv pyenv nodenv
anyenv install rbenv
anyenv install pyenv
anyenv install nodenv
exec $SHELL -l
# config
mkdir -p $HOME/.config/gh & ln -s $HOME/dotfiles/gh/config.yml $HOME/.config/gh/config.yml
最後に
環境構築を簡単にしようと思っていたら、楽しくて沼にハマりました。
みなさんもハマりましょう!!
Discussion