私が取り組んでいるプロジェクトでは、多くのビルドステップにファブリックを使用しており、フォールバックとしてオフラインビルドが必要です。
私は現在、tarballsで提供されているpythonパッケージのインストールで立ち往生しています。
問題は、新しく抽出されたディレクトリにアクセスsetup.py install
してそこで実行するのに問題があることです。
@task
def deploy_artifacts():
"""Installs dependencies from local path, useful for offline builds"""
#TODO: Handle downloading files and do something like this bellow
tmpdir = tempfile.mkdtemp()
artifacts_path = ''
if not 'http' in env.artifacts_path:
artifacts_path = env.artifacts_path
with lcd(artifacts_path):
for f in os.listdir(artifacts_path):
if 'gz' in f:
put(f, tmpdir)
tar = os.path.join(tmpdir, f)
target_dir = os.path.join(tempfile.gettempdir(), normalize(f))
if not files.exists(target_dir):
run('mkdir %s' % target_dir)
else:
run('rm -rf %s' %target_dir)
run('mkdir %s' % target_dir)
run('tar xf %s -C %s' % (tar, target_dir))
run('rm %s' % tar)
with cd(target_dir):
sudo('python setup.py install')
私は何億回もmanページを読んでいたのtar
ですが、欲しいものを手に入れるにはほど遠いものでした。
このような状況に直面した方もいらっしゃいますか?このシナリオに他の(読む:より良い)アプローチはありますか?