前書き
Windows Subsystem for Linux(WSL)はとてもありがたい。Bush on Ubuntu on Windowsが発表されたときから、Windows(というよりMicrosoft office)で仕事せざるを得ない私にとっては衝撃的なシステムだった。WSL2のニュースも出ており、積極的な姿勢に期待している。WSLの初期設定に関する記事は山のようにあるが、それぞれの目的にあわせて作業が異なるので、自分むけのメモを残しておく。
WSLが最初に出たときから、X Windows Systemが使えたらな、と思っていた。自分は昔からLinuxのEmacs+YaTeXで文章を書くことに慣れており、Windows環境に移らなければならない事情ができてからずっと困っていた。WindowsのEmacsはどうも使いづらい。AtomやVS Codeでなんかで誤魔化してきた。LaTeXの執筆+コンパイルはCLI環境でもできるが、最終的なPDFなんかはX上のビューアーで見たい。というわけでとりあえずWSLでX Window Systemを動かす。最終ゴールはEmacsでLaTeX執筆環境を整えること。
前提
Windows 10 version 1709以降?WSLが公式にサポートされているバージョン。Linuxの操作に関しては、CLIをそれなりに使えるぐらい。コマンドやオプションを覚えてないけどググれば解決できるぐらい。ArchWikiを読んで必要な設定やコマンドがわかるぐらい。
WSLの導入
これは簡単だし紹介記事もたくさんある。例えばWindows 10でLinuxプログラムを利用可能にするWSLをインストールする(バージョン1803以降対応版)などがわかりやすい。
- 「設定」の「アプリと機能」、関連設定の「プログラムと機能」からコントロールパネルに飛ぶ。コントロールパネルにすぐアクセスできるなら少し楽。
- 「Windows機能の有効化または無効化」から「Windows Subsystem for Linux」にチェックを入れてOKをクリック。
- 再起動する。
- Microsoft Storeで「wsl」なり「linux」なりで検索すればWSLに対応したディストリビューションが見つかるので好みのものを入れる。Ubuntuの場合、複数のLTSが提供されていることがあるが、バージョンアップしても使いたいので標準の「Ubuntu」を選択することをお勧めする。
- インストールが済めば、あとは通常のアプリケーションと同様にスタートメニューから選択するだけ。コンソールが現われるのでユーザー名などを設定すれば使えるようになる。
-
sudo apt update && sudo apt upgrade
で最新版にアップデートしておく。
LTSのアップグレードをしたい場合
記事執筆時のLTSは18.04。WSLのUbuntuを選んでインストールした場合も18.04がインストールされる。自分は以前WSLをインストールしたまま放置していた時期があり、16.04が入っているPCもあったので18.04にアップグレードした。また、将来新しいバージョンへ移りたいかもしれないのでメモしておく。
apt upgrade
で最新版になっているとしてupdate-manager-core
をインストールし、/etc/update-manager/release-upgrades
を開いてPrompt=lts
とする。下記の参照先によると標準でここまでできているようだし、実際そうだった。
sudo do-release-upgrade -d
を実行して待つ。sshdについて聞かれたり古いパッケージを削除したりと1時間程度時間がかかる。最後にWSLを一旦終了する。
参照
WSL版Ubuntuのアップグレード~16.04から18.04へ~
ホームディレクトリはどこに
WSLは
%AppDataLocal%\Packages\CanonicalGroupLimited.UbuntuonWindows_[適当な文字列?]\LocalState\rootfs
にrootディレクトリ、その下.\home\[username]
にhomeディレクトリがある。また、WindowsのCドライブ以下はWSLから見ると
/mnt/c/
にあるため、ユーザーのホームは
/mnt/c/Users/[username]
にある。これは不便だが、WindowsとLinuxのファイルパーミッションの扱いや今後のアップデートでどうなるかわからないことを考えると、これをいじるのは賢明ではない。なので、頻繁にアクセスしたいフォルダにはシンボリックリンクを貼るのがよい。例えばユーザーホームのドキュメントなら
ln -s /mnt/c/Users/[username]/Documents ~/Documents
などしておく。
パーミッションの設定
2020.04.22追記
/mnt/c
以下のディレクトリ(シンボリックリンクを貼ったディレクトリ)のパーミッションは一定のルールがあって、WSL側でchmod
しても反映されない。ツールによっては適切にパーミッションを設定しておかないといけない場合があり、シンボリックリンクのディレクトリ下のファイルが扱えなくなるかもしれない。マウントしているファイルのパーミッションをWindows側ではメタ情報として保持させる方法がある。WSL側で/etc/wsl.conf
というファイルをつくり
[automount]
options = "metadata,umask=22,fmask=111"
と書く。この設定後は、WSLを閉じる。Windowsも再起動。あるいは再起動しなくてもWindowsサービス一覧からLxssManagerを再起動でもいいらしい。
.sshの共有
2020.04.22追記
Windows 10は2018年の春のアップデートからOpenSSHを組み込んでいるので、Windowsのホームユーザーのディレクトリに.ssh
をつくってsshしてもいい。WSLでもこの.ssh
を共有できると嬉しいので、
ln -s /mnt/c/Users/[username]/.ssh ~/.ssh
としておいた。パーミッションの設定は.ssh
ディレクトリを700
、ディレクトリ以下のconfigや秘密鍵は600
にしておく。
参照
Windows 10のWindows Subsystem for Linux(WSL)を日常的に活用する
ビープ音を止める
デフォルトではシェルからビープ音が鳴るので止める
/etc/inputrc
を開き、set bell-style none
のコメントを無効にする。
参照
azukipochette's weblog: Ubuntu (Ubuntu 18.04 with WSL) でビープ音を止める
shellをfishにする
fishをインストールするだけなら簡単。fish - ArchWikiによると、Arch Linuxではデフォルトのシェルをfishにすることは推奨されていない。Ubuntuでも同じような状況だと思うので、ArchWikiに従って.bashrc
にexec fish
を追記する。
fishのプロンプトや色設定はfish_config
でウェブブラウザをつかって対話的に可能だし、様々なプラグインがあるので便利にカスタマイズできる。後でX windows systemが使えるようにしてからブラウザでカスタマイズしようと思っているので今は何もしない。
参照
将来予定のカスタマイズも含め
fish shellが結構良かった話
WSLでお手軽にオシャレfish環境構築
Windows10で快適なfishシェル環境構築
fish - ArchWiki
bashとの違い
fishだと&&
や||
といったコマンドが使えず、それぞれ; and
、; or
を使う。また少し調べた範囲では$_
に相当するコマンドはないらしい。fish 3.0からは&&
や||
にも対応(どちらの表記も可)だそうだが、現時点のUbutuntu 18.04は2.7.1だった。
参照
全訳!fishシェル普及計画
全訳!fishシェル普及計画: and:他シェルの「&&」相当!直前コマンドが正常終了時に実行
全訳!fishシェル普及計画: or:【要注意】fishでは「||」じゃなくて「or」を使うんよ
fishシェルでmkdir hoge && cd $_したかったけど面倒だった
fish 3を入れる
2020.03.26
しばらくubuntu 18.04が提供するfishを使っていたが、やっぱり新しいバージョンが使いたくなった。
リポジトリを追加してインストールするだけ
sudo apt-add-repository ppa:fish-shell/release-3
sudo apt update
sudo apt install fish
これで上で書いた&&
なんかも使える。
fishermanなど、カスタマイズに関することは別記事にしよう。
参照
“Fish shell maintainers” team
fish 3.0がやってきた
日本のリポジトリを追加
Ubuntuの日本語環境を整えるために、Japanese Teamのリポジトリを追加する。
LTS 18.04の場合
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/bionic.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt update
また、パッケージリポジトリのミラーサーバーも国内のものに換えておくとメンテナンス時間が減るかもしれない。
Ubuntu Japanese Teamがメンテナンスしているのは富山大学のサーバーらしい(http://ubuntutym.u-toyama.ac.jp/ubuntu/)。
Ubuntu: 日本国内のダウンロードサイト
更新したらもちろんapt update
とapt upgrade
を実行しておく。
メモ
今回は手で更新したが、sedを使って変更すると楽。作業の前にバックアップはとっておく。
Windows Subsystem for LinuxでUbuntuによると、jp.archive.ubuntu.com
が上記富山大学のエイリアスだそうなので、このサイトにあるsedをそのまま実行してもいい。将来富山大学のサーバーじゃなくなってもこのエイリアスは活きてそうなので、こっちのほうがいいかもしれない。
sudo sed -i.bak 's/\/archive\.ubuntu/\/jp\.archive\.ubuntu/' /etc/apt/sources.list
参照
Ubuntuの日本語環境
Windows Subsystem for LinuxでUbuntu
apt-getの利用リポジトリを日本サーバーに変更する
日本語環境設定(メモ)
自分の場合は英語環境のまま(LANG=en_US.UTF8
)のままでもいいのでやらなかったが、日本語環境のほうがよい場合もあるのでメモを残しておく。
日本語パッケージをインストール
sudo apt install language-pack-ja
日本語ロケールにする。
sudo update-locale LANG=ja_JP.UTF-8
WSLを再起動して、日本語になったことを確認。
echo $LANG
あるいは
locale
LANG=ja_JP.UTF-8
LANGUAGE=
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
ちなみに、英語環境に戻したい場合は以下
sudo update-locale LANG=en_US.UTF8
タイムゾーンを変更
sudo dpkg-reconfigure tzdata
からアジア -> 東京
を選択。
man
コマンドを日本語化したい場合は以下
sudo apt install manpages-ja manpages-ja-dev
参照
WSLのUbuntu環境を日本語化する
【Windows10/WSL Ubuntu】日本語のロケールとタイムゾーンの変更
Windows Subsystem for Linux(WSL)に「Ubuntu 18.04 TLS」を入れたときに最初にしたこと
Windows Subsystem for LinuxでUbuntu
X Windows Systemを導入する
Windows上で動くXのクライアントは有料・無料でいくつかある。現時点の無料ソフトではVcXsrvがお勧めらしいので使ってみた。
- VcXsrv公式サイトに行って最新版をダウンロード&インストール。
- 初回起動時はWindowsのファイアウォールに関する注意が出る。外部と通信しないので、「キャンセル」でいい。
- Multiple Window、no clientで起動する。ここは個人の好みでもいい。
起動はスタートメニューの[VcXsrv] -> [XLanch]。ショートカットをつくる、タスクバーにピン留めするなどご自由に。
WSL側の設定
- X window Sytemを揃える。テスト用に
x11-apps
をインストールするぐらいでもいいし、GnomeやLXDEなど好きなデスクトップ環境をインストールしておいてもいい。 - WSLコンソールで
export DISPLAY=:0.0
でVcXsrvに接続する。 -
xeyes
のような簡単なソフトを起動してテストする。もちろんlxpanel
などでもいい。 - 恒久的に使うには、
.bashrc
に設定を書いておいた方が楽。fishを起動する前がいいのかな。
参照
WSL上にXサーバをインストールしてGUIを実現する(VcXsrv編)
WSLでwindows上にLinuxのGUI環境を作る[メモ]
Ubuntu 18.04のWSL上へのインストールと初期設定
X Window on WSL (Ubuntu) on Windows 10 Pro
Windows Subsystem for Linux + X Windowを1.024倍くらい使いこなすための方法
必要なソフトウェアインストール
最新のEmacs
Ubuntu公式が配布するよりも新しいバージョン(執筆時は26)がほしい場合はレポジトリを追加してインストールする。
sudo add-apt-repository ppa:kelleyk/emacs
sudo apt update
sudo apt install emacs26
TeX Live
Ubuntu公式が配布するTeX関連パッケージでもよいのだが、やはりTeX Liveのほうが最新の技術が反映されている。例えばTeX Live 2020からは原ノ味フォントがデフォルトになったり、LuaTeXやXeTeXなど最近のTeX業界は動きがあるようなので注意が必要になる。新しいから良いとも古い方が安心するとも言い切れないので好みだと思う。
というわけで、TeX Liveを公式からインストールする。wgetでネットベースのインストーラーを取得して解凍、ディレクトリへ移動。
wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar xvf install-tl-unx.tar.gz
cd install-tl-*
X Windowを動かしていればオプション-gui
、動かしていなければオプション-no-gui
でやる。リポジトリも国内のものに変える。
sudo ./intall-tl -no-gui -repository http://ftp.jaist.ac.jp/pub/CTAN/systems/texlive/tlnet/
インストール時の設定オプションがでてくるので適当に選ぶ。特別な理由がなければデフォルトのままでいいと思う。I
を入力してインストール開始。
あとは待つだけ。アップデートが必要な場合は
sudo tlmgr update --self --all
アップデートによるトラブルはsudo tlmgr restore (パッケージ名) (リビジョン番号)
で戻せる。/usr/local/texlive/????/tlpkg/backups
にバックアップが保存されている。
なお、TeX Liveは毎年のリリースごとに新しくインストールフォルダをつくるため、毎年インストールが必要になる。また、不要になった過去のパッケージも自分で消す必要がある。
参照
TeX Live: TeX Wiki
Installing TeX Live over the Internet: TeX Live
Ubuntu公式配布のバージョンを使う場合
余計なことはせずにapt install
する。
sudo apt install texlive-lang-japanese texlive-latex-extra texlive-latex-recommended texlive-luatex
それ以外のソフトウェア導入
個々のソフトウェアについては各人の必要に応じて入れればよい。細かい話は次の記事に書くが、最後に備忘録として少し残す。
EmacsでLaTeXを執筆すること前提にすると、スペルチェックが欲しい。
sudo apt install cmigemo aspell
X Windows System 導入後ならばブラウザなどあるかもしれない。Google Chromeを入れたい場合は少し作業が必要。
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt update
sudo apt install google-chrome-stable
参照
How to Install GNU Emacs 26.1 in Ubuntu 18.04, 16.04, 18.10 - UbuntuHandbook
Ubuntu Linux 18.04 LTSで、Google Chromeをapt repositoryからインストールする
続く
まだまだ日本語入力関係やEmacsの設定などやることがあるが長くなってきたのでここで一旦終わり。
続き(2019.09.15)
Windows Subsystem for Linuxを設定する 2 - Qiita