我们有两台Linux服务器,一台是专用网络,没有互联网接入。另一种是在具有互联网接入的公共网络上。两台服务器都运行相同的RHEL-5操作系统。
在具有Internet访问权限的服务器上,我在我的主目录下以非root用户身份安装了python。然后我使用pip来安装其他软件包,pip还解析了依赖项并安装了所需的依赖项。
如何将此python重定位到没有root访问权限的服务器?另外我想将它作为root重定位在不同的目录下?
为什么我要这样做?由于私有服务器没有互联网访问权限pip不能用于安装100个模块和依赖项。由于服务器运行相同的操作系统版本,有没有简单的方法将安装在一台服务器上的python重新定位到另一台服务器,但是在另一个目录中呢?
答案 0 :(得分:1)
如果可能的话,我会尝试通过前门实际安装其他服务器上的软件包。克隆所有包原则上应该等同于以下内容:
在第一台计算机上(具有Internet访问权限和已安装的软件包):
mkdir /tmp/pypackages
pip install -r <(pip freeze) -d /tmp/pypackages
在第二台机器上:
/tmp/pypackages
安装它们:
cd /tmp/pypackages
pip install *
(以root用户身份或普通用户身份)。
请注意,当我尝试在我的机器上运行第一组命令时,我会收到一些错误,我指责pip freeze
显示的所有软件包实际上都没有安装{{1} }。您可能还需要过滤该列表。将pip
的输出保存到文件并进行编辑可能会更容易。
P.S。 pip freeze
本身也可以通过系统包管理器在本地下载,传输和安装。