gitに脆弱性が!Updateしなきゃ! でもyumに最新版がないし、ソースから入れたらエラった!ときのメモ
git インストール linux編としても読めます。
現状(2020/04/20) の AmazonLinux Git最新Ver.git-2.14.6-1.62.amzn1の模様。~~(ダメみたいですね~~
追記(2020/05/05)
@SSW-SCIENTIFIC さんのご指摘通り、上記linuxyum
の git-2.14.6-1.62
にセキュリティ修正パッチが適用されており、今回の脆弱性で言えば、Gitのコンパイル インスコ更新は必要ではありません。 この記事は_学生時代の試験範囲外の板書ノート_程度に考えて下さい。 発熱の為、追記更新が遅れたことをお詫びします。(幸いコロナではありませんでした)
追記: 今日(2020/04/21) 時点でGit最新が 2.26.1 → 2.26.2
になりましたので、コマンド修正しました。 以降は皆様で最新Verを確認し、数字を書き換えて下さい
余談(Linux 以外の事)
- Windows は素直にここから git.exe を使ってください
- Update の場合は
PowerShell
からでも
- Update の場合は
git update-git-for-windows # で一発
- Mac は
Homebrew
使えばいいんじゃないっすかねぇ(適当)
brew update && brew upgrade git
- ついでに(入れてるなら)
Xcode
の Updateも必須- 尚、MacOSを Catalina にする必要がある。(El Capitanに人権はない)
SourceTree
の場合はアップデートしたシステムのGitを使うように変更して下さい- 他者様の記事 を参考にどうぞ
Linux で Git を入れたい!(AWS AmazonLinux2の場合)
まずGitの状態確認
$ git --version git version 2.14.5
はい。 最新(2.26.2) 以下は素直にUpしましょうね。(一応低Ver用のパッチ配布無くもないけど…)
# 下拵え yum update # しなくてもいいけど yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker # git依存関係の物をインスコ、これしないと後で泣くことになった(過去完了) git --version # 依存関係をインスコしてる時点でGitの古いものがを入れられる模様 git version 2.14.5 # `yum remove git` とかで削除してもいいけど、無視無視。 # だうんろーど wget https://www.kernel.org/pub/software/scm/git/git-2.26.2.tar.gz # ここ(https://mirrors.edge.kernel.org/pub/software/scm/git/)から最新を見つけて落とす tar -zxf git-2.26.2.tar.gz # たくさん展開する cd git-2.26.2 # いつもの # 本番 make configure ./configure --prefix=/usr # コンパイルコンパイル sudo make all sudo make install # (_´Д`)ノ~~オツカレー # 確認 $ git --version git version 2.26.2
詰まった所
$ sudo make all SUBDIR git-gui # ← これ MSGFMT po/pt_pt.msg make[1]: *** [po/pt_pt.msg] Error 127 make: *** [all] Error 2 $ sudo make install SUBDIR git-gui MSGFMT po/pt_pt.msg make[1]: *** [po/pt_pt.msg] Error 127 # ← これ
__最初に依存関連__を入れないと、こういうエラーが多発する。南無
Git が入ってる状態でのお手軽 Update
- 見出し2個目の依存関連をやってないと、結局詰まるので、yumなどのパッケージからインストールした方は残念ながらエラる
# git コマンドで最新リポジトリをクローン git clone git://git.kernel.org/pub/scm/git/git.git # pullして、最新のソースを取得して再度コンパイル cd git git pull sudo make all && sudo make prefix=/usr/local install # 見ての通り、コマンド短縮形 # 最終確認 git --version
追記 Ubuntu の場合
@github0013@github さんのご教授により簡単な方法を追加しました!(感謝!) 詳細確認の為にもコメントを確認していってね
sudo add-apt-repository ppa:git-core/ppa # > PPAはlaunchpad.netに用意された,個人用リポジトリです(←引用説明文)。個人だからね!他の場合使用時注意ね。 sudo apt update sudo apt install git # git公式さんが常に最新版をppaに用意してくれているので、これで最新ゲットできます。 git --version git version 2.26.2
- 個人的メモ;
- まず_PPA_を登録しなければいけません。
add-apt-repository
を使えない場合はsudo apt-get install software-properties-common
で登録どうぞ
ppa:git-core/ppa
何ぞ?- _git(公式) さん_が 我々下々のために用意してくださったPPAリポジトリです。(素晴らしい)
PPA
を検索すればわかるけど、「公式 apt アプデおっそ」 → 「自分らで用意シヨ」 っていう流れで高位な開発者たち様が提供して下さっている個人用リポです。- 登録すれば、誰でもUPできてしまいます。 野良パケです。ご使用はご慎重に。
- まず_PPA_を登録しなければいけません。
残骸(旧 Ubuntuの場合)
以下はUbuntu Gitの場合必要ではなくなったが、ソース→コンパイルするなど勉強のため残しておきます
# 適度に更新 sudo apt update apt list --upgradable sudo apt upgrade # 下拵え sudo apt install make libssl-dev libghc-zlib-dev libcurl4-gnutls-dev libexpat1-dev gettext unzip # 依存定期 sudo apt autoremove # ← aptの場合、必要でなくなった道具を掃除してくれる魔法のコマンド # だうんろーど、ここからyumと一緒 wget https://www.kernel.org/pub/software/scm/git/git-2.26.2.tar.gz tar -zxf git-2.26.2.tar.gz cd git-2.26.2 # 本番 make configure ./configure --prefix=/usr sudo make all sudo make install
雑記
手持ちのWin端末は呆気なく終了したのに、Ubuntu
と AWS
の Updateで死ぬほどサイト探して、アホほど時間くらいました… 普段如何にrpm
やyum
のパッケージ管理に頼ってるかがわかる(´・ω:;.:... )
実際にここまで書いといてなんだけど、普段使用しないので、来週には忘れてると思う。 んで、またネットの海を彷徨って時間を食うのは馬鹿らしいので、自分用に作った!
後はEvernoteにでも突っ込んで更新や新規構築の度に毎回コピペし直すと思う。
もしコメント注釈の意味に間違いがあったら、教えて下さい!