0

我们有两台 linux 服务器,一台位于无法访问 Internet 的专用网络上。另一个在可以访问互联网的公共网络上。两台服务器都运行相同的 RHEL-5 操作系统。

在作为可以访问 Internet 的服务器上,我以非 root 用户身份在我的主目录下安装了 python。然后我用pip安装其他包,pip也解析依赖,安装需要的依赖。

如何将此 python 重新定位到没有 root 访问权限的服务器?我也想将它重新定位为不同目录下的根目录?

为什么我要这样做?由于私有服务器没有互联网访问权限,pip 无法安装 100 多个模块并存在依赖项。由于服务器运行相同的操作系统版本,是否有任何简单的方法可以将安装在一台服务器上的 python 重新定位到另一台服务器上,尽管在不同的目录中?

4

1 回答 1

1

如果可能的话,我会尝试通过前门并将软件包实际安装在另一台服务器上。所有包的克隆原则上应等同于以下内容:

  1. 在第一台机器上(具有 Internet 访问权限和已安装的软件包):

    mkdir /tmp/pypackages
    pip install -r <(pip freeze) -d /tmp/pypackages
    
  2. 在第二台机器上:

    • 将包复制到/tmp/pypackages
    • 安装它们:

      cd /tmp/pypackages
      pip install *
      

      (作为 root 或普通用户)。

请注意,当我尝试在我的机器上运行第一组命令时,我遇到了一些错误,我将其归咎于并非所有显示的软件包pip freeze都实际安装了pip. 您可能还需要过滤该列表。将输出保存pip freeze到文件并进行编辑可能会更容易。

PSpython本身也可以通过系统包管理器下载、传输、安装到本地。

于 2013-05-01T21:47:57.400 回答