Windows 10でUbuntuを使う

Table of Contents

1 Windows 10でUbuntuを使う

1.1 はじめに

この記事では、以下のことを説明します。

  • Windows 10でUbuntuを使用するまで (所要時間:30分)
  • そのUbuntuでEmacsを使用するまで (所要時間:60分)
  • そのEmacsでGoogle日本語変換を使用するまで (所要時間:30分)
  • そのEmacs上のGoogle日本語変換をAlt+`で起動するまで (所要時間:10分)

Note: 本手順のやり方でインストールすると、Emacs起動時にC-c、c、リターンなどのキーが連打した状態になることがあります。C-gで抜けることができます。私は気にしないようにしていますが、ご了承願います。現在調査中です。

1.2 Windows 10でUbuntuを使用するまで (所要時間:30分)

1.2.1 Ubuntuのインストール

以下の手順に従って下さい。

Note: Webなどに「開発者向け拡張機能を有効化し…」という手順を書いた記事がまだ残っていますが、もう古い記事なので注意して下さい。Windows 10 Fall Creators Updateからは、この手順は必要なくなりました。

  • Windows 10 Fall Creators Updateを実行し、Windowsを最新にします。
  • スタートメニューから[winver]を実行し、Windowsのバージョンを確認してください。本文書では、Windowsのバージョン (スタートメニューから[winver」で表示) が、バージョン1709 (OSビルド16299.125) 以降であることを前提にしています。
  • Cortana (コルタナ、左下の丸いアイコン) をクリックします
  • テキストボックスに「store」と入力します (間違えて日本語で「sとれ」と入力してもOK)
  • Microsoft Storeアイコンが表示されたら、クリックします
  • Microsoft Storeアプリが表示されたら、右上の検索ボックスに「Ubuntu」と入力します
  • Ubuntuアイコンが表示されたら、クリックします
  • Ubuntuアプリの詳細が全面表示されたら、[入手]をクリックします

Note: たまにMicrosoftだかCanonicalだかの都合で「インストールに失敗しました」と言われます。Windows Userの伝家の宝刀、「なんとなく再起動」で治ります。何なら再起動しただけでさっき失敗したインストールが完了することさえあります。

  • 数分掛かるので、その間に以下のことを考えて下さい
    • Linuxのログイン名
    • パスワード (rootのパスワードになります)
  • インストールが終わったら「起動」をクリックします (インストールがうまくいかず、Windowsを再起動したらなぜかインストールが正常終了した場合はスタートメニューから起動します)
  • (ここで「Store」は閉じてOKです)
  • Ubuntuのコマンドライン画面 (bash画面) にInstalling, this may take a few minutes…」と表示され、初回のみここで数分ほど待たされます
  • Enter new UNIX username: プロンプトが出たら、ログイン名、パスワード (2回) を入力します。
  • Ubuntuをアップデート、アップグレードします。
$ sudo -E apt update
$ sudo -E apt upgrade

Note: sudoするのでパスワードを聞かれます。先程決めたパスワードを入力します。

  • ロケールを変更し、日本語対応します。
$ sudo -E apt install language-pack-ja language-pack-gnome-ja
$ sudo update-locale LANG=ja_JP.UTF-8

Note: コマンドは、このドキュメントからコピペするとラクです。Windows側は普通に選択してCtrl+Cでコピーして、Ubuntuのシェルでは、右クリックするといきなりペーストします。

以上で、Ubuntuがインストールされました。

1.2.2 オプション:UbuntuのホームにWindowsファイルシステムからリンクを張る

WindowsのファイルシステムのあるディスクC:は、Ubuntu上からは/mnt/cで見ることができます。C:\Users\foo\Downloadsは、/mnt/c/foo/Downloadsです。 WindowsからUbuntuファイルシステムのファイルをいじるのは危険です。最悪ファイルが消失するそうです。 Ubuntuファイルシステムがどこにあるかは、たとえば/bin/shを検索すればすぐわかりますが、とても深いところに、インストールごとに乱数的な名前で作られています。 代わりに、Unix側からWindowsのファイルをいじる方が安全です。ぼくは以下のシンボリックリンクを張っています (fooはWindowsユーザー名)。 次の章からは、以下のようなリンクが張られているとして説明を進めます。

  • 個人用プログラムを置くフォルダー (状況や好みに応じて場所、名前を変更。以下同じ)
$ ln -s /mnt/c/Users/foo/Dropbox/bin bin
  • Windowsのデスクトップ
$ ln -s /mnt/c/Users/foo/Desktop wdesk
  • Windowsのダウンロードフォルダー
$ ln -s /mnt/c/Users/foo/Downloads wdown
  • Windowsのドロップボックス
$ ln -s /mnt/c/Users/foo/Dropbox wdrop


~/binはEmacsでGoodle日本語変換するときに使います。 ただし、WindowsのフォルダーはUbuntu側からはすべてパーミッションが777に見えます

1.2.3 オプション:Ubuntuを削除するには

何らかの理由でディスクを空けたくなったり、変な設定をしていて訳が分からなくなったとき、Windows上のUbuntuを一瞬で削除できます。で、上の手順で再設定できます。これがWindows上のUbuntuのひとつの利点です。

以下の手順に従ってください:

Note: Webなどに「コマンドラインからlxrunコマンドを叩き…」という手順を書いた記事がまだ残っていますが、もう古い記事なので注意して下さい。Windows 10 Fall Creators Updateからは、この手順は必要なくなりました。

  • Cortanaをクリックし「プログラム」と入力します。 (間違えて英語で「purogu」と入れてもOK)
  • 「プログラムの追加と削除」が表示されたら、クリックします。
  • 「アプリと機能」が表示されたら、真ん中辺の[このリストを検索]ボックスに「Ubuntu」と入力します。
  • 「Ubuntu」が[アンインストール]をクリックし、確認ダイアログでさらに[アンインストール]をクリックします。

1.2.4 Tips:Windows上のUbuntuを便利に使う

以下はTipsです。

  • Emacs導入前に.bashrcなどをいじるエディターとしてはviを使うか、nanoを使って下さい (nanoはまったく使い方を知らなくてもなんとか使えるエディターなの)
  • Ubuntuのbashから、Windowsのexeが実行できます。ただし、Ubuntuのファイルシステムには置かず、Windowsのファイルシステムに置いてそこにリンクを張る必要があります。上の~/binはそのためです。

1.3 Windows 10のUbuntuでEmacsを使用するまで (所要時間:60分)

以下は、NT Emacs@ウィキさん (https://www49.atwiki.jp/ntemacs/pages/69.html ) を参考にしました。 中には、ほとんど引き写しになっている部分もありますが、自分用に必要な部分をまとめ再構成したのでご了承下さい。 ※はNT Emacs@ウィキさんと私の情報の差異です。

1) 以下からVcXsrv (X Window サーバー) をダウンロードしインストール https://sourceforge.net/projects/vcxsrv/

※32ビット版の方が安定しているかもということでしたが、私は64ビット版を人柱使用しています。今のところ快適です。

2) WSL に複数の Linux のディストリビューションをインストールしている場合は、以下のコマンドにより Ubuntu ディストリビューションをデフォルトにする

※私は該当しないので実行していません

> wslconfig /l
> wslconfig /s Ubuntu

Note: 「>」で始まっているのはWindows側のコマンド プロンプトからのコマンド入力です。

3) インターネットにプロキシを介して接続している場合は、.bashrc に http_proxy や https_proxy 環境変数を設定し、コンソールを再起動する。

※私は該当しないので実行していません

4) Emacsをインストールする

$ sudo -E apt install emacs24

※Emacs 25以降をインストールする方法も書かれていますが、24でオッケーとします。

※ローマ字で検索を可能にするcmigemoは、私はインストールしていません。

※「プロキシが必要な環境下では apt や add-apt-repository 実行時の sudo に -E オプションを付けてください。 http://qiita.com/aKenjiKato/items/18f9b8553f8ad4117d79 」だそうです。私は実行していません。

5) emacs 起動時のエラーを少なくするために以下を実行する。

$ sudo -E apt install gconf2
$ sudo dbus-uuidgen --ensure

6) ~/.bashrcに以下の設定を行う

if [ "$INSIDE_EMACS" ]; then
    TERM=eterm-color
fi

umask 022
export DISPLAY=localhost:0.0

(
    # command_path="/mnt/c/Program Files (x86)/VcXsrv/vcxsrv.exe"
    command_path="/mnt/c/Program Files/VcXsrv/vcxsrv.exe"

    command_name=$(basename "$command_path")

    if ! tasklist.exe 2> /dev/null | fgrep -q "$command_name"; then
        "$command_path" :0 -multiwindow -clipboard -wgl > /dev/null 2>&1 &
    fi
)
alias emacs="NO_AT_BRIDGE=1 LIBGL_ALWAYS_INDIRECT=1 emacs"

#必要であれば、以下をアンコメント化する
#keychain -q ~/.ssh/id_rsa
#source ~/.keychain/$HOSTNAME-sh
  • すでにデフォルトの.bashrcが入っているので私は末尾に上記の設定を追加しました。
  • 私と同じ状態でよければ以下のようにしてください。
    • 下のURLからbashrc_add.txtをダウンロードする
    • 前の項目で、WindowsのDownloadsからwdownというリンクを作っていると仮定すると、Ubuntu側で下のコマンドを打つ。

bashrc_add.txtの場所

http://query1000.com/UbuntuOnWindows/bashrc_add.txt

.bashrcを変更するコマンド (WindowsのDownloadsにあるテキストを.bashrcに追加する)

$ cd
$ cp .bashrc backup.bashrc # すでに.bashrcがあった場合。ない場合は不要
$ cat wdown/bashrc_add.txt >> .bashrc
$ source .bashrc

6) 日本語フォントを設定します。以下の手順を踏みます。

  • ~/.fontsというディレクトリーをUbuntu側で作成
  • 好きなフォントのttfファイルをそこに置く
  • .emacs.d/init.elを設定する
  • 「fc-cache -fv」を実行する

NT Emacs@ウィキさんはMigu 1MおよびRictyというフォントを推奨されていますが、私は消極的な選択として、IPA (独立行政法人情報処理推進機構) が開発・配布している「IPA明朝」という等幅フォントを使っています。 ぼくと同じ「IPA明朝」でいい場合は、以下の手順を踏んで下さい。

  • ~/.fontsというディレクトリーをUbuntu側で作成
$ cd
$ mkdir .fonts
  • 以下のサイトから「IPA明朝」のzip (ipam00303.zip(5.49 MB)) をダウンロードする (TTFの方)

https://ipafont.ipa.go.jp/old/ipafont/download.html

  • zipを解いて、ipam.ttfというファイルをWindows上のデスクトップに置く
  • Ubuntu側からコピーする
$ cd
$ cp wdesk/ipam.ttf .fonts/
  • 以下のコマンドを実行する (フォントキャッシュの更新)
$ fc-cache -fv
  • ~/.emacs/init.elのフォント設定を行う

Note: あとで~/.emacs/init.elを晒しますのでここでの説明は後回しにします。

Note: IPA明朝はすこし見た目が悪いので、プログラマーの人はゴシック系のMigu/Ritcyの方がいいかもしれません。ほとんど同じやり方で変更できます。下のWikiの12)を参考にしてください。 https://www49.atwiki.jp/ntemacs/pages/69.html

Note: WindowsのフォントをそのままWSLのUbuntuで使う荒技も紹介されています。遊ゴシッコとか、MS明朝とか、メイリオとか使いたい人は参考にしてください。 https://qiita.com/nishemon/items/bb3aca972404f68bfcd6

7) ~/.emacs.d/init.elを設定します。

  • ホームに.emacs.dを作成します。
$ cd
$ mkdir .emacs.d
  • ここにinit.elを作ります。

もしぼくのと同じでよければ、以下から取ってきて下さい。

http://query1000.com/UbuntuOnWindows/init.el

$ cd
$ cp wdown/init.el .emacs.d/

これはまだGoogle日本語変換を使用していない暫定版で、あとでまた変更します。

8) Emacsを起動します。

  • Ubuntu のコマンドラインを、Ctrl+Dを押して一度終了します。
  • Ubuntuを起動し、bash画面に入ります。
  • 以下のコマンドを叩きます。
$ emacs&

Xウィンドウサーバーが起動し、Emacsが表示されれば成功です。

Note: 私だけかも知れませんが、ここでC-c、c、リターンなどのキーが連打した状態になることがあります。この場合はC-gで抜けることができます。

1.4 Windows 10のUbuntu上のEmacsでGoogle日本語変換を使用するまで (所要時間:30分)

本項ではGoogle日本語変換をWindowsに導入し、Emacsからmozcを使って駆動するまでを行います。 この項目が終わった時点では、C-o (Ctrlと小文字のオー) で起動します。 Windowsに合わせてAlt+`でやるのは次の項で説明します。

