macでpythonに必要なhomebrewをターミナルでダウンロードしようとしたら、Downloading Command Line Tools for Xcodeと表示された

解決

どうやら、homebrewを使うにはCommand line tools for Xcodeが必要らしい。そして、homebrewをインストールしようとすると、自動でxcodeをインスールするらしい。Xcodeは6GBほどあり、すごく時間がかかるため、Downloading Command Line Tools for Xcodeという行で止まってしばらくまたないといけないようだ。。。

インスール中の確認

とは、いえインストールの進行具合が気になるところだ。その確認方法がある。finderを開いて、画面上部のタブ一覧から"移動"を開いてoptionキーを押すと、"ライブラリ"が登場する。ライブラリを開いて、"Caches"フォルダがインスールを開始した日付で生成されている。中を開くとフォルダが生成されて、増え続けていることを確認できる。ライブラリフォルダは削除することはできません。ここにあるファイルは、macOSとアプリケーションを正常に動作させるためのものなので、そのままにしておきましょう。

インストール時間(Command line tools for Xcode)

参考までに、Command line tools for Xcodeのイントールにかかった時間は69分でした。時間は上下すると思うので、参考程度にしてください。

homebrewのダウンロードが失敗

続けて、homebrewのダウンロードが始まりますが、なぜか次のようなエラーが出て失敗しました。
Failed during: /usr/bin/git fetch --force origin
そこで次のサイトにかかれている5つを試しました。
https://stackoverflow.com/questions/60069083/homebrew-install-error-failed-during-git-fetch-origin-masterrefs-remotes-origi
(このサイトをどうみつけたかというと…)
(まずはFailed during: /usr/bin/git fetch --force originでgoogle検索)
(このサイトが上から4つ目にでてきました。)
https://stackoverflow.com/questions/76715557/homebrew-install-error-failed-during-usr-bin-git-fetch-force-origin
(そこの解決策コメントしている方が参考として書いているリンク先です。)
・Homebrewに関連するすべてのフォルダを削除
・ネットワーク接続が正常で、github.comにpingが通ることを確認
・GitHubのアカウントにメールアドレスが割り当てられていることを確認
・ポストバッファの値を増やす
・SSL転送のセキュリティ設定を変更
以上を試してもまだ解決できなかったのですが、続けてあることをすると成功しました。なので、読者の方は、そのあることまで飛んで試すと成功するかもしれません。それでも、成功しなかった場合はここへ戻って1つずつ試してみてください。
まずは、その5つについて解説します。

Homebrewに関連するすべてのフォルダを削除(たぶん不要)

次のコードを実行します。
rm -rf /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

コードの解説
rm: ファイルやディレクトリを削除するコマンドです。

  • -rf: rはディレクトリを再帰的に削除するオプションで、fは確認を求めずに強制的に削除するオプションです。このオプションを使用すると、削除の際に確認プロンプトが表示されません。

  • /usr/local/bin/brew: Homebrewの実行可能ファイルが格納されているディレクトリです。ここではbrewという名前のバイナリが削除されます。

  • /usr/local/share/doc/homebrew: Homebrewに関連するドキュメントが格納されているディレクトリです。

  • /usr/local/share/man/man1/brew.1: Homebrewのマニュアルページが格納されているディレクトリです。

  • /usr/local/share/zsh/site-functions/_brew: Zshの補完関数が格納されているディレクトリです。

  • /usr/local/etc/bash_completion.d/brew: Bashの補完スクリプトが格納されているディレクトリです。

  • /usr/local/Homebrew: Homebrewのメインのインストールディレクトリです。

各ディレクトリは空白スペースで区切ることで1度に同時に実行できるため、空白で区切られています。

ネットワーク接続が正常で、github.comにpingが通ることを確認

次のコードを実行してください
ping github.com

コードの解説
通信を確認するごとに行が更新されます
このループを抜けるには、
macの場合、controlキーとCキーを同時押しすると抜けれます。
※コピーのショートカットで使用するcommandキーではなく、Aキーの左隣のキーなので、注意してください。

GitHubのアカウントにメールアドレスが割り当てられていることを確認

次のコードを実行してください
git config --global user.name
git config --global user.email
何も表示されない場合は、次のコードで登録してください
git config --global user.name "Your Name"
git config --global user.email
"Your name"は自分の名前でなくてもOKです。(適当可)
user.emailはgmail(捨て垢でも可)でOKです。
コードの解説
Gitのグローバルなユーザーメールアドレスとネームが確認、登録できます。

ポストバッファの値を増やす

この値はパソコンのメモリも関係するため、適切な値を入れる必要があります。
macでメモリを確認する方法
1.finderを開く
2.画面上部の移動タブからアプリケーションに移動する
3.アプリケーション内のユーティリティフォルダを開く
4.アクティビモニタアプリを開く
5.アプリ内上部にCPU,メモリ,エネルギー,…とあるので、メモリを開く
6.表示される確保されているメモリ横の変動する数値が可能なメモリの上限です

