# Windows Subsystem for Linux (WSL)の設定手順
## 概要
Windows上でコマンド操作をする際,今まではCygwinを用いてきたが更新を終了するということだったので,これを機にWSLに乗り換えることにしました.
ここではインストールと簡単なセットアップの手順を紹介します.
ただし,私自身もネットの記事を参考に行ったので,何かわからないことがあればそちらを見た方が早いかもしれません.参考にしたページのリンクを最後にまとめますので,詳しく知りたい方はそちらをご覧ください.
## 目次
1. WSLのインストール
2. 簡単なセットアップ
3. 各種必要なもののインストール
## WSLのインストール
### 1.機能の有効化
まずインストールの前に使用しているWindowsPCでWSLの機能を有効にする必要があります.
指定のページを開いてチェックを付けるだけなので,サクッとやりましょう.
以下の順に進んでページを開きましょう.
[Windows + X] ⇒ [アプリと機能] ⇒ [プログラムと機能] ⇒[Windows機能の有効化または無効化]
それぞれのスクリーンショットは以下の通りです.


[Widows Subsystem for Linux]にチェックを入れて[OK]を押せば完了です

### 2.Microsoft Storeからインストール
次にLinuxをインストールします.
スタートボタン横の検索欄で「Microsoft Store」と検索し,選択します.

Storeの検索欄で「Linux」と検索すると色々出てきます.
どれでも構いませんが特にこだわりがなければ,「Ubuntu 18.04 LTS」にしましょう.
Ubuntuは利用者が多いので,困ったことがあってもネットで簡単に記事を見つけられます.
私もそうですが,初心者にとっては優しいものだと思います.

私はすでにインストール済みなのでボタンが「起動」となっていますが,未インストールの場合は「入手」となっていますので,そこをクリック.
Microsoftアカウントのサインインを求められますが,入力しなくても大丈夫です.

インストールが完了したら起動しましょう.
コマンドラインウインドウが表示されるはずです.
## 簡単なセットアップ
ここからセットアップに入りますが,コマンドラインのスクリーンショットは面倒なので少なめで説明します.
### 1.ユーザーの設定とaptのアップデート
アプリを起動すると初期セットアップが始まるので,しばらく待ちます.
その後,ユーザー名とパスワードが求められるので入力します.
ただし,Windowsのローカルアカウント名と被ると環境がごちゃごちゃする可能性があるので,違う名前を付けましょう.
```
Enter new UNIX username: #名前を入力
Enter new UNIX password: #パスワードを入力
Retype new UNIX password: #パスワードを再入力
```
以上を入力すると以下のように変化する.
```shell
(Username)@(PCname):~$
```
ここからはコマンド入力ができます.
続いて,Ubuntuのパッケージ管理ツールである`apt`のアップデートを行う.
入力はいたって簡単,2行で終了します.
```shell
$ sudo apt update
[sudo] password for (Username):
$ sudo apt upgrade
```
`sudo` : 管理者権限でコマンドを実行する際につける.パスワードを求められ,入力後実行される.
`apt` : Ubuntuのパッケージ管理ツール.Ubuntu内で何か機能を追加したかったら,基本こいつを使います(多分).
`update`&`upgrade` : updateは更新項目があるか検索する,upgradeは検索した更新項目を実際に更新するコマンドでセットで用いる
これがうまくいけばとりあえずは大丈夫のはずです.
私は以前に何度もこのaptの段階で失敗してたので...
### 2.Windowsのデスクトップへのショートカットを作成
`Ubuntu`を起動した際にいる位置はWindowsのホームとは違います.
というのも,アプリとして起動してますが`Ubuntu`はWindowsOSとは異なる場所(仮想環境)に入っているためです.
なので,WindowsPCのDesktopに簡単にアクセスするための設定を行います.
まずDesktopの場所は以下の通り.
```
/mnt/c/ # WindowsOSが入ってるCドライブ
/mnt/c/Users/(Windowsのアカウント名)/Desktop # WindowsのDesktop
```
タイトルにもある通り,ショートカットをコマンドで作成します.
ホームディレクトリの場所を変えるという方法もありますが,やめといた方が良いと思います.
`ln`コマンドで簡単にできます,以下の通り.
```shell
$ ln -s リンク先のディレクトリ,ファイル リンクを置きたい場所
$ ln -s /mnt/c/ ~/c_drive
$ ln -s /mnt/c/User/(WindowsName)/Desktop ~/Desktop
```
結果,ホームで`ls`コマンドを行うと以下のようになる.
```
$ ls
c_drive Desktop
```
これでUbuntu起動後,簡単にDesktopに移動できるようになる.
### 3.画面の設定
デフォルトの画面が見づらいって場合の調整する方法を説明します.
といっても簡単なので,オプション画面の開き方だけを教えます.
`Ubuntu`ウインドウの上タブの部分で右クリックします.
でてきたウインドウのプロパティを選択,そこで様々な設定ができます.

