我有一个 Django 项目,将安装在无法访问 Internet 的 RHEL 7 服务器中。我需要在本地包含所有内容,从 python3 源代码到 pip 和设置工具。对于系统运行 python 可能需要的每个包,我添加了大量的包,但它仍然总是给我错误。我正在使用这个install.sh
脚本来实现这个目的
#!/bin/bash
cd ./needed_pkgs/
rpm -i build-essentials-2019-3pclos2019.noarch.rpm zlib-1.2.7-18.el7.x86_64.rpm gcc-c++-4.8.5-39.el7.x86_64.rpm gcc-4.8.5-39.el7.x86_64.rpm cpp-4.8.5-39.el7.x86_64.rpm glibc-devel-2.17-292.el7.x86_64.rpm glibc-headers-2.17-292.el7.x86_64.rpm kernel-headers-3.10.0-1062.el7.x86_64.rpm
command -v python3 >/dev/null 2>&1 || {
echo >&2 "I require python3 but it's not installed, installing it .";
cd Python-3.7.5
make clean
./configure
make
sudo make install
}
cd ../..
#virtualenv --never-download venv
#source venv/bin/activate
for entry in "./pkgs"/*; do
pip install "$entry"
done
经过几天的尝试,当我快要让一切正常工作时,我在 pip install 的最后一步遇到了这个奇怪的错误:
最终导致安装python失败:
答案1
您必须找到 yum 可用的特定模块二进制文件并将其复制到离线服务器,因此您基本上是在计算机上下载二进制模块,然后将目录从 VPN 复制到指定位置。
一种解决方案是使用yumdownloader --resolve <package name>
安装它们的顺序由 yum 决定:
yum install ./*rpm
现在,您必须在包含所有依赖项的下载包的文件夹中运行上述命令,它将执行所需的操作。