Torihaji's Growth Diary

Little by little, no hurry.

Homebrewで実行されているコマンドの中身について

はじめに

みなさん、こんにちは。torihaziです。

今、裏でHomeBrewをインストールしようとしているのですが、

その際実行すべきコマンドについて

中でどんな処理が動いていたか気になったので、調べてみました。

途中で挫折するかもしれませんが、やる気が続くまでやってみようかと思います。

目次(ここをクリック)

動かすコマンドについて

容疑者はこの子です。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

そもそもこの/bin/bash -c $(・・)が何をしているか分解すると

  1. curlで指定先のgithubから処理が記載されたスクリプト(中身はテキスト)をダウンロード
  2. $(curl・・)とすることで$(・・)が1の実行結果に置き換わる(コマンド置換)
  3. その実行結果を bashというシェルを起動して実行する(-cとすればそのまま実行できます)

というものになります。

試しにこの中のうちのcurl部分

curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh

を実行してみましょう。

まず何をしているかというと

curlgithubからシェルスクリプトのファイルをダウンロードしているだけです。

-fsSLとかオプションついていますが、なくても機能すると思います。

ちなみに

curl -X GET https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh -o ファイル名
curl https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh -o ファイル名
と`-o`とすればテキストファイルとしてファイルに出力できます。
diff したりview したりで中身を見たり違いがないことを確認してみてください。

としても動くと思います。

中身についてはリンクが機能しなかったので下記URLをそのままwebで調べてみてください。

https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh

このような長ったらしいスクリプトが見られるかと思います。

このスクリプトのファイルをcurlコマンドでダウンロードしています。

そしてこのスクリプトbashで実行しているだけです。

本当はこのスクリプトファイルについて調査する予定でした。

しかし、こんなに量があるとは思わなかったので暇ができたら続きしようかと思います

終わりに

はじめに謝ります。

あの処理をいちいち説明するのは気が引けました。

ただぱっと見わからないところもあったので

調べるのは次の機会にします。

Linuxの知識について

もし、上記でcurlってそもそも何よ。という方がいたなら

色々ググってみることをお勧めします。

curl自体は私たちがブラウザでページにアクセスするのをコマンドで

行っているだけです。

この記事が参考になるかと思います

curlの参考記事