有时候在内部环境中是没有外网的,可是却需要通过yum安装一些软件包。这时,我们挂载或者制作一个本地源就有点太浪费时间了,我们可以通过一个可以连接外网的环境将我们需要的安装包及一些依赖都拉取下来,然后上传内部环境中直接安装即可。
1.yum下载离线安装包
首先,需要一台可以连接外网的主机(虚拟机),安装CentOS系统。切记,一定要是最小安装(mini版),如果用其他安装,则有可能会出现依赖下载不全的问题。
①安装yumdownloader
yumdownloader是一个从yum仓库中下载RPM包的软件
yum install yum-utils -y
如果你想要下载第三方源的软件包,则需要安装epel
yum install epel-release -y
②下载软件包
yumdownloader使用格式:
yumdownloader [options] package1 [package2...]
通用选项
-h, --help
帮助; 显示帮助信息然后退出。
--destdir DIR
指定下载包的目录。默认为当前目录。
--urls
列出下载包的url.
--resolve
下载包时,同时也会下该包的所有依赖。
--source
下载源码包,而不是RPM包
列如:要下载Python3.6版本的环境极其依赖
yumdownloader --resolve --destdir=/root/yum/python36 python36
依赖包已经下载好了,接下来就是安装了!
离线安装的话有两种方式
第一种: 进入包目录下直接安装
yum localinstall /root/yum/*
这样会把该目录下的包全部安装
也可以通过rpm -ivh <包名> 的方式安装(不推荐)
第二种:制作离线本地源
首先需要把createrepo的安装依赖包全部下载并上传安装到离线环境
rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
createrepo localrepo
创建yum拉取包的文件
vim /etc/yum.repos.d/localrepo.repo
添加以下内容
[localrepo]
name=ansible
baseurl=file:///root/yum/python36
gpgcheck=0
enabled=1
然后就可以使用了
yum install python36 -y
2.pip下载离线安装包
①安装pip
外网环境下安装
# 下载安装脚本
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
# 运行安装脚本
sudo python get-pip.py
注意:用哪个版本的 Python 运行安装脚本,pip 就被关联到哪个版本,如果是 Python3 则执行以下命令:
也可以通过yum安装pip
yum install -y python36-pip
# python36-pip 为pip关联python3.6 ,python34-pip关联的这是python3.4
# python-pip关联的这是python2.7
#查看版本和路径
pip --version
②pip离线下载安装包
pip download [option] <package> [package] [package...]
例如
pip download -d django/ Django==2.0.6 paramiko==2.4.1
③pip安装离线包
pip install <package> [package] [package...]
例如
pip install Django-2.0.6-py3-none-any.whl
pip install *