はじめに
実務に入って3日が経ちました。
初日はオリエンテーションや歓迎会やPC周りの設定など、2日目は事業の詳細説明、そして3日目はサービスの開発環境構築を実施しました。
「Rubyだけじゃなくて、PthonとかNode.jsとかも使うからanyenvが便利でオススメだよ」と言われ、anyenvとは何ぞや?どうやって入れるのだ?ということを調べながらインストールしたので、今回は自分用にanyenvについての備忘録を書いていこうと思います。
anyenvとは
「anyenvとは」でググると以下の記事がヒットし、概要をとても簡単に書いてくれていました。
anyenv とは、ざっくり言うと、rbenv とか、nbenv とか複数バージョンをインストールできる **env 系をまとめて管理できるツール。
とのことです。
環境
- macOS Mojave
- Homebrew 2.0.2
いざ導入
僕の場合はbashを使用しているので環境変数を.bash_profileに保存するようにしました。
$ brew install anyenv
$ echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
ここでふと既にrbenvが入ってても問題ないのか?という素朴な疑問が発生。「anyenv」でググりました。
すると、anyenvを使うを発見。
既に**envを利用している人は、いままでの設定フィルを削除するか移動します。こちらの記事が参考になります。
とのこと。
念の為確認。
ls -d ~/.*env
/Users/username/.anyenv
/Users/username/.rbenv
rbenvが入っていることを確認したので削除することにしました。
# .rbenvを削除
$ rm -rf ~/.rbenv
$ rm -rf /usr/local/bin/rbenv
$ rm -rf /usr/local/Cellar/rbenv
# 削除されたか確認
$ ls -d ~/.*env
-> /Users/fukuzawa_masashi/.anyenv # .rbenvがなくなっていることを確認
$ rbenv -v
bash: /usr/local/bin/rbenv: No such file or directory # bin/rbenvがなくなっていることを確認
# Homebrewに問題ないか確認
$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!
Warning: Broken symlinks were found. Remove them with `brew cleanup`:
/usr/local/opt/rbenv
/usr/local/var/homebrew/linked/rbenv
問題あるとのことなので指示通りbrew cleanupを実行。
$ brew cleanup
Pruned 2 symbolic links from /usr/local
$ brew doctor
Your system is ready to brew.
問題解決。
念のためHomebrewのバージョンを確認。
$ brew --version
Homebrew 2.0.2
Homebrew/homebrew-core (git revision 3005; last commit 2019-03-04)
Homebrewも問題なし。
更に調べてみると既に入っている**envを全てanyenv管理にするという記事に.bash_profileのrbenvに関する部分を削除する必要があるとのことだったので削除。
# .bash_profileのこの部分を削除
export PATH="~/.rbenv/shims:/usr/local/bin:$PATH"
eval "$(rbenv init -)"
今の状態はhomebrewあり、.anyenvありという状態なので続きから開始することにしました。
$ echo 'eval "$(anyenv init -)"' >> ~/.your_profile
$ exec $SHELL -l
# エラー発生
\e[33mANYENV_DEFINITION_ROOT(/Users/fukuzawa_masashi/.config/anyenv/anyenv-install) doesn't exist. You can initialize it by:\e[0m
\e[33m> anyenv install --init\e[0m
指示通りanyenv install --init
を実行。
$ anyenv install --init
Manifest directory doesn't exist: /Users/fukuzawa_masashi/.config/anyenv/anyenv-install
Do you want to checkout ? [y/N]: y
Cloning https://github.com/anyenv/anyenv-install.git master to /Users/fukuzawa_masashi/.config/anyenv/anyenv-install...
Cloning into '/Users/fukuzawa_masashi/.config/anyenv/anyenv-install'...
remote: Enumerating objects: 44, done.
remote: Counting objects: 100% (44/44), done.
remote: Compressing objects: 100% (39/39), done.
remote: Total 44 (delta 1), reused 43 (delta 1), pack-reused 0
Unpacking objects: 100% (44/44), done.
Completed!
再度シェルをリフレッシュ。
$ exec $SHELL -l
エラーが出なくなりました。
動作確認。いい感じ。
$ anyenv install -l
Renv
crenv
denv
erlenv
exenv
goenv
hsenv
jenv
luaenv
nodenv
phpenv
plenv
pyenv
rbenv
sbtenv
scalaenv
swiftenv
rbenvをインストール
$ anyenv install rbenv
anyenvを使うに従って、
各**env環境をUpdateするためのプラグインをインストール。
$ mkdir -p $(anyenv root)/plugins
$ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update
$ anyenv update
いざrbenvをインストール。
$ rbenv install 2.6.1 # 入れたいバージョンを記述
$ rbenv global 2.6.1 # 2.6.1を基本的に使用するように指示
$ ruby -v # この例の場合、バージョンを確認、2.6.1になっていればOK
これにてrbenvのインストールは完了!
その他Node.jsなども以下のようにインストールができました。
$ anyenv install nodenv
$ nodenv install -l
$ nodenv install 11.10.1
$ nodenv global 11.10.1
まとめ
- anyenvを導入した時の流れや躓いた箇所をまとめました。
- anyenvを入れると様々な言語のインストールやバージョン管理が簡単にできました。
- プラグインなどについては今後適宜入れていきたいと思います。