dragon image みちのぶのねぐら

Windows Subsystem for Linux の Debian で Web 開発の環境を作る

Update: 2020-07-11

Windows Subsystem for Linux の有効化の手順は https://docs.microsoft.com/ja-jp/windows/wsl/install-win10 を見てください。私は組み込み用途で使われることが多い Debian を選択しました。

2019年6月時点では Debian 9 "stretch" が入ります。 Debian 10 "buster" はまだリリースされたばかりです。 私の好みで neovim を入れました。

$ cat /etc/issue
Debian GNU/Linux 9 \n \l

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install neovim
$ nvim --version
NVIM 0.1.7

標準のパッケージとして ssh クライアントと git と python3 を入れます。

$ sudo apt install openssh-client
$ sudo apt install git
$ git --version
git version 2.11.0

$ git config --global user.name "Firstname Lastname"
$ git config --global user.email "michinobumaeda@gmail.com"

$ sudo apt install python3
$ python3 --version
Python 3.5.3

$ sudo apt install python3-pip
$ pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.5)

$ pip3 install virtualenv
$ virtualenv --version
16.6.1

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-debian-9 を参考に Node.js 10 を入れます。

$ sudo apt install curl
$ curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh
$ sudo bash nodesource_setup.sh
$ sudo apt install nodejs
$ node --version
v10.16.0

$ npm --version
6.9.0

$ sudo npm install yarn -g
$ yarn --version
1.16.0

https://computingforgeeks.com/how-to-install-php-7-3-on-debian-9-debian-8/ を参考に PHP 7.3 を入れます。

$ sudo apt -y install lsb-release apt-transport-https ca-certificates
$ sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
$ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php7.3.list
deb https://packages.sury.org/php/ stretch main

$ sudo apt update
$ sudo apt -y install php7.3
$ php --version
PHP 7.3.6-1+0~20190531112735.39+stretch~1.gbp6131b7 (cli) (built: May 31 2019 11:27:35) ( NTS )

$ echo test > index.html
$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 ...

Webブラウザで URL http://localhost:8000/ が表示できるれば OK です。

Windows の notepad を起動することもできます。拡張し .exe を付けてください。 ちなみに ping.exe で Windows版の ping が、 ping で Debian の ping が起動できます。

$ notepad.exe index.html

ls /mnt/c/ で Windows の C: ドライブも参照できます。

Windows のエクスプローラやコマンドプロンプトから \\wsl$\Debian Debian のファイルシステムが参照できます。

WSL 環境からのインターネット接続がうまくいかない場合は、 ipconfig.exe /all で DNS サーバの IPアドレスを調べて、 /etc/resolv.confnameserver IPアドレス と設定してやると取り敢えずなんとかなるようです。 私自身、モバイル環境でトラブったのですが、正しい手順はよくわかりません。

ssh クライアントは Linux とまったく同じように利用できます。

$ mksir ~/.ssh
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):

$ eval `ssh-agent`
$ ssh-add

Visual Studio Code をインストール済みであれば、コマンド code で起動できるようです。

$ git clone gtit@gitlab.com:UserName/project-name.git
$ code project-name

[Ctrl]+[Shift]+P で Terminal: Select Default Shell を入力するとターミナルのデフォルトのシェルの選択肢が出てきますので、 WSL Bash C:\Windows\System32\wsl.exe を選択します。

ターミナルはメニューの Terminal -- New Terminal で表示できます。 OSによってショートカットキーが異なるかもしれないので、メニューに表示されるものを使ってください。

Python の場合、プロジェクトごとの環境設定は以下のようにするとよいです。

$ virtualenv venv
$ . venv/bin/activate
$ python --version
Python 3.5.3

$ which python
project-directory/venv/bin/python

$ which pip
project-directory/venv/bin/pip

プロジェクトに requirements.txt がある場合は以下のコマンドで必要なパッケージが導入できます。 パッケージはグローバルではなく、プロジェクトのディレクトリの venv サブディレクトリの下に入ります。

$ pip install -r requirements.txt
$ ls venv/lib/python3.5/

一度設定すると、次回からは

$ . venv/bin/activate

だけでだいじょうぶです。

virtualenv で python のバージョンをプロジェクト毎に設定することも可能です。 Node.js や PHP などの他の言語にも Python の virtualenv に似た仕組みがあります。

Tag: Windows WSL Debian python pip virtualenv git