如何离线安装所有依赖包

简介:

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

一、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>
目录
相关文章
|
Linux 数据安全/隐私保护
CentOS设置IP地址的方法
CentOS设置IP地址的方法
4182 0
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
277028 0
|
自然语言处理
PubMedBERT:生物医学自然语言处理领域的特定预训练模型
今年大语言模型的快速发展导致像BERT这样的模型都可以称作“小”模型了。Kaggle LLM比赛LLM Science Exam 的第四名就只用了deberta,这可以说是一个非常好的成绩了。所以说在特定的领域或者需求中,大语言模型并不一定就是最优的解决方案,“小”模型也有一定的用武之地,所以今天我们来介绍PubMedBERT,它使用特定领域语料库从头开始预训练BERT,这是微软研究院2022年发布在ACM的论文。
767 1
|
12月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
772 156
|
人工智能 自然语言处理 监控
2025年如何通过SOP工具实现流程标准化?详解6大构建步骤及7款软件选型指南
标准作业程序(SOP)是企业核心知识资产与效率引擎,其科学构建和高效落地成为2025年数字化转型的关键。本文解析SOP全生命周期流程,探讨可视化技术对流程管理的赋能,并推荐7款智能工具。从概念到实施,SOP助力企业实现技术储备、效率提升与风险防控。通过动态协同、富媒体化及AI增强,企业可在高效与创新间取得平衡,构建可持续竞争优势。
4735 2
|
人工智能 自然语言处理 测试技术
Goedel-Prover:专为自动化数学问题的形式证明生成而设计的 LLM,快速解决形式化数学问题
Goedel-Prover 是一款由普林斯顿大学和清华大学等机构联合推出的开源模型,专注于自动化数学问题的形式证明生成。它通过将自然语言数学问题翻译成形式语言(如 Lean 4),显著提升了数学问题的证明效率。
898 4
Goedel-Prover:专为自动化数学问题的形式证明生成而设计的 LLM,快速解决形式化数学问题
|
数据采集 缓存 JavaScript
数据抓取的缓存策略:减少重复请求与资源消耗
本教程聚焦于提升爬虫效率与稳定性,通过结合缓存策略、代理IP技术(如爬虫代理)、Cookie和User-Agent设置,优化数据采集流程。以知乎为例,详细讲解如何抓取指定关键词的文章标题和内容。内容涵盖环境准备、代码实现、常见问题及解决方案,并提供延伸练习,帮助读者掌握高效爬虫技巧。适合具备Python基础的初学者,助你规避网站机制,顺利获取目标数据。
502 2
数据抓取的缓存策略:减少重复请求与资源消耗
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
1146 15
Android 系统缓存扫描与清理方法分析
|
机器学习/深度学习 存储 虚拟化
OpenStack学习教程
【8月更文挑战第19天】
1128 4
|
JavaScript 前端开发 安全
轻松上手Web Worker:多线程解决方案的使用方法与实战指南
轻松上手Web Worker:多线程解决方案的使用方法与实战指南
635 0