2010-11-22 10 views
1

Geçen Cuma, Django projem için bir RPM spesifikasyonu oluşturdum. RPM virtualenv, indirme bağımlılıkları pip aracılığıyla oluşturur ve her şeyi paketlere koyar. Bugün, BeautifulSoup 3.2'nin piyasaya sürüldüğünü öğrendim. Neyse ki, benim BeautifulSoup sürümünün require.txt dosyasında sabitlendiğini gördüm, bu yüzden yapı başarısızlığı nedeniyle öğrendim.Her bir upstream sürümüne yükseltme yapmadan virtualenv tabanlı bir dağıtım yöntemini nasıl kullanırım?

Artık tamamen farklı bir konu şu: Gelecekte malzemelerin güncellenmesini nasıl önleyebilirim? BeautifulSoup, önceki tüm sürümlerini PyPI'den sildi, bu yüzden karşı test ettiğim bir sürümü indiremiyorum. pip 'un indirme önbelleği burada da yardımcı olmaz, çünkü pip her zaman PyPI'yi kontrol etmeye çalışır.

Bu durumdan kaçınmak için bir şey önerebilir misiniz?

cevap

2

İlk olarak, bu olağandışı bir durumdur. BeautifulSoup'un yaptığı tüm eski sürümleri başka bir paketi daha önce hiç görmedim. Ciddi bir güvenlik çözümü söz konusu olduğunda, oldukça kullanıcı-düşmanca davranışı düşünürüm.

Bu, eğer pip kullanarak güvenilir bir oluşturma işlemi istiyorsanız, yerel olarak güvendiğiniz tüm paketleri gerçekten yansıtmanız gerekir. Bunu yapmak zor değil; Tüm paket tarball'larını almak için pip'in --download seçeneğini (veya varolan pip önbelleğinizi) kullanabilirsiniz, daha sonra sadece indekslenmiş, web-hizmetli bir dizine dökün ve gereksinim dosyanızdaki -find-linklerini pip pipetleyin. artı - PypI kullanmamasını söylemek için dizin endeksi). Söz konusu

+0

Muhtemelen öyle ya da belki bir "yerel pipo ışığı" yapacağız - sadece fermuarları koruyun. Teşekkürler. –