WSL2 + Ubuntu設定メモ(2022/02版)


WSL2をwindows11環境でセットアップし自分なりにカスタマイズするコマンドのメモ。2022/02/14時点の情報だが随時更新予定。

WSL2導入

管理者権限でPowerShell または コマンドプロンプトを起動しに次のコマンドを入力する。

wsl --install

以前と比べると格段に楽になった。Linuxディストロの指定を特にしない場合はUbuntu 20がインストールされる。
インストール処理が完了した後にPCを再起動する。
再起動後、アプリ一覧よりUbuntuを選択し起動する。

新しいユーザー名とパスワードを入力する。
WSL2とUbuntuの導入はここで終わり

aptリポジトリの変更

私の自宅から標準のUbuntuミラーサーバーまでの通信が遅いため、最寄りのミラーサーバーへ変更する。
私の自宅からはNAISTが一番早いためこれに変更する。以下コマンド。

sudo perl -p -i.bak -e 's%(deb(?:-src|)\s+)https?://(?!archive\.canonical\.com|security\.ubuntu\.com)[^\s]+%$1http://ftp.naist.jp/pub/Linux/ubuntu/%' /etc/apt/sources.list 
sudo apt update

標準で使うエディタを変更

私はCUIで利用するエディタはvim派なので、OS標準で利用するエディタの設定を変更する。
番号を入力しEnterを押下する。

sudo update-alternatives --config editor

WSLのデフォルトユーザーを変更する

私はWSLをVScodeから利用することが多いのだが、デフォルトユーザーが一般ユーザーだと/optなどのファイルが編集できずに困る。
そのためデフォルトユーザーをrootに変更する。

ubuntu config --default-user root

シェルのユーザー名に色をつける

ユーザー名も標準の白色では読みにくいため色をつける。
以下コマンドをrootユーザーで実行する。

echo "export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '" >> /etc/profile.d/prompt.sh && \
echo "export PS1='\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\\$ '" >> /root/.bashrc

anyenvのインストール

GoやPython,Nodeのバージョン管理ができるanyenvを導入する。

# リポジトリのクローン
git clone https://github.com/anyenv/anyenv ~/.anyenv

# PATHを通す
echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(anyenv init -)"' >> ~/.bashrc

# シェルの再起動
exec $SHELL -l

# プラグインのインストール
anyenv install --init

anyenvで各言語の環境をセットアップする

curl: (56) OpenSSL SSL_read: Connection reset by peer, errno 104

途中で上記のエラーが表示されることがあるがこれはこちらのPCのネットワークの問題かもしれない。Wi-Fiで接続していたので有線接続にしたところ収まった。
ftpでデータを拾ってくるときに接続が瞬断すると出るエラーなのだろうか?

# インストールできる言語を確認する
anyenv install --list

# 必要な言語をインストールする
anyenv install nodenv
anyenv install pyenv
anyenv install goenv

exec $SHELL -l

nodeのインストール

# インストールできるバージョンのリストを表示
nodenv install -l

nodenv install 14.18.3
nodenv global 14.18.3
node -v

pythonのインストール

pyenv実行前に必要なライブラリをインストールする。

sudo apt install -y libffi-dev libssl-dev zlib1g-dev liblzma-dev tk-dev libbz2-dev libreadline-dev libsqlite3-dev libopencv-dev build-essential git
pyenv install -l
pyenv install 3.9.10
pyenv global 3.9.10
python --version

goのインストール

goenv install -l
goenv install 1.17.7
goenv global 1.17.7
go version

gitの補完を有効にする

bashにてgitのコマンドを利用する際に、標準の設定では補完が効かない。
以下コマンドで有効にする。

echo "source /usr/share/bash-completion/completions/git" >> ~/.bashrc
source  ~/.bashrc

参考文献

WSL のインストール | Microsoft Docs

沖縄から最速のUbuntuミラーサーバー | Blog

Ubuntu20.04.3のセットアップ - Qiita

WSL で デフォルトユーザ を変更する方法 - いろいろ備忘録日記

anyenvの環境構築 - Qiita

nodenvの環境構築 - Qiita

ubuntu 20.04 / 18.04 に pyenv をインストール

goenv/INSTALL.md at master · syndbg/goenv

ubuntuでgitの補完をする - Qiita