2012-04-12 19 views
16

Bağımlılıkları pip gereksinimleriyle nasıl yönetebileceğinizi seviyorum. Apt-get durumunda benzer bir şey var mı?apt-get için gereksinim dosyası, pip'e benzer

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

+0

Ne demek istediğin hakkında bir örnek verebilir misin? –

+0

Sürüm bağımlılıkları mı kastediyorsunuz? Eğer öyleyse, cevap evet. Sürüm bağımlılıkları olmadan hiçbir paket yöneticisi tamamlanmadı. – Dikei

+0

Paketleri toplu olarak yüklemek için bir require.txt dosyası kullanmak istedim – Halst

cevap

25

Sorunuz tek komutla yüklemek için güçlü olmak için, tek bir dosyada sistem dependences bir listesini yapmak istiyorum olmasıdır.

Bir paketin sürümünü sistem bağımlılıklarına dahil etmenizi tavsiye etmiyorum. "yapı temelli" veya "uuid-dev" gibi yumuşak sistem bağımlılıklarında, normalde paketin en son sürümünü istiyorsunuz. Python, postgres veya her neyse, "sert bağımlılıklar" içinde, normal olarak "python2.6-dev" ya da "postgresql-8.4" gibi paketin adında sürüm belirtilir. Paketin tam sürümünü tanımlamanızın bir başka sorunu da, postgresql-8.4'un 8.4.11-1 sürümünün, depoda üç ay veya bir yıl içinde kullanılamayacağıdır. Repo mevcut sürümü.

Örnek. senin INSTALL dosyasındaki sistem paketlerini yükleme açıklamak, Sonra

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

: Sen proje için gereken sistem paketleri ile "requirements.system" adlı bir dosya oluşturabilirsiniz.

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

Biz birkaç kez çizilme gelen ortamı yeniden oluşturmak zorunda, yaklaşık iki yıldır bu yapılandırmayı çalışan ve biz bir sorun yoktu.

+4

Paket için sürüm numarasını da ekleyebilirsiniz, "package_name = version" ('python-virtualenv = 1.7.1.2-1') kullanarak pip'e benzer şekilde. Bununla birlikte, Debian aynaları PyPI deposu kadar eski paket sürümlerini korumazlar, çünkü pip ile yararlı olmayabilir. – C2H5OH

+0

Bazen, bazı dpkg gerçekten çok kötü olduğundan, sürümü belirtmek istersiniz. Memecache veya benzeri bir eski sürüm gerektirdiğini hatırlıyorum veya yüklenemedi. Bu bir köşe davası, bazen iyi bir şey. Ayrıca, sisteminizin belirli bir durumda iyi olduğu biliniyorsa, bu durumu yeniden üretmek istiyorsunuz. En yeni sisteme ihtiyacınız varsa, standart dağıtım iş akışı belirttiğiniz gereksinimleri (ancak en son sürümle) kullanarak sıfırdan yeni bir ortam yaratır ve bunu sınar. – CppLearner

+3

Kediye gerek yok: 'xargs apt-get install arand

4

aptfile biçimini işte kullanıyoruz. Dahili bazı yardımcıları ile basit bir bash sarmalayıcı.

+0

Basit ve kullanımı kolay. "yetenek yükleme" yi kullanabileceğim bir yol var mı? – Abhi

+0

@Abhi bir sorun ve bunu yapabiliriz. –

+0

Elbette bir sorunum olacak! – Abhi

İlgili konular