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) をインストールする

手順 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 で確認


お世話になったサイト

https://www.aska-ltd.jp/jp/blog/84

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
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にクローズされました
作成者以外のコメントは許可されていません