ユーザ用ツール

サイト用ツール


xxenv

文書の過去の版を表示しています。


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

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

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

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

$ pyenv install 3.9.2
$ pyenv global 3.9.2

goenv

xxenv.1614565923.txt.gz · 最終更新: 2021/03/01 02:32 by araki