2022/04/20追記
詳しく調査できていないのですが、このページの手順で導入したLinux MintではWSLgが使えないかもしれません。
前回まではWindows Subsystem for Linux 2 (WSL2)を使ってUbuntu 20.04LTSを動かす方法を紹介してきました。
今回は番外編としてLinux MintをWSL2で使って見たいと思います。
Linux Mintとは
Linux MintはUbuntuをベースとしたLinuxディストリビューションです。
基本部分はUbuntuと同一ですが、デスクトップ環境が使いやすく(Windowsに近いといった方が良いかも)、近年では本件Ubuntuよりも人気があるとも言われています。
となると、Linux MintをWSL2で使いたいところですが、この記事の作成時点ではWSL2に導入可能なディストリビューションになっていません。
「wsl –list –online」コマンドの結果や、Microsoft Storeで導入可能なLinuxディストリビューションにLinux Mintは含まれていません。
準備
WSL2が既に有効になっていることを前提として進めていきます。
WSL2を利用したことがない場合は、下記のページを参考にUbuntuを導入してしまうのが手っ取り早いです。
一度、WSL2にUbuntuを導入することでWSL2が確実に利用可能な状態になります。
もちろんUbuntuが不要であれば、下記のコマンドで削除してしまっても構いません。
> wsl --unregister Ubuntu
Linux Mintの導入
それではLinux MintをWSLに導入していきます。
実はLinux MintをWSLにた追うさせているプロジェクト(LinuxmintWSL)があるので、その成果を使わせてもらいます。
まず下記のWebサイトにアクセスしてLinuxmintWSL.zipをダウンロードします。
私が試したときには「LinuxmintWSL-20220225」というバージョンでした。
ダウンロードしたLinuxmintWSL.zipを展開すると「Mint.exe」と「root.tar.gz」が得られるはずです。
うまく展開できない場合は7-zip等のフリーソフトを使ってみてください。
LinuxmintWSL.zipを展開して得られた「Mint.exe」と「root.tar.gz」を好きなフォルダに移動します。重要なのは同じフォルダにMint.exeとroot.tar.gzを入れることです。
また、この「Mint.exe」と「root.tar.gz」を格納してあるフォルダにWSL2の仮想ディスクが展開されるので、デスクトップやダウンロードフォルダなど一時的なデータ置き場は利用しないよう通いでしょう。
私の場合はWSL2のデフォルトに合わせるため「%LOCALAPPDATA%\Packages\LinuxmintWSL\LocalState」以下に格納することにしました。
「%LOCALAPPDATE%\Packages」までは存在していると思いますが、それ以降は存在していないと思うのでフォルダを作成する必要があります。
あとは「Mint.exe」を実行(ダブルクリック)するだけです。10秒ほど待って「Installation complete」と表示されればOKです。
1分経っても「Installing…」から進まない場合はこのウィンドウでリターンキーを1買い売ってみてください。表示が更新されると思います。
これでMint.exeのフォルダにWSL2用の仮想ディスクext4.vhdxが用意されます。
またwslコマンドを使って見ると、Mintが登録されていることがわかります。
WSLに登録される名前は「Mint.exe」のファイル名から決まりますので、このファイル名を変えることで登録名も変更することができます。
例えば、登録名をLinuxMintとしたかったら、Mint.exeをLinuxMint.exeに改名してから、インストールを実行します。
Linux Mintの実行
インストールに成功したらLinux Mintを起動してみます。
他のWSL2用のLinuxディストリビューションと同様にwslコマンドで実行可能です。
> wsl -d Mint
初回起動時は次のような表示になり、新しいユーザを作成するかどうかを聞いてきます。
ユーザを作成するために「1」を入力します。
するとユーザ名を要求するので入力します。
次にパスワードを設定します。
確認のため、もう一度パスワードを入力すると、ユーザが生成されそのユーザでログインした状態となります。
バージョンを確認すると「Linux Mint 20.3」で有ることがわかります。
$ cat /etc/lsb-release DISTRIB_ID=LinuxMint DISTRIB_RELEASE=20.3 DISTRIB_CODENAME=una DISTRIB_DESCRIPTION="Linux Mint 20.3 Una"
Linux Mintのアップデート
パッケージの状態を最新にする前に、どこからデータをとってくるかを確認しておきます。
$ cat /etc/apt/sources.list.d/official-package-repositories.list deb http://packages.linuxmint.com una main upstream import backport deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb http://archive.canonical.com/ubuntu/ focal partner $ cat /etc/apt/sources.list.d/official-source-repositories.list deb-src http://packages.linuxmint.com una main upstream import backport deb-src http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse deb-src http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse deb-src http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://archive.canonical.com/ubuntu/ focal partner
初期設定では「packages.linuxmint.com」「archive.ubuntu.com」「security.ubuntu.com」「archive.canonical.com」から取得することになっています。
データ通信を早くするために「packages.linuxmint.com」と「archive.ubuntu.com」を国内のミラーサーバに差し替えておきましょう。
$ sudo sed -i -e 's/http:\/\/archive.ubuntu.com/http:\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list.d/official-package-repositories.list $ sudo sed -i -e 's/http:\/\/archive.ubuntu.com/http:\/\/jp.archive.ubuntu.com/g' /etc/apt/sources.list.d/official-package-repositories.list $ sudo sed -i -e 's/http:\/\/packages.linuxmint.com/http:\/\/ftp.jaist.ac.jp\/pub\/Linux\/linuxmint\/packages/g' /etc/apt/sources.list.d/official-package-repositories.list $ sudo sed -i -e 's/http:\/\/packages.linuxmint.com/http:\/\/ftp.jaist.ac.jp\/pub\/Linux\/linuxmint\/packages/g' /etc/apt/sources.list.d/official-source-repositories.list
あとはパッケージ一覧のデータベースを更新します。
$ sudo apt-get update Ign:1 http://ftp.jaist.ac.jp/pub/Linux/linuxmint/packages una InRelease Get:2 http://ftp.jaist.ac.jp/pub/Linux/linuxmint/packages una Release [24.1 kB] Get:3 http://ftp.jaist.ac.jp/pub/Linux/linuxmint/packages una Release.gpg [833 B] (中略) Get:40 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1,592 kB] Fetched 23.0 MB in 3s (6,831 kB/s) Reading package lists... Done
エラーがないことを確認して更新されたパッケージをアップデートします。
$ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages will be upgraded: gir1.2-gtk-3.0 gir1.2-polkit-1.0 gtk-update-icon-cache libc-bin libc-dev-bin libc6 libc6-dbg libc6-dev libgail-3-doc libgtk-3-0 libgtk-3-bin libgtk-3-common libgtk-3-dev libgtk-3-doc libjavascriptcoregtk-4.0-18 libpolkit-agent-1-0 libpolkit-gobject-1-0 libwebkit2gtk-4.0-37 locales policykit-1 policykit-1-doc 21 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 48.7 MB of archives. After this operation, 19.5 kB of additional disk space will be used. Do you want to continue? [Y/n]
21個のパッケージに更新があるようです。問題がなければ「Y」を入力します。
更新が完了したら不要なファイルは削除しておきます。
$ sudo apt-get clean
ロケール
デフォルトでは英語ロケールしかサポートしていなくていろいろ困りそうです。
日本語のロケール(ja_JP.UTF-8)用のデータも生成するように設定します。
$ sudo dpkg-reconfigure locales
下記のような画面になったらカーソルキーで「ja_JP.UTF-8 UTF-8」を探し、スペースキーで「*」マークをつけます。
「*」マークをつけたらTABキーで<OK>を選択したらリターンキーを押します。
次にデフォルトのロケールを聞かれますが「None」のままとしておきます。
あとはリターンキーを押せばロケールの選択画面が終了し、日本語のロケールデータが生成されます。
これでLANG環境変数を「ja_JP.UTF-8」にすればコマンド等の出力結果が日本語になります。
$ export LANG=ja_JP.UTF-8
例えばdateコマンドの場合は下記のように曜日が日本語で表示されるようになります。
$ date 2022年 3月 4日 金曜日 21:00:26 JST
問題がなければホームディレクトリの.bashrcに言語の設定を追加しておきましょう。
$ echo export LANG=ja_JP.UTF-8 >> ~/.bashrc
ついでに日本語関係のパッケージを入れておきます。
$ sudo apt-get install language-pack-ja-base language-pack-ja language-pack-gnome-ja-base language-pack-gnome-ja manpages-ja manpages-ja-dev
最小化を解除する
いろいろ試していて気づいたのですが、LinuxmintWSLで導入されるLinux Mintは、サーバ用あるいはコンテナ用のためか、一部コマンドが削除されているようです。
例えばmanコマンドが使えません。
$ man man This system has been minimized by removing packages and content that are not required on a system that users do not log into. To restore this content, including manpages, you can run the 'unminimize' command. You will still need to ensure the 'man-db' package is installed.
このメッセージに書かれているように「unminimize」コマンドで復活させましょう。
$ sudo unminimize This system has been minimized by removing packages and content that are not required on a system that users do not log into. This script restores content and packages that are found on a default Ubuntu server system in order to make this system more suitable for interactive use. Reinstallation of packages may fail due to changes to the system configuration, the presence of third-party packages, or for other reasons. This operation may take some time. Would you like to continue? [y/N]
ここで「y」を入力すると自動的にパッケージの導入が始まります。
私の場合はgconf2のインストール時にエラーが起こってしまいました。
そこでgconf2を削除(sudo apt-get remove gconf2)を行ってから再度unminimizeを実行したところ最後まで進みました。
unminimizeで導入(復活)されるパッケージはかなり多く時間がかかります。
プリンタ・スキャナ関係など、余計なパッケージもかなり入るので、パッケージに詳しい方は削除しておいても良いでしょう。
MATEデスクトップを使う
Linux Mintにはいくつかの「Cinnamon」「MATE」「Xfce」という3つのデスクトップ環境が用意されています。
一般に、デザイン重視なら「Cinnamon」、軽快さ重視なら「Xfce」、中間なら「MATE」となります。今回は「MATE」を使ってみます。
Linux Mint (WSL2)側の設定
まずは必要なパッケージを入れておきます。
$ sudo apt-get install mint-meta-core mint-meta-mate
Cinnamonを使いたい場合は「mint-meta-mate」に変えて「mint-meta-cinnamon」を、Xfceを使いたい場合は「mint-meta-xfce」を指定してみてください。
WSL2はWSLgという仕組みでLinuxのGUIアプリを実行することができますが、残念ながらWSLgはデスクトップ環境を扱えません。
ここではWindowsからリモートデスクトップで接続し、リモートデスクトップでMATEデスクトップ環境を動かしてみましょう。
リモートデスクトップの接続を受け付けるためのxrdpパッケージを導入します。
$ sudo apt-get install xrdp
続いてxrdpの受信ポートを3390に変更します。
$ sudo sed -i -e 's/^port=3389/port=3390/g' /etc/xrdp/xrdp.ini
ここまで完了したらxrdpを起動しておきます。
$ sudo service xrdp restart
MATEデスクトップ環境でdbusを利用する気がするのでdbusも起動しておきます。
$ sudo service dbus restart
ついでにLinxu Mint側でWindowsのフォントを参照できるようにしておきます。
$ sudo ln -s /mnt/c/Windows/Fonts/ /usr/share/fonts/windows $ sudo fc-cache -fv
またリモートデスクトップ接続時にMATEが起動するように、ホームディレクトリに.xsessionrcというファイルを作成します。
$ echo "export LANG=ja_JP.UTF-8" > ~/.xsessionrc $ echo "mate-session" >> ~/.xsessionrc
Windows側の設定
Windowsのスタートメニューから「リモートデスクトップ接続」を探して実行します。
次のようなウィンドウが出るので「オプションの表示」を選択しましょう。
これでリモートデスクトップのオプションが設定できるので「画面」タブを選択します。
「画面の設定」のエリアでリモートデスクトップの画面サイズ(=WSL2のデスクトップ画面のサイズ)を設定できます。
Windows画面全体をリモートデスクトップで覆われたくないときはここで画面サイズより小さい解像度を設定しておきます。
次のようなウィンドウがでるので「localhost:3390」と入力して「接続」を選択します。
すると次のような警告が出るので、チェックボックスを選択してから「はい」を選択します。
これでリモートデスクトップ(xrdp)のログイン画面が表示されるはずです。
「Session」で「Xorg」になっていることを確認して、Linux Mit(WSL2)のユーザ名とパスワードでログインします。
これでMATEのデスクトップが表示されればOKです。
うまくいったら次回にLinux Mint(WSL2)を起動したときにもリモートデスクトップ接続できるように、xrdpが起動時に実行されるようにしておきます。
$ sudo sed -i -e 's/\[boot\]/\[boot\]\ncommand = service xrdp start/g' /etc/wsl.conf
その他の設定
あとはUbuntuとほとんど同じです。WSL2を使うのに便利な設定をしておきます。
wsl.confを使ってxrdpを起動するようにした場合、初回のリモートデスクトップ接続でGUIが表示されるまでなぜか5分程度がかかるようです。
まとめ
今回はWindows Subsystem for Linux (WSL2)に人気ディストリビューションのLinux Mintを導入してみました。
WSL用のLinux Mintはインストーラが用意されているため、比較的簡単に導入することができます。
一度導入してしまえば、Ubuntuと同じように設定できるので、使いやすいのではないかと思います。
次回はWSL2を使ってプログラミング環境(C言語)を構築したいと思います。
コメント
最新だとWSLg使えました