原理的には以下のようになります。

  • Google日本語入力を導入し、Windows IMEの代わりに使用します。
  • Ubuntuでmozc (もずく) というものを使って、Google日本語入力を呼び出します。
  • Emacsからmozc_emacs_helper.exeというものを使って、mozcを呼び出します。

では以下の手順に従って下さい。

1) 以下から「Google日本語入力」を導入し、Windowsで使えることを確かめる

http://www.google.co.jp/ime/

2) mozc_emacs_helper.exeをUbuntuに設置する

  • Ubuntuから~/binという名前のシンボリックリンクで参照されているWindowsのフォルダーに、以下の2つのファイルを置きます。

mozc_emacs_helper.exe

https://github.com/smzht/mozc_emacs_helper

mozc_emacs_helper.sh

http://query1000.com/UbuntuOnWindows/mozc_emacs_helper.sh

重要: mozc_emacs_helper.sh の中身は以下のようです。このcdコマンドの引数を、mozc_emacs_helper.exeを置いた場所に正しく設定して下さい。現在はC:\Users\cf\Dropbox\binを指しています。

#!/bin/sh

cd /mnt/c/Users/cf/Dropbox/bin/
./mozc_emacs_helper.exe "$@"

Note: このやり方を取ると、逆に~/binというフォルダーを作れなくなります。これが嫌な場合は、Ubuntu側から別の名前でシンボリックリンクを貼って下さい。ただし、そのリンクにUbuntuでPATHを通す必要があります。

