研究日記

学習内容の記録です。わからないことばかりです。

Bash on Ubuntu on Windows でGUI操作とデスクトップ上のファイル操作

Windows Subsystem for Linux のおかげでUbuntuを使用できるようになったはいいが、まだいまいち使いこなせていない。

 

とりあえず、Emacsgcc は使えるようにしたけど...

 

ls コマンドを使用してディレクトリを移動しながら中身を確認してもいまいちなにがなんだかわからない。目標はデスクトップ上にあるRのプログラムを開くことである。別に仮想化環境上で Ubuntu を動かしているわけではないので デスクトップ上のファイルを参照することも可能であると考えた。パスをいじれば可能なのかもしれないが、あまり詳しくないため、まずGUIを使用できるようにしようと思う。

 

Linux でいつも使用している

% nautilus

 を Bash に打ち込んでみると、まだパッケージをインストールできていなかったため、

% Sudo apt install nautilus

 でとりあえず準備し改めて nautilus を起動。

しかし、次のようなエラーとともに実行されず。。。

Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused

(nautilus:2494): Gtk-WARNING **: cannot open display:

 サーバやソケットという単語を含むエラーが出力されたため、そもそも nautilus ってサーバ・クライアントの仕様なの!?という疑問が。。。

 

nautilusGUIのファイルマネージャーと認識していたが、詳細についてはわからない。これに関してはまたおいおい調べていこうと思う。

 

気を取り直して、他の方法について調べてみる。

と思っていたらパスを指定すればデスクトップ上のファイルも操作できることが判明!!

なんだったんだこの時間は、、と思いながらも実際に操作してみるとできた。

% cd /mnt/c/ 

 これでどうやらCドライブにアクセスできたらしく、そこからは User から自分のところまでたどることでできた。

とりあえずの目標は達成したがもやもやする。

ということで GUI に取り組んでみる。それから Emacs を別ウィンドウで操作できるようにも将来的にはしたいなぁ。欲がどんどんでてくる。

 

と思って調べているといろいろ記事を見つけ、試行錯誤してみた。そこでいろいろわかってきたので、取り組んでみた内容を記し、理解したことをまとめてみる。

 

まず、Bash on Ubuntu on windowsGUI 環境を構築してみる。私が自分のPCで仮想化環境で使用していた Ubuntu ではどうやらデフォルトで GUI 環境が準備されていたのだろうと思うが、 Windows10 での Windows Subsystem for Linux で準備された Ubuntu では GUI 環境を構築する必要があるようだ。

 

GUI 環境を構築のために X Window System(x11) を導入する。

X Windows System とは、ビットマップディスプレイ上でウィンドウシステムを提供する表示プロトコルであり、Unix系OSOpenVMS などでの GUI 環境を構築するのに使われているようだ。

と、いうことはこの GUI 環境を構築することができれば、Emacs を起動した際に別ウィンドウで編集できるようになるのでは!??

もしかすると最初に nautilus を使おうとしてできなかったエラーもこれで解決するかもしれないのではないか!??

nautilus が使えるようになるだけでなく、Ubuntu ではかれたサーバがどうたらっていうエラーに関しても解決するかもしれない!??

と思いもう少し調べてみる。X Window System を実現するためのアプリケーションはいくつかあるようだが、いろいろ調べたところ、VcXsrv が良いようなので早速インストール。

VcXsrv 公式サイトからインストール。URL は以下。

https://sourceforge.net/projects/vcxsrv/

 

インストールの際のカスタムはデスクトップショートカットなど全てを選択。

わりとすぐ完了した。

さて、このインストールした VcXsrc だが、このアプリケーションが起動していないと、GUI 操作ができない(ウィンドウが開かれない)ので Ubuntu を操作する前に起動させておく必要がある。これを自動起動アプリに指定してやることで起動時に自動でアプリが動作してくれ手間が省ける。方法は以下に示す。

まず以下のディレクトリにアクセス

C -> user -> user name -> AppData -> Roaming -> MicroSoft -> Windows -> スタートメニュー -> プログラム -> スタートアップ 

ここに VcXsrc のショートカットをコピペで設定完了。

これで自動で起動してくれるはず。

次は Ubuntu 側の設定をおこなう。

まず、 Bush on Ubuntu on WindowsX Window System を使用できるように準備を行う。 X Window System のパッケージをインストールする。コマンドは以下。

% sudo apt install x11-apps 

これが完了すると、vim でbashrc を少しいじる。

% vi ~/.bashrc

で開く。いままで vim を触ったことがなかったのだが、これがまた曲者。なかなかとっつきにくい。このファイルの中に以下の1行を追加。

export DISPLAY = :0

これを追記する具体的な位置に関する記事が見つけられなかったためとりあえず1行目に加えてみる。vim で変更内容を保存するには esc キーを押したのち、:wq コマンドを入力。慣れていないので非常に扱いずらい。変更が保存されると計算機を再起動。

そして Emacs を呼び出してみると、別ウィンドウが開かれ、そこで Emacs が操作できるようになっているではないか!!もしかしてと思い nautilus コマンドを打ち込んでみると、これもまた起動した。なるほど。やはり原因は GUI 環境が整っていなかったからなのか。

とりあえずタイトルにもあった目標は全て達成できた。

今後の内容としては GUI についてと、nautilus に関して詳しく調べ、まとめようと思う。

 

 

関連記事↓

my-log-pll97u88.hatenablog.com

 

my-log-pll97u88.hatenablog.com