我正在尝试在一个只能连接外部硬盘的服务器上创建一个完整的本地Pypi存储库镜像,其中包含pip搜索功能。说清楚一点,我不想要一个简单的缓存系统,服务器与其他机器连接在一个完全封闭的网络中,根本无法接入互联网。在
到目前为止,我所做的是使用bandersnatch转储每个pypi包,并且我可以在它前面使用一个简单的http服务器进行pip安装。我还检索了pypi的遗留源代码,使其在没有任何python包的情况下正常工作。我现在遇到的问题是把双方联系起来,我甚至不确定这样做是否可行。在
我还测试了pypiserver。它本可以做我想要的,但是它太慢了,最终导致pip search抛出超时(看起来它不是为处理那么多包而构建的)。在
最后,我看了一下devpi。似乎做的工作做得很好,我想做的,但我正在寻找一种方法,以导入我的班德斯纳奇转储到它容易。看起来我无法基于本地目录创建索引。在
谢谢你的回复。在
我不妨就如何让
DevPi
在我们的环境中很好地工作提供一个恰当的答案:DevPi
需要Python 3!因此,请确保安装了python3版本的pip
。使用它:(可能是根)应该能做到。在
^{pr2}$DevPi
默认使用端口3141。如果firewall-cmd
安装了类似或系统上的等效命令。在
DevPi
DevPi
将使用现成的PyPi
。我们还希望能够“覆盖”我们自己的软件包,这些软件包只在内部提供。对于本地nabCERT包,需要一个内部索引。这件好事本身可以使用PyPi作为后备!在选择要使用的devpi服务器-可能就是您所在的服务器
现在创建一个可以添加和管理内部包并使用它们登录的用户
现在创建内部索引来保存本地包,同时确保它将使用PyPi作为“后备”
启动它
devpi server host=0.0.0.0端口=3141 serverdir=/var/www/pypi
尝试安装软件包
{sON安装
如果出现问题,请检查日志,在我们的例子中,它们位于
/var/www/pypi/.xproc/devpi-server/xprocess.log
此时,如果已经成功地遵循了上面的所有设置,那么您应该能够打开一个web浏览器并将其指向
devpi
服务器这是不同的。我们使用
systemd
,所以我创建了一个文件/usr/lib/systemd/system/devpi.service
保存文件并通知systemd。在
要让客户机的
pip
使用新的DevPi
存储库,请创建一个/etc/pip.conf
文件,如下所示相关问题 更多 >
编程相关推荐