🕌

#01 WSLを使った作業環境を準備した時のメモ(2023.10)

2024/10/02に公開

はじめに

開発言語の多様化やAWS CDKやCLIが便利になり、ローカルで開発する機会が増えてきました。
次回用に備忘録として、WSL2を準備した時のメモをアップします。

セットアップ対象のバージョン

  • Windows11
  • Ubuntu on Windows
  • rustup 1.80.1
  • node 20.12.2
  • aws-cli 1.29.20

WSLをインストールする

2.1 「WSL を使用して Windows に Linux をインストールする」を参照

管理者モードでPowerShellから、次のコマンドを実行する

 > wsl - install 
 > wsl --set-default-version 2

※ビルド時にメモリーが枯渇する場合は、<ユーザディレクトリ>/.wslconfigの値を更新する

[wsl2]
memory=8GB ※
swap=0

WSLをセットアップする

WSLのターミナルを起動し、OSをアップデートする

$ sudo apt update && sudo apt upgrade
$ sudo apt-get install unzip ca-certificates curl gnupg lsb-release tree
$ sudo apt install -y build-essential gdb
$ sudo update-alternatives --config editor
  Selection    Path                Priority   Status
  ------------------------------------------------------------
  0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
* 3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    15        manual mode
$ cd ~
$ vi .vimrc // Vim設定
---
scriptencoding utf-8
set visualbell
set noerrorbells
set tabstop=4
---

利用するツールをインストールする

開発環境

command
// Rust
// 参照: rustup is an installer](https://rustup.rs/
$ sudo apt install librust-alsa-sys-dev
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
$ source "$HOME/.cargo/env"
$ rustup -V
   rustc 1.27.1
$ rustc -V
  rustc 1.80.1
$ cargo -V
  argo 1.80.1
  
// Node
// [node version manager]を参照する
// https://github.com/nvm-sh/nvm#installing-and-updating
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.39.5/install.sh | bash
$ nvm install stable --latest-npm
$ nvm ls-remote //nodeバージョン一覧表示
$ nvm install v18.17.0
$ nvm alias default v18.17.0
$ nvm ls-remote
$ node -v
$ cd ~/.nvm
$ git pull origin master //nvmバージョンアップしておきます。
$ vi .bashrc
---
if [ -f ~/.nvm/nvm.sh ];then
        source ~/.nvm/nvm.sh > /dev/null 2>&1
fi
---
$ source ~/.bashrc
$ curl https://get.volta.sh | bash

//MEMO: キャッシュを削除したいとき
$ npm cache clean --force

aws tools

事前にIAMからデプロイ用のアクセスキーを取得する

command
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awcliv2.zip
$ sudo ./aws/install
$ aws --version
$ aws configure
$ cd .aws
$ vi config
  ---
  [default]
  region = ap-*****
  ---
$ vi credentials
  ---
  aws_access_key_id = ********  // IAMで作成したデプロイ用アカウントのアクセスキー
  aws_secret_access_key = ******** // IAMで作成したデプロイ用アカウントのアクセスキー
  ---
// brew インストール
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
$ test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
$ test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
$ test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile
$ echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile
$ brew install sl // 試し
$ sl
// AWS CLI
$ pip3 install awscli-local
$ complete -C aws_completer aws
$ echo '# aws completer' >> ~/.bash_profile
$ echo complete -C \'$(which aws_completer)\' aws >> ~/.bash_profile

Apx.1 WSL2からDockerを起動する

Docker Engine インストール(Ubuntu 向け)を参照

$ sudo apt-get remove docker docker-engine docker.io containerd runc
$ sudo apt-get install ca-certificates curl gnupg lsb-release build-essential file git
$ sudo mkdir -m 0755 -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
$ sudo service docker start
$ sudo docker run hello-world
$ sudo service docker stop
<memo>
$ sudo usermod -aG docker <利用ユーザー> ※パスワードの入力を不要にする
$ sudo update-alternatives --config editor ※デフォルトのエディターを変更

Apx.2 WSL2をCドライブからDドライブへ移す

WSL で使用する Linux ディストリビューションをインポートするを参照
※この操作で、40GBほどCドライブに空きを作ることができた。

Windows上で、PowerShellを起動する
$ wsl --export Ubuntu ubuntu_copy.tar // wsl --export <Distibution Name> <FileName>
$ wsl --unregister Ubuntu // この操作で現行WSLの中身は削除される。
$ cd D:\
$ mkdir wsl
$ mkdir tmp
$ mv ubuntu_copy.tar D:\tmp
$ wsl --import Ubuntu D:\tmp\ubuntu_copy.tar
  (移動完了)
$ cat << EOF > /etc/wsl.conf // WSLログイン時のデフォルトユーザーを設定
$ [user]
$ default=<user-name>
$ EOF
 

Discussion