yucatio@システムエンジニア

趣味で作ったものいろいろ

Macでmake:command not foundとなったときの対処法

開発環境

症状

rubyのインストール中、 makeコマンドが見つからないというエラーが出た

$ rbenv install 2.3.1
Downloading openssl-1.0.2h.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919
Installing openssl-1.0.2h...

BUILD FAILED (OS X 10.8.4 using ruby-build 20160426)

Inspect or clean up the working tree at /var/folders/hz/b4j1y31166xchfpzkhmg1_jr0000gn/T/ruby-build.20160508134848.45570
Results logged to /var/folders/hz/b4j1y31166xchfpzkhmg1_jr0000gn/T/ruby-build.20160508134848.45570.log

Last 10 log lines:
PROCESSOR    =
RANLIB       =true
ARFLAGS      =
PERL         =/usr/bin/perl
SIXTY_FOUR_BIT_LONG mode
DES_UNROLL used
DES_INT used
RC4_CHUNK is unsigned long
sh: make: command not found
/Users/user/.rbenv/plugins/ruby-build/bin/ruby-build: line 564: make: command not found

whichで確認すると、何も表示されません

$ which make

対応と解決策

パスの確認

まずはパスの確認から。rbenvのインストールでパスを書き換えた際に、コマンドをミスしていないかどうかを確認します。

$ echo $PATH
/Users/user/.rbenv/shims:/Users/user/.rbenv/bin:/Users/user/.rbenv/shims:/Users/user/git/rbenv/bin:/Users/user/.rbenv/shims:/Users/user/git/rbenv/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/opt/X11/bin

/usr/bin, /binなどが含まれているので、パスは問題なさそうですね。 makeは通常 /usr/bin/make にインストールされているので、一応確認します

$ ls /usr/bin/make
ls: /usr/bin/make: No such file or directory

やっぱり無い

makeコマンドのインストール

Googleで調べたところ、Xcodeコマンドラインツールをインストールすればmakeコマンドもインストールされるようです。

Xcodeからのコマンドラインインストール

Xcode バージョン 5.1.1の場合、 Xcode > Preference > Downloads > Components にある Command Line Tools を選択してインストールします

f:id:yucatio:20160516000020p:plain

インストール後、makeコマンドのありかを確認してみると、/usr/bin/makeが表示されました。無事makeコマンドがインストールされました。

$ which make
/usr/bin/make

こちらの記事が大変参考になりました。

Mac OS X Lion で、makeコマンドないやんけ!という時の対処方法 - @kaoritter BLOG


コマンドラインコマンドラインツールをインストールする方法

試していませんが、以下のコマンドでもコマンドラインツールをインストールできるようです。

$ xcode-select --install

また、ruby-buildの公式のwikiでは、コマンドラインツールおよびhomebrew The missing package manager for macOS (or Linux) — Homebrew のインストールを実施後、下記コマンドを実施することを推奨しています。

brew install openssl libyaml libffi

github.com

追記

調べてみると、OS X のバージョンによってコマンドラインツールのインストール方法が違うようで、最近のOSの場合は、コマンドを実行してインストールする必要がありそうです。

関連記事

yucatio.hatenablog.com

yucatio.hatenablog.com