Ubuntu on Windows Subsystem for Linux 移行備忘録

Photo by hyt.

はじめに

10年以上使ってきた Windows + Cygwin 環境から,Windows System for Linux (WSL) に移行した私的備忘録です.設定の概要は以下の通り.

  • Windows 10 April Update 2018 環境です.
  • ターミナルとして mintty (wsltty) を利用します.
  • cygstart に相当するコマンドを導入します.
  • X11 環境は導入しません.CUI なものだけです.
  • TeXLive を導入します.

なお,cygstart は MacOS の open と同様のコマンドです.詳しくは

Windows上で開発をするならばCygiwinは必須ツールですが、今日はそんなCygwin独自コマンドを紹介します。 この本を読みました。C

辺りをご覧ください.

1. WSL の有効化

Windows の設定 ⇒ アプリ ⇒ 関連設定:プログラムと機能 ⇒ Windows 機能の有効化または無効化 と辿り,Windows Subsystem for Linux にチェックを入れて導入します.インストール後に再起動を要求されます.

画面イメージ等は

の前半部分を参照してください.なお,本導入記録の前半部分はほぼ上のページそのままです.

2. Ubuntu の導入

Microsoft Store の検索で「WSL」と指定することで,

C:\ Linux on Windows? 本当です。

って出てくるので「アプリを入手する」をクリックすると,いまのところ,

  • Ubuntu
  • openSUSE Leap 42
  • SUSE Linux Enterprise Server
  • Debian GNU/Linux
  • Kali Linux

が出てきます.あれ,Fedora はまだなんですね.RedHat 系の方が好きなんですが…….シェアが最も高いのはたぶん Ubuntu なんだろうなぁ……,クライアントとしての利用だしなぁ……と諦めて,今回は Ubuntu を使うことにします.

Ubuntu を選択して「入手」を選ぶと,あっという間にスタートに Ubuntu が現れます.

3. Ubuntu の起動

スタートメニューから Ubuntu を起動すると,コマンドプロンプトが起動し,初期設定が始まるのですが,これがしばらくかかります.終了後ユーザー名とIDを効かれるので,適当にこれを入力すると,プロンプトが表示され,準備完了です.

う~ん.楽ですねぇ…….

4. TimeZone の変更

初期状態だと(たぶん)UTC なので,TimeZone を Tokyo に変更します.Ubuntu のお作法だと,

でいけるみたいですね.

5. アップデート

のようにして,Ubuntu に導入されている各パッケージを最新のものに更新します.かなり大量にアップデートがかかるので,結構時間がかかります.コーヒーでも飲みながら待つことにします.

6. Ubuntu.ja リポジトリの追加

Ubuntu を日本語環境で使うには Ubuntu Japanese Team の成果物に頼る方が簡単そうなので,そのリポジトリを導入しておきます.なお,Ubuntu Japanese Team のページは以下の通りです.

6. Zsh のインストール

Zsh は初期状態だと入ってない(tmux は入ってるのに……)ので,別にインストールしないといけません.

また,Zsh の便利な設定をまとめて導入できる Prezto ど導入します.WSL への導入は初めてなので,色々個人的なカスタマイズをしたものをいきなり導入せず,まずはオリジナルのものを入れてみました.

とすると,きちんと動いてくれているみたい.でも,コマンドプロンプトのままだと使いにくいので,次は mintty を WSL 向けにパッケージングした wsltty を導入します.

7. wsltty の導入

配布元は

Mintty as a terminal for Bash on Ubuntu on Windows / WSL - mintty/wsltty

です.現在の最新は wsltty-1.8.5.2-install.exe みたいですね.ダウンロードして,ダブルクリックするだけでインストールが終わります.インストール先は,

C:\Users\(username)\AppData\Local\wsltty

で,設定関係は

C:\Users\(username)\AppData\Roaming\wsltty

みたい.デスクトップとスタートメニューに起動用のアイコンができますが,このまま起動するとログインシェルが Bash のままなので,Zsh をログインシェルにするために,スタートメニューの

WSL Terminal 右クリック ⇒ その他 ⇒ ファイルの場所を開く ⇒ WSL Termial ショートカットを右クリック ⇒ プロパティ ⇒ リンク先

を以下の様に変更します(/bin/zsh -l を後ろに追加するだけ.wsltty の Git ページを参照).

