如何离线安装所有依赖包

简介:

当我们在一个没有公网的环境下去部署一些东西的时候往往是让人很头疼的一件事,因为可能会需要各种依赖包,依赖包本身也还有很多依赖关系。如果没有一次性把全部的依赖包打包下载好,我们下载的过程就能体会到什么叫俄罗斯套娃。。

一、os依赖包

1、准备一台与生产部署环境内核版本基本一致的镜像,安装mini install版作为本地环境

# cat /proc/version
Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017

2、配置好本地环境的yum源、保证可通公网,一般都可以配置阿里的yum源即可

# cd /etc/yum.repos.d/
# mkdir bak
# mv ./*repo bak
# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache

3、通过yum将所需要的依赖包全部下载至本地目录

# yum install --downloadonly --downloaddir= <target_dir> <package-name>

备注:为保证生产部署环境可以部署自己的本地yum源,我们需要额外的去下载好 createrepo

# yum install --downloadonly --downloaddir=/myrpm createrepo

4、打包以上所有需要的依赖包到生产部署环境,搭建本地yum源

1)通过rpm手动安装createrepo

根据提示安装所需依赖包即可
# rpm -ihv createrepo-0.9.9-28.el7.noarch.rpm

2)搭建本地yum源

#创建本地rpm包repodata的索引目录
# createrepo /myrpm/
Spawning worker 0 with 197 pkgs
Spawning worker 1 with 197 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

#若后续有更新其他依赖包,不需要重建,只需要update一下索引目录就好
# createrepo --update /myrpm/
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

#配置yum源配置文件
# cd /etc/yum.repos.d/
# mkdir bak
# mv ./*repo bak
# cat local_yum.repo
[local_yum]
name=local_yum
baseurl=file:///myrpm
gpgcheck=0
enabled=1
priority=1

#清除yum缓存
yum clean all

5、通过本地yum源部署安装

yum install <package-name>

二、python库安装

1、下载python依赖包要关注两者环境的python、pip版本一致

# /app/python/bin/virtualenv /clean_env
New python executable in /clean_env/bin/python2.7
Not overwriting existing python script /clean_env/bin/python (you must use /clean_env/bin/python2.7)
Installing setuptools, pip, wheel...done.

# source /clean_env/bin/activate
(clean_env) # python --version
Python 2.7.9
(clean_env) # pip --version
pip 20.2b1 from /clean_env/lib/python2.7/site-packages/pip (python 2.7)

2、本地环境下载所需要的库及其依赖包

#requirements.txt文件下是我们需要安装的所有库
(clean_env) # pip download -d <target-dir>  --trusted-host mirrors.aliyun.com -r requirements.txt
or
(clean_env) # pip download -d <target-dir>  --trusted-host mirrors.aliyun.com <package-name>

3、将所有python包打包上传至生产部署环境

4、生产环境指定package目录安装库

# pip install --no-index --find-links=/root/python20/opsinsight/ -r requirements.txt
or
# pip install --no-index --find-links=/root/python20/opsinsight/ <package-name>
目录
相关文章
|
7月前
|
JavaScript 前端开发 开发者
windows安装npm教程
windows安装npm教程
519 0
|
3月前
|
Ubuntu
使用dpkg在ubuntu上安装软件包遇到依赖包的问题
使用dpkg在ubuntu上安装软件包遇到依赖包的问题
|
4月前
|
C语言 Python
安装DDK依赖包
【8月更文挑战第22天】安装DDK依赖包。
27 2
|
6月前
|
Kubernetes Linux 网络安全
K8S 离线安装版 1.23.1
在准备Kubernetes (k8s) 集群部署时,执行了以下步骤: 1. 关闭防火墙和服务:`systemctl stop firewalld && systemctl disable firewalld`,并禁用SELinux和swap。 2. 添加主机条目到`/etc/hosts`,同步时间使用`ntpdate time.windows.com`。 3. 设置k8s仓库源,安装必要的工具,如`yum install yum-utils -y`。 4. 安装Docker,并下载k8s相关软件包。 5. 制作离线包,使用`docker save`保存镜像,然后在目标机器上用`docker
357 0
|
Linux iOS开发 MacOS
npm将软件包安装到哪里
npm将软件包安装到哪里
226 0
apt下载安装包
apt下载安装包
101 0
apt下载安装包
|
Kubernetes Docker 容器
离线安装k8s
一、环境信息: 环境信息(采用一个master节点+两个node节点) master 172.16.20.11 node1 172.16.20.12 node2 172.16.20.13 操作系统版本 CentOS Linux release 7.
3136 0
|
网络协议
npm无法下载第三方包
npm无法下载第三方包
npm无法下载第三方包
npm安装指定版本的包
npm安装指定版本的包
2075 0
|
Ubuntu Shell Linux
如果高效使用apt-get、pip来下载安装依赖包、软件呢?
在Python开发中,需要安装一下包、依赖库或软件等,有时出现网络、权限和无法安装等问题困扰着我们,经历过一段时间的洗礼,悟出了一些要点分享给大家
1765 0