💻

Windowsで開発環境構築

2022/01/14に公開

最近Windows端末に買い替えたので、Windowsでの環境構築手順をメモがてら纏めます。コンセプトは最低限使える状態にすること、今使っているMac環境に近い状態を目指すことです。

ターミナル

まずはターミナル環境を整えます。

wsl2

WindowsでLinux環境を使用できる機能です。明示的に指定していないので、wslのデフォルトのubuntuを入れます。

  • wslをインストール
> wsl --install
#インストールしたwslを確認
> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2
  • wslを起動し、packageを更新します。
sudo apt update && sudo apt upgrade

homeディレクトリ変更

wslインストール後は/home/XXXXがHOMEディレクトリですが、気に入らないのでWindowsユーザー配下に変更します。
windows配下にWSLのホームディレクトリを設定すると、WSLで操作するファイルをwindowsのファイルシステム配下に置くため非常に遅くなるためお勧めしません!

https://docs.microsoft.com/ja-jp/windows/wsl/setup/environment#file-storage より

使用する予定のツールと同じオペレーティング システムにプロジェクト ファイルを格納します。
Linux ツールを使用して Linux コマンド ライン (Ubuntu、OpenSUSE など) で作業している場合、最速のパフォーマンス速度を実現するには、ファイルを WSL ファイル システムに格納します。 Windows ツールを使用して Windows コマンド ライン (PowerShell、コマンド プロンプト) で作業している場合、ファイルを Windows ファイル システムに格納します。 オペレーティング システム全体のファイルにアクセスできますが、パフォーマンスが大幅に低下する可能性があります。

windowsユーザーに切り替える場合の手順
$ sudo vim /etc/passwd
# Linuxユーザー名:x:1000:1000:,,,:/home/[Linuxユーザー名]/bin/bash
# /home/[Linuxユーザー名]を「/mnt/c/Users/Windowsユーザー名」に変更
  • /mnt/c以下のパスのパーミッションを変更できるようにする
$ sudo vi /etc/wsl.conf # 以下を追記
 [automount]
 options = "metadata"
  • 「サービス」から「LxssManager」再起動

  • 一応、現状のHOMEディレクトリにある設定ファイルを移動

$ pwd
/home/[Linuxユーザー名]
$cp -r ./.* ~/
$cp -r ./.landscape/ ~/
  • 一旦wslターミナルを閉じて、再度起動
$ pwd
# /mnt/c/Users/[Windowsユーザー名]に変わっていることを確認

zsh

最近はbashよりzshを使っているので、zshを使えるようにします。

  • zshインストール
$ sudo apt install zsh
$ sudo vi  /etc/shells
# 「/usr/bin/zsh」 がなければ追加
  • Oh My Zshインストールし、プラグインインストール
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

$ mkdir ~/.zsh && cd ~/.zsh

# シンタックスハイライトのプラグイン
$ sudo apt install zsh-syntax-highlighting
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# コマンド履歴の入力補完
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions

$ vi .zshrc # zsh-syntax-highlightingとzsh-autosuggestionsを追加
...
plugins=( [plugins...] zsh-syntax-highlighting zsh-autosuggestions)
...

ターミナル用フォントインストール

ターミナル用の文字をpowerline対応にする必要があります。また、綺麗な文字にしたいのでフォントをHackGenに変更します。
https://github.com/yuru7/HackGen/releases

ターミナルクライアントアプリ

最低限の機能はあるので、しばらくWindows Terminalを使ってみます。

  • Windows Terminalをインストール。

  • フォント設定
    設定→Ubuntu→外観→フォントフェイスを「HackGen Console」に設定

lsの結果でディレクトリ見づらい問題

$ dircolors -p > ~/.dircolors
$ sed -ie 's/34;42/01;32/g' ~/.dircolors
$ vi ~/.zshrc #.zshrcに追記
eval $(dircolors -b ~/.dircolors)

完成後のターミナル

イメージ

vscode

エディタ。Mac環境で設定している情報をSetting Syncで同期するだけなので大した設定はしません。

Python環境

Pythonを最近使っているので、使える環境を整えます。

pyenv

https://github.com/pyenv/pyenv

# インストール
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ cd ~/.pyenv && src/configure && make -C src


$ vi ~/.zprofile # PATHの設定。以下を追加。
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"  
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

https://github.com/pyenv/pyenv/wiki#suggested-build-environment

sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
$ pyenv install 3.10.1
# 結構時間かかるかも知れない
$ which python
/mnt/c/Users/[Windowsユーザー名]/.pyenv/shims/python
$ pyenv global 3.10.1
$ python --version
Python 3.10.1

pipenv

Anacondaよりpipenv派。

$ pip install --upgrade pip
$ pip install pipenv
$ pipenv install --python 3.10.1 
$ pipenv install pytest

installするパッケージは何でもです。インストール出来て、Pipfile,Pipfile.lockが作成されていればOKです。

docker

まだ設定してない。

便利ツール

Clipyの代替

クリップボードにコピーした履歴を管理できるアプリ。
https://chigusa-web.com/clibor/

Alferd4の代替

ランチャーアプリ。見た目がalferd4っぽかったので採用。
https://ueli.app/#/

Karabiner-Elementsの代替

キーボードカスタマイズアプリ。
https://github.com/randyrants/sharpkeys

設定内容はWindowsのcntlとMacのcmdはだいたい同じなので、配置をそれに合わせる。

win→alt
cntl→win
Capslock→cntl
alt→cntl

参考URL

https://docs.microsoft.com/ja-jp/windows/wsl/install
https://www.beeete2.com/blog/?p=2619
https://qiita.com/Nick_ut/items/64012552092556a0a944
https://qiita.com/funacchi/items/c3bb78a546cf2605205d
https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/INSTALL.md
https://github.com/zsh-users/zsh-autosuggestions/blob/master/INSTALL.md
https://zenn.dev/nekocodex/articles/c94ae757119b87#windows-terminalとstarshipのインストール
https://www.kwbtblog.com/entry/2019/04/27/023411
https://qiita.com/Yumaski/items/53fbd1684bee303d65aa
https://www.beeete2.com/blog/?p=2690
https://qiita.com/meruneru/items/412c4a699f45d60f478c
https://yanor.net/wiki/?Windows/WSL/ファイルシステム/共有ファイルのパーミッションをLinux上で変更する
https://laboradian.com/installation-and-setting-of-wsl/

Discussion