WSL2をぶっ壊したときに再インストールするためのメモ

表題の通りです。自分用。その他WSL2&Linuxお役立ち情報があればコメントくださいな。

# 1. 別ドライブにインストールする

結構容量がでかくなるのでCドラに入ってほしくない。

1. LxRunOfflineをDLして解凍して起動できるようにする
    - https://github.com/DDoSolitary/LxRunOffline
1. Ubuntu-20.04のイメージをDLする
    - https://lxrunoffline.apphb.com/download/ubuntu/focal
1. ボリューム作る
    - `LxRunOffline i -n Ubuntu -d {配置したいパス} -f {DLしたイメージのパス}`
1. デフォルトにする
    - `wslconfig /setdefault Ubuntu`
1. WSL2になってるか確認してなってなかったら2にする
    - `wsl --list --verbose`
    - `wsl --set-version Ubuntu 2`
1. リポジトリを国内にして更新とsudoインストール
    - `sudo sed -i.bak -e "s/http:\/\/archive\.ubuntu\.com/http:\/\/jp\.archive\.ubuntu\.com/g" /etc/apt/sources.list`
    - `apt update && apt upgrade -y`
    - `apt install sudo`
1. 普段用ユーザの設定
    - `adduser {name}`
    - `gpasswd -a {name} sudo`
    - `login {name}`
    - `id` -> uidをメモ
    - `exit`
    - `LxRunOffline su -n Ubuntu -v {uid}`

# 2. 色々インストール

1. git, zsh, nano, gcc, make
    - `sudo apt install git zsh nano gcc make zlib1g-dev libssl-dev`
    - zlibとlibsslはこれ参照: https://qiita.com/banaoh/items/00aea13fe045fab7e8ba
1. oh-my-zsh
    - `sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"`
1. linuxbrew
    - `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
    - `echo 'export PATH="$PATH:/home/linuxbrew/.linuxbrew/bin"' >> ~/.zshrc`
1. anyenv
    - `brew install anyenv`
    - `anyenv install --init`
    - `echo 'eval "$(anyenv init -)"' >> ~/.zshrc`
1. nodenv, node, pyenv, python, goenv, go
    - `anyenv install nodenv`
    - `anyenv install goenv`
    - `anyenv install pyenv`
    - リフレッシュ
    - `git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update`
    - `git clone https://github.com/nodenv/nodenv-package-rehash.git "$(nodenv root)"/plugins/nodenv-package-rehash`
    - `git clone https://github.com/nodenv/nodenv-default-packages.git "$(nodenv root)/plugins/nodenv-default-packages"`
    - `echo "yarn" >> $(nodenv root)/default-packages`
    - `echo 'export PATH="$HOME/.yarn/bin:$PATH"' >> ~/.zshrc`
    - 最新バージョンを出すワンライナー `*env install --list | sed 's/ //g' | grep -E "^[0-9]*\.[0-9]*\.[0-9]*$" | tail -n 1` を環境別にやる
        - `nodenv install $(nodenv install --list | sed 's/ //g' | grep -E "^[0-9]*\.[0-9]*\.[0-9]*$" | tail -n 1)`
        - `goenv install $(goenv install --list | sed 's/ //g' | grep -E "^[0-9]*\.[0-9]*\.[0-9]*$" | tail -n 1)`
        - `pyenv install $(pyenv install --list | sed 's/ //g' | grep -E "^[0-9]*\.[0-9]*\.[0-9]*$" | tail -n 1)`
    - 上と同じ要領でglobalバージョンを設定
        - `nodenv global $(nodenv install --list | sed 's/ //g' | grep -E "^[0-9]*\.[0-9]*\.[0-9]*$" | tail -n 1)`
        - `goenv global $(goenv install --list | sed 's/ //g' | grep -E "^[0-9]*\.[0-9]*\.[0-9]*$" | tail -n 1)`
        - `pyenv global $(pyenv install --list | sed 's/ //g' | grep -E "^[0-9]*\.[0-9]*\.[0-9]*$" | tail -n 1)`
1. Docker Desktop
    - コマンドラインでできない悲しみ
    - https://docs.docker.com/desktop/windows/wsl/#install

# 3. 細かい設定

## git, github

- `brew install gh`
- `gh auth login`

## Windowsのパスを引き継がない

- `sudo nano /etc/wsl.conf`

```
[interop]
appendWindowsPath = false
```

- Dockerのパスを入れる
    - `echo 'export PATH="$PATH:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/ProgramData/DockerDesktop/version-bin"' >> ~/.zshrc`
    - たぶんこれしなくてもDocker Desktop入れればいい感じにしてくれる

# その他

- https://qiita.com/v2okimochi/items/f53edcf79a4b71f519b1