XserverにHomebrewインストール失敗

LINE Botのプッシュメッセージを定期送信するのに、XserverからPythonファイルを定期実行させようと、以前の記事を参考に、環境を整えようとしたら、Linuxbrewをインストールしようとしたらエラー。

初心者でもわかる!XserverでPython実行環境を構築する方法

LinuxbrewはHomebrewに統合されたようで、Homebrewをインストールする必要がありました。以下、記事を参考に試行錯誤し、結局、Homebrewをインストールできなかったのですが、勉強になったので、試行錯誤したことをまとめておきます。

Linuxbrewインストールエラーメッセージ

Linuxbrewを以下、コマンドでインストールしようとしたらエラー。

$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
Warning: Linuxbrew has been merged into Homebrew.
Please migrate to the following command:
  /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

The version of Git that was found does not satisfy requirements for Homebrew.
Please install Git 2.7.0 or newer and add it to your PATH.

LinuxbrewはHomebrewにマージされて、Homebrewをインストールするコマンドを実行する必要があり、Gitの2.7.0より新しいバージョンをインストールする必要もあるエラーメッセージ。

Gitのバージョンを確認すると、1.8.3.1(2021年11月 現在)なので、最新版をインストールする必要があります。

$ git --version
git version 1.8.3.1

試行錯誤した結果、Gitの最新版をインストールをしても、cURLのバージョンが古いというエラーが出たり、cURLでhttpsアクセスするためにopensslをインストールする必要があったりしました。

インストール全体像

以下、順序でインストールしていきました。

  1. gettextインストール(gitをインストールするのにmsgfmtコマンドを実行できる必要があった)
  2. opensslインストール
  3. curlインストール
  4. gitインストール
  5. (Homebrewインストール)

インストール先は以下の通りです。

  • ~/opt/gettext
  • ~/opt/ssl
  • ~/opt/curl
  • ~/opt/git

ただ、最終、以下エラーで、httpsからgit cloneできずに、5の手順を完了できずに断念しました。

git: 'remote-https' is not a git command.

gettextインストール

gettextはソフトウェアの翻訳のためのライブラリで、gitのインストールに必要でした。

$ wget https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.gz
$ tar xf gettext-0.21.tar.gz
$ cd gettext-0.21
$ ./configure --prefix=$HOME/opt/gettext
$ make
$ make install

viエディタなどで、.bashrcファイルに以下を追記し、パスを通します。

export PATH=$HOME/opt/gettext:$PATH

設定ファイルを反映し、msgfmtコマンドが使える確認します。

$ source .bashrc
$ which msgfmt
ソースコードからインストールする

レンタルサーバーはroot権限で実行できないので、yumなどのコマンドを使用してパッケージをインストールすることができません。なので、ソースコードをダウンロードし、インストールします。その際に出てくるのが、configure, make, make installです。

# configureというスクリプトファイルを実行
$ /.configure

# configureで作成されたMakeFileに基づいて、コンパイルを実行
$ make

# コンパイルされたものをインストール
$ make install

# 作成されたファイルを削除する
$ make clean

opensslインストール

opensslはインターネット上で標準的に利用される暗号通信プロトコルであるSSLおよびTLSの機能を実装した、オープンソースのライブラリです。curlやgitでhttpsを使用できるようにするのに必要そうでした。

$ wget http://www.openssl.org/source/openssl-3.0.0.tar.gz
$ tar zxvf openssl-3.0.0.tar.gz
$ cd openssl-3.0.0
$ ./config --prefix=$USER_LOCAL
$ make
$ make install

viエディタなどで、.bashrcファイルに以下を追記し、パスを通します。

export PATH=$HOME/opt/ssl:$PATH

設定ファイルを反映し、msgfmtコマンドが使える確認します。

$ source .bashrc
$ which openssl

curlインストール

curlは、さまざまなプロトコルを用いてデータを転送するライブラリとコマンドラインツールです。

$ wget https://curl.haxx.se/download/curl-7.80.0.tar.gz
$ tar zxvf curl-7.80.0.tar.gz
$ cd curl-7.80.0
$ ./configure --with-ssl=$HOME/opt/ssl --enable-libcurl-option -- prefix=$HOME/opt/curl
$ make
$ make install

viエディタなどで、.bashrcファイルに以下を追記し、パスを通します。

export PATH=$HOME/opt/curl:$PATH

設定ファイルを反映し、curlコマンドが使える確認します。

$ source .bashrc
$ which curl

curlコマンドを実行しようとすると、libssl.so.3, libcrypto.so.3ファイルがないとエラーがでたので、~/opt/curl/libにシンボリックリンクを作成します。

$ cd ~/opt/curl/lib
$ ln -s $HOME/opt/ssl/lib64/libssl.so.3 libssl.so.3
$ ln -s $HOME/opt/ssl/lib64/libcrypto.so.3 libcrypto.so.3

gitインストール

$ wget https://www.kernel.org/pub/software/scm/git/git-2.34.0.tar.gz
$ cd git-2.34.0
$ ./configure --prefix=$HOME/opt/git --with-openssl=$HOME/opt/ssl --with-curl=$HOME/opt/curl
$ make
$ make install

viエディタなどで、.bashrcファイルに以下を追記し、パスを通します。

export PATH=$HOME/opt/git:$PATH

設定ファイルを反映し、gitコマンドが使える確認します。

$ source .bashrc
$ which curl

gitコマンドは実行できるものの、httpsからcloneしようとするとエラー。

$ git clone https://github.com/<リポジトリ>

無視して、Homebrewをインストールしようとした場合は、以下エラーで上記と同様。

git: 'remote-https' is not a git command.

さいごに

Homebrewをインストールできなかったのは、残念ですが、エラーが起きるたびに調べて、ソースコードからインストールするのに理解が深まりました。代わりに、minicondaを利用して、XserverでPython仮想環境を構築することができたので、こちらの方法をおすすめします。

XserverでPython実行環境を構築する方法(2021年版)XserverでPython実行環境を構築する方法(2021年版)