■ Linux の Emacs で利用できる設定


【お知らせ】


<2017/06/10 追記>
Windows Subsystem for Linux で X Window 上の Emacs 使うための実用に耐えうる環境を構築できました。Linux のデスクトップ環境を使うことが目的ではなく GUI版 Emacs を使うことが目的であれば、以下の設定もお試しください。

【本題】


Windows Subsystem for Linux(WSL)がリリースされ、私も使ってみていますが、WSL はフル機能を備えた Linux ではないことを理解して利用するにはなかなか便利なものではないかと思っています。Windows のファイルシステムにも完全ではありませんがアクセスすることができるようになっていますし、WSL 側から Windows 側のプログラムを起動することも可能となってきています。

一方、WSL にフル機能を備えた Linux を求めて設定をし始めると、いろいろ嵌ります。X Window 上でのデスクトップ環境の構築などは典型なもので、そもそも WSL がこのような利用を想定して作られたものではないのに、WSL にそのようなことを求めるのはちょっと酷ではないかと思ったりしています。

であれば、WSL に深入りするのは止めて、WSL を VirtualBox 上の Ubuntu と Windows の中継用のサーバとして利用し、VirtualBox 上の Ubuntu をメインに使いながら Windows と連携したいときのみ WSL を利用すれば良いのではと考え、その戦略を考えてみました。



(戦略1) WSL に sshd を立ち上げ、VirtualBox 側の Emacs から tramp 経由で WSL にアクセスする。このことにより、間接的に Windows にもアクセスできるようにする。(wslstart(「WSL で cygstart 的コマンドを使うための設定」を参照)を利用し、VirtualBox 側からの Windows アプリケーションソフトの起動も実現する。)

(戦略2) VirtualBox の「共有フォルダー」の機能を使って VirtualBox 上の Ubuntu から直接 Windows のファイルシステムにアクセスできるようにする。そして、そのアクセスしている Windows のファイルシステムのファイルやディレクトリを Windows のアプリケーションソフトを使って起動できるようにする。(利用者が tramp を意識せずに、Windows と連携できるようにする。)

(戦略3) WSL では Windows ファイルシステム(DrvFs ファイルシステム(https://opcdiary.net/?p=32284))へのアクセスを実現しているが、NTFS のシンボリックリンクの参照がサポートされていない。一方、VirtualBox の「共有フォルダー」の機能を使うと NTFS のシンボリックリンクを参照可能(ジャンクションは参照不可)だが、シンボリックリンク先のパスが Windows のパスとなっているため、シンボリックリンク先に移動することができない。これを解決する。(この戦略は、WSL とは関係なく利用可能です。)
(2017/10/19 追記)Windows 10 1709 では NTFS シンボリックリンクの参照が可能となりました。



戦略1については、以前にこの中継用のサーバとして Cygwin を使う方法を紹介しており、その WSL 版と考えれば分かりやすいかと思います。


戦略2と3については、今回新たにに考えました。

以下は、以上の環境を構築するための設定についての説明です。



<変更履歴>
  • 2016/09/29 このページを作成した。