Pythonユーティリティ virtualenv ?
基本的に、サンドボックス環境にPythonパッケージをインストールできるので、easy_install Django
は、システム全体のsite-packagesディレクトリではなく、virtualenvで作成されたディレクトリに配置されます。
例えば:
$ virtualenv test
New python executable in test/bin/python
Installing setuptools...cd .........done.
$ cd test/
$ source bin/activate
(test)$ easy_install tvnamer
Searching for tvnamer
Best match: tvnamer 0.5.1
Processing tvnamer-0.5.1-py2.5.Egg
Adding tvnamer 0.5.1 to easy-install.pth file
Installing tvnamer script to /Users/dbr/test/bin
Using /Library/Python/2.5/site-packages/tvnamer-0.5.1-py2.5.Egg
Processing dependencies for tvnamer
Finished processing dependencies for tvnamer
(test)$ which tvnamer
/Users/dbr/test/bin/tvnamer
RubyGemsにこのようなものはありますか?
[〜#〜] rvm [〜#〜] は、異なるRubyバージョンとその宝石など)をサンドボックス化できるため、virtualenvの動作に近い方法で動作します。
rbenv に言及している人はいないようです。
sandbox が好きになると思います。
Gemを非ルートとしてのみインストールする必要がある場合は、GEM_HOME
環境変数。次に、gem
を実行します。
例えば:
$ export GEM_HOME=$HOME/local/gems
$ gem install rhc
Bundlerでこれを行う方法について説明します(RVMで使用します-RVMとRVMを管理し、グローバル宝石のデフォルトセット、Bundlerはプロジェクト固有の宝石を処理します)
bundler install --binstubs --path vendor
プロジェクトのルートでこのコマンドを実行すると、Gemfileからリストされたgemがインストールされ、ライブラリが./vendor
に、実行可能ファイルが./bin
およびすべてのrequire
sに配置されます(bundle console
またはBundlerが必要)は、これらのexeおよびlibを参照します。
私のために働く。
direnv をお勧めします。これは、シェル用の環境スイッチャーです。
各プロンプトの前に、現在のディレクトリと親ディレクトリに「.envrc」ファイルが存在するかどうかを確認します。ファイルが存在する(および認証されている)場合、bashサブシェルにロードされ、エクスポートされたすべての変数がdirenvによってキャプチャされ、現在のシェルで使用可能になります。
direnvの使用方法 Ruby-installで
これを~/.direnvrc
に追加します
use_Ruby() {
local Ruby_root=$HOME/.rubies/$1
load_prefix "$Ruby_root"
layout_Ruby
}
Ruby-install(brew install Ruby-install
)をインストールし、多数のルビーをインストールします。
Ruby-install Ruby 1.9.3
Ruby-install Ruby 2.0.0
Ruby-install Ruby 2.2.0
そして、便宜上いくつかのシンボリックリンクを作成します。
ln -s .rubies/1.9 Ruby-1.9.3-p*
ln -s .rubies/2.0 Ruby-2.0.0
ln -s .rubies/2.2 Ruby-2.2.0
そして最後に、任意のプロジェクトの.envrc
:
use Ruby 2.0
これにより、すべてのgemがプロジェクトの.direnv/Ruby
ディレクトリの下に配置されます(gemを簡単に開くことができます)。 bundlerは、ラッパーバイナリを.direnv/bin
に配置します(これ以上bundle exec
!)。
use rbenv
コマンドに.envrc
コマンドを追加して、rbenvを使用することもできます。これによりrbenvがアクティブになり、RubyラッパーがPATHに配置されます。
これが機能するために.bashrcまたは.zshrcにrbenvをインストールする必要はないことに注意してください。
Rubyプロジェクトで使用する最も複雑な.envrcは次のとおりです。
rvm use 1.8.7
layout Ruby
PATH_add .direnv/bundler-bin
rvmは、正しいバージョンを選択するために使用されますRubyバージョン
レイアウトコマンドは、通常の環境変数の一部を自動的に設定します。今のところRubyレイアウトのみが存在します。GEM_HOME環境変数とそのbinディレクトリをパスに設定します。これはRubyバージョン必ず「rvm」の後に呼び出してください。各Rubyレイアウトディレクトリには独自のGEM_HOMEがあるため、rvmのgemsetsを使用する必要はありません。
PATH_addは、指定された相対パスを先頭に追加して展開します。その場合、これを使用して、bundle install --binstubs .direnv/bundler-bin
を使用して、自分のビンスクリプトからバンドラービンスタブを分離します。
これらのコマンドが正確に何をするのかを知りたい場合は、今のところ次のようにします。cat direnv stdlib
|もっと少なく
Mineshaft は、私がしばらく前から取り組んでいるプロジェクトであり、開発作業を続けています。
これは、virtualenvの動作に似た仮想環境を作成する機能と、Rubyをグローバルにインストールする機能の両方を提供します。