3) MELPAというリポジトリーから、package-installという機能を使って、以下のモジュールを導入します。

  • mozc
  • mozc-im
  • mozc-popup

以下の手順に従って下さい。

  • UbuntuでEmacsを起動します
  • 「M-x package-list-packages」を実行します。
  • ネットワークを接続に行くのでいろいろメッセージが出ます。しばし待ちます。
  • 「C-s mozc」でmozcを検索します。何個か違う候補にあたるので、先頭からmozcで始まる行を探します。
  • ぼくのパソコンではもうインストールしているのでinstalledになっていますが、ここでmozc、mozc-im、mozc-popupを導入します。
    • インストール対象のパッケージの行にカーソルを合わせます
    • iキーを押してインストール対象としてマークします (先頭にIマークが付く)
    • 3つともマークしたらxキーでインストールを実行します。
    • 本当にインストールするかと聞かれるのでyesと答えます。
    • インストールが終わったらqキーでpackage-list-packagesを抜けます。

くわしい使用法は以下を参考にしてください。 https://www.hiroom2.com/2015/09/18/emacs%E3%81%AEpackage%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/

Note: n files installed, n files skippedとか言われるけど気にしなくて良さそうです。

Note: mozc-popupですが、表示が安定しない場合 (変換候補が邪魔で文書を壊す場合) は、あとでインストールする設定ファイル~/.emacs.d/site-lisp/mozc_windows10_ubuntu_conf_query1000.elの中で他のモード (popup、overlay、echo-areaの中から選択) した方がいいかもしれません。echo-areaが一番安定しているんですが、画面下端のミニバッファに表示されるのでちょっと目の移動が大きい。

