Open5
まったくの知識 0 から dotfiles のインストールするまで
はじめに
もうすぐ他のPCに移行しようと思ってて、「簡単に今の環境をもっていけないかなー」と調べていたら、dotfilesというものがあることを知りました。
自分も作りたいと思って、調べて必要になったものを書いていきます。
初心者なので、コマンド毎に調べていくので、さささーっと読み飛ばしてください。
開発環境
- OS: Windows11
-
WSL2: Ubuntu 22.04
- ↑の環境で開発していきます。
シンボリックリンクって何か、いまいちわかってない
- dotfilesを調べていたら、シンボリックリンクがよく出てきた
調べた結果
- リンクみたいなものだった
- 本来なら、
/usr/local/bin
にあるファイルを、~/bin
というリンクを張っておくとか出来る。 - これで、
~/bin
にあるファイルを実行すると、/usr/local/bin
にあるファイルが実行される
ln
コマンド
1 つ以上のファイルをディレクトリーにリンクする
ln [ -f | -n ] [ -s ] [ -p | -l ] sourcefile ... targetdirectory
必要そうなオプションだけ解説
-
-s
: シンボリックリンクを作成する -
-f
: 指定したリンクファイルが存在した場合は、既存のリンクを強制的に削除する -
-n
: リンクファイルを指定した場合、普通のファイルとして扱う
- よく使われる例
ln -sf $(pwd)/.vim ~/.vim
参考
シンボリックリンクを作成する理由
シンボリックリンクを作成するコマンドをさっと見ていたら、ほとんどの場合 ~/.vim
とか ~/.config/fish
とか ホームディレクトリからの相対パスで指定していた。
これは、Unix系OSのユーザーの設定ファイルや環境設定ファイルがデフォルトでホームディレクトリに配置されることためであった。
Unix系のプログラムの多くは、起動時にホームディレクトリ内の特定のドットファイルやドットディレクトリを読み込まれるみたい。
なので、読み込み時に作成されたシンボリックリンクを通じて、実際のファイルとは別の場所(例えば、バージョン管理されたdotfilesディレクトリ)のファイルを読み込むことで、好きな環境にすることが出来るらしい。
↓こんな感じのイメージ
とりあえずこのスクラップのゴ―ル
-
目標
- まっさらな環境に、cloneして、
install.sh
を実行するだけで、自分の環境を再現できるようにする。
- まっさらな環境に、cloneして、
-
現時点で導入するもの
- git
- neovim
- fish
0. リポジトリ作成と、設定ファイルの作成
- とりあえずリポジトリ作成
- nvimのパッケージマネージャーは、lazy.nvimを使う。
#!/bin/bash
# 必要なソフトウェアのインストール
sudo apt update && sudo apt install -y git neovim fish
# カレントディレクトリを保存
CURRENT_DIR=$(pwd)
# gitの設定ファイルのシンボリックリンクを作成
ln -sfn $CURRENT_DIR/.gitconfig ~/.gitconfig
# vimの設定ファイルとディレクトリのシンボリックリンクを作成
ln -sfn $CURRENT_DIR/.vim ~/.vim
ln -sfn $CURRENT_DIR/.vimrc ~/.vimrc
# nvimの設定
ln -sfn $(pwd)/nvim/init.vim ~/.config/nvim/init.vim
# fishの設定
ln -sfn $(pwd)/fish/config.fish ~/.config/fish/config.fish
echo "インストールと設定が完了しました。"