ハロー、和田です。昨日は蒸し暑かったので、FIXERボドゲ会でハコオンナをやりました。花瓶の中身を覗いたらハコオンナが待ち構えていた時の恐怖、忘れられない。
macOS用のパッケージマネージャーであるHomebrewが2.0.0でLinuxとWindows 10 (with WSL)に対応してから久しいですが、WSLのUbuntu 18.04にインストールしようとしたら詰まったところがあったので忘備録としてまとめておきます。よく考えたらLinux使い的には当たり前な事でしたけど。
Homebrewとは
HomebrewはUbuntu標準のパッケージマネージャーaptと比べ、次のような特徴があります。
- ホームディレクトリにパッケージをインストールできるため、sudoが不要
- 使用しているディストリビューションでパッケージ化されていないソフトウェアもインストール可能
- 最新バージョンのパッケージをインストールできる
- クロスプラットフォームなので、macOSとWindows(WSL)とLinuxで同じパッケージマネージャーを使える
最後に関してはWindowsだとWSLでしか使えないのに何言ってんだって感じではありますが、最新版のパッケージを持ってこれるのは素直に嬉しいです。aptだと雑にインストールしたら古いバージョンしか取ってこれないとかザラにあるので。
インストール手順
Homebrew on Linuxの通りに進めていきます。
まずはupdateとupgradeから。
sudo apt update && sudo apt upgrade
必要な依存関係をインストールします。
sudo apt-get install build-essential curl file git
Homebrew本体のインストール。
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
PATHに追加してコマンドとして利用できるようにします。Homebrewは/home/linuxbrew/.linuxbrew
か~/.linuxbrew
にインストールされるので、とりあえず下の両方のコマンドを実行すればいい感じにPATHに追加してくれます。test
はファイル/ディレクトリが存在しているかを調べるコマンドです。知らなかった。
test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
これだけだとターミナルを閉じたらまたPATHに追加しなおさないといけないので、起動時に読み込まれるスクリプトにも追加します。ドキュメントに書いてあるように、Debian/Ubuntuは~/.profile
でCentOS/Fedra/RedHatは~/.bash_profile
です。Ubuntuにインストールしているので下のコマンドだけ実行すれば十分。
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile
これでターミナルを閉じてもbrewを使い続けられるはずです。ここまで来たら試しにbrewを使ってパッケージを追加してみましょう。
brew install sl
slが走れば勝ち。
ハマったポイント
さて、Homebrewには環境構築の手助けをしてくれるbrew doctorというコマンドがあります。筆者はよくbrew dockerってタイポします ?
それでは、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
を実行してしまうと、umask 002
しか書かれていない~/.bash_profile
が作られてしまって、次回起動時にカラースキーマなどが死にます。~/.bash_profile
が存在するとbashの設定が書かれている~/.bashrc
が読み込まれないためです。~/.profile
に書き込みましょう。
echo 'umask 002' >> ~/.profile
もしくは、~/.bash_profile
で~/.bashrc
を読み込ませてもいいです。
echo 'umask 002' >> ~/.bash_profile
echo 'source ~/.bashrc' >> ~/.bash_profile
はい。
おわりに
脳死でコマンドを実行すると死ぬという教訓を得ましたが、とりあえずHomebrewが使えるようになったのでOKです。これで次の記事が書ける。