macにwgetをインストールする方法|homebrewで簡単導入

Macでちょっとしたサイト構造を調べたくなって、ついクセで fetch
を叩いた。
「command not found」。──あれ、MacOSってfetch無いんだっけ? そうだった。あれはFreeBSD系だったな、と。
じゃあ wget
で行こうと思ったら、こっちも標準で入っていない。
MacOSには curl
があるけど、オプションが面倒だし、再帰的にサイトごとダウンロードしたい用途には向かない。
やっぱり wget
を使いたい。
というわけで、XcodeとHomebrew経由で wget
を入れて快適になったので、その手順をまとめておきます。
ちなみに wget
はUbuntuでは最初から入ってるけど、MacOSやCentOSでは標準じゃないことも多いんですよね。
wgetが無い?MacOS標準には非搭載です

MacOSを使っていると、たまに「え、これ無いの?」というコマンドに出くわすことがある。wget
もその代表格だ。
特にLinuxやFreeBSDを触ってきた人間からすると、「wgetくらい標準で入ってるでしょ」と思ってしまう。
実際、UbuntuなどのLinuxディストリビューションでは、wget
が最初から使える環境も多い。
けれどMacOSでは、wget
は標準で搭載されていない。代わりに curl
が入っているのだが、
この curl
はオプションがややこしく、シンプルなファイル1つの取得には向いていても、
「サイトをまるごと再帰的にダウンロードする」といった使い方には向かない。
挙句、FreeBSDでよく使っていた fetch
も当然MacOSには無い。
つまり、Macのターミナル環境で wget
を使いたい場合は、自分でインストールする必要があるということだ。
幸い、Homebrewという優秀なパッケージマネージャがあるので、それを使えば導入は簡単。
Xcodeさえ入れてしまえば、あとは数コマンドで wget
を導入できる。
このあと、その具体的な手順を詳しく解説していく。
Macにwgetを入れるための手順

MacOSで wget
を使えるようにするには、まず Xcodeの導入とHomebrewのインストールが前提になる。
慣れていないとやや面倒に思えるかもしれないが、最初の環境さえ整えてしまえば、以降は他のCLIツールも楽々扱えるようになる。
ここでは、なるべくつまずかないように、ひとつずつ順番に手順を解説していく。
App Storeから「Xcode」を検索してインストールする。
容量が大きいので、ネット回線やMacのスペックによっては20〜30分ほどかかることもある。
完了まで気長に待とう。
※今後 swift
などMac向けの開発もする予定があるなら、ここで入れておいて損はない。
Xcode本体とは別に、CLI用の開発ツールも必要。
ターミナルを開いて、以下のコマンドを実行:
xcode-select --install
実行するとインストーラが立ち上がり、指示に従ってインストールが進む。
こちらも多少時間がかかるが、ここまでが準備段階。
HomebrewはMac用のパッケージ管理ツール。
ブラウザで brew.sh を開き、トップに表示されているインストール用コマンドをコピーする。

そのコマンドをターミナルに貼り付けて実行。
なんか聞いてくるので 全てリターンキーを。他のキー押すと強制終了しちゃいます。

途中でsudo用のパスワード入力を求められるが、それは自分のMacのログインパスなので安心して入力してOK。
完了すると「Install successful!」のようなメッセージが出る。
brewを入れた直後は、そのままだとターミナルからコマンドが認識されないことがある。
インストール時に表示された指示(たとえば .zprofile
に export PATH を追加)をそのままコピペして実行すればOK。
bashを使っている人は .bash_profile
に追記、zshの人は .zprofile
に書くのが基本。
画面で反転させている この部分をコマンドラインでコピペして実行してください。

.bash_profileに追加されているか一応確認

ここまで来ればもうゴール目前。
ターミナルで次のコマンドを打つだけ。
brew install wget
あとはbrewがすべてやってくれる。数十秒〜数分で wget
が使えるようになる。
再起動などは不要で、すぐに使い始められるはずだ。
wgetの使い方(再帰取得でサイトをまるごと保存)

wget
の真骨頂は、やはり「サイトをまるごとダウンロードできる」こと。
とくに <link>
や <script>
タグで参照されているCSSやJSも含めて、ディレクトリ構造ごと取得したいときには便利だ。
その際に使うのが -r
オプション、つまり「再帰的に取得(recursive)」の指定だ。
たとえば、家庭用ルーターの管理画面が http://192.168.128.1/
にあるとして、そこをまるごとローカルに保存したければ:
wget -r http://192.168.128.1/
とするだけで、対象のURLにアクセスし、リンク先や参照ファイルをたどって必要なファイルを全部取得してくれる。
保存先は、自動で「対象ドメイン名のフォルダ」が作られ、その中に階層構造ごと保存される。
見た目もURL構造もそのままなので、オフラインで動作検証したり、構成の参考にするのにもってこいだ。

よくある質問(FAQ)

まとめ

MacOSで wget
を使うには、まずXcodeとHomebrewを導入する必要がある──。
最初はちょっと面倒に感じるかもしれないが、一度この環境を整えてしまえば、CLIツールの世界が一気に広がる。
curl
や fetch
の違いに戸惑うこともあるけれど、目的が「サイトをまるごと保存したい」のであれば、wget
のシンプルさと柔軟さはやっぱり便利だと感じる。
とくに再帰取得の -r
オプションは一度覚えておくと何かと役立つ。
この記事が、自分のように「wget無いじゃん……」と最初に詰まったMacユーザーの一助になればうれしい。
Homebrewを通じて、CLIの楽しさがちょっとでも伝われば幸いです。