Hallo,
ich suche ein Programm für Linux, mit dem ein lokaler Proxy mit Cache für den Package Index aufgesetzt werden kann. Der Proxy sollte möglichst einfach zu konfigurieren sein (am besten vorkonfiguriert für PyPI), und per "easy_install" oder "pip install" heruntergeladenen Pakete lokal zwischenspeichern und wiederholte Installationen anschließend aus dem lokalen Cache bedienen. Summa summarum etwas wie apt-proxy, nur eben für den PyPI statt für APT.
Hintergrund ist, dass zum Ausführen von Tests innerhalb von Hudson jedes Mal ein frisches virtualenv mit allen nötigen Abhängigkeiten erzeugt wird. Bisher werden die Abhängigkeiten jedes Mal erneut aus dem Netz heruntergeladen. Das ist zwar an sich nicht kritisch, aber doch ein wenig störend.
Danke
lunar
Lokaler PyPI-Cache
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
Wie wärs mit einem ganz dummen Proxy, der einfach nur nach URLs cached? Zur Not kannst du ja da das Django-Routing und -Caching missbrauchen, oder halt kurz was zusammenschreiben, das sollte ja ziemlich simpel sein.
Oder soll der Proxy intelligenter sein? ;)
Oder soll der Proxy intelligenter sein? ;)
@Dauerbaustelle: Das hilft mir nun nicht weiter. Natürlich kann ich einen Proxy für diesen Zweck ohne größere Probleme selbst schreiben, aber ich frage eben genau deswegen im Installationsforum (und nicht etwa im Netzwerkforum), weil ich dazu eigentlich sowas von gar keine Lust habe, ganz zu schweigen von der Zeit. Trotzdem danke für Deine Antwort!
Eigentlich suche ich aber ein fertiges Programm für diesen Zweck. So ungewöhnlich ist mein Szenario ja nun nicht, es stand doch bestimmt schon mal irgendjemand vor dem selben Problem.
Eigentlich suche ich aber ein fertiges Programm für diesen Zweck. So ungewöhnlich ist mein Szenario ja nun nicht, es stand doch bestimmt schon mal irgendjemand vor dem selben Problem.
habe im Hinterkopf, dass man das hiermit machen könnte: http://pypi.python.org/pypi/collective.eggproxy/
Es funktioniert schon, aber allzu begeistert bin ich nicht. Das Programm cacht zu viel, denn es lässt sich nicht davon abbringen, alle Versionen eines Pakets in allen verfügbaren Formaten herunterzuladen. Ein an sich harmloses "pip install -U -i http://localhost:8888 sphinx" zur Installation der neuesten Sphinx-Version führt dann zu diesem Cacheinhalt, der immerhin stolze 145 MB(!) ausmacht.
Das ist zwar auch nicht sonderlich störend, denn so oft baut man den Cache ja nicht neu auf, aber eine „cache-miss-Installation“ ist so deutlich langsamer. Ganz abgesehen von der völlig sinnlosen Speicherverschwendung ... denn wozu in Gottes Namen braucht man Pakete von anno dazumal schon im Cache, wenn man eine Aktualisierung(!) durchführt?
Naja, aber so lange es keine Alternativen gibt, werde ich das erst mal verwenden.
Das ist zwar auch nicht sonderlich störend, denn so oft baut man den Cache ja nicht neu auf, aber eine „cache-miss-Installation“ ist so deutlich langsamer. Ganz abgesehen von der völlig sinnlosen Speicherverschwendung ... denn wozu in Gottes Namen braucht man Pakete von anno dazumal schon im Cache, wenn man eine Aktualisierung(!) durchführt?
Naja, aber so lange es keine Alternativen gibt, werde ich das erst mal verwenden.
Weil mir das ehrlich gesagt zu kompliziert ist. Ein solcher Proxy will konfiguriert werden, und die von meiner Distribution installierte Konfigurationsdatei für wwwoffle hat ~1400(!) Zeilen. Natürlich, die Komplexität gibt sich, wenn man Dokumentation liest und Erfahrung mit dem Programm sammelt, aber das ist mir zu viel Aufwand für das erwünschte Resultat. Ich hätte gern eine DAU-Lösung: Starten und funktioniert, ohne große Konfiguration
@mkesper: Ich verwende nun wwwoffle. Man musste in der Tat nichts konfigurieren, der Dienst war direkt nach der Installation einsatzbereit, und ist zudem einfacher zu verwenden, weil man nur die Umgebungsvariable HTTP_PROXY setzen, nicht aber jedes Mal die Option -i mit der lokalen Proxy-Adresse angeben muss.
Danke für den Tipp
Danke für den Tipp
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Ein weiterer Grund für PIP: $PIP_DOWNLOAD_CACHE
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
Nun ja, "undokumentiert" ist immer so eine Sache ... Innerhalb Hudson ließe sich das aber eh nicht so ohne weiteres einsetzen.