Windows Subsystem for Linux(Bash on Windows)にHomebrewをインストールする

LinuxbrewがHomebrewに統合されてWindows Subsystem for Linux(Bash on Windows)に対応したということなので、HomebrewをWSL上にインストールして使ってみました。

システム環境&WSLバージョン

cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"

uname -a
Linux DESKTOP-48859VI 4.4.0-17763-Microsoft #253-Microsoft Mon Dec 31 17:49:00 PST 2018 x86_64 x86_64 x86_64 GNU/Linux

インストール

ネット上ではいろいろなサイトでいろんなやり方が書かれていますが、それぞれ書いているHomebrewのバージョンが違ったりでうまく出来ませんでした。

最終的に公式サイトのやり方でインストールができました(当たり前)。本記事も、バージョンによっては対応しないかもしれないので、ご留意ください。

Linuxbrew | Homebrew Documentation

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

==> This script will install:
/home/linuxbrew/.linuxbrew/bin/brew
/home/linuxbrew/.linuxbrew/share/doc/homebrew
/home/linuxbrew/.linuxbrew/share/man/man1/brew.1
/home/linuxbrew/.linuxbrew/share/zsh/site-functions/_brew
/home/linuxbrew/.linuxbrew/etc/bash_completion.d/brew
/home/c0d3man/.cache/Homebrew/
/home/linuxbrew/.linuxbrew/Homebrew

Press RETURN to continue or any other key to abort

この画面でエンターキーを押せばインストールが進みます。

最後にPATHについかしてねというワーニングが出てインストール完了です。

PATHを設定

そのままではbrewコマンドが認識されないので、こちらも公式ガイダンス通りにPATHを追加します。

test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile

一度、WSLコンソールからログアウトすると、brewコマンドが使えるようになります。(各ファイルをsourceで読み直してもOK)

brew doctor

環境テストをしてみましょう。

$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: umask is currently set to 000. Directories created by Homebrew cannot
be world-writable. This issue can be resolved by adding umask 002 to
your ~/.bash_profile
  echo 'umask 002' >> ~/.bash_profile

なんかワーニングが出ました。

言われたとおりに実行します。

echo 'umask 002' >> ~/.bash_profile

source ~/.bash_profile
$ brew doctor
Your system is ready to brew.

OKですね。

実際に使ってみる

それでは、実際に使ってみましょう。

Rubyのバージョン管理アプリrbenvを入れてみます。

==> Installing dependencies for rbenv: m4, gdbm, openssl, berkeley-db, libbsd, expat, perl, autoconf, pkg-config, ruby-build, libyaml, ncurses, readline, zlib and ruby
==> Installing rbenv dependency: m4
==> Downloading https://linuxbrew.bintray.com/bottles/m4-1.4.18.x86_64_linux.bottle.tar.gz
######################################################################## 100.0%
==> Pouring m4-1.4.18.x86_64_linux.bottle.tar.gz
   /home/linuxbrew/.linuxbrew/Cellar/m4/1.4.18: 13 files, 1.1MB
==> Installing rbenv dependency: gdbm
==> Downloading https://linuxbrew.bintray.com/bottles/gdbm-1.18.1.x86_64_linux.bottle.1.tar.gz
######################################################################## 100.0%
==> Pouring gdbm-1.18.1.x86_64_linux.bottle.1.tar.gz
   /home/linuxbrew/.linuxbrew/Cellar/gdbm/1.18.1: 40 files, 1MB
==> Installing rbenv dependency: openssl
==> Downloading https://linuxbrew.bintray.com/bottles/openssl-1.0.2q_2.x86_64_linux.bottle.tar.gz
######################################################################## 100.0%
==> Pouring openssl-1.0.2q_2.x86_64_linux.bottle.tar.gz
==> Downloading https://curl.haxx.se/ca/cacert-2019-01-23.pem
######################################################################## 100.0%
==> Caveats
A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
  /home/linuxbrew/.linuxbrew/etc/openssl/certs
.
.
.
.
.
.
By default non-brewed cpan modules are installed to the Cellar. If you wish
for your modules to persist across updates we recommend using `local::lib`.

You can set that up like this:
  PERL_MM_OPT="INSTALL_BASE=$HOME/perl5" cpan local::lib
  echo 'eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib=$HOME/perl5)"' >> ~/.bash_profile
==> ruby
Emacs Lisp files have been installed to:
  /home/linuxbrew/.linuxbrew/share/emacs/site-lisp/ruby

インストールできました。

確認してみます。

rbenv -v

rbenv 1.1.1

入ってますね。

ついでに、Rubyも確認します。

ruby -v
ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-linux]

入ってました。

irbでRubyが動くか試してみます。

irb

irb(main):001:0> puts 'hoge'
hoge
=> nil

動きましたね。


WSLにHomebrewをインストールして、rubyを動かしてみました。

Homebrewが使えるとなると、開発環境としてのWindows端末の魅力があがりますね。個人的にはmacOSの美しさと使いやすさは何ものにも変えられないですけどね。