(当分工事中)
この文書は、Mac を使いこなすためのメモと言うことなので、 脱線ということになってしまうけれど… Windows マシンで WSL (Windows Subsystem for Linux) を使う話は書いておこうかな。
…まあ、Mac からの脱出も考えておかなくちゃ、それもノウハウのうち、 とこじつけたりして。
既に 「番外編: 初めてのWSL」というのを書いたことがある。 でもそれは WSL で、今回試したいのは WSL2 ということで、0からスタート。
ちなみにマシンは、買ったばかりのまっさらに近いもの (msi Prestige 14)。
「WSL2の初歩メモ」 を参考にしてインストールする。
まず、タスクマネージャーを起動して (ctrl+alt+DELETE して選択する)、 パフォーマンス タブで仮想化が有効になっていることを確認せよ、 とある。これは大丈夫だった。
管理者権限で PowerShell を起動して (スタートメニューで Windows PowerShell の下にある “Windows PowerShell” (紛らわしいね) を右クリックする、 あるいは検索ボックスに powershell を入力して「管理者として実行する」、 あるいは画面左下のWindowsロゴを右クリックしてコンテキストメニューを表示)、 以下のコマンドを実行して、WSLを有効にする。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart |
仮想マシンプラットホームを有効にする。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart |
ここでPCを再起動する(スタートメニュー、電源、再起動)。
コントロールパネルの[プログラム][Windowsの機能の有効化または無効化] (呼び出すには Windowsキーを押してスタートメニューを表示させ、 “windows fea” と入力する、という手もある) で、 「Linux 用 Windows サブシステム」と 「仮想マシンプラットホーム」にチェックがついていることを確認する。 (これはついていた。)
PowerShell で次のコマンドを実行して、WSL のデフォルト・バージョンをWSL2とする。
wsl --set-default-version 2 |
“WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。 詳細については https://aka.ms/wsl2kernel を参照してください” と言われてしまった。
カーネルのパッケージを https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi(これはわずか 14.6MB) からダウンロードして実行し、上のコマンドをやり直す。 今度は無事通った。
「Microsoft Store」を開いて、 希望する Linux ディストリビューションを選択する (選択肢は Ubuntu, openSUSE-Leap-15-1, Kali Linux, Debian, Alpine WSL)。 まあ、Ubuntu にしておきます。 453.7MB か。昔ならいざ知らず、今だと可愛いサイズだね。
インストールして、起動 (この辺はクリックするだけ)。 最初は少し時間がかかるとか、と言われたけれど 1分もかからなかった。
“Enter new UNIX username: ”, “New password: ”, “Retype new password: ” と尋ねられる。適当に答えておく。
Ubuntu 20.04.2 LTS (GNU/Linux 5.4.72-micsosoft-standard-WSL2 x86_64)
あ、“1 update can be installed immediately.” とある。 こうすればいいのかな?(自信はない。)
sudo apt update sudo apt upgrade -y |
ここまでの段階で ~/.bashrc が存在するので、 色々設定が書ける。 curl も ssh も使えるので、 必要なものを Mac で用意して持って来ることもできる。
ssh の設定をして (細かいことは省略)。
eval `ssh-agent` ssh-add |
すんなり研究室のマシンにリモート・ログイン出来た。 バックスラッシュが円記号に見えるのは久しぶりだ (ちょっと気持ち悪い)。
Windows Terminal というのを使ってみるか。
https://www.microsoft.com/ja-jp/p/windows-terminal/9n0dx20hk701
これがあると、 Windows PowerShell, コマンドプロンプト, Ubuntu, Azure Cloud Shell が選択できる。 デフォールトでは ctrl+shift+2 で Ubuntu (bash) が起動するのか。 気軽に複数のシェルが起動できるので、作業がとてもやりやすい。
あ、バックスラッシュが円記号でなくてバックスラッシュに見える。 なるほど。 こっちがいいや (これは冗談で、他にも色々便利な機能があります)。
Ubuntu を “デフォルトのプロファイルにする場合は、 settings.jsonにて defaultProfile として、 Ubuntu の guid を指定してください。” というのがあるけれど、json の編集か。 VS code でもやらされたやつか。どうしようかな (ちょっと面倒かな)。
VS code は Windows にインストールするのか、Ubuntu にインストールするのか。 はてさて?
今日はここまで。
(X11 とか Emacs とか gcc とか…)
(2021/3/9追記) Windows Terminalの settings.jsonの場所が分かった。 ただのテキストファイルなので、例えば vi で編集しても構わないわけだ。
vi ~/AppData/Local/Packages/Microsoft.WindowsTerminal_8wekyb3d8bbwe/LocalState/settings.json |
Windows では、copy がctrl+C, pasteがctrl+Vとなっているが、 これはUNIX使いには難物だ。 でもWindows Terminalでは同時に shift を押したら? (つまり copy は ctrl+shift+C, paste が ctrl+shift+V) となっているらしい (default.json に設定が書かれているそうだ)。 デフォールトでは Windows 流の ctrl+C, ctrl+Vも有効だが、 これは設定ファイル settings.json の方でやっているとか。 それをコメントアウトすれば ctrl+C, ctrl+V のコピペへのバインディングが外せるのか。
settings.json の該当部分 (注釈を読むと理解できる) |
"actions": [ // Copy and paste are bound to Ctrl+Shift+C and Ctrl+Shift+V in your defaults.json. // These two lines additionally bind them to Ctrl+C and Ctrl+V. // To learn more about selection, visit https://aka.ms/terminal-selection //{ "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+c" }, //{ "command": "paste", "keys": "ctrl+v" }, // Press Ctrl+Shift+F to open the search box { "command": "find", "keys": "ctrl+shift+f" }, // Press Alt+Shift+D to open a new pane. // - "split": "auto" makes this pane open in the direction that provides the most surface area. // - "splitMode": "duplicate" makes the new pane use the focused pane's profile. // To learn more about panes, visit https://aka.ms/terminal-panes { "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+shift+d" } ] |
Windows Terminalまだ慣れていないけれど、割といいかもしれない。 実はかなり長時間 Windows Terminal から Mac にリモート・ログインして書き物をしている(出来ている … 不便だとちょっとやっているうちにくたびれるはず)。
(global-set-key "\C-_" 'undo) |
段々ストレスが減っていく感じ。
(ところで Macでは、PC のCAPSの位置に controlがあり、 PCの ctrl の位置付近に command があって、 ctrl+C と ctrl+V がそれぞれ command+C, command+V に割り当てられているが、 これって実に傑作な設定だといまさらながら感心した。 UNIXとPCの両方に慣れた人にやさしいということになるのかな。)
この文書は Mac についてのメモだけど、
WSLについてのメモというのを書き始めるべきなのかもしれないな。
桂田 祐史