ホーム » 「wsl」タグがついた投稿
タグアーカイブ: wsl
wsl GUI がWindows10で利用可能に
Windows 10 の 22H2 が適用できるようになり、VcXsrvのような X11 サーバを起動しなくても、GUI の wsl が動かせるようになった。
KB5020030(「2022-11×64ベースシステム用Windows 10 Version 22H2の累積更新プログラム」)がインストールして、再起動などが終わらせておく。wsl が導入済みなら、PowerShell (管理者モード) で、wsl.exe –update を実行するだけ。wsl –version でバージョンが表示されるようになったら成功。
PS C:\WINDOWS\system32> wsl.exe --update インストール中: Linux 用 Windows サブシステム Linux 用 Windows サブシステム はインストールされました。 PS C:\WINDOWS\system32> .\wsl.exe --version WSL バージョン: 1.0.0.0 カーネル バージョン: 5.15.74.2 WSLg バージョン: 1.0.47 MSRDC バージョン: 1.2.3575 Direct3D バージョン: 1.606.4 DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp Windowsバージョン: 10.0.19045.2311
LaTeX で 図入り文書を書く時によく使う簡単なエディタ tgif を使いたかったが、ISO8859-1 のフォントが使えずエラーがでたけど、xfonts-shinonome などを入れたら、無事に動くようになった。emacs なども動くし便利。
$ tgif Fatal Error in OpenFont(): Cannot open the Default(Msg)Font '-*-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1'. Tgif aborted. $ sudo aptitude install xfonts-shinonome 以下の新規パッケージがインストールされます:
職場のWin10マシンはまだ使えず
うーむ、職場の Windows 10 は、相変わらず KB5020030 のアップデートが表示されない。”wsl –version” もエラーのまんまだな。Windows 11 にアップデートした方がいいのかな。
WSLでX11 GUIを使う
Windows 11 の WSL になれば、X サーバなど準備しなくても動くようになるんだけどね。WSLのPythonでGUIアプリを動かすにはどうすればいいかと試してみた。
XcXsrv を入れてあったけど、面倒で環境作ってなかった。改めて X関係のソフトを入れてみた。
$ sudo aptitude install x11-apps fonts-ipafont inkscape gimp tgif $ export DISPLAY=192.168.xx.yy:0.0 $ xeyes
GIMPとかInkscapeとかGoogle Chromeなども入れてそれなりに上手く動くけど、emacs が上手く動かないな…
XcXsrv の最新版を入れる
Bash on Windows やら、Linux 環境を Windows と絡めて使っていると、Windows 環境用の X Server が使いたくなる。以前は、Xming とか cygwin などを使っていたけど、設定などが大変なので、XcXsrv を使っていた。しかし、アプリによってはうまく動かず、tgif などはフォントが見つからないというエラーが出る。
調べると、gsfonts-x11 を入れるとか出てくるけど、ローカルサーバのお話。XcXsrv に gsfonts-x11 を入れるといいのだろうけど、これまた設定がややこしそう。
しかし、最新の XcXsrv-1.20 を入れたら、特にフォント入れなくても、問題なく動くじゃん。
DISPLAY環境変数の設定
そんなに X Server を使うわけじゃないけど、WSL環境と、Linuxサーバで DISPLAY 環境変数を設定する処理を .profile に書いとくか。
(( WSL環境の $HOME/.profile に追加 )) if [ -z "$DISPLAY" -a -n "$HOSTNAME" ]; then export DISPLAY=$HOSTNAME:0.0 fi (( Linuxの $HOME/.profile に追加 )) if [ -z "$DISPLAY" -a -n "$SSH_CLIENT" ]; then case $SSH_CLIENT in 192.168.*) export DISPLAY=`echo $SSH_CLIENT | cut -d' ' -f 1 `:0.0 ;; *) ;; esac fi
Windowsのwslコマンド
紹介記事で、最新のWindows での Windows Subsystem for Linux の使い方の説明があった。普通に bash.exe を起動する以外にも、wsl コマンドがあり、コマンド1つでも Linux の呼び出しができるんだ。
C:\User\foo> wsl ls -al Windows で ls -al を実行 -rwxr--r-- 1 foo foo 20 5月 1 06:05 ntuser.ini lrwxrwxrwx 1 foo foo 0 5月 1 05:40 スタート メニュー C:\User\foo> wsl vi test.c 普通にコーディングと実行もできる。 C:\User\foo> wsl gcc test.c C:\User\foo> wsl ./a.out C:\User\foo> type test.c | wsl grep "#" Windows と Linux 間でパイプをつなげることも可能
WSLでdebianを入れる
WSL(Windows Subsystem for Linux?) で Debian が簡単にインストールできるようなので、インストールしてみる。
Bash on Windows で Ubuntu は使わないので消す
Debian 派生の Ubuntu といっても、デスクトップ環境が使えないなら、Ubuntu の必要性はない。Windows で LaTeX 環境として使っていた程度で、執着はないので、あっさり消す。
> cmd.exe 管理者モードで起動 > lxrun /uninstall /full
WSL で Debian を入れる
サーバ管理という点では、Debian に慣れているし、ほぼ Ubuntu でいいじゃんと思いつつも、信者なので。
Enter new UNIX username:
xxxxxxxx
Enter new UNIX password: yyyyyyyy Retype new UNIX password: yyyyyyyy $ sudo bash # apt-get update ; apt-get dist-upgrade # apt-get install aptitude # aptitude install lv w3m git \ emacs25 anthy anthy-el \ cjk-latex latex-cjk-all tgif man \ gcc g++ flex bison make cmake # aptitude purge nano # vi /etc/locale.gen ja_JP.UTF-8 UTF-8 # コメントを外す # locale-gen # update-locale LANG=ja_JP.UTF-8
wsl.conf
(( /etc/wsl.conf )) # Enable extra metadata options by default [automount] enabled = true mountFsTab = true root = /mnt/ options = "metadata,umask=22,fmask=11" # Enable DNS – even though these are turned on by default, we’ll specify here just to be explicit. [network] generateHosts = true generateResolvConf = true
ssh_exchange_identification connection closed
自宅でBash On Windows の環境から ssh でサーバに入ろうとしたら、以下のようなエラーで接続エラー。
$ slogin server ssh_exchange_identification connection closed
色々確認したら、自宅内の IPv6 のアドレスとれるようにしてあって、IPv6 でつなげようとしてた。hosts.allow に、fe80::/64 を追加。
(( /etc/hosts.allow )) + sshd: [fe80::0]/64