内网无yum源 / pip源离线安装CentOS 包/Python包
在内网部署服务器时,经常会遇到由于安全等原因,不能够连外网,因此不能访问外网的yum源/pip源的情况。这对习惯了用yum install / pip install安装CentOS 包/Python 包的攻城狮而言,不亚于缚住了双臂,如果手动一个一个的下载依赖包绝对是一场噩梦。但有时,又确实需要在内网环境下离线安装需要的包,这时一个靠谱的办法就是“曲线救国”三步法了:
- 首先,使用能上外网的主机(应确保操作系统版本 / Python版本与内网服务器相同,如果没有现成的可用Docker搭建一个),将所需要的包和依赖通过yum / pip方式保存到本地
- 然后,将包和依赖复制到内网服务器上
- 最后,在内网服务器上用rpm / pip 进行安装
内网离线安装CentOS 包
首先,需要利用yum的downloadonly和downloaddir模块,如果能上外网的主机上没有安装,先用如下命令安装:
yum install yum-plugin-downloadonly
在能上外网的主机上运行如下命令,不安装,只下载包和依赖到指定目录
yum install --downloadonly --downloaddir=<directory> <package-name>
例如
yum install --downloadonly --downloaddir=/tmp/rpms/ openssl
也可以下载指定版的的包
yum install --downloadonly --downloaddir=/tmp/rpms/ openssl-1.0.2k-19.el7.x86_64
这样,就可以将需要的包和依赖,全部下载到能上外网的主机的/tmp/rpms/ 目录下了。
然后,将包和依赖复制到内网服务器上。
最后,在内网服务器上,进入到包和依赖所在目录,用如下命令安装
rpm -ivhU * --nodeps --force
内网离线安装Python包
首先,在能上外网的主机上运行如下命令,不安装,只下载包和依赖到指定目录(须确保目录存在)
pip download -d <directory> <package-name>
例如
pip download -d /tmp/pkg/ fabric
也可以通过使用-r requirements.txt 参数,批量下载requirements.txt文件中列出的所有包
pip download -r requirements.txt -d .
注意:如果因为网络原因下载速度太慢,可以通过使用 -i https://pypi.tuna.tsinghua.edu.cn/simple 参数,临时从清华镜像源下载。
然后,将包和依赖复制到内网服务器上。
最后,在内网服务器上,用如下命令安装
pip install --no-index --find-links=<your_offline_packages_directory> <package_name >
也可以通过使用-r requirements.txt 参数,批量安装requirements.txt文件中列出的所有包
pip install --no-index --find-links=<your_offline_packages_directory> -r requirements.txt
总结
内网离线安装CentoOS包 /Python包的方法是类似的,都可以概括为“曲线救国”三步法,即先外网下载包和依赖,然后拷贝到内网,最后在内网离线安装。
冀公网安备 13010402001886号