レンタルサーバーにパッケージ管理のHomeBrewを入れる

今回の記事ではレンタルサーバーにHomeBrewを入れていつでも使える環境を作るための方法を書いていきます。

XSERVER(エックスサーバー) などのレンタルサーバーで開発をしていると既存パッケージでは足りない物が多々あるため、ユーザー環境にパッケージをビルドする必要が出てきます。

毎回パッケージビルドするために必要ライブラリの調査やmake実行やオプション設定の方法を調べるのは大変手間なため、パッケージマネージャーのHomeBrew(旧LinuxBrew)を入れてビルドしやすい環境を構築していく方法をメモしておきます。

なお、XSERVER(エックスサーバー)を例に記載していきますが、大抵のレンタルサーバーでもSSH出来れば使用出来るのではと思われます。(情報求む)

事前準備

XSERVERの場合だとgitとcurlのバージョンが古いため新しくビルドする必要があります。それが以下の通り

#!/bin/bash -eux

PREFIX=$HOME/opt
SRC=$PREFIX/src

mkdir -p $SRC
cd $SRC

wget https://www.openssl.org/source/openssl-3.0.5.tar.gz
tar -xf openssl-3.0.5.tar.gz
cd openssl-3.0.5
./config --prefix=$PREFIX
make
make install
cd ..

wget https://curl.se/download/curl-7.84.0.tar.gz
tar zxvf curl-7.84.0.tar.gz
cd curl-7.84.0
./configure --prefix=$PREFIX --enable-libcurl-option --with-openssl=$PREFIX
make
make install
cd ..

wget https://www.kernel.org/pub/software/scm/git/git-2.37.1.tar.gz
tar zxvf git-2.37.1.tar.gz
cd git-2.37.1
make configure
./configure --prefix=$PREFIX --with-curl=$PREFIX
make all
make install
cd ..

export LD_LIBRARY_PATH=$HOME/opt/lib:$HOME/opt/lib64:$LD_LIBRARY_PATH
export PATH=$HOME/opt/bin:$PATH

which git
ls -la $PREFIX/libexec/git-core/git-remote-https

git-remote-httpsが入っていればHomeBrewのインストールができます。

HomeBrewインストール

export LD_LIBRARY_PATH=$HOME/opt/lib:$HOME/opt/lib64:$LD_LIBRARY_PATH
export PATH=$HOME/opt/bin:$PATH

export HOMEBREW_CURL_PATH=`which curl`
export HOMEBREW_GIT_PATH=`which git`
export HOMEBREW_PATH=$PATH

cd $HOME

mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

eval "$(homebrew/bin/brew shellenv)"
brew update --force --quiet
chmod -R go-w "$(brew --prefix)/share/zsh"

上記コマンドを流せばインストール完了します。環境変数などは適時bash_profileなどに設定してお使いください。

実行した結果として、HomeBrewをroot権限が無いLinuxユーザーがインストールすると $HOME/.linuxbrew に入ります。こちらに存在していなければインストールに問題があります。

(2023年5月7日追記、最新版では.linuxbrewに入らなくなったようです。自分で $HOME/homebrew ディレクトリなど作成していれるようになったようです。)

$ ls .linuxbrew/
Caskroom  Cellar  Frameworks  Homebrew  bin  etc  include  lib  opt  sbin  share  var

補足

補足として、HomeBrew公式としては $HOME/.linuxbrew にインストールされる方法はあまり推奨されていません。

今回はレンタルサーバーに入れるためしょうがないのですが、HomeBrewのデフォルトでは /home/linuxbrew/.linuxbrew になっています。このパスを変えてしまっている現段階だと brew doctor (環境に問題があるのかチェックするコマンド)を実行すると Warning が表示されます。

$ brew doctor
~~~~

Warning: Your Homebrew's prefix is not /home/linuxbrew/.linuxbrew.
Some of Homebrew's bottles (binary packages) can only be used with the default
prefix (/home/linuxbrew/.linuxbrew).
You will encounter build failures with some formulae.
Please create pull requests instead of asking for help on Homebrew's GitHub,
Twitter or any other official channels. You are responsible for resolving
any issues you experience while you are running this
unsupported configuration.

これはビルド済みのパッケージがライブラリを読み込むためのパスが違うのでコマンド実行できない可能性があるよ、という警告なのでインストール後に実行できないなど問題が発生する事があります。

その場合にはビルド済みパッケージのインストール(HomeBrewのデフォルト)ではなく、ソースインストールを実行して対応してみてください。

$ brew reinstall <パッケージ名> -s

ソースインストールが必要な件については以下の記事でも書きました。

https://rensaba-programer.jp/2022/08/30/linux環境の-homebrew-がデフォルトは-home-linuxbrew-linuxbrew-の訳/

これでvimやrubyやnodeなど入れて開発出来るようになるのですが、ruby3系を入れる際など、gccのエラーに悩まされたので自分はHomeBrewをインストールした時のデフォルトのgccを入れ替えて使っています。

brew reinstall --force-bottle gcc 

gccは大抵のパッケージビルドに関係してくる項目なのでこちらの記事でも追記しました。

https://rensaba-programer.jp/2022/08/30/linuxのhomebrewでgccをソースインストール/

参考リンク

お世話になった記事

https://brew.sh/index_ja

https://datacoach.me/data-architect/xserver-homebrew/

投稿者


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA