はじめに
普段Virtual Box × Vagrant
を利用して仮想環境下で、機械学習の勉強を行なっているのですが、学習データを可視化する為にGUI環境が必要となりました。
ホストOSはmacOSを使用しています。
そもそも、Vagrant上で構成されるLinuxはどれもGUIの必要がないため、それに関するドライバ、ツール、プラグインのたぐいは削除されています。
なので、GUI環境を構築するとなると、色々と手間がかかります(OSの知識も必要ですし)
Virtual Box上にCentOSをインストールした方が楽なのですが、既に行なっている環境下にGUI環境を構築したい、とシンプルに思いましたので、構築する事としました。
現段階でもまだ不完全なのですが、都度更新という事で、現段階までの状況を作る為の構築を記載したいと思います。
ホストOSに(macOS)X11(XQuartz)を入れる
↓下記のページからX11(XQuartz)をインストールして下さい。
[https://www.xquartz.org/]
X11(XQuartz)とは
X11(XQuartz)は、X Window System
の事。厳密には異なると思うのですが、ここでは厳密に知る事を目的としていないので、解釈の一つとしてX Window Systemと解釈して良いと思います。
X Window Systemはざっくり言うと、GUI操作を可能にするウィンドウシステムです。(余談ですが、MIT(マサチューセッツ工科大学)で開発されたようです。さすがMIT
[http://www.astec-x.com/FAQ/aboutx.html])
CentOS側にX11 サーバーを入れる
↓下記のコマンドを叩いて仮想環境側のCentOSにX Window Systemをインストールします。
$ sudo yum -y groupinstall "X Window System"
このままでは日本語が文字化けするので、
$ sudo yum -y install vlgothic-*
を叩いて日本語フォントをインストールします。
上記インストールが終わったら起動モードを変更します。
$ sudo systemctl set-default graphical.target
graphical.target
はランレベル5なので、ランレベル3の動作プラスX Window Systemの起動、になります。つまり、CUIを利用時にX Window Systemを起動させるという事です。
ランレベルに関しては下記の記事が参考になりましたので、一度読んでみる事をオススメします。
[参考]
https://qiita.com/takahirono7/items/8b971cd1cf2ddcfe0e04
起動モードを変更したら再起動して下さい。
テストデータを作成して動作確認
import matplotlib as mpl
mpl.use('TkAgg')
import matplotlib.pyplot as plt
plt.plot([0, 1, 2])
plt.show()
上記のコード書いて、スクリプトを実行してみて下さい。
$ python test.py

上記の画像のようにグラフが表示されれば成功です!
まとめ
簡易的なGUI環境の導入を記載しました。
正直これでは、あれしたい、これしたい、が出来ない状態かと思いますので、都度足りない点を補っていく必要があります。
面倒や手間の掛かる事を選択すると多くの事が学べて良いなぁと思いました。(過度の時間を浪費する事はナンセンスですが・・・)
冒頭でも述べたように都度更新して行く予定です。Vagrantで快適なGUI環境が整えられたら面白いなぁと思いながらこれからも勉強していこうと思います。