各種プランのご案内ログイン
Web開発
Homebrew 入門
1 min

macOS ユーザの皆さん、こんにちは。はむさんです。

さて、みなさんは、パッケージマネージャはお使いでしょうか? ウェブ開発においては、特に Linux の世界では当たり前のように使われているこのパッケージマネージャですが、必要な機能を正確に配備するにはとっても便利な機能になりますね。 しかしながら、標準の macOS にはこのパッケージマネージャという機能は残念ながら提供されていません。

そこで登場するのが今回紹介する Homebrew です。

brew image
brew image

この Homebrew は、brew と短く呼ぶこともありますので、以降は短い方で呼んでいきます。この brew の公式サイトの日本語のページはこちらになります。

Homebrew top page
Homebrew top page

今回、なぜ、brew を紹介するのかと言うと、 この brew はですね、macOS のために開発されたパッケージマネージャーなんですね。 この brew を使って、rbenv とか ruby とかあるいは、nodenv とか yarn と言ったウェブ開発者にとって欠かせないパッケージを簡単にインストールしたり管理することができるんですね。

Linux を使ったことのある方であれば、CentOS であれば yum コマンド、あるいは、Ubuntu であれば apt-get コマンドなどでパッケージのインストールをしたことがある人もいるかもしれませんが、つまりは macOS において、それらに該当するものがこの brew になります。 macOS でも yum や apt-get と同じように、この brew を一度入れてしまえば、煩わしい パッケージのインストールをコマンドライン一発で進めていけるというのはプログラマーにとって非常にありがたいですよね。

mac を持っている大抵のプログラマーは、mac を買ってきて、電源を入れたらすぐにこの brew をインストールする!っていっても過言じゃないくらいの鉄板のツールとなっています。インストールも簡単なので、まだ使ったことがないと言う方は是非この機会に入れてみてください。

では、brew コマンドをインストールをしていきますが、まず、インストール前に、コマンドがないこと確かめておきますね。

画面右上の Spotlight 検索のアイコンをクリックして、Terminal.app と入力して、ターミナルを開きます。

Spotlight検索
Spotlight検索

$ type brew
-bash: type: brew: not found

brew についても type コマンドでコマンドがあるかどうかみてみると、この通り、not foundって表示されますよね。 デフォルトの状態だとこのようにコマンドがありません!と表示されます。

Homebrew のホームページはこちらです。 https://brew.sh/index_ja

では、こちらの Homebrew のリンクをクリックして、Homebrew のトップページに移って、 「インストール」のところにある、こちらの コマンドをコピーしてターミナルに貼り付けましょう!

install


 $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
==> Checking for `sudo` access (which may request your password).
Password:
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew

Press RETURN to continue or any other key to abort

すると、あとはインストーラが走って、 上のところで処理が止まります。 上では、「インストールを続けても良いなら RETURN を押してね!」って言っています。 ここで RETURN キーを叩きます!

==> /usr/bin/sudo /usr/sbin/chown -R ham:admin /usr/local/Homebrew
==> Downloading and installing Homebrew...
remote: Enumerating objects: 69, done.
remote: Counting objects: 100% (66/66), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 69 (delta 49), reused 45 (delta 40), pack-reused 3
Unpacking objects: 100% (69/69), 25.69 KiB | 392.00 KiB/s, done.
From https://github.com/Homebrew/brew
 + 19e059235...d42aff248 buildpulse-retry                                         -> origin/buildpulse-retry  (forced update)
 + 1d34c7a91...a9059239f dependabot/bundler/Library/Homebrew/rubocop-rails-2.11.1 -> origin/dependabot/bundler/Library/Homebrew/rubocop-rails-2.11.1  (forced update)
   aa14e48f4..51cfd7362  master                                                   -> origin/master
HEAD is now at 51cfd7362 Merge pull request #11601 from Homebrew/dependabot/bundler/Library/Homebrew/activesupport-6.1.4
Updated 3 taps (homebrew/cask-versions, homebrew/core and homebrew/cask).
==> Installation successful!

==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics
No analytics data has been sent yet (or will be during this `install` run).

==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations

==> Next steps:
- Run `brew help` to get started
- Further documentation:
    https://docs.brew.sh

続きは上のような感じで処理が続きます。 Installation successfulという案内が表示されます。 インストールが成功したようです!

ここまで来たら正常に brew がインストールされたことになります。 brew help と入力してエンターキーを押してみましょう。

$ brew help
Example usage:
  brew search TEXT|/REGEX/
  brew info [FORMULA|CASK...]
  brew install FORMULA|CASK...
  brew update
  brew upgrade [FORMULA|CASK...]
  brew uninstall FORMULA|CASK...
  brew list [FORMULA|CASK...]

Troubleshooting:
  brew config
  brew doctor
  brew install --verbose --debug FORMULA|CASK

Contributing:
  brew create URL [--no-fetch]
  brew edit [FORMULA|CASK...]

Further help:
  brew commands
  brew help [COMMAND]
  man brew
  https://docs.brew.sh

brew helpを実行すると、ご覧のように brew コマンドに関するヘルプが表示されます。 あとは適宜必要なパッケージをインストールするだけです。

では、折角なので、brewを使ってパッケージのインストールを行ってみましょう。brewでインストールできる有名なパッケージに wget というファイルダウンローダがありますのでこれを入れてみましょう。まず、デフォルトだとwgetコマンドは macOS にはインストールされていませんので type コマンドで確認しておきます。

$ type wget
-bash: type: wget: not found

はい、この通り wget コマンドは見つかりませんでした。では、brew コマンドで wget コマンドを検索してみます。

$ brew search wget
==> Formulae
wget        wgetpaste

検索するには、brew のサブコマンドである search、そして引数に wget を渡します。 すると、検索結果に wget が表示されましたね。 wget パッケージの詳細をbrew infoコマンドで調べてみましょう。


