毎日もくもく

毎日もくもく

日記,そして備忘録

alwsl で遊ぶ

Bash on Ubuntu on Windows で遊ぼうと思ったが,なんかつまらないと思っていたところ,github.com を見つけたので,これで遊ぶことにした.

alwsl とは

名前をちょっと考えたら Arch Linux + Windows Subsystem for Linux (WSL) だと分かる.通常の WSL だと Ubuntu, OpenSUSE, Fedora が使えるが,Arch Linux も使えるようにしようというプロジェクトっぽい.

alwsl のインストー

まずは GitHub - alwsl/alwsl: Install archlinux as the WSL (Windows Subsystem for Linux) host. から alwsl.bat をダウンロードする. Windows PowerShellalwsl.bat を置いた場所まで移動し,次のコマンドを実行する.

> ./alwsl.bat install

するとインストールが始まる.実行してみると分かるが,alwsl.bat の中で最初に Bash on Ubuntu on Windows を落として,それからいろいろ書き換えているっぽい.
インストールが終わると今すぐ Bash やって行くか?と聞かれるので, Yes と入力すると Bash やっていける.

                 ,                       _     _ _                    |  ___ ___ _______ ___
                /#\        __ _ _ __ ___| |__ | (_)_ __  _   ___  __  | |   Y   |   _   |   |
               /###\      / _` | '__/ __| '_ \| | | '_ \| | | \ \/ /  | |.  |   |   1___|.  |
              /#####\    | (_| | | | (__| | | | | | | | | |_| |>  <   | |. / \  |____   |.  |___
             /##,-,##\    \__,_|_|  \___|_| |_|_|_|_| |_|\__,_/_/\_\  | |:      |:  1   |:  1   |
            /##(   )##\                                               | |::.|:. |::.. . |::.. . |
           /#.--   --.#\                                              | '--- ---'-------'-------'
          /`           `\   A simple, elegant gnu/linux distribution. | edition (v0.05) by turbo.

インストール後のいろいろ

pacman の設定

最初は root で入っていることが分かる.最初に一般ユーザを作りたいが,その前に pacman を更新しておく.pacman のミラーリストが書いてあるファイルがある /etc/pacman.d/ を見てみる.mirrorlistmirrorlist.pacnew があり,mirrorlist を見てみると全然ミラーが書いていないので,一応 mirrorlist のバックアップを取り,mirrorlist.pacnew をミラーリストとして使っていく.

# mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
# mv /etc/pacman.d/mirrorlist.pacnew /etc/pacman.d/mirrorlist

次に mirrorlist を編集し,日本のミラーを使うために,該当箇所をアンコメントする.

## Japan
Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch

mirrorlist を編集したら次のコマンドを実行し,pacman の全てのパッケージリストを更新する.

# pacman -Syyu

一般ユーザの作成

ここから一般ユーザを作っていくが,その前に root のパスワードを設定しておく.

# passwd

次に一般ユーザを wheel グループで作成する.

# useradd -m -g wheel [username]
# passwd [username]

次に visudo コマンドで /etc/sudoers を編集し,wheel グループで sudo が使えるようにする.

# visudo
# 次をアンコメント
%wheel ALL=(ALL) ALL

必要に応じて他のところもアンコメントする.例えば

# 次をアンコメント
# sudo 時に HOME にある設定ファイルを読み込めるようにする
Defaults env_keep += "HOME"

これで一般ユーザを作成し,かつそのユーザで sudo が使えるようになった.この段階ではまだ root がデフォルトユーザなので,先ほど作成した一般ユーザをデフォルトユーザにする.PowerShell で次のコマンドを実行する

> lxrun /setdefaultuser [username]

PowerShell を再起動し,bash と打ち込むと,先程の一般ユーザでログインしていることが分かる.

HOME ディレクトリを Windows と共有する

ざっとインターネットを見たところ,複数やりかたあるかなという感じ.

シンボリックリンク

以下のコマンドを実行する.このブログ記事を参考にした.hogeWindows のユーザ名,fuga は alwsl の一般ユーザ名である.

$ ln -s /mnt/c/Users/hoge /home/fuga

HOME ディレクトリを変える

/etc/passwd を編集する.このブログ記事を参考にした.

fuga:x:1000:10::/home/fuga:/bin/bash

fuga:x:1000:10::/mnt/c/Users/hoge:/bin/bash

に変える.hoge, fuga については先程と同様である.

デフォルトシェルを zsh にする

とりあえず zsh をインストールする.

$ sudo pacman -S zsh

Linux だと chsh で終わるが,alwsl だと上手くいかなかったので,~/.bashrc に以下を書いて終わりにする.

exec /bin/zsh

これで zsh が起動するはず.

所感

特に上の手順で困ることはなかったので言及しなかったが,実は /etc/pacman.confpacman などが IgnorePkg に設定されていた./etc/pacman.conf.pacnew では特にそんなことなかったので

# mv /etc/pacman.conf /etc/pacman.conf.backup
# mv /etc/pacman.conf.pacnew /etc/pacman.conf

としてから

# pacman -Syyu

とした(あまり pacman のオプションを理解していない……).いろいろ設定ファイルを自分で入れ替えているが,もしかしたら良くないのかもしれない.
まあでも遊べたので良い.多分今後はこれを使わない.普通に Bash on Ubuntu on Windows を使おうと思う.