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

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をインストールする必要があったりしました。
インストール全体像
以下、順序でインストールしていきました。
- gettextインストール(gitをインストールするのにmsgfmtコマンドを実行できる必要があった)
- opensslインストール
- curlインストール
- gitインストール
- (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
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仮想環境を構築することができたので、こちらの方法をおすすめします。
