Closed10
Windowsの開発環境を構築する作業ログ
やること
- Windows Subsystem for Linux (WSL2)
- Docker / docker-compose
- Visual Studio Code
- git / GitHub CLI
- Windows Terminal
前提
- 64bit版 Windows 10 Pro (20H2) をインストール済み。
WSL2 (Ubuntu) をインストールする
- Windows 10 用 Windows Subsystem for Linux のインストール ガイド のとおり、インストールする
手順 1:Windowsの機能を追加する
- PoweShellを管理者権限で開いて、以下を実行
# Linux 用 Windows サブシステム を追加
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 仮想マシン プラットフォーム を追加
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- PCを再起動して、有効化する。
手順2:WSL2 用 Linux カーネルの更新
- x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ をダウンロードして、インストールする。
手順3:WSL 2 をデフォルトに設定
- PowerShell で以下を実行
wsl --set-default-version 2
手順4:Microsoft Store で Ubuntu をインストール、設定
-
Ubuntu 20.04 LTS をインストール
-
Ubuntu のユーザ名とパスワードを設定する
-
パッケージのアップデート
sudo apt update
sudo apt upgrade
Docker Desktop for Windows をインストール
https://hub.docker.com/editions/community/docker-ce-desktop-windows からダウンロードして、インストールする。
設定のGeneralでチェックが入っていることを確認。
PowerShellを起動して、確認
PS C:\Users\user> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
docker-desktop Running 2
docker-desktop-data Running 2
VSCode をインストール
- https://code.visualstudio.com/download からダウンロードして、インストールする。
- VSCode の拡張機能 Remote Development をインストールする。これで、Remote-WSL、Remote-Containers、Remote-SSHがセットでインストールされる。
- スタートメニューからUbuntuを起動して、VSCodeを起動する。
cd ~
mkdir sample
cd sample
code .
VS Code SErver がインストールされて、VSCodeがUbuntuにRemote接続される。
Ubuntuの起動方法
- Windowsスタートメニューから起動する
- PowerShell で
start wsl
で起動する。 - エクスプローラのアドレスバーに
\\wsl$
と打ってアクセスする
docker-compose でコンテナ起動してみる
- VSCodeに、Ubuntuの sampleディレクトリ がリモート接続されている。
- docker-compose.yml ファイルを作成する。
version: "3"
services:
web:
image: nginx:latest
ports:
- "8080:80"
docker-compose.yml を右クリック Open in integrated terminal
を選択して、ターミナルを開く。
ターミナルで、コンテナを作成、起動する。
$ docker-compose up -d
$ docker-compose ps
ブラウザで http://localhost:8080/ にアクセスして、nginxが起動していることを確認する。
Docker で確認
お世話になったサイト
Ubuntu のセットアップ
- apt のアップデート
$ sudo apt update && sudo apt upgrade -y
- Linuxbrew に必要な curl file git をインストール
- add-apt-repository コマンドを使うために software-properties-common もインストールしておく
- https通信を可能にするために apt-transport-https, ca-certificates もインストール
$ sudo apt install -y curl file git vim \
software-properties-common \
apt-transport-https ca-certificates build-essential
- Linuxbrew をインストール
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
- PATHを通す。設定をbash_profileに書き込む。
test -d ~/.linuxbrew && PATH="$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin:$PATH"
test -d /home/linuxbrew/.linuxbrew && PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH"
test -r ~/.bash_profile && echo "export PATH='$(brew --prefix)/bin:$(brew --prefix)/sbin'":'"$PATH"' >>~/.bash_profile
echo "export PATH='$(brew --prefix)/bin:$(brew --prefix)/sbin'":'"$PATH"' >>~/.profile
- brew でインストールする
$ brew install curl git wget gcc zlib libzip bzip2 readline openssl pkg-config autoconf
anyenv のインストール
- anyenv をインストール
$ brew install anyenv
- 初期化
$ anyenv install --init
- .bashrcに初期化スクリプトを追加
$ echo 'eval "$(anyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
- anyenv update plugin をインストールする。
- anyenvで管理する○○envを一括でアップデートできる
$ mkdir -p $(anyenv root)/plugins
$ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update
$ anyenv update
- バージョンの確認
$ anyenv -v
anyenv 1.1.2
Pythonの環境を構築する
- pyenv をインストール
$ anyenv install pyenv
$ exec $SHELL -l
- pyenv で Python 2.7.18 と 3.9.4 をインストール
$ pyenv install 2.7.18
$ pyenv install 3.9.4
- この時、2.7.18 をインストールしようとしてエラーが出た
$ pyenv install 2.7.18 Downloading Python-2.7.18.tar.xz... -> https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz Installing Python-2.7.18... python-build: use readline from homebrew ERROR: The Python zlib extension was not compiled. Missing the zlib? Please consult to the Wiki page to fix the problem. https://github.com/yyuu/pyenv/wiki/Common-build-problems BUILD FAILED
- https://github.com/pyenv/pyenv/wiki/Common-build-problems に書かれている通り、Prerequirementが足らなかったっぽいので、インストールする。
sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
- 再度
$ pyenv install 2.7.18
したら、インストールできた。pyenv install 3.9.4
もインストールする。
- pyenv でglobalを指定。バージョンの確認。
$ pyenv global 2.7.18 3.9.4
$ pyenv versions
system
* 2.7.18 (set by /home/user/.anyenv/envs/pyenv/version)
* 3.9.4 (set by /home/user/.anyenv/envs/pyenv/version)
$ python --version
Python 2.7.18
$ python3 --version
Python 3.9.4
- pip を更新
$ pip install --upgrade pip setuptools
$ pip3 install --upgrade pip setuptools
$ pip --version
pip 20.3.4 from /home/user/.anyenv/envs/pyenv/versions/2.7.18/lib/python2.7/site-packages/pip (python 2.7)
$ pip3 --version
pip 21.1.1 from /home/user/.anyenv/envs/pyenv/versions/3.9.4/lib/python3.9/site-packages/pip (python 3.9)
Windows terminal をインストールする
Microsoft Store からWindows Terminalをインストールする。
WSL2 の Ubuntu をデフォルトプロパティに設定する
Windows Terminal を開いた状態で Ctrl + ,
すると、設定が開く。JSONファイルを開くから、settings.json
をVSCodeで開いて編集する。
defaultProfile を WSL2 の UbuntuのGUID
に変更する。
Ubuntuを開いたときのディレクトリを、初期位置に変更する。
{
"defaultProfile": "{2c4de342-38b7-51cf-b940-2309a097f518}", // 変更
.
.
"profiles":
{
"list":
[
{
},
{
"guid": "{2c4de342-38b7-51cf-b940-2309a097f518}",
"hidden": false,
"name": "Ubuntu",
"source": "Windows.Terminal.Wsl",
"commandline": "wsl.exe ~ -d Ubuntu" // 追加
},
.
.
このスクラップは2021/05/03にクローズされました