Open4

Windows11 で機械学習用に WSL2 の環境構築したときのメモ

きだたつやきだたつや

だいぶまえにWSL2+Ubuntuを入れてたが、ゼロから環境構築したくなって、やりなおしたときのメモ。2023年春。またやり直すことがある気がしてそのときのために雑にメモ。

きだたつやきだたつや

Ubuntu を消して、Ubuntuを入れる

Windows 設定の 「Apps > Installed apps」から Ubuntu を消す。

Microsoft Store アプリから Ubuntu をインストール

  • wsl -l -v でステータスを一覧可能
  • wsl -u kida で Ubuntu に入れる

初期設定

sudo apt-get update && sudo apt-get upgrade

zsh + prezto

shellがデフォルトはbashなのでzshに変更する。

sudo apt-get install zsh
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
  ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done

以下のコマンドでzsh に設定して

chsh -s $(which zsh)
exit
wsl

するとzshの設定をしませんか?と聞かれる 2 を選んだ

sudo apt-get install fonts-powerline
prompt -p  でテーマを選べるがデフォルトのやつが一番好き

以下は覚えておくと便利なコマンド

# 現在どっち?のシェルか?
echo $SHELL

# 使用可能なリスト
cat /etc/shells

# zshrc の再読み込み
source ~/.zshrc

volta

Node.jsの環境構築
インストール

curl https://get.volta.sh/ | bash

wsl 再起動(1回 exit して wsl で入りなおす)

volta install node && volta install npm

github copilot cli

$ npm install -g @githubnext/github-copilot-cli
$ github-copilot-cli auth

ページ開いて認証する
$code ~/.zshrc

でファイルを開いて、以下の一文を添える

eval "$(github-copilot-cli alias -- "$0")"

pyenv

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

zshrc に以下を追加

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"

global に python を入れる

sudo apt install gcc make build-essential libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libbz2-dev libreadline-dev libffi-devel libffi-dev liblzma-dev

pyenv install 3.10.6
pyenv global 3.10.6

pyenv-virtualenv

git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

pyenv virtualenv 3.10.6 sd-webui

zshrc に以下を追加

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.profile

知っておくと便利なコマンドメモ

# install 可能な anacondaを検索
pyenv install -l | grep anaconda

# env つくる
pyenv virtualenv 2.7.10 my-virtual-env-2.7.10

# env 削除
pyenv uninstall 3.8.2/envs/greenhouse

cuda, cudnn

nvidia の このページの Option 1: Installation of Linux x86 CUDA Toolkit using WSL-Ubuntu Package - Recommended のリンクの「 download page for WSL-Ubuntu」を開いて出てくるこの CUDA Toolkit 12.1 Downloads のページで

  • OS : Linux
  • arch : x86_64
  • Distribution : WSL-Ubuntu
  • Version : 2
  • Installer Type : dev

を選んで出てくるコードをコピペ

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin && sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 && wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb && sudo dpkg -i cuda-repo-wsl-ubuntu-12-1-local_12.1.0-1_amd64.deb && sudo cp /var/cuda-repo-wsl-ubuntu-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/ && sudo apt-get update && sudo apt-get -y install cuda

cudnn はここに書いてる内容のまま、そのままコピペ

参考にした記事 :

バックアップして、Dドライブで実行

1回 WSL を出て、Dドライブに移動しフォルダで以下を実行し、Dドライブに入れなおす

wsl.exe --export Ubuntu Ubuntu-22.04-kida.tar

wsl --import Ubuntu D:\08-WSL D:\08-WSL\Ubuntu-22.04-kida.tar

参考

anaocnda

機械学習ライブラリの install に conda が出てくることがある。 (clipとか)
pyenv 使って入れてしまったので共存の道を探る。
pyenv + conda の環境構築メモ

install

pyenv install -l | grep anaconda
pyenv install anaconda3-2023.03
pyenv global anaconda3-2023.03

環境構築はふつうは以下なんだけど、pyenv と共有の環境だとちょっと違う

conda create -n clip python=3.10

この 3.pyenv-virtualenv を入れる て方法に従う

pyenv activate  anaconda3-2023.03/envs/clip
pyenv deactivate

env を有効化する時は「conda」と「conda 以外」でわける必要がある

  • pyenv activate: condaの時はこっち
  • pyenv local : conda以外の環境を使う時

その他

  • asdf 試したが、virtualenv 的なのをべつで作る必要があるっぽくて今回はやめました
  • direnv とか anyenv とか色々あるっぽいので、また試したい
  • docker コンテナ内にjupyterたてて、vscodeからアクセスする方法も気になる
きだたつやきだたつや

追加メモ :

  • 機械学習をライブラリをいろいろためすだけの環境なら、anaconda だけでいいのかもしれない
    • pyenv,virtualenv いらないのかも。本番は anaconda入ってるとややこしくなることがあるけど。
  • pip でなくて、poetryも試してみたい
  • 「pyenv+venv+pipは実質pipenvなのでpipenvで良さ」というツイートをみかけて、pipenvもきになる
きだたつやきだたつや

Git

it-ecosystem/git-credential-managerReleases から exe をダウンロードして

Linux 用 Windows サブシステムで Git の使用を開始する に書かれてる git のバ
ージョンに応じたコマンドを打つ。自分の場合は以下。

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

参考:
WSL2でGit認証を毎回聞かれないようにする

VSCode

GitHub Copilotは WSL に個別にインストールが必要だった。