Linuxbrew において、 brew コマンドの起動時に出力されるエラーメッセージへの対応手法

はじめに

Linuxbrew とは、 Mac OS X 上における、ソースコードの取得及びビルドに基づいたパッケージ管理システムである Homebrew を Linux の各ディストリビューション向けに移植したものです。

Linuxbrew の使用により、 Linux の各ディストリビューションにおいて、ソースコードからのビルドに基づいたソフトウェアの導入を単純かつ容易に行うことが出来ます。

ここで、 Linuxbrew を導入した端末において、 brew ls コマンド等、各種 brew コマンドを起動すると、起動直後に以下のエラーメッセージを出力する場合があります。

  $ brew ls --full-name  
  /home/linuxbrew/.linuxbrew/Library/Homebrew/brew.sh: line 61: printf: g8858448: invalid number  
  /home/linuxbrew/.linuxbrew/Library/Homebrew/brew.sh: line 61: printf: dirty: invalid number  
  ...(以下略)...

これは、 brew コマンドが git コマンドのバージョンを検出する過程において、 brew コマンドが Github 上の最新の HEAD 版の git を使用している場合にバージョン検出に失敗することが原因であると考えられます。

このような場合は、 Linuxbrew を導入している端末の git を安定版のバージョンに導入し直すことで上記の問題が解決します。

安定版の git を導入する

まず最初に、以下のように git コマンドに --version を付与して実行します。もし、以下のように git のバージョン番号の末尾に dirty の文字が表示されるならば、 Linuxbrew を導入している端末には、Github 上の最新の HEAD 版の git が導入されています。

  $ git --version  
  git version 2.19.1.272.gf84b9b0.dirty  
  $

この場合は、 gitLinuxbrew を用いて導入されている場合は、 brew uninstall コマンドによって HEAD 版の git を削除して、安定版の git を導入し直します。

  $ brew uninstall git  
  ...(略)...  
  $ brew install -dv git  
  ...(略)...  
  $

以上の安定版の git の導入の後、以下のようにして再度 git のバージョン番号を確認します。

  $ git --version  
  git version 2.19.0  
  $

以上の通りに、安定版の git が導入された事を確認した後は、最後に、 brew コマンドを起動して、エラーメッセージが表示されないことを確認します。

  $ brew ls --full-name  
  ...(略)...  
  $