$ brew info wget
wget: stable 1.21.1 (bottled), HEAD
Internet file retriever
https://www.gnu.org/software/wget/
/usr/local/Cellar/wget/1.20.3_2 (50 files, 4.0MB) *
  Poured from bottle on 2020-03-31 at 13:31:28
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/wget.rb
License: GPL-3.0-or-later
==> Dependencies
Build: pkg-config ✔
Required: libidn2 ✔, openssl@1.1 ✔
==> Options
--HEAD
    Install HEAD version
==> Analytics
install: 108,629 (30 days), 373,503 (90 days), 1,559,043 (365 days)
install-on-request: 108,195 (30 days), 372,087 (90 days), 1,547,711 (365 days)
build-error: 0 (30 days)

brew info wgetを実行すると、色々と情報が表示されました。 ここで分かるのは、公式のページが https://www.gnu.org/software/wget/ であることです。 公式ページをみてみると、wget の概要について書かれています。

では、wget を brew でインストールしてみましょう。実行するコマンドは、brew install wgetです。

$ brew install wget
==> Installing dependencies for wget: gettext, libunistring, libidn2 and openssl
==> Installing wget dependency: gettext
==> Downloading https://homebrew.bintray.com/bottles/gettext-0.
######################################################################## 100.0%
==> Pouring gettext-0.19.8.1.high_sierra.bottle.tar.gz
==> Caveats
gettext is keg-only, which means it was not symlinked into /usr/local,
because macOS provides the BSD gettext library & some software gets confused if both are in the library path.

If you need to have gettext first in your PATH run:
  echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.bash_profile

For compilers to find gettext you may need to set:
  export LDFLAGS="-L/usr/local/opt/gettext/lib"
  export CPPFLAGS="-I/usr/local/opt/gettext/include"

==> Summary
🍺  /usr/local/Cellar/gettext/0.19.8.1: 1,935 files, 16.9MB
==> Installing wget dependency: libunistring
==> Downloading https://homebrew.bintray.com/bottles/libunistri
######################################################################## 100.0%
==> Pouring libunistring-0.9.10.high_sierra.bottle.tar.gz
🍺  /usr/local/Cellar/libunistring/0.9.10: 54 files, 4.4MB
==> Installing wget dependency: libidn2
==> Downloading https://homebrew.bintray.com/bottles/libidn2-2.
######################################################################## 100.0%
==> Pouring libidn2-2.1.1a.high_sierra.bottle.tar.gz
🍺  /usr/local/Cellar/libidn2/2.1.1a: 69 files, 691.6KB
==> Installing wget dependency: openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.
######################################################################## 100.0%
==> Pouring openssl-1.0.2r.high_sierra.bottle.tar.gz
==> 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
  /usr/local/etc/openssl/certs

and run
  /usr/local/opt/openssl/bin/c_rehash

openssl is keg-only, which means it was not symlinked into /usr/local,
because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.

If you need to have openssl first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile

For compilers to find openssl you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl/include"

==> Summary
🍺  /usr/local/Cellar/openssl/1.0.2r: 1,795 files, 12.1MB
==> Installing wget
==> Downloading https://homebrew.bintray.com/bottles/wget-1.20.
######################################################################## 100.0%
==> Pouring wget-1.20.1_4.high_sierra.bottle.tar.gz
🍺  /usr/local/Cellar/wget/1.20.1_4: 49 files, 3.9MB
==> `brew cleanup` has not been run in 30 days, running now...
Pruned 0 symbolic links and 2 directories from /usr/local
==> Caveats
==> gettext
gettext is keg-only, which means it was not symlinked into /usr/local,
because macOS provides the BSD gettext library & some software gets confused if both are in the library path.

If you need to have gettext first in your PATH run:
  echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.bash_profile

For compilers to find gettext you may need to set:
  export LDFLAGS="-L/usr/local/opt/gettext/lib"
  export CPPFLAGS="-I/usr/local/opt/gettext/include"

==> openssl
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
  /usr/local/etc/openssl/certs

and run
  /usr/local/opt/openssl/bin/c_rehash

openssl is keg-only, which means it was not symlinked into /usr/local,
because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.

If you need to have openssl first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile

For compilers to find openssl you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl/include"
==> gettext
gettext is keg-only, which means it was not symlinked into /usr/local,
because macOS provides the BSD gettext library & some software gets confused if both are in the library path.

If you need to have gettext first in your PATH run:
  echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.bash_profile

For compilers to find gettext you may need to set:
  export LDFLAGS="-L/usr/local/opt/gettext/lib"
  export CPPFLAGS="-I/usr/local/opt/gettext/include"

はい、以上で、wget のインストールはできました。

wget のバージョンを確認してみましょう。

 $ wget --version
GNU Wget 1.20.3 built on darwin19.0.0.

では、バージョンが確認できたら、wget の動作を確認しましょう。

$ mkdir tmp
$ cd tmp
$ wget http:/example.com/
$ cat index.html
<!DOCTYPE html>
<html>
  <head>
    <title>Example Domain</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    : : :
  </head>
</html>

tmp ディレクトリを作成して移動します。 そして、 http:/example.com/ というサイトの index.html を wget で取得してみようと思います。 取得できたら cat コマンドで html の中身を表示します。 はい、こんな感じの内容が表示されるかと思います。 wget の動作も問題なさそうですね。

と言うわけで、本記事では、macOS ユーザのための鉄板ツール Homebrew のインストール手順のご紹介でした。


Tags

#web-development#brew

Related Posts

Web開発 テスト
テストを書かなければいけない本当の理由
1 min

クイックリンク

各種プランのご案内講師紹介受講生様の声よくあるご質問メルマガ

SNS