Portál AbcLinuxu, 21. května 2025 00:38

Lokální PyPI mirror bez přístupu k internetu

15.6.2013 19:39 | Přečteno: 822× | Výběrový blog | poslední úprava: 15.6.2013 19:39

V práci máme vývojářskou síť bez připojení k internetu z důvodu (pseudo)bezpečnostní politiky. Dokážete si představit, že používat Ubuntu bez aptitude a python bez pip je návrat do středověku. Na rozchození mirroru pro Ubuntu se osvědčil apt-mirror, mirrorovat PyPI bylo o trošku složitější...

Úvodem snad jen krátké vysvětlení PyPI (Python Package Index) a pip. PyPI je vlastně databáze Python balíčků (obdoba CPAN pro perl, Pear pro PHP nebo třeba HackageDB pro Haskell). 'pip' pak funguje jako správce balíčků (pip install instaluje z PyPI, pip search prohledáva PyPI, atd.).

Naštěstí existují projekty, které implementují vlastní PyPI server. Po tom co jsem zkusil ruzné implementace, jsem zakotvil u pypi-server. Na mirorováni používám oficiálni pep381client.

Abych zajistil, že je vše licenčně v pořádku, forknul jsem pep381client a přidal do něj filter, který bude mirorovat pouze open-source balíčky (balíčky jasně vydané pod licenci schválenou OSI). Jedná se asi o dvaceti řádkový patch, každopádně můj fork pep381client je k dispozici na https://github.com/luv/pep381client

Další problém byl že pypi-server nepodporuje XML-RPC a tudíž nefunguje "pip search". Toto opět vyřešlo přibližně dvacet řádků kódu :-) a "pip search" už funguje proti pypi-server stejně dobře jako proti oficiálnímu PyPI. Fork pypi-server je k dispozici na https://github.com/luv/pypi-server

Tuto kombinaci, ještě s vlastním bootstrap skriptem, který nainstaluje distribute a pip (pokud je potřeba) a nakonfiguruje pip, použivám k spokojenosti na naší lokální síti.

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.