4) 以下からmozc_cursor_color.elをダウンロードし、~/.emacs.d/site-lispに置きます。

Note: ~/.emacs.d/site-lispというディレクトリーをまず作って下さい。

https://github.com/iRi-E/mozc-el-extensions

5) .emacs.d/init.elにmozcの設定をします。

ぼくと一緒で構わない場合は、以下の手順に従って下さい。

  • 以下からmozc_windows10_ubuntu_conf_query1000.elをダウンロードし、~/.emacs.d/site-lispに置いてください。

http://query1000.com/UbuntuOnWindows/mozc_windows10_ubuntu_conf_query1000.el

  • さらに、以下の2つのファイルをダウンロードし、~/.emacs.d/site-lispに置いてください。

http://emacswiki.org/emacs/windows-path.el

http://emacswiki.org/emacs/cygwin-mount.el

  • 最後に、~/.emacs.d/init.elの最後の行のコメントを外して下さい。

変更前

;;; mozc関係を分けた
;;; (load "mozc_windows10_ubuntu_conf_query1000.el")

変更後

;;; mozc関係を分けた
(load "mozc_windows10_ubuntu_conf_query1000.el")

6) Emacsを終了し、再起動します。init.elに起因するエラーが出てないか注意してみます。エラーがなかったらC-oでMozcが起動し、日本語が入力できることを確かめます。

1.5 Emacs上のGoogle日本語変換をM-` (Alt+`) で起動するまで (所要時間:10分)

