かざんぶろぐ

だらだらと備忘録とってます

Bash on Ubuntu on Windows + Anaconda + Atom

Bash on Ubuntu on WindowsにAnacondaを入れてPython環境を構築した上で、
Atom上で使えるようにした。

環境はWindows10 Enterprise 64ビット

参考にさせていただいたサイトはこちら
Bash on Ubuntu on Windows(BoW)のインストール
Bash on Ubuntu on Windowsが楽しい! - Qiita
Bash on Ubuntu on Windowsの設定 - Qiita

Bash on Ubuntu on WindowsにAnacondaを入れる
Bash on Ubuntu on WindowsでTensorFlowを使うためのメモ - Qiita
Windows Subsystem for Linuxをインストールしてみよう! - Qiita

作り上げたBashAtom上で使う
Bash on Ubuntu on Windows+Atomで開発環境を整えてみる | Linuxとかプログラミングとか。


Bash on Ubuntu on Windows(BoW)のインストール

まずはBoWのインストール、環境構築を行う。 

開発モード有効化

「スタート」メニュー -> 「設定」 -> 「更新とセキュリティ」
って感じで進み、左側にある、開発者向けタブを選択。

開発者モードのラジオボタンを選択。パスワード認証を行い有効化完了。

f:id:okuya-KAZAN:20170426164711p:plain


WSL(Windows Subsystem for Linux)のインストール

「コントロールパネル」→「プログラム」→「プログラムと機能」→「Windowsの機能の有効化または無効化」→Windows Subsystem for Linux (Beta)にチェック

f:id:okuya-KAZAN:20170426165050p:plain
再起動が要求されるのでそれに従って再起動。

bashの実行

スタートメニューから「bash」実行するか、
管理者コマンドプロンプトbashと打つことによって実行開始。

「ベータ機能がなんたら」「 ライセンス条件がなんたら」
みたいな表示が出た後に、

続行するには、”y”を入力してください

と出るので、[ y ]を押し続行。
すると、Ubuntuのダウンロードが開始される。

ダウンロードが終了すると、

UbuntuロケールWindowsロケール(ja-JP)と一致するようにせってしますか?  既定のロケールは en US です。 続行するには、”y”を入力してください

と出た。
もちろん日本語で使用したいので、[ y ]を入力し、続行。

その後、BoW独自のユーザ名、パスワードを要求されるので入力。
必ずしもWindowsのものと一緒にする必要はないらしい。 これで準備完了。
次回以降は、「スタート」メニューにある、 「Bash on Ubuntu on Windows」から起動することができた。

初期環境設定

ホスト名の明記

これをしないと、sudoで実行する度に、
f:id:okuya-KAZAN:20170426165626p:plain
と出て、以降の作業が名前解決の関係上すごく時間がかかる。
Bash on Ubuntu on Windows上で、

sudo sh -c 'echo 127.0.1.1 $(hostname) >> /etc/hosts'

と打つことで解決した。

リポジトリの変更

初期設定では海外サーバーにリポジトリのデータを取りに行ってしまい、通信速度が遅くなってしまうらしいので、リポジトリの取得先を日本のサーバーに切り替える。
以下のコードを入力すればOK。

sudo sed -i -e 's%http://.*.ubuntu.com%http://ftp.jaist.ac.jp/pub/Linux%g' /etc/apt/sources.lis
ホームディレクトリの変更

デフォルトのホームディレクトリは、
C:\Users\(Widowsユーザー名)\AppData\Local\lxss\home\(Ubuntsユーザー名)
なのだが、アクセスしにくいので変更した。

sudo vi /etc/passwd 

で、viを開いて、

username:x:1000:1000:"",,,:/home/username:/bin/bash 

username:x:1000:1000:"",,,:/mnt/c/Users/username:/bin/bash 

などに変更。
(この「mnt」がわからずなかなか、Windowsの中に入り込めなかった...)

