最近
Xcode 11.4.1 より前のバージョンでcredential helperの脆弱性によりgitの認証情報が漏えいする可能性があります。
という情報を見つけた。
参照)https://at-virtual.net/securecoding/%E3%80%90poc%E3%81%82%E3%82%8A%E3%80%91cve-2020-5260-xcodemac%E7%89%88%E3%81%ABgit%E3%81%AE%E8%AA%8D%E8%A8%BC%E6%83%85%E5%A0%B1%E3%82%92%E5%8F%96%E5%BE%97%E3%81%95%E3%82%8C%E3%82%8B%E8%84%86/
自分はすでにXcodeを最新バージョンにアップデートしているが、結局gitのセキュリティーの問題なので、gitのバージョンも上げる必要がある。
それで自分のgitのバージョンを調べて見た。
➜ /Volumes git --version
git version 2.24.2 (Apple Git-127)
現在(2020/04/22)時点でgitの最新バージョンは2.26.2。
バージョンが古いのでgitのアップデートをしたい。
macでgitの種類
結論から言うと、mac環境でgitを使うためには、3つの方法があって、それぞれupdate方法が異なる。
- xcodeに含まれているgitと使う → updateできない。公式ホームページからファイルをダウンロードして再度インストールするしかない。
- 公式ホームページからファイルをダウンロードしてインストールする → updateできない。公式ホームページからファイルをダウンロードして再度インストールするしかない。
- Homebrewでinstallしたgitを使う → brew update && brew upgrade コマンドを叩いてupdate
自分の現在gitがどちらから来ているのかがわからないならターミナルでwhich git
コマンドを叩いて確認できる。
➜ /Volumes which git
/usr/bin/git
自分は1. xcodeに含まれているgit
なので/usr/bin/git
のディレクトリーが出ている。
Homebrewでinstallしている場合は/usr/local/bin/git
のディレクトリーが出る。
このgitをupdateするためHomebrewからgitをinstallすることにした。
Homebrewでgitをinstall
➜ /Volumes brew update && brew install git
ターミナルで上記のコマンドを叩く
そうしてもう1回which git
を叩くと
➜ /Volumes which git
/usr/bin/git
あれ?まだxcodeのgitのまま
Homebrewでinstallしたgitにする適用されていない。
Homebrewでinstallしたgitの適用方法
1. Homebrewのリンクを貼り直す
Homebrewでインストールされたパッケージはその実体が /usr/local/Cellar に、そのリンクが /usr/local/binにそれぞれ保存されている。
そのリンクを貼り直して、ターミナルを再起動するとmacはHomebrewでinstallしたgitに認識する。
➜ ~ brew unlink git && brew link git
Unlinking /usr/local/Cellar/git/2.26.2... 206 symlinks removed
Linking /usr/local/Cellar/git/2.26.2... 206 symlinks created
を叩いて、ターミナルを再起動した後、which git
を叩いて確認する。
➜ ~ which git
/usr/local/bin/git
Homebrewのgitのディレクトリーが出ている。成功。
2. 環境変数を指定する
bashの環境設定ファイルにHomebrewのgitのPATHを登録する。
mac osのcatalinaの場合、デフォルトシェルがzshになっているので、ホームディレクトリから設定ファイル.zshrc
を探す。ない場合には作る。
catalina以前のバージョンの場合、bashシェルのなので.bash_profile
にする。
.zshrc
に下記のPATHを登録して、ターミナルを再起動する。
export PATH="/usr/local/git/bin:$PATH"
再起動した後、which git
を叩いて確認する。
➜ ~ which git
/usr/local/bin/git
成功。
gitのバージョン確認
➜ ~ git --version
git version 2.26.2