設定は自由ですが,フォントをコーディング向けに変更するのがおススメです,見やすいので.
また,不透明度を少し下げるとハッカーみたいな気分になれます,ぜひ試してください.
## 各種必要なもののインストール
これから説明するのは私が必要だと思ってインストールしたもののやり方です.
項目は以下の通りです.
1. ssh
2. Python(anadconda)
それぞれ簡単に説明します.
### 1. ssh
これはデフォルトで入ってるコマンドなので,ここで説明するのはconfigの設定です.
`ssh`とは`Secure SHell`の略で,サーバーやWorkstationなどをリモートで操作するためのコマンドです.
スパコンなどの計算機を用いる場合には,必須のコマンドなので使えるようになっておきましょう.
基本コマンドは以下の通りです.[]内はオプションなので必要な場合のみ入力.
```
$ ssh (Username)@(IPアドレス) [-p (ポート番号) -i (秘密鍵ファイル)]
```
しかし,これを毎回打つのは面倒.
なので`config`ファイルを作りましょう.
基本的な書き方は以下の通りです.
```
~/.ssh/config #ファイルの場所と名前
---------- #ファイルの内容は次の行から
Host (サーバーの名前)
HostName (IPアドレス)
User (アカウントの名前)
Port (ポート番号)
IdentityFile (秘密鍵ファイルのパス)
-----------
```
これを作成しておくと`$ ssh (サーバーの名前)`だけで入れるようになり便利です.
### 2. python(Anaconda)
WSLを導入するにあたり,私が一番うれしかったのが`python`を導入できるようになったことです.
Windowsでも`Anaconda`を使うことはできますが,私は`ArcGIS`を使っているため,入れることがかないませんでした.
というのも`ArcGIS`はPython2系で動いているため,Python3系を入れれないのです.
もしPythonインストーラーの指示通り入れようものなら,パスが変更されて環境がごちゃ混ぜになります.
そして,`ArcGIS`が起動しなくなってしまいます.
こうなるともうすべてをなかったことにして,「ゼロから始める」しかありません(再インストール).
ここまで語れるのは私が経験者であるからでございます...
しかし!
`Ubuntu`は仮想環境であり,Windowsの環境には影響を及ぼさないため,こちらでPython3を入れて使用することが可能です!
`Cygwin`でもできるという記事の元,いろいろ試してできなかった日々を過ごしましたが,その日々と今,決別します!
少々話が脱線し,文調がうっとうしくなってしまい申し訳ありません.
インストールは簡単なので,ここからは淡々と行きます.
まずaptで必要なものをインストールします.
何がどのような働きを持つのか,私も理解していませんが以下のように打ちます.
```
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev libpng-dev
```
続いて`pyenv`のインストールをします.
各コマンドは一行ずつ入力してください.
```
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ git clone https://github.com/yyuu/pyenv-pip-rehash.git ~/.pyenv/plugins/pyenv-pip-rehash
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
```
いよいよPythonのインストールです.
まずインストールするPythonのバージョンを調べましょう.
```
$ pyenv install -l | grep anaconda3
anaconda3-5.0.1
anaconda3-5.1.0
anaconda3-5.2.0
anaconda3-5.3.0
anaconda3-5.3.1
anaconda3-2018.12
```
最新版は`anaconda3-2018.12`のようなので,これをインストールします.
```
$ pyenv install anaconda3-2018.12
```
インストールには結構時間がかかるので,待ちます.
終了したら,`python`コマンドを使えるように以下を入力します.
```
$ pyenv global anaconda3-2018.12
$ echo 'export PATH="$PYENV_ROOT/versions/anaconda3-4.1.0/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc
```
インストールできたかどうか,`python`コマンドを入力して以下のように表示されれば完了です.
```
$ python
Python 3.7.1 (default, Dec 14 2018, 19:28:38)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
```
また,`ArcGIS`を使用している人はそちらが問題なく動くかどうかも,念のため確認しておきましょう.
#### 参考リンク
以上の記事は,以下の記事を参考に作成しました.
不明な点や説明を省いた部分等は以下を見れば分かると思いますので,ご参考まで.
- [Windows Subsystem for Linuxをインストールしてみよう!](https://qiita.com/Aruneko/items/c79810b0b015bebf30bb)
- [【 ln 】コマンド――ファイルのハードリンクとシンボリックリンクを作る](https://www.atmarkit.co.jp/ait/articles/1605/30/news022.html)
- [~/.ssh/configについて](https://qiita.com/passol78/items/2ad123e39efeb1a5286b)
- [16.04にpyenv+Anacondaを入れてみる](https://qiita.com/masataka46/items/3bbe2b0aa0e9bca5ccc1)
###### tags: `WSL` `Setting`