環境構築メモ。Windows10上にLinux(Ubuntu)環境を導入し、さらにGUI環境を導入してmatplotlibによるグラフ表示をできるようにするまでの方法である。
昔(大学生時代)は、WindowsとLinuxをデュアルブートしてLinuxメインで使ってたけど、Windowsでしか動かないアプリがあったり、デュアルブートだと環境の切り替えとかが色々面倒なので、今はWindowsメインでLinux環境はWSLを利用している。
Ubuntuのインストール
①設定→アプリ→アプリと機能を開く
②一番下の「プログラムと機能」をクリックして開く
③「プログラムと機能」の画面で、左側の盾のマークついた「Windowsの機能の有効化または無効化」をクリック
④「Windowsの機能の有効化または無効化」で、「Windows Subsystem for Linux」にチェックを入れ、OKをクリック
⑤有効化が完了したら、Microsoft StoreからUbuntuを検索し、インストールする。「Ubuntu」の他に、「Ubuntu 18.04LTS」などのバージョン付きもあるが、絶対にUpgradeしないという人以外は「Ubuntu」を選んでおくべし。ダウンロードサイズは220MBくらいだった。
初期設定とパッケージ導入
①インストールが完了したらスタートメニューから「Ubuntu」を開く。初回起動時にusernameとpasswordを聞かれるので入力して設定完了とする。
②下記のコマンドを実行
# パッケージの更新 sudo apt update sudo apt upgrade # 日本語環境設定 sudo apt install language-pack-ja sudo update-locate LANG=ja_JP.UTF8 sudo apt install manpages-ja manpages-ja-dev # 「python」でpython3を起動するように設定する(必須ではないが便利) cd /usr/bin sudo ln -s ./python3 ./python # pipインストール sudo apt install python3-pip # matplotlibと数値計算系パッケージを一通りインストール pip3 install numpy, scipy, sympy, matplotlib # GUI表示を可能にするためPython3-TKとついでにテスト用X11アプリ集もインストール sudo apt install python3-tk x11-apps
とりあえずWSL側はこれでOKだが、これだけではまだGUIアプリは動かない。
WindowsとWSLのディレクトリー関係
WindowsとWSLのルートディレクトリーの関係は次の通り。Windows側とWSL側それぞれにショートカット(シンボリックリンク)を作っておくとよいだろう。
WSL | Windows |
/mnt/c | C:\ |
/ | C:\Users\****\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\ |
X Serverのインストール
Windowsで動くXServerにはVcXsrv、Xming、Cygwin/Xなどがあるが、私はVcXsrvを選んだ。
①https://sourceforge.net/projects/vcxsrv/からインストーラーをDLし、インストール実行。
②スタート→VcXsrv→xlaunchをクリックし、起動。
③Display settingsの画面が開く。Multipuleを選択し、次へ。
④Client startupの画面が開く。Start no clientを選択し次へ。
⑤Extra settingsの画面が開く。Clipboard、PrimarySelection、Native openglをチェックして次へ
⑥ Finish configuration画面で、Save configurationをクリックし、適当な場所に設定ファイル(*.xlaunch)を保存し、完了する。
⑦保存した設定ファイルを実行すると、VcXsrvが起動する。スタートアップに登録しとくと、PC起動時に自動実行されるので楽。Windows+Rで開く「ファイル名を指定して実行」で、shell:startupの入力すると開くフォルダーに設定ファイルを入れておけば良い。
VcXsrvが起動すると、タスクバーに下の画像のようなXのアイコンが現れる
⑧再びUbuntuを起動し、~/.bashrcを作成し、次の一行を入力して保存する。(もしファイルが既にあれば末尾に追記)
export DISPLAY=:0.0
動作確認
①Ubuntuを再起動する
②xeyesを実行する。目玉の画面が出ればVcXsrvが正しく動作していることになる。
③pythonを起動し、適当にプロットしてみる。show()を実行するとGUI画面にグラフが出るはず。
追伸
その後一部GUIアプリで日本語が豆腐□になっていた。下記コマンドを実行したら解決した
sudo apt install -y $(check-language-support -l ja) language-pack-ja