説明
buildout はサイトの設定を継続的にまた自動的に行うためのツールです。 必要なソフトウェアをダウンロードして設定を行います。
buildout はサイトの設定を継続的かつ自動的に行うためのツールです。 必要なソフトウェアをダウンロードして設定を行います。
buildout は複数のレシピから構成されています。レシピは以下のもので構成されています。
レシピは pypi から Python egg 形式で自動的にダウンロードされます。
Plone buildout は以下のようなフォルダで構成されています。
bin/ - 各種の egg によりインストールされた Python スクリプトとシェルスクリプトがあります。 また buildout コマンド自身もここにあります。 Plone の最初に実行するスクリプト bin/instance はここにあります。
buildout の実行時に削除されます。 ここには残しておきたい情報は保存しないでください (備考: いくつかの壊れたレシピは pid ファイルなどをここに作成します)。 生成された設定ファイルはここに格納され、そのファイルを変更しても意味がありません。
src/ あなたが開発しているソースコード
eggs/ Python の egg ファイル
downloads/ ダウンロードされた Python egg ファイルのキャッシュ (システムの設定に依存して他の場所の場合もあります)
var/ Zope の Data.fs のようなデータ
bootstrap.py - buildout コマンドをインストールします
buildout.cfg - buildout の設定ファイルです。 他の .cfg ファイルで拡張する場合もあります たくさんの .cfg ファイルからあなたが必要とするものを指定して以下のような buildout コマンドを実行する場合もあります。:
bin/buildout -c production.cfg
buildout は setuptools を使用しており、setuptools は urllib を使用しているため、 http_ploxy (小文字です!)環境変数を使用して proxy を利用できます。
例として以下のような UNIX シェル (bash) で設定できます。
# proxy のアドレスを環境変数にセットします
# この場合は同一コンピュータ上に Polipo サーバーが動作しています
http_proxy=http://localhost:8123/
# Bash シェル特有のコマンド export によって環境変数を有効にします
export http_proxy
# buildout を通常通り実行します
bin/buildout
また、リモートサーバー上の proxy に SSH トンネルで接続する方法もあります。:
# Polipo proxy を yourserver.com:8123 で動作させ
# ローカルの 8123 ポートと SSH トンネルで接続します
ssh -L 8123:localhost:8123 yourserver.com
同一ユーザーでいくつかの buildout を実行する場合はキャッシュフォルダーを設定することを検討してみてください。 全てのダウンロードされた egg ファイルがキャッシュされるようになります。
キャッシュフォルダーを設定するには2種類の方法があります。
例:
# キャッシュディレクトリを作成する
mkdir ~/python-egg-cache
# buildout キャッシュディレクトリをシェルに対して設定する
export PYTHON_EGG_CACHE=~/python-egg-cache
ユーザ固有の buildout に関する設定を以下のファイルに記述できます。
$HOME/.buildout/default.cfg
この設定ファイルは、たくさんの Plone の開発を buildout で行っている時や、同一の buildout の egg キャッシュ設定を共有するときに非常に便利です。
詳細な情報はいかを参照してください。
これは pindowning として知られています。 使用するコンポーネントそれぞれの Python egg バージョンを手動で選ぶことができます。 この手法はバージョンが衝突する問題を解決するために必要となる場合があります。
以下のような場合に必要となる手順を説明します。
まずはじめに異なった Python バージョンや CPU アーキテクチャーに対応している、ダウンロード済みの egg ファイルを消去します。
rm -rf eggs/*
バイナリーの egg の開発を行っている場合は src/ フォルダー以下も削除します。
新しい Python インタプリターを使用して bootstrap.py を実行することにより、 buildout は新しい環境に対応するようになります。
source ~/code/python/python-2.4/bin/activate
python bootstrap.py
その後 buildout コマンドを再度実行して、新しい Python インタプリターに対応した全ての egg を取得しなおします。
bin/buildout
Buildout のトラブルシューティング を参照してください。