Christian Theune
Jan Ulrich Hasecke
Martin v. Löwis
Thomas Lotze
Veit Schiele
2011-04-06
SQLite mit headers und statischen Bibliotheken
In Debian und ähnlichen Paketverwaltungen wird dies mit dem Paket libsqlite3-dev
installiert.
bzip2 mit statischen Bibliotheken und include-Dateien
In Debian und ähnlichen Paketverwaltungen wird dies mit dem Paket libbz2-dev
installiert.
Python2.6 oder größer
Webserver, z.B. Apache oder nginx
easy_install pep381client
Dies installiert im bin
-Verzeichnis der Python-Installation die beiden folgenden Skripte:
aktualisiert die Pakete, Signaturen und Simple Pages auf dem Mirror.
erzeugt aus den Log-Dateien des Web-Servers eine tagesbezogene Downloadstatistik der Pakete.
In unserem Beispiel wählen wir als Ort im Dateisystem /srv/pypi
:
./bin/pep381run /srv/pypi
Dies lädt alle Pakete, Signaturen und Simple Pages vom Master-PyPI pypi.python.org
herunter (aktuell sind dies ca. 14 GB).
Dies kann als cronjob geschehen, z.B. mit:
*/15 * * * * /path/pep381client/pep381run -q /srv/pypi
Hiermit werden die Dateien alle 15 Minuten aktualisiert.
-q
führt das Skript ohne Ausgabe aus.
/srv/pypi/web
soll nun durch einen Web-Server ausgeliefert werden.
Apache kann z.B. mit folgender Konfiguration betrieben werden:
<VirtualHost *:80>
ServerName mypypi.example.org
DocumentRoot /srv/pypi/web
AddOutputFilterByType DEFLATE text/html
</VirtualHost>
Der Wert von AddOutputFilterByType
erlaubt dem Apache-Webserver, die Simple Pages komprimiert auszugeben.
Für nginx kann die Konfiguration z.B. so aussehen:
server {
listen *:80;
server_name mypi.example.org;
root /srv/pypi/web;
gzip on;
gzip_min_length 1100;
}