kuroの覚え書き

96の個人的覚え書き

linuxbrewをユーザーごとにインストールする

これまでなんだかんだ言ってサーバーへのプログラムのインストールは自分しかやらないし、ほぼシングルユーザーだったので特に問題はなかったんだが、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/にコピーしてやればとりあえずイケる。しかしこれは後々面倒の種になりそうな予感。