はじめに
これまで開発環境を用意する際は、rbenv , plenv を利用してきましたが、それぞれインストールする必要があった為、anyenv でまとめてセットアップができるようにしてみました。
参考資料
GitHub にあるREADME を参考にします。
GitHub の README を参考に試してみます。
プラグインは anyenv 自体のアップデートに利用するようです。
GitHub – riywo/anyenv
GitHub – znz/anyenv-update
GitHub – znz/anyenv-git
ためしてみた
今回環境はOS:CentOS 6.5 64bit です。
# useradd develop # su -l develop
anyenv をダウンロードします。
合わせてanyenv自体を管理するプラグインなどもダウンロードしておきます。
$ git clone https://github.com/riywo/anyenv ~/.anyenv Initialized empty Git repository in ~/.anyenv/.git/ remote: Counting objects: 124, done. remote: Total 124 (delta 0), reused 0 (delta 0) Receiving objects: 100% (124/124), 20.31 KiB | 15 KiB/s, done. Resolving deltas: 100% (42/42), done. $ cd ${anyenv_root} $ git clone https://github.com/znz/anyenv-update.git plugins/anyenv-update $ git clone https://github.com/znz/anyenv-git.git plugins/anyenv-git
ディレクトリ構成は下記です。
最近話題の言語、Go なんかも入っていました。
$ tree ~/.anyenv/ ~/.anyenv/ ├── bin │ └── anyenv -> ../libexec/anyenv ├── completions │ ├── anyenv.bash │ └── anyenv.zsh ├── envs │ ├── goenv │ ├── ndenv │ ├── phpenv │ ├── plenv │ ├── pyenv │ └── rbenv ├── libexec │ ├── anyenv │ ├── anyenv-commands │ ├── anyenv-completions │ ├── anyenv-envs │ ├── anyenv-global │ ├── anyenv-help │ ├── anyenv-init │ ├── anyenv-install │ ├── anyenv-local │ ├── anyenv-root │ ├── anyenv-version │ ├── anyenv---version │ └── anyenv-versions ├── plugins │ ├── anyenv-git │ └── anyenv-update ├── README.md └── share └── anyenv-install
普段使っているSHELLにおまじないをしておきます。
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
使いたい環境をインストールします。
一つ一つ実行するのも手間なので、for で一気に回します。
$ for x in rb pl py nd ; do > echo "==========> Install ${x}env <==========" > anyenv install ${x}env > done ==========> Install rbenv <========== /tmp/rbenv.20140821000352.3478 ~ Cloning https://github.com/sstephenson/rbenv.git... Initialized empty Git repository in /tmp/rbenv.20140821000352.3478/rbenv/.git/ remote: Counting objects: 1889, done. remote: Total 1889 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1889/1889), 297.15 KiB | 130 KiB/s, done. Resolving deltas: 100% (1182/1182), done. ~ ~/.anyenv/envs/rbenv/plugins ~ Cloning https://github.com/sstephenson/ruby-build.git... Initialized empty Git repository in ~/.anyenv/envs/rbenv/plugins/ruby-build/.git/ remote: Counting objects: 3589, done. remote: Compressing objects: 100% (40/40), done. remote: Total 3589 (delta 20), reused 3 (delta 0) Receiving objects: 100% (3589/3589), 624.41 KiB | 231 KiB/s, done. Resolving deltas: 100% (1729/1729), done. ~ Install rbenv succeeded! Please reload your profile (exec $SHELL -l) or open a new session. ==========> Install plenv <========== /tmp/plenv.20140821000427.3507 ~ Cloning https://github.com/tokuhirom/plenv.git... Initialized empty Git repository in /tmp/plenv.20140821000427.3507/plenv/.git/ remote: Counting objects: 1837, done. remote: Total 1837 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1837/1837), 1.68 MiB | 383 KiB/s, done. Resolving deltas: 100% (522/522), done. ~ ~/.anyenv/envs/plenv/plugins ~ Cloning https://github.com/tokuhirom/Perl-Build.git... Initialized empty Git repository in ~/.anyenv/envs/plenv/plugins/perl-build/.git/ remote: Counting objects: 768, done. Receiving objects: 100% (768/768), 1.44 MiB | 159 KiB/s, done. remote: Total 768 (delta 0), reused 0 (delta 0) Resolving deltas: 100% (348/348), done. ~ Install plenv succeeded! Please reload your profile (exec $SHELL -l) or open a new session. ==========> Install pyenv <========== /tmp/pyenv.20140821000511.3536 ~ Cloning https://github.com/yyuu/pyenv.git... Initialized empty Git repository in /tmp/pyenv.20140821000511.3536/pyenv/.git/ remote: Counting objects: 7406, done. remote: Total 7406 (delta 0), reused 0 (delta 0) Receiving objects: 100% (7406/7406), 1.25 MiB | 303 KiB/s, done. Resolving deltas: 100% (5513/5513), done. ~ Install pyenv succeeded! Please reload your profile (exec $SHELL -l) or open a new session. ==========> Install ndenv <========== /tmp/ndenv.20140821000529.3558 ~ Cloning https://github.com/riywo/ndenv.git... Initialized empty Git repository in /tmp/ndenv.20140821000529.3558/ndenv/.git/ remote: Counting objects: 53, done. remote: Total 53 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (53/53), done. ~ ~/.anyenv/envs/ndenv/plugins ~ Cloning https://github.com/riywo/node-build.git... Initialized empty Git repository in ~/.anyenv/envs/ndenv/plugins/node-build/.git/ remote: Counting objects: 34, done. remote: Total 34 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (34/34), done. ~ Install ndenv succeeded! Please reload your profile (exec $SHELL -l) or open a new session.
インストールされたか確認します。
ひとまずインストールできているようです。
$ exec $SHELL -l $ anyenv version ndenv: system (set by ~/.anyenv/envs/ndenv/version) plenv: system (set by ~/.anyenv/envs/plenv/version) pyenv: system (set by ~/.anyenv/envs/pyenv/version) rbenv: system (set by ~/.anyenv/envs/rbenv/version)
試しに Python をインストールします。
$ pyenv install 3.4.0 Downloading Python-3.4.0.tgz... -> http://yyuu.github.io/pythons/d2c83ea0217769a73e8b1ee33ffbca814903f8568e30f8d13e68e3d1f743449c Installing Python-3.4.0... Installed Python-3.4.0 to ~/.anyenv/envs/pyenv/versions/3.4.0 $ pyenv versions * system (set by ~/.anyenv/envs/pyenv/version) 3.4.0 $ pyenv global 3.4.0 $ pyenv rehash
Python のインストールまで確認できました。
anyenv を利用したセットアップは完了です。
$ which python ~/.anyenv/envs/pyenv/shims/python $ python -V Python 3.4.0
まとめ
anyenv を利用した開発環境をセットアップしてみました。
これまで個別にセットアップする必要があったのが、anyenv 一つで対応することでさらなる自動化が出来そうです。
セットアップ中はコーヒーでも飲みに行くことにします。
[amazonjs asin=”4774180343″ locale=”JP” title=”改訂3版 サーバ/インフラエンジニア養成読本 (Software Design plus)”]
[amazonjs asin=”4774179930″ locale=”JP” title=”サーバ/インフラエンジニア養成読本 DevOps編 Infrastructure as Code を実践するノウハウが満載! (Software Design plus)”]