30
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[追記] gitに脆弱性が!Updateしなきゃ! でもyumに最新版がないし、ソースから入れたらエラった!ときのメモ

Last updated at Posted at 2020-04-19

git インストール linux編としても読めます。

現状(2020/04/20) の AmazonLinux Git最新Ver.git-2.14.6-1.62.amzn1の模様。(ダメみたいですね

追記(2020/05/05)

@SSW-SCIENTIFIC さんのご指摘通り、上記linuxyumgit-2.14.6-1.62にセキュリティ修正パッチが適用されており、今回の脆弱性で言えば、Gitのコンパイル インスコ更新は必要ではありません
この記事は_学生時代の試験範囲外の板書ノート_程度に考えて下さい。
発熱の為、追記更新が遅れたことをお詫びします。(幸いコロナではありませんでした)

追記:
今日(2020/04/21) 時点でGit最新が 2.26.1 → 2.26.2 になりましたので、コマンド修正しました。
以降は皆様で最新Verを確認し、数字を書き換えて下さい

余談(Linux 以外の事)

  • Windows は素直にここから git.exe を使ってください
    • Update の場合は PowerShellからでも
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できてしまいます。 野良パケです。ご使用はご慎重に。

残骸(旧 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端末は呆気なく終了したのに、UbuntuAWS の Updateで死ぬほどサイト探して、アホほど時間くらいました…
普段如何にrpmyum のパッケージ管理に頼ってるかがわかる(´・ω:;.:... )

実際にここまで書いといてなんだけど、普段使用しないので、来週には忘れてると思う。
んで、またネットの海を彷徨って時間を食うのは馬鹿らしいので、自分用に作った!

後はEvernoteにでも突っ込んで更新や新規構築の度に毎回コピペし直すと思う。

もしコメント注釈の意味に間違いがあったら、教えて下さい!

30
30
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?