@Konboi memo

主に技術に関してつらつらと。

anyenv をインストールする

はじめに

anyenvをインストールする前の状態

  • homebrewで入れたzshを使っている

問題点

この状態だと

exec $SHELL -l 

した時にログインシェルの /bin/bash に適用され望み通りの挙動をしない。

ログインシェルに設定する

ログインシェルをインストールしたhomebrewのzshに対応します。

vi /etc/shells/ にhomebrewで設定したshellを追記するという、調べるとよくある方法だとログインshellは変更できませんでした。

システム環境設定 -> ユーザーとグループ -> 設定したいユーザーを右クリック -> 詳細オプション -> ログインシェル

を修正すると設定することができました。

anyenvのインストール環境はこれでOK

あとはanyevのドキュメントにあるとおりに必要な xxxenv をインストールして使用できます。

ハマった

上記の方法で問題なかったのですが、ただ1つtmuxを起動すると /shims のパスよりもシステムのパスが読み込まれてハマる

いろいろ調べてたら

僕の車輪の再発明 - tmuxとrbenvを併用する場合は.rbenv/shimsのパスも通してないとバージョン指定できない

akishin999の日記 - tmux + rbenv の環境で指定した Ruby が使われない件

にあたった。

今のところしょうがないから

~/.zshrc

# rbenv
if [ -d ${HOME}/.anyenv/envs/rbenv  ] ; then
  export PATH="${HOME}/.anyenv/envs/rbenv/bin:${HOME}/.anyenv/envs/rbenv/shims:${PATH}"
  eval "$(rbenv init -)"
fi

# plenv
if [ -d ${HOME}/.anyenv/envs/plenv  ] ; then
  export PATH=${HOME}/.anyenv/envs/.plenv/bin/:${HOME}/.anyenv/envs/plenv/shims:${PATH}
  eval "$(plenv init -)"
fi

って設定を書いて事なきを得ている。

まとめ

せっかくanyenvでインストールしてるのに、zshrcにそれぞれのenvの設定がかかれているのはいけてない。

なんか良い解決方法はないものか…