ここでは、Alt+` (バッククォート) で日本語変換をオン/オフできるようにします。 英語キーボードではこの設定にしてる人が多いと思います。 日本語キーボードを使っている人 ([英数/かな]で切り替え?) や他のキーバインドにしている人も、同じ設定でいけるはずです。

原理は、keyhac.exeというWindowsの常駐プログラムを利用して、Alt+`を押下されると、C-\ (Ctrl+\) を押されたものと思い込みます。 で、EmacsではC-\でもIMEが切り替えられるので、結果的にEmacs上でIMEがトグルされます。

Windowsで設定しているので、どのウィンドウでもこの設定が効いたら困ります。 そこで、keyhac.exeを設定して、ウィンドウの名前がemacs@で始まっていたら、それはEmacsだと判断して、Alt+`をC-\に読み替えています。

keyhac.exeの設定は、同じフォルダーにあるconfig.pyという設定ファイルで行います。 この設定ファイルはPythonで書かれています。

以下の手順に従います。

  • 以下からKeyhac for Windows ver 1.77 (以上) をダウンロードします。

https://sites.google.com/site/craftware/keyhac-ja

  • zipを解いて好きな場所にフォルダーごと置きます。
  • ぼくと同じでいい場合は以下の場所からcondig.pyを取ってフォルダーの中に入れて下さい。

http://query1000.com/UbuntuOnWindows/config.py

  • keyhac.exeをダブルクリック起動します。小さなコンソール画面が表示されますが、さしあたっては表示しておいてください。
  • Ubuntuを起動し、Emacsを起動します。
  • M-` (Alt+`) でIMEがトグルすることを確認してください。
  • 何らかのエラーがあればコンソールに表示されます。
  • 問題がなければコンソールウィンドウを[x]をクリックして閉じて下さい。閉じてもプロセスとしてkeyhackは残ります。

Note: keyhacを多重起動したらどんどんプロセスがたまっていくので注意して下さい。その疑いがある場合はCtrl+Alt+Delでタスクマネージャを表示してプロセスをチェックしてください。

Note: Keyhacが安定稼働したら、Windowsの起動と同時に起動させるようにスタートアップにショートカットを置くなどしてもいいかもしれません。

http://www.windows10manual.net/entry/2015/08/11/073000

1.6 解決されていない不満点

すべてマイナーですが、以下の点が気になります。

  • Ubuntuについての不満
    • UbuntuのファイルシステムをWindowsから見られない
  • Emacsについての不満
    • Windowsから文書をEmacsにドラッグ&ドロップできません。Ubuntuで動くGUIのファイルマネージャー的なものがあれば、それを動かすのも一興かもしれませんが…
    • Emacsの起動時に、C-cまたはcなどのキーが連打されたようになることがあります。ぼくのinit.elが何らかの悪さをしているのかもしれません。慌てず騒がずC-gを押せばQuitしますが…
  • Mozcについての不満
    • 変換候補エリアをいじっても、popup、overlayでいまいち表示が安定せず、崩れる。echo-area (ミニバッファ) なら崩れないが、面白くない。

しかし、以下の満足点に比べればいずれも瑕瑾です。

  • 文字コードはShift_JIS (のパチモンのcp932) を捨ててUTF-8に統一できる
  • パス区切り文字は\を捨てて/に統一できる
  • Perlの二重引用符の中では\は\\とか、いや渡すモジュールに依っては\\\\とか考えずに済む
  • 改行はLFかCRLFか考えずに済む
  • バッチファイルやパワーシェルを書かなくても/bin/shでシェルスクリプトが書ける
  • EmacsのM-x shellがホンモノのシェルになる
  • 場合によってはGimpやzsh (最近はfishというシェルがカンタンでいいらしい) をインストールできる
  • 速度はヌルヌルサクサク
  • 売ってるパソコンに付いてくるOSの上に、無料でホンモノのLinuxを載せられ、なんかしくったら消してまた10分で再インストール出来る
  • 見方によってはLinuxの革命とも言える

1.7 本ページで困った場合は

以下の公開された連絡先に連絡下さい。

  • E-mail: suguwakaruPerl@gmail.com
  • Twitter: @query1000
  • Facebook: Chihiro Fukazawa

ではでは。 Have Fun!

(End of the Document)

Author: Chihiro Fukazawa

Created: 2018-01-10 水 12:05

Emacs 25.2.1 (Org mode 8.2.10)

Validate