ich könnte genauso gut eine richtige Antwort auf diese Frage geben, wie wir haben DevPi
ganz schön in unserer Umgebung arbeiten:
- DevPi Installieren
DevPi
erfordert Python 3! Stellen Sie also sicher, dass Sie die Python 3-Version von pip
installiert haben. Verwenden Sie das:
pip install -U devpi
(wahrscheinlich als root) sollte den Trick tun.
- Achten Sie darauf, Ihren Server Firewall
DevPi
verwendet Port 3141 standardmäßig geöffnet ist. Wenn Sie firewall-cmd
installiert so etwas wie
firewall-cmd --zone=public --add-port=3141/tcp --permanent
firewall-cmd --reload
oder einem gleichwertigen Befehl auf Ihrem System.
- konfigurieren
DevPi
DevPi
PyPi
aus der Box verwendet wird. Wir wollten auch die Möglichkeit haben, unsere eigenen Pakete, die nur intern zur Verfügung gestellt werden, zu "überlagern". Für lokale nabCERT-Pakete benötigen Sie einen internen Index. Das Schöne daran ist, dass man PyPi selbst als Fallback benutzen kann!
den devpi Server auswählen arbeiten - das ist der Server, den Sie sich gerade befinden, wahrscheinlich
devpi use http://localhost:3141
nun einen Benutzer erstellen, die die internen Pakete hinzufügen und verwalten können und melden Sie sich mit ihnen
devpi user -c myuser password=mypassword
devpi login myuser --password mypassword
nun unseren internen Index erstellen, lokale Pakete zu halten, während sichergestellt wird es PyPI als „Rückfall“
devpi index -c myindex bases=/root/pypi volatile=True
verwenden
es
devpi-Server --host = 0.0.0.0 --port = 3141 --serverdir =/var/www/pypi
Try Start up und installieren sie ein Paket
pip install -i http://localhost:3141/root/pypi/ simplejson
Wenn etwas schief geht, die Protokolle überprüfen, in unserem Fall, dass sie in /var/www/pypi/.xproc/devpi-server/xprocess.log
waren
An diesem Punkt, wenn alle oben genannten Einstellungen erfolgreich ausgeführt wurden, sollten Sie einen Web-Browser öffnen können und es am devpi
Server mit
http://localhost:3141/myuser/myindex
Punkt
- Fabrikat DevPi startet automatisch
Das variiert. Wir verwenden systemd
so habe ich eine Datei/usr/lib/systemd/system/devpi.service
[Unit]
Requires=network-online.target
After=network-online.target
[Service]
EnvironmentFile=-/etc/sysconfig/devpi
Type=forking
PIDFile=/var/www/pypi/.xproc/devpi-server/xprocess.PID
Restart=always
ExecStart=/bin/devpi-server --host=0.0.0.0 --port 3141 --serverdir /var/www/pypi --start
ExecStop=/bin/devpi-server --host=0.0.0.0 --port 3141 --serverdir /var/www/pypi --stop
User=root
[Install]
WantedBy=multi-user.target
Speichern Sie die Datei und benachrichtigen systemd.
systemctl daemon-reload
systemctl enable devpi
- Konfigurieren einen Client
Ihre Kunden pip
Punkt die neuen DevPi
Repository erstellen /etc/pip.conf
Datei mit etwas zu verwenden, wie diese
[global]
trusted-host = <server IP or FQDN>
[install]
index-url = http://<server IP or FQDN>:3141/myuser/myindex/+simple/
[search]
index = http://<server IP or FQDN>:3141/myuser/myindex/
Ausgezeichnet Zeitfrage, wie ich auf das gleiche Problem anstarre: Pip-Clients werden keinen Internetzugang haben, brauchen einen vollständigen PyPi-Spiegel, begann mit Bandensnatch, bevor ich es im Wesentlichen nur Doe bemerkte s caching, sah, dass devpi alle kästen - und jetzt versuche herauszufinden, wie ich meinen massiven bandersnatch-download retten kann, indem ich die indexierung von devpi überlagere! – Marakai
@Marakai Ich habe gerade Bandersnatchs massive Müllkippe heruntergeladen. Erzählen Sie mir, dass es eine Verschwendung von Zeit, Aufwand und Bandbreite war? –
@ArjunJRao Nun, ich kann das nur beantworten mit: macht Bandsendersnatch alles was du willst? Dann denke ich, es funktioniert für dich. Laut meinem Kommentar-Zeitstempel verwenden wir Devi seit einem Jahr und es war großartig! Wir speichern nur das, was wir eigentlich von Remote benötigen, anstatt das gesamte PyPi-Archiv, wir können nahtlos unser eigenes Paket-Repository hinzufügen und es gibt einige nette Management-Tools, um die Repositories zu indizieren und zu bereinigen. – Marakai