DevPi
关于我们如何在我们的环境中很好地工作,我不妨提供一个正确的答案:
- 安装 DevPi
DevPi
需要 Python 3!因此,请确保您已pip
安装 Python 3 版本。使用它:
pip install -U devpi
(可能以root身份)应该可以解决问题。
- 确保您的服务器防火墙已打开
DevPi
默认使用端口 3141。如果您firewall-cmd
安装了类似的东西
firewall-cmd --zone=public --add-port=3141/tcp --permanent
firewall-cmd --reload
或系统上的等效命令。
- 配置
DevPi
DevPi
PyPi
开箱即用。我们还希望能够“覆盖”我们自己的包,这些包仅在组织内部提供。对于本地 nabCERT 包,需要一个内部索引。好在这个本身可以使用 PyPi 作为后备!
选择要工作的 devpi 服务器 - 可能是您所在的服务器
devpi use http://localhost:3141
现在创建一个可以添加和管理内部包并使用它们登录的用户
devpi user -c myuser password=mypassword
devpi login myuser --password mypassword
现在创建我们的内部索引来保存本地包,同时确保它将使用 PyPi 作为“后备”
devpi index -c myindex bases=/root/pypi volatile=True
启动它
devpi-server --host=0.0.0.0 --port=3141 --serverdir=/var/www/pypi
尝试安装一个包
pip install -i http://localhost:3141/root/pypi/ simplejson
如果出现问题,请检查日志,在我们的例子中,它们在/var/www/pypi/.xproc/devpi-server/xprocess.log
此时,如果上述所有设置都已成功执行,您应该可以打开 Web 浏览器并将其指向devpi
服务器
http://localhost:3141/myuser/myindex
- 让 DevPi 自动启动
那因人而异。我们使用systemd
所以我创建了一个文件/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
保存文件并通知 systemd。
systemctl daemon-reload
systemctl enable devpi
- 配置客户端
要让您的客户pip
使用新的DevPi
存储库,请创建一个/etc/pip.conf
类似这样的文件
[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/