追記(2022/08/03)
2022/08/01付で小規模計算サーバーが新しくなる…ハズなので(2022/08/03現在アナウンスなし)この記事の内容は古いものになります.
もし,管理者権限等の都合でgitとcurlのバージョンが上げられない環境でもlinux-brewが使いたい!という場合は参考になるかもしれません.
きっかけ
小規模計算サーバーにVSCodeをsshで繋いで開発しようかなと思ったら,gitとcurlが古くてダメですと怒られてしまいました…
ということで,最新版のgitとcurlを使えるようにしたかったのですが,せっかくなので homebrew を入れて他のパッケージも入れやすくしてみた次第です.
参考文献
大まかな手順手順
- curlをローカルに入れる
- gitをローカルに入れる
- homebrewをインストール
- curlとgitをhomebrewで入れ,1. と 2. で入れたものを削除する
作業環境
NAIST小規模計算サーバー(root権限がないlinux全般でいける気がします)
シェルはzshを使っています.bashの人は .zshrc
を適宜 .bash_profile
に読み替えてください.
ちなみに,NAIST小規模計算サーバーはログインシェルをchshコマンドで変更できないので, .login
の末尾に exec zsh
と追記することでzshを使用しています.
1. curlをローカルに入れる
homebrewのcurlの最小要件は 7.41.0なので,それ以上のバージョンのcurlを一旦ローカルに入れます.
(NAIST小規模計算サーバーのcurlは執筆時点では7.29.0)
以下のコマンドを実行します.
# homeディレクトリに移動する
$ cd$ USER_LOCAL=$HOME/.local# 7.41.0以上であればOK
$ wget https://github.com/curl/curl/releases/download/curl-7_82_0/curl-7.82.0.tar.gz
$ tar xf curl-7.82.0.tar.gz
$ cd curl-7.82.0
$ ./configure --prefix=$USER_LOCAL
$ make install
wget
のダウンロード元を参考文献と変えています.(証明書エラー回避)
2. gitをローカルに入れる
homebrewのgitの最小要件は2.7.0なので,それ以上のバージョンのgitを一旦ローカルに入れます.
(NAIST小規模計算サーバーのcurlは執筆時点では1.8.3.1)
以下のコマンドを実行します.
# homeディレクトリに移動する
$ cd$ USER_LOCAL=$HOME/.local# 2.7.0以上であればOK
$ wget https://github.com/git/git/archive/v2.30.0.tar.gz
$ tar xf v2.30.0.tar.gz
$ cd git-2.30.0
$ make configure
$ ./configure --prefix=$USER_LOCAL
$ make install
3. homebrewをインストール
homebrewをインストールしますが,このままだとcurlとgitがシステムのものを読みに行ってしまうので,環境変数を設定し今インストールしたものを利用するように指示します.
参考文献では上記でインストールしたcurlとgitを今後も使うためか環境変数をbash_profileに記載していましたが,今回は後でhomebrew経由でインストールしたcurlとgitに入れ替えるため,profileに記載はしていません.
$ USER_LOCAL='$HOME/.local'$ PATH='$USER_LOCAL/bin':$PATH
$ HOMEBREW_DEVELOPER=1
$ HOMEBREW_CURL_PATH='$USER_LOCAL/bin/curl'
$ HOMEBREW_GIT_PATH='$USER_LOCAL/bin/git'
あとはhomebrewの公式サイトに従ってインストール.
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"$ eval "$(~/.linuxbrew/bin/brew shellenv)"
$ echo 'eval "$(~/.linuxbrew/bin/brew shellenv)"' >> ~/.zshrc
4. curlとgitをhomebrewで入れ,1. と 2. で入れたものを削除する
以上でhomebrewは動くようになりましたが,このままだとcurlとgitのバージョンが固定されてしまうので,homebrewで入れ直しました.
$ brew install curl
$ brew install git
homebrewで使うcurlとgitを,今homebrewで入れたものを使うように環境変数を設定します.
.zshrcを開き,以下の2行を追加してください.
ただし,手順3の最後で追加された eval "$(~/.linuxbrew/bin/brew shellenv)"
より前に追加する必要があります.
export HOMEBREW_FORCE_BREWED_GIT=1
export HOMEBREW_FORCE_BREWED_CURL=1# 手順3の最後に記載したもの
eval "$(~/.linuxbrew/bin/brew shellenv)"
ここまでできたら,一度ログアウトし,再度サインインしてください.
動作確認
これで brew および最新の curl,git が動くようになったはずです.
以下は執筆時点でのバージョンです.
$ brew --version
Homebrew 3.4.1-54-gfbc5b11
Homebrew/homebrew-core (git revision 0192df1b390; last commit 2022-03-14)$ curl --version
curl 7.82.0 (x86_64-pc-linux-gnu) libcurl/7.82.0 OpenSSL/1.1.1m zlib/1.2.11 brotli/1.0.9 zstd/1.5.2 libidn2/2.3.2 libssh2/1.10.0 nghttp2/1.47.0 librtmp/2.3 OpenLDAP/2.6.1
Release-Date: 2022-03-05
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB SPNEGO SSL TLS-SRP UnixSockets zstd$ git --version
git version 2.35.1
お疲れさまでした!