これまでなんだかんだ言ってサーバーへのプログラムのインストールは自分しかやらないし、ほぼシングルユーザーだったので特に問題はなかったんだが、NISサーバでユーザ管理し、クラスタの計算ノードとしつつ、一部はローカルユーザも共存というようなややこしいことをしたくなり、ローカルユーザ用にhomeディレクトリを別のところに用意した。せっかくなのでローカルユーザは個別にlinuxbrewでインストールできるようにしたい。
方法としてはインストール先を各自のホームディレクトリに指定するだけで、公式サイトにあるように
git clone https://github.com/Homebrew/brew ~/.linuxbrew/Homebrew mkdir ~/.linuxbrew/bin ln -s ~/.linuxbrew/Homebrew/bin/brew ~/.linuxbrew/bin eval $(~/.linuxbrew/bin/brew shellenv)
とするだけである。
echo "eval $(~/.linuxbrew/bin/brew shellenv)">>~/.bash_profile
としておけばバッチリ。
じゃなかった。
これでは動かない。なんでだろ。要調査。
わかった。rubyが入ってなかった。
いや、問題はそれだけではないようだ。ディレクトリを変えたことによってバイナリでインストールができなくて全部ソースからインストールすることになってて、CentOS7ではgccが入らないバグが有って、全てが上手く行かないようだ。まいったな。
てことで、方針を変えて、ローカルユーザのホームディレクトリにlinuxbrewというディレクトリを作成し、これを
$ sudo mount --bind /mnt/home/linuxbrew /home/linuxbrew
というふうに上からマウントしてやるというのはどうかな。
まあ結局インストールしたいときは一旦NISユーザにsuしてインストールしてやればいいっちゃあいいので、どうしてもローカル環境で分けたいところだけmount上書きしてインストール、実行すればいいかな、という結論に達した。
追記
上のやり方ではユーザごとにインストールするバージョンを自由に選択したりできないし、他のユーザの環境を汚す可能性もあるのでやはり別にしたい。
苦肉の策なんだが、/home/liunucbrew/.linuxbrew/Cellar/gcc@5をまるっと自分の$HOME/.linuxbrew/Cellar/にコピーしてやればとりあえずイケる。しかしこれは後々面倒の種になりそうな予感。