【旧】NAIST小規模計算サーバーでhomebrewを使えるようにしてみた

拓実 丹羽
inet-lab
Published in
7 min readMar 14, 2022
Homebrewのトップページより

追記(2022/08/03)

2022/08/01付で小規模計算サーバーが新しくなる…ハズなので(2022/08/03現在アナウンスなし)この記事の内容は古いものになります.

もし,管理者権限等の都合でgitとcurlのバージョンが上げられない環境でもlinux-brewが使いたい!という場合は参考になるかもしれません.

きっかけ

小規模計算サーバーにVSCodeをsshで繋いで開発しようかなと思ったら,gitとcurlが古くてダメですと怒られてしまいました…

ということで,最新版のgitとcurlを使えるようにしたかったのですが,せっかくなので homebrew を入れて他のパッケージも入れやすくしてみた次第です.

参考文献

大まかな手順手順

  1. curlをローカルに入れる
  2. gitをローカルに入れる
  3. homebrewをインストール
  4. 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

お疲れさまでした!

--

--