plenv の翻訳
この文書は、plenv の READMEを翻訳したものです。
NAME
plenv - perl バイナリマネージャー
SYNOPSIS
plenv help
# list available perl versions
plenv install --list
# install perl5 binary
plenv install 5.16.2 -Dusethreads
# execute command on current perl
plenv exec ack
# change global default perl to 5.16.2
plenv global 5.16.2
# change local perl to 5.14.0
plenv local 5.14.0
# run this command after install cpan module, contains executable script.
plenv rehash
# install cpanm to current perl
plenv install-cpanm
# migrate modules(install all installed modules for 5.8.9 to 5.16.2 environment.)
plenv migrate-modules 5.8.9 5.16.2
# locate a program file in the plenv's path
plenv which cpanm
# display version
plenv --version
概要
plenv を使って アプリケーション用のPerlのバージョンを選び、 開発環境と プロダクションが一致するようにします。痛みのない Perl のアップグレードと防弾のデプロイメントのために、 Carton と一緒に plenv を置きましょう。
plenv vs. perlbrew
perlbrew のように、plenve は ホームディレクトリ以下に 複数のperl をインストールし、モジュールをローカルにインストールします。そして、シェルで任意のPerlのバージョンに切り替えて使えます。
perlbrew と違って、plenv は、bash に実装されます。それぞれの perl の実行ファイル用に("shims" とよばれる)単純なシェルスクリプトラッパーを提供します。コマンドを実行する前に PATH
を変更するような、どのようなシェル関数もエクスポートしません。
perlbrew と違い、plevn は、ディレクトリ毎に、ローカルの perl のバージョンをセットできます。.perl-version
ファイルを使います。
perlbrew と違って、plenv は、ビルトインの local::lib インテグレーションを提供しません。ですが、plenv-contrib が、 その代わりに、use
と lib
コマンドを実装します。
インストール
互換性の注意: plenv は perlbrew と 非互換 です。 plenvをインストールする前に perlbrew を完全にアンストールし、シェルの初期化ファイルから perlbrewに関連するものをすべて削除してください。
Mac OS X 上で plenv を動かす場合、 Homebrew で インストールすることを考慮してください。
基本の Github チェックアウト
最新バージョンの plenv を使い、簡単にフォークでき、どのような変更も アップストリームに貢献するのが簡単になります。
plenv を
~/.plenv
にチェックアウトします。$ git clone git://github.com/tokuhirom/plenv.git ~/.plenv
~/.plenv/bin
を$PATH
に追加して、plenv
コマンドラインユーティリティに アクセス出来るようにします。$ echo 'export PATH="$HOME/.plenv/bin:$PATH"' >> ~/.bash_profile
Ubuntu 用メモ:
~/.bash_profile
の代わりに~/.profile
を変更してください。Zsh 用メモ:
~/.bash_profile
の代わりに~/.zshrc
ファイルを変更してください。shims と自動補完を有効にするために
plenv init
をシェル に追加します。$ echo 'eval "$(plenv init -)"' >> ~/.bash_profile
前のステップ同様、Ubuntu では、
~/.profile
、Zsh では、~/.zshrc
を使ってください。ログインシェルをリスタートすると、パスの変更が有効になります。 これで、plenv を使い始められます。
$ exec $SHELL -l
perl-build をインストールします。 新しい Perl のバージョンをインストールするプロセスを簡略した
plenv install
コマンドを提供します。$ git clone git://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/ $ plenv install 5.18.0
代替として、~/.plenv/versions/ に、 自分で Perl をダウンロードして、 コンパイルすることもできます。
shim 実行ファイルをリビルドします。新しい Perl の実行ファイルを インストールした時にはいつでも、これをするべきです。 (例えば、新しいPerlのバージョンをインストールした時、または、 コマンドを提供するcpanm をインストールした時)
$ plenv rehash
アップグレード
plenv を git を使って手でインストールしているなら、最先端のバージョンに いつでもいアップグレードできます。
$ cd ~/.plenv
$ git pull
plenv の特定のリリースを使いたいなら、一致するタグをチェックアウトします:
$ cd ~/.plenv
$ git fetch
$ git checkout 2.0.0
Mac OS X で Homebrew
Mac OS X では、plenv を Homebrew パッケージマネージャを使ってインストールすることもできます。
$ brew update
$ brew install plenv
$ brew install perl-build
後で、これらのインストールをアップデートする場合、 install
の代わりに、upgrade
を使います。
その後、警告があるなら、自分の profile に、eval "$(plenv init -)"
を
追加する必要があるでしょう。これは一回のみ必要です。
Neckbeard 設定
shell の profile の各行が何をしているかを知りたくなければ、このセクションは 飛ばしてください。
plenv init
はシェルに特別なコマンドをロードする行を埋め込む唯一のコマンドです。
plenv init
は、実際には次のことをします。
shims パスをセットアップします。plevn を適切に関数にするのに必要なだけです。 手でするには、
$PATH
の先頭に~/.plenv/shims
を追加してください。自動補完をインストールします。これは完全にオプションですが、非常に便利です。
~/.plenv/completions/plenv.bash
を実行することで、セットアップされます。 Zsh ユーザー用にも、~/.plenv/completions/plenv.zsh
があります。shims をrehashします。その時々で、shim ファイルをリビルドする必要があります。 これにより、自動的に全てが確実に最新になります。手で行うなら、
plenv rehash
を走らせることができます。sh ディスパッチャをインストールします。この小さいものはオプションです。ですが、 plenv と プラグインが、現在のシェルの変数を変更するのを許します。
plenv shell
のようなコマンドを可能にします。 sh ディスパッチャはcd
をオーバーライドするようなクレイジーなことを何もしませんし、シェルの プロンプトをハックすることもしません。何らかの理由で、plenv
をシェル関数ではなく、 実際のスクリプトとして必要ならば、安全にこれをスキップできます。
plenv init -
を実行すると、フードの下で実際に何が行われてるかを見ることが
できます。
依存
* Perl 5.8.1+
* bash
* curl(If you want to use plenv install-cpanm)
コマンドリファレンス
git
のように、plenv
コマンドは第一引数でサブコマンドにデリゲートします。
最も一般的なサブコマンドは:
plenv local
カレントディレクトリの .perl-version
ファイルでローカルアプリケーション
指定のperlのバージョンをセットします。このバージョンはグローバルのバージョン
を上書きします。PLENV_VERSION
環境変数をセットし、 plenv shell
コマンド
を使うことで、それ自身を上書きできます。
$ plenv local 5.8.2
バージョン番号無しで実行すると、plenv local
は現在の設定された
ローカルのバージョンを報告します。localのバージョン指定を外すこともできます:
$ plenv local --unset
前のバージョンの plenv は ローカルバージョンの指定を.plenv-version
という名前のファイルに保存していました。後方互換のために、plenv は
.plenv-version
に指定されたローカルのバージョンを読みますが、
同じディレクトリにある.perl-version
ファイルがあれば、優先されます。
plenv global
~/.plenv/version
ファイルにバージョン名を書いて、全てのシェルが使う
グローバルの perl のバージョンをセットします。このバージョンは、
アプリーケーション指定の .perl-version
ファイルか、
plenv_VERSION
環境変数で、オーバーライドできます。
$ plenv global 5.8.2
特別なバージョンの名前である system
は、システムの perl を使うように
plenv に教えます($PATH
を検索して見つけます)。
バージョン番号無しで実行すると、plenv global
は、現在設定されている
グローバルのバージョンを報告します。
plenv shell
shell 指定の perl のバージョンを plenv_VERSION
を設定することで
シェルにセットできます。アプリケーション指定のバージョンとグローバルの
バージョンを上書きします。
$ plenv shell 5.8.2
バージョン番号なしで実行すると、plenv shell
は、現在の plenv_VERSION
の値を報告します。シェルのバージョンを外すこともできます:
$ plenv shell --unset
このコマンドを使うためには、plenv のシェル組み込みを有効にしている必要
があることに注意してください(インストール指示のステップ3)。
シェル組み込みを使いたくなければ、単純に PLENV_VERSIIN
変数を
自分でセットすれば良いです:
$ export PLENV_VERSION=5.8.2
plenv versions
plenvに知られている、全ての perl のバージョンをリストし、現在のアクティブな バージョンをアスタリスクで示します。
$ plenv versions
system
5.12.0
5.14.0
5.16.1
5.16.2
5.17.11
5.17.7
5.17.8
5.18.0
5.18.0-RC3
5.18.0-RC4
* 5.19.0 (set by /home/tokuhirom/.plenv/version)
5.6.2
5.8.1
5.8.2
5.8.3
5.8.5
5.8.9
plenv version
現在のアクティブなバージョンを表示します。どのようにセットしたかによります。
$ plenv version
5.19.0 (set by /home/tokuhirom/.plenv/version)
plenv rehash
全ての perl の実行ファイル用(つまり、~/.plenv/versions/*/bin/*
)に、
shims をインストールします. 新しいバージョンの perl を
インストールした後に、このコマンドを実行してください。
または、コマンドを提供する cpanm をインストールします。
$ plenv rehash
plenv which
与えられたコマンドを実行するときに、plenv が呼び出す 実行ファイルのフルパスを表示します。
$ plenv which cpanm
/home/tokuhirom/.plenv/versions/5.19.0/bin/cpanm
plenv whence
与えられたコマンドがインストールされている全ての perl の バージョンをリストします。
$ plenv whence plackup
5.17.11
5.17.7
5.18.0
5.18.0-RC4
5.19.0
FAQ
どのように cpanm をインストールできますか?
次のコマンドを使ってください。
% plenv install-cpanm
このコマンドは cpanm を現在の環境にインストールします。
新しい Perl のために、今まで使っていたモジュールをインストールするにはどうするべきですか?
% plenv migrate-modules 5.8.2 5.16.2
5.8.2 にインストールされているモジュールのリストを作り、これらのモジュールの最新のバージョンを 5.16.2 の環境へインストールします。2つのバージョンの間でモジュールのバージョンが必ずしも 同じではないので、互換性か依存かアプリケーションが依存する他の振る舞いに影響がある変更があるかもしれません。
バイナリ互換性のある perl バージョンからインストールされたモジュールを、再インストールなしに、 直接再利用することができます。例えば、5.18.1 でたくさんのモジュールをインストールしていて、 dtrace をサポートする別の 5.18.1 をインストールする場合、全てのこれらのモジュールを 移植したくないでしょう。
% plenv install 5.18.1 -Dusedtrace --as 5.18.1-dtrace % plenv shell 5.18.1-dtrace % PERL5LIB=$(PLENV_VERSION=5.18.1 perl -e'print join ":",@INC') perl <command>
どうすれば、バイナリの速度を落とさずに、 -g オプションを有効に出来ますか?
次のコマンドを使ってください。
% plenv install 5.16.2 -DDEBUGGING=-g
バグレポート
Plese use github issues: http://github.com/tokuhirom/plenv/.
著者
Tokuhiro Matsuno
SEE ALSO
App::perlbrew provides same feature. But plenv provides project local file: .perl-version .
Most of part was inspired from rbenv.
ライセンス
plenv 自身
Copyright (C) Tokuhiro Matsuno
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
rbenv
plenv は rbenv のコードを使っています。
(The MIT license)
Copyright (c) 2013 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.