2012-04-12 2 views
16

私はpip要件の依存関係をどのように管理できるか好きです。 apt-getの場合に類似したものはありますか?pipのようなapt-getのための要件ファイル

http://www.pip-installer.org/en/latest/requirements.html#requirements-file-format

+0

どういう意味ですか? –

+0

バージョン依存関係ですか?そうであれば、答えはイエスです。バージョンマネージャーに依存しないパッケージマネージャーはありません。 – Dikei

+0

パッケージをバルクにインストールするためにrequirements.txtファイルがあることを意味しました – Halst

答えて

25

あなたの質問は、あなたが1つのコマンドでそれをインストールすることができることのために、一つのファイルにシステム依存性のリストを持つようにしたいということです。

システムの依存関係にパッケージのバージョンを含めることはお勧めしません。 "build-essential"や "uuid-dev"のようなソフトシステムの依存関係では、通常、最新バージョンのパッケージが必要です。 pythonやpostgresなどのような "ハード依存"では、通常、バージョンは "python2.6-dev"や "postgresql-8.4"のようにパッケージ自体の名前で指定されます。パッケージの正確なバージョンを定義する別の問題は、バージョン8.4.11-1のpostgresql-8.4が3か月または1年でリポジトリで利用できなくなり、レポの現在のバージョン。

例。あなたのINSTALLファイルにシステムパッケージをインストールする方法について説明し、その後

python-virtualenv 
python2.6-dev 
uuid-dev 
python-pip 
postgresql-8.4 

:あなたは、あなたがプロジェクトのために必要なシステムパッケージで「requirements.system」という名前のファイルを作成することができます。

# Install system depencences by running 
cat ~/project/install/requirements.system | xargs sudo aptitude install 

我々は、約2年間、この設定を実行しているscrachから数回的環境を再作成する必要が、我々は問題を抱えていたことがありません。

+4

また、パッケージのバージョン番号を追加することもできます。 'package_name = version'(' python-virtualenv = 1.7.1.2-1')を使って同様の方法でpipします。しかし、DebianミラーはPyPIリポジトリと同数の古いパッケージバージョンを維持していないので、pipと同じくらい有用ではないかもしれません。 – C2H5OH

+0

いくつかのdpkgが本当に悪いので、バージョンを指定したいことがあります。私はmemecacheまたは似たような古いバージョンが必要であることを覚えているか、インストールに失敗します。コーナーケースなので、時には良いことです。また、特定の状態でシステムが正常であるとわかっている場合は、その状態を再現する必要があります。最新のものが必要な場合、標準のデプロイメント・ワークフローは、指定した要件(最新バージョンを使用)を使用してゼロから新しい環境を作成し、テストします。 – CppLearner

+3

catは不要です: 'xargs apt-get install arand

4

aptfile形式を使用しています。これは単なるヘルパーを組み込んだbashラッパーです。

+0

シンプルで使いやすいです。 'aptitude install'を使う方法はありますか? – Abhi

+0

@Abhiは問題を提出し、私はそれを行うことができるかもしれません。 –

+0

確かに問題を提出します! – Abhi

関連する問題