ユーザ用ツール

xxenv

概要

xxenvはrbenv、pyenv、およびgoenvのように、インタプリタ言語バージョンをユーザレベルで管理するツールのことである。 言語ごとに、インスタンスがあるが、おおむね同じようなインターフェイスを持つ。

xxenv

rbenv

概要

Rubyの実行環境を管理するツールである。

インストール

パッケージなどもあるが、ruby-buildが古いとせっかく rbenvでバージョン管理していても、新しいバージョンをインストールできないので、gitから直接取得する。

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
$ mkdir ~/.rbenv/plugins
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
$ git clone https://github.com/rbenv/rbenv-default-gems.git ~/.rbenv/plugins/rbenv-default-gems
$ echo bundler > ~/.rbenv/default-gems
$ echo byebug >> ~/.rbenv/default-gems

また、以下の設定を ~/.bashrc に対しても行う。

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

ログインしなおすか、

$ . ~/.bashrc

するかしたのちに、rubyをインストールして、そのバージョンをデフォルトにする。

$ rbenv install 3.0.0
$ rbenv global 3.0.0

rbenv-update

通常、git cloneで取り込んだ rbenvやプラグインは、git pullで更新をするのだが、これを良しなにやってくれる、rbenv-updateというものがある。

以下の手順で取り込んだら、ログインしなおすなどして、rbenv initを再実行すれば、rbenv updateというサブコマンドが利用できるようになる。

$ git clone https://github.com/rkh/rbenv-update.git ~/.rbenv/plugins/rbenv-update

pyenv

概要

pyenvは pythonのバージョンを管理する。

インストール

rbenv同様に、gitから導入し、パッケージを常にフレッシュに保つ。

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ cd ~/.pyenv && src/configure && make -C src

~/.bashrcに対しても変更を行う。

if [ -d ${HOME}/.pyenv ]; then
  export PYENV_ROOT=${HOME}/.pyenv
  export PATH=${PYENV_ROOT}/bin:${PYENV_ROOT}/shims:${PATH}
  export PYENV_SHELL=bash
  eval "$(pyenv init -)"
fi

pythonに限らず、rubyでもgoでも、インタープリタの構築にはライブラリへの依存があり、ライブラリが存在しない場合は、構築に失敗あるいは特定の機能が利用できない状態で構築される。

pyenvは比較的親切に、昨日の欠落をレポートしてくれるが、それでも漏れるものもある。 以下は、3.9.2を構築した際に、bzip2のライブラリが欠落している旨を通知してきた例である。

$ pyenv install 3.9.2
Downloading Python-3.9.2.tar.xz...
-> https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tar.xz
Installing Python-3.9.2...
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
Installed Python-3.9.2 to /home/araki/.pyenv/versions/3.9.2
 
$

Ubuntu 20.4 LTSで構築した際には、以下のライブラリを手動で追加した。他にも追加すべきものがあるかもしれない。

  • libbz2-dev
  • libreadline-dev
  • tk
  • tk-dev
  • libffi-dev
  • libssl-dev

tkについては警告は出ないが、これがないと idle などのモジュールが使えない。

libffi-devがないと、_ctypeがないエラーに見舞われて難儀する。 必須と言ってもいいライブラリである。

ライブラリを追加したら、使いたいバージョンをインストールして、デフォルトのバージョンに設定する。

$ pyenv install 3.9.2
$ pyenv global 3.9.2

goenv

概要

goenvはGNU goのバージョンを管理する。

インストール

言うまでもなく、gitから直接インストールする。

$ git clone https://github.com/syndbg/goenv.git ~/.goenv

~/.bashrcへも変更を行う。

if [ -d ${HOME}/.goenv ]; then
  export GOENV_ROOT=${HOME}/.goenv
  export PATH=${GOENV_ROOT}/bin:${GOENV_ROOT}/shims:${PATH}
  export GOENV_SHELL=bash
  eval "$(goenv init -)"
fi

あとは、ビルドしてバージョンを設定する。

$ goenv install 1.16.0
$ goenv global 1.16.0

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also, you acknowledge that you have read and understand our Privacy Policy. If you do not agree, please leave the website.

More information