ブログ

エックスサーバー(xserver.ne.jp)に Homebrew を入れる手順(2022年1月時点)

動機

  • Xserver で Python, anaconda, Flask 実行したい
  • Xserver にはroot権限がないので自由にインストールできない
  • Xserver に Homebrew を入れれば自由にインストールできる

というわけで、手順をまとめてみました。(2022年1月時点)

TeraTerm を使用して、SSH経由で Xserver にログイン

以下2つの手順を行い、TeraTerm で Xserver にログインできるようにします。

さらに、TeraTerm の Xserver への自動ログイン設定をしておきます。

Xserver への自動ログイン

ちなみに、/keyfile や /M や /F はフルパス指定も可能です。

Homebrew のインストール

情報が古いサイトでは Linuxbrew のインストールとなっています。

2022/1/12現在では Homebrew が正式にLinux対応しているので、こちらをインストールします。

TeraTerm で Xserver にログインして、以下コマンドを実行します。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

「Press RETURN …」と表示されたら、「Enter」を押下します。
実行時に以下などのエラーが出る場合は「Homebrew をインストールするための前準備」の項目へ。

Please install Git 2.7.0 or newer and add it to your PATH.
Please install cURL 7.41.0 or newer and add it to your PATH.
curl: (1) Protocol "https" not supported or disabled in libcurl
/bin/sh: msgfmt: コマンドが見つかりません

上記エラーが無い場合は、$HOMEにて brew のパス設定をします。
以下の5コマンドを1つずつ実行します。
Homebrew公式 で紹介されている手順です。)

test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)"
test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
test -r ~/.bash_profile && echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.bash_profile
echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.profile
source ~/.bash_profile

SSH再接続してから、以下を実行します。

brew --config

エラーが表示されなければ、Homebrewインストール完了です。

「Error: Please update your system curl.」のエラーがある場合は、.bash_profile に export HOMEBREW_FORCE_BREWED_CURL=True が設定されていないと思います。

また、export HOMEBREW_NO_ENV_FILTERING=True をする必要があるという記事もありますが、私のケースでは不要でした。

Homebrew をインストールするための前準備

+ Homebrew をインストールするための前準備はこちら(クリックで展開)

openssl, curl, gettext, git の4つをインストールしておく必要があります。
効率よくインストールするために、先にパスを通しておきます。

環境変数を設定

以下コマンドで HOME に移動します。

cd $HOME
vi ~/.bash_profile

カレントディレクトリに .bash_profile があるので vi で以下のように編集します。
4つのライブラリとHOMEBREWについて先回りでパスを通しておきます。

# User specific environment and startup programs
PATH=$HOME/local/ssl/bin:$HOME/local/curl/bin:$HOME/local/gettext/bin:$HOME/local/git/bin:$PATH:$HOME/bin
LD_LIBRARY_PATH=$HOME/local/ssl/lib:$HOME/local/curl/lib:$HOME/local/gettext/lib:$HOME/local/git/lib:$LD_LIBRARY_PATH

export PATH
export LD_LIBRARY_PATH
export HOMEBREW_FORCE_BREWED_CURL=True
export HOMEBREW_FORCE_BREWED_GIT=True

souce コマンドで保存します。

source .bash_profile

共有ライブラリとしてインストールしていくので、以下を設定しておき、
4つのライブラリが -fPIC でビルドされるようにしておきます。

 
export CFLAGS=-fPIC

さもないと、curl の make で以下のようなエラーになります。

 
`.rodata' can not be used when making a shared object; recompile with -fPIC
make: *** [all-recursive] エラー 1

ここから、順番通りにインストールしていきます。

openssl をインストール

cd tmp  # 作業ディレクトリへ移動
wget http://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar xvfz openssl-1.0.2k.tar.gz
rm openssl-1.0.2k.tar.gz
cd openssl-1.0.2k
./config --prefix=$HOME/local/ssl --openssldir=$HOME/local/ssl shared # ビルド準備
make                             # ビルド
make install                     # インストール
~/local/ssl/bin/openssl version  # openssl のインストール確認(インストールしたバージョン情報が表示されればOK)
cd  ..
rm -rf openssl-1.0.2k  # 不要になったので削除
cd                     # ホームディレクトリへ戻る

ポイントは以下。

  • ./configure ではなく ./config
  • openssldir も指定
  • デフォルトで /usr/local/ssl にインストールされるので、$HOME/local/openssl ではなく $HOME/local/ssl
  • which openssl の結果が /usr/bin/openssl ではなく ~/local/ssl/bin/openssl なら正解
    Xserverのopensslではなく、自分がインストールしたopensslが使われるようになっている

curl をインストール

cd tmp  # 作業ディレクトリへ移動
wget https://curl.haxx.se/download/curl-7.79.1.tar.gz
tar xvfz curl-7.79.1.tar.gz
rm curl-7.79.1.tar.gz
cd curl-7.79.1
./configure --prefix=$HOME/local/curl --with-ssl=$HOME/local/ssl --enable-libcurl-option --enable-shared # ビルド準備
make                             # ビルド
make install                     # インストール
~/local/curl/bin/curl -V         # curl のインストール確認(インストールしたバージョン情報が表示されればOK)
cd  ..
rm -rf curl-7.79.1  # 不要になったので削除
cd                  # ホームディレクトリへ戻る

gettext をインストール

cd tmp  # 作業ディレクトリへ移動
wget https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.gz
tar xvfz gettext-0.21.tar.gz
rm gettext-0.21.tar.gz
cd gettext-0.21
./configure --prefix=$HOME/local/gettext --enable-shared # ビルド準備
make                             # ビルド
make install                     # インストール
~/local/gettext/bin/gettext -V   # gettext のインストール確認(インストールしたバージョン情報が表示されればOK)
cd  ..
rm -rf gettext-0.21  # 不要になったので削除
cd                   # ホームディレクトリへ戻る

git をインストール

cd tmp  # 作業ディレクトリへ移動
wget https://www.kernel.org/pub/software/scm/git/git-2.34.1.tar.gz
tar xvfz git-2.34.1.tar.gz
rm git-2.34.1.tar.gz
cd git-2.34.1
./configure --prefix=$HOME/local/git --with-openssl=$HOME/local/ssl --with-curl=$HOME/local/curl # ビルド準備
make                             # ビルド
make install                     # インストール
~/local/git/bin/git --version    # git のインストール確認(インストールしたバージョン情報が表示されればOK)
cd  ..
rm -rf git-2.34.1    # 不要になったので削除
cd                   # ホームディレクトリへ戻る

これで、Homebrew をインストールするための前準備完了です。
「Homebrew のインストール」の項目に戻ります。

-ブログ

© 2022 墾田ええねん! Powered by AFFINGER5