ユーザ用ツール

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
xxenv [2021/03/01 02:17] – 作成 arakixxenv [2025/06/03 05:38] (現在) – [goenv] araki
行 15: 行 15:
 パッケージなどもあるが、ruby-buildが古いとせっかく rbenvでバージョン管理していても、新しいバージョンをインストールできないので、gitから直接取得する。 パッケージなどもあるが、ruby-buildが古いとせっかく rbenvでバージョン管理していても、新しいバージョンをインストールできないので、gitから直接取得する。
  
-<code>+<code bash>
 $ git clone https://github.com/rbenv/rbenv.git ~/.rbenv $ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
 $ mkdir ~/.rbenv/plugins $ mkdir ~/.rbenv/plugins
行 26: 行 26:
 また、以下の設定を ~/.bashrc に対しても行う。 また、以下の設定を ~/.bashrc に対しても行う。
  
-<code>+<code bash>
 if [ -d ${HOME}/.rbenv ]; then if [ -d ${HOME}/.rbenv ]; then
   export RBENV_ROOT=${HOME}/.rbenv   export RBENV_ROOT=${HOME}/.rbenv
行 35: 行 35:
 </code> </code>
  
-ログインしなおすか、<code>$ . ~/.bashrc</code>するかしたのちに、rubyをインストールして、そのバージョンをデフォルトにする。+ログインしなおすか、<code bash>$ . ~/.bashrc</code>するかしたのちに、rubyをインストールして、そのバージョンをデフォルトにする。
  
-<code>+<code bash>
 $ rbenv install 3.0.0 $ rbenv install 3.0.0
 $ rbenv global 3.0.0 $ rbenv global 3.0.0
 </code> </code>
 +
 +=== rbenv-update ===
 +
 +通常、git cloneで取り込んだ rbenvやプラグインは、''git pull''で更新をするのだが、これを良しなにやってくれる、''rbenv-update''というものがある。
 +
 +以下の手順で取り込んだら、ログインしなおすなどして、''rbenv init''を再実行すれば、''rbenv update''というサブコマンドが利用できるようになる。
 +
 +<code bash>
 +$ git clone https://github.com/rkh/rbenv-update.git ~/.rbenv/plugins/rbenv-update
 +</code>
 +
  
 ==== pyenv ==== ==== pyenv ====
 +=== 概要 ===
 +
 +pyenvは pythonのバージョンを管理する。
 +
 +=== インストール ===
 +
 +rbenv同様に、gitから導入し、パッケージを常にフレッシュに保つ。
 +
 +<code bash>
 +$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
 +$ cd ~/.pyenv && src/configure && make -C src
 +</code>
 +
 +~/.bashrcに対しても変更を行う。
 +<code bash>
 +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
 +</code>
 +
 +pythonに限らず、rubyでもgoでも、インタープリタの構築にはライブラリへの依存があり、ライブラリが存在しない場合は、構築に失敗あるいは特定の機能が利用できない状態で構築される。
 +
 +pyenvは比較的親切に、昨日の欠落をレポートしてくれるが、それでも漏れるものもある。
 +以下は、3.9.2を構築した際に、bzip2のライブラリが欠落している旨を通知してきた例である。
 +
 +<code bash>
 +$ 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
 +
 +$
 +</code>
 +
 +Ubuntu 20.4 LTSで構築した際には、以下のライブラリを手動で追加した。他にも追加すべきものがあるかもしれない。
 +
 +  * libbz2-dev
 +  * libreadline-dev
 +  * tk
 +  * tk-dev
 +  * libffi-dev
 +  * libssl-dev
 +
 +tkについては警告は出ないが、これがないと idle などのモジュールが使えない。
 +
 +libffi-devがないと、_ctypeがないエラーに見舞われて難儀する。
 +必須と言ってもいいライブラリである。
 +
 +ライブラリを追加したら、使いたいバージョンをインストールして、デフォルトのバージョンに設定する。
 +
 +<code bash>
 +$ pyenv install 3.9.2
 +$ pyenv global 3.9.2
 +</code>
 +
 +
 +
 ==== goenv ==== ==== goenv ====
 +=== 概要 ===
  
 +goenvはGNU goのバージョンを管理する。
  
 +=== インストール ===
  
 +言うまでもなく、gitから直接インストールする。
 +
 +<code bash>
 +$ git clone https://github.com/syndbg/goenv.git ~/.goenv
 +</code>
 +
 +~/.bashrcへも変更を行う。
 +
 +<code bash>
 +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
 +</code>
 +
 +あとは、ビルドしてバージョンを設定する。
 +
 +<code bash>
 +$ goenv install 1.16.0
 +$ goenv global 1.16.0
 +</code>

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