動機
- 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 のインストール」の項目に戻ります。