WSLで同一のLinuxディストリビューションを複数インストールする方法
WSLにUbuntu 16.04を複数インストールしたときの備忘録です.WSLでUbuntu16.04の複数の異なる環境を持っておきたいときに便利です.ChocolateyとLxRunOfflineをインストールします.
Chocolateyのインストール
ChocolateyはWindowsでパッケージを管理するソフトで,Ubuntuのapt,CentOSのyumのようなものです. 管理者権限を持つコマンドプロンプトを立ち上げます.こちらのサイトでInstall with cmd.exe
のRun the following command:
の右にあるマークをクリックして,コマンドテキストをコピーし,コマンドプロンプトにペーストし,実行します.
LxRunOfflineのインストール
管理者権限を持つコマンドプロンプトでLxRunOfflineをインストールします.
choco install lxrunoffline
コマンドプロンプトを再起動します.
Linuxパッケージのインストール
Linuxパッケージのダウンロード
インストールしたいLinuxのパッケージをダウンロードします.例えば,MicrosoftのUbuntu 16.04のダウンロードは次のように,
の部分を,こちらを参考にして設定します.と
# https://lxrunoffline.apphb.com/download//
https://lxrunoffline.apphb.com/download/UbuntuFromMS/16
なお,MicrosoftのUbuntu 18.04はまだ用意されていないようです.
パッケージのインストール
パッケージがC:\Users\username\Downloads
にダウンロードされたとします.次のようにインストールします.なお,Ignoring an unsupported fileといったWarningが多数出ましたが,無視しました.
# lxrunoffline install -n <ディストリビューション名> -d <インストール先のフォルダ> -f <ダウンロードしたパッケージのPATH>
lxrunoffline install -n ubuntu1604_1 -d C:\WSL\ubuntu1604 -f C:\Users\username\Downloads.04.2-server-cloudimg-amd64-root.tar.gz
ちなみにuninstallするには以下のようにします.ディストリビューション名は仮にubuntu1604としておきます.
# lxrunoffline uninstall -n <ディストリビューション名>
lxrunoffline uninstall -n ubuntu1604
Linuxの実行と初期設定
インストールしたディストリビューションを実行します.
# lxrunoffline run -n <ディストリビューション名>
lxrunoffline run -n ubuntu1604
現在のコマンドプロンプトがLinuxのshellに変化し,rootでloginした状態になります.以下の通り,初期設定をしておきます.
apt update
apt upgrade
apt install sudo vim-tiny
adduser <ユーザ名>
gpasswd -a <ユーザ名> sudo
次にloginユーザをrootから変更します.
login <ユーザ名>
id
このユーザのuidを覚えておきます.exit
を2回実行してWSLから抜けてコマンドプロンプトに戻り,以下の通りuidに対応したユーザでloginします.
lxrunoffline su -n ubuntu1604 -v <uid>
lxrunoffline run -n ubuntu1604
最後にデスクトップに以下の内容を持つショートカットを作っておきます.
lxrunoffline run -n ubuntu1604
以上の手続きで,<ディストリビューション名>を変えて,複数インストールすれば,同一ディストリビューションの複数のインスタンスを同時にインストールできるようになります.