これで Zsh が WSL Terminal から起動してくれますが,念のため(今のところ意味はなさそうですが),Unix の古来からのお作法に従い,

としておきます.

なお,Ubuntu 再インストールのときは,Powershell から

のようにしないと,wsltty から Ubuntu につながらないことに注意が必要です.また,フォントの設定等は以下をご覧ください.

シェル zsh の便利な設定をまとめて導入可能な prezto...
8. mintty のタイトルバー表示の改善

上記の通りで mintty 自体はまぁ問題なく使えるのですが,タイトルバーの表示が

みたいな感じになってあまりうれしくありません.それで,これを今いるフォルダ名になるように改変することにしました.いろいろ考えた結果,~/.zshrc に以下を付け加えることにしました.項番6で導入した prezto 前提であることに御注意下さい.

幾つか備忘録として記しておくと,

  • \e]0; ***\007 でタイトルバーの表示が *** に変わる.
  • prezto だと,chpwd(){***} はカレントディレクトリが変更されたら実行される関数です.⇒ precmd とか preexec でも良いのですが,これだとコマンド実行されるごとに実行されます(時間とか表示させたければこっちの方がよい).
  • chpwd だと起動したてのときにタイトルバーの表示が変わらないので前に echo ***
  • prompt-pwd は zprezto がコマンドプロンプト用のカレントディレクトリ文字列を得るために内部で使う関数です.コマンドプロンプトに表示されるものと同じものが欲しければこれにすればよいみたい.

でしょうか.

9. 日本語ロケールの導入

この日本語ロケールは Ubuntu.ja リポジトリを追加してないと導入できません.

10. 細かなもののインストール

日常的に使いそうな小さなコマンドを入れていきます.何と!

peco が動くようになってます!

確か Windows 10 1709 だと以下の通り peco は動かなかった記憶があるのですが……,1803 では動いています.嬉しい誤算です.

11. .tmux.conf の準備

ターミナル・マルチプレクサ tmux を自分好みのものになるよう編集します.詳しくは

tmux の status line とマウスを使う設定の備忘録.gn...

辺りをご覧ください.なお,tmux の元サイトは,

tmux source code. Contribute to tmux/tmux development by creating an account on GitHub.

です.

12. Windows フォントの導入

Ubuntu から Windows のフォントを利用できるようリンクを張ります.私の場合は Ghostscript から利用できるようにすることが目的です.

13. texlive の導入

本当は Ubuntu のパッケージから導入したかったのですが,実際に入れてみると,何と!

いつも使っている環境は Windows + Cygwin 環境で,少し...

に記したバグもちバージョンです.仕方ないので TexLive を通常のやり方でインストールしました.

14. ls の色

WSL の場合も cygwin と同様に Windows と Linux のパーミッションの両立に気を遣う必要があります.WSL 管理下のファイルは問題ないのですが,Windows 管理下のファイルを WSL から ls すると標準状態だととても見辛いです.この問題を緩和するために,ls の色を solarized color theme に変更します.

まぁ,完全に満足とは言いませんが,これだけでもだいぶ違和感がなくなります.

15. Open コマンドの追加

Cygwin の cygstart (MacOS だと open)コマンドは私の場合手放せないので,似たようなコマンドを探してみたところ,作っておられる方がおられました.

WSL Utilities. Contribute to smzht/wsl-utils development by creating an account on GitHub.

有り難く利用させてもらうことにします.

おわりに

その他,チョコチョコと設定を変更したところや,追加したパッケージ等ありますが,大枠はこんな感じです.私の場合は,ここまでの設定で,Windows + Cygwin 環境だったときとほぼ違和感のない形になりました.

Cygwin では使えていた /dev/audio 辺り(多分.mpg123 とかコンパイルして使えてた)が使えないのだけが大きな違いですが,これは Windows 版の mpg123 を使えば良いだけですから,大した問題ではありません.それよりもほとんどのものを標準的なインターフェースでアップデート可能であること,さらに,Windows 環境が全く汚れないなどのメリットが大きく,多分もう Cygwin に戻ることはないと思います.

それにしても peco が使えるようになっているとは…….嬉しい誤算でした!

以上!

スポンサーリンク
large rectangle advertisement
スポンサーリンク
large rectangle advertisement
Top