値がわかったら次のコードを実行してください
100MBを設定する場合↓
git config --global http.postBuffer 104857600
500MBを設定する場合↓
git config --global http.postBuffer 524288000
1Gを設定する場合↓
git config --global http.postBuffer 1048576000
2Gを設定する場合↓
git config --global http.postBuffer 2147483648
5Gを設定する場合↓
git config --global http.postBuffer 5368709120

SSL転送のセキュリティ設定を変更

次のコードを実行してください
git config --global http.sslVerify "false"
コードの解説
GitがHTTPSを通じてリモートリポジトリにアクセスする際に、SSL証明書の検証を無効にする設定を行います。一般的にはこの設定は推奨されません。SSL証明書の検証が無効になると、通信のセキュリティが低下し、中間者攻撃に対して脆弱になります。

この設定を行う理由として、リモートリポジトリのSSL証明書が自己署名証明書であるか、もしくは他の理由で検証に失敗する場合、一時的な対応策として設定されることがあります。しかし、セキュリティ上の理由から、検証が失敗する場合は信頼できる証明書を使用するか、問題を解決する方が望ましいです。

そのため、インストールが完了したら次のコードを実行して元に戻しましょう。
git config --global http.sslVerify "true"

trueに戻っているか確認するコードは以下です。
git config --get http.sslVerify

trueが帰ってきたらOKです。

Homebrew公式サイトのパッケージをインストール

さきほども説明した通り、前の5つを試すだけでは、ダウンロード完了しないんですよね。そこで、公式サイトに飛んでパッケージをインストールしてから、またダウンロードをして、パス設定をするとインストールできました。それぞれ解説します。

homebrew mac用のパッケージをインストール

homebrewと検索して一番上にでてくる公式サイトで、インストールするコードをターミナルで実行しても、homebrewダウンロードで失敗しますよね。
ちなみに、xcodeをインストールされていなかったら、それを最初ダウンロード、インストールしますが、それは初回だけなので、安心してください。
サイトに飛ぶと、以下のコメントが見つかりました。
macOSをお使いの場合は新しい.pkgインストーラーをお試し下さい。
その横に書かれている
Homebrewの最新のGitHubリリースからダウンロードして下さい。
に飛びます。
そすると、MikeMcQuaidさんのページに飛びます。
What's changedという目次から始まって、一番下にAssetという項目があります。
その中に、Homebrew-4.2.9.pkgというパッケージをダウンロードし、開いてインストールします。終わったら、削除するか聞かれるので、削除しておきましょう。(バージョンの番号は更新されているかもしれません)
そして、もう一度インストールの下のコードを実行すると完了できました。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

まだあんのかい。インストールが終わってもbrewコードが見つからないだと(command not found: brew)

実は完了した後のコードを見ると次のように書かれています。
一部飛ばしますが、重要箇所はここです。
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/noritomo(ここはパソコンのあなたユーザー名です)/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
解説します。
このコードは、Homebrewが正しく動作するためにシェルに必要な設定を行うものです。具体的には、PATHにHomebrewを追加するためのコマンドです。

  1. (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/noritomo(ここはあなたのユーザ名に変わります)/.zprofile:

    1. この部分は、ユーザー noritomo(ここはあなたのユーザ名に変わります) のホームディレクトリにある .zprofile ファイルに、Homebrewのシェル設定を追加するためのコマンドです。

      • (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') は、echoコマンドを使って改行を挿入し、eval "$(/opt/homebrew/bin/brew shellenv)" という文字列を生成します。これはHomebrewの設定を評価するためのコマンドです。

      • >> /Users/noritomo(ここはあなたのユーザ名に変わります)/.zprofile は、前述の生成した文字列を .zprofile ファイルに追記するためのリダイレクトです。これにより、Homebrewの設定がシェル起動時に自動的に読み込まれます。

  2. eval "$(/opt/homebrew/bin/brew shellenv)":

    1. この部分は、先ほど生成した文字列を評価し、Homebrewのシェル設定を現在のシェルセッションに適用します。これにより、Homebrewでインストールしたコマンドが利用可能になります。

簡単に言えば、これらのコマンドはHomebrewをシェルに統合するための設定を行っています。これにより、HomebrewでインストールしたパッケージやコマンドがPATHに追加され、シェルから簡単に利用できるようになります。

ちなみに、シェルとは
シェル(Shell)は、コンピュータ上でユーザーと操作体系やアプリケーションとの対話を可能にするプログラムやインターフェースのことを指します。一般的には、ユーザーがテキストベースのコマンドやスクリプトを入力して、それを解釈し実行する環境を指します。

まあ、ここまでは適当に読み飛ばしてもOKです。

つまり、ターミナルに表示される
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/noritomo(ここはパソコンのあなたユーザー名です)/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
これ

これをコピーして貼って実行すると、Homebrewの設定がシェル起動時に自動的に読み込まれて、Homebrewのコマンドが利用可能になります。

試しに、brewのコード curlを検索
brew search curl
を使用してみると、
何か表示されました。
awscurl curlcpp curlpp grpcurl
curl curlie flickcurl python-pycurl

==> Casks
cursr

これで、完了ですね、ここまで大変だったぜ

この記事が気に入ったらサポートをしてみませんか?