ここですぐにbashを閉じない方が良い。
.bashrcなどの設定ファイルを変更後のホームディレクトリにコピーしておく必要がある。
>||
cd ~
cp -p .* /mnt/h/home/
|


のようにして、「.bash_logout」、「.bashrc」、「.profile」などを新しいホームディレクトリの配下にコピー。

bashをexitで終了させて、再度スタートメニューから「Bash on Ubuntu on Windows」を起動すれば、ホームディレクトリが変更されているはず。

f:id:okuya-KAZAN:20170426170915p:plain


メンテナンス

適宜アップデート
sudo apt update
sudo apt upgrade 
適宜bashの再インストール

環境がぐちゃぐちゃになったら、さくっと消して作り直すのが良いらしい。
管理者コマンドプロンプトで、

lxrun /uninstall /full

を実行し、続いて

lxrun /install 

を実行する。

パッケージのインストール

どんどんパッケージを入れていくぞ!と意気込んで、

sudo apt install git

と入力するも、

f:id:okuya-KAZAN:20170426171625p:plain
と、エラーが出た...
パッケージリストが古いことが考えられるので、

sudo apt-get update

でパッケージリストを更新すればOK。

Git
sudo apt install git 
gcc
sudo apt install gcc 

早速実行。
f:id:okuya-KAZAN:20170427165857p:plain

vim
sudo apt install vim-nox
||< 

***LaTex 
>||
sudo apt install texlive-full

Bash on Ubuntu on WindowsにAnacondaを入れる

Bash on Ubuntu on WindowsにAnacondaを入れた。
まず、pyenvを入れて、そこからAnacondaを入れるという方法をとる。

pyenvのインストール

Gitは入っている前提。

git clone https://github.com/yyuu/pyenv ~/.pyenv

pyenvのパスを通す

vim ~/.bashrc

で.bashrcを開き、1番下に

echo 'export PYENV_ROOT="$HOME/.pyenv"'
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' 
echo 'eval "$(pyenv init -)"' 

を追加。
最後に

source ~/.bashrc

と打つか、bash再起動。

Anacondaのインストール

pyenv install --list

で、最新版のAnacondaをチェックし

pyenv install anaconda2-4.3.1

などでインストール(今回は諸事情でAnaconda2とした)。

ちゃんとインストールされたかは、

pyenv versions

で、確認。

f:id:okuya-KAZAN:20170426184130p:plain
うん、ちゃんと入っているようだ。
しかし、このままだと、使用するPythonがsystem(システムにデフォルトでインストールされているもの)になってしまうので、
インストールしたanaconda2-4.3.1に環境を変更する。

pyenv global anaconda2-4.3.1

これでまた、

pyenv versions

で確認してみると、

f:id:okuya-KAZAN:20170426184452p:plain
環境が変わったことがわかる。

環境変更後は必ず、

pyenv rehash

これを実行。
1回これを忘れて、Anaconda内のPythonが使えない事態になったので要注意。

あとは、このAnacondaの環境にpipやcondaを使って必要なライブラリを入れていけばOK!!!


作り上げたBashAtom上で使う

Anacondaを入れたBoWをAtomで使えるようにした。
まずは、Atomプラグインである「platformio-ide-terminal」をインストール。
詳細はこちら
インストールが完了したら、
「packages」 -> 「platformio-ide-terminal」 -> 「設定」と進み、
「Shell Override」を

C:\Windows\System32\bash.exe

に変更。
このbashのパスはパソコンによって変わる可能性があるので注意。



結果

f:id:okuya-KAZAN:20170426190821p:plain
とりあえず完成...

ここで注意が必要なのだが、
Atom上で開いたbashは、矢印キーによる操作ができない...
代替コマンドはこちらなのだが身に着けるのが面倒だな...

↑:[Ctrl]+[ p ]
→:[Ctrl]+[ f ]
↓:[Ctrl]+[ n ]
←:[Ctrl]+[ b ]