Centos Linux下载rpm软件包(基础环境篇)-从零到无
--时间:2020年10月23日
--作者:飞翔的小胖猪
一、概述
1.1 前言
很多生产环境往往是独立的一张网络不与互联网相通,经常会出现的问题就是应用在部署的时候无法安装配套的依赖包。导致很简单的一个可能部署交互动作时间线脱得老长老长的,影响工程交互及业务上线。容器技术很大程度上解决这一问题,只需要把业务应用封装成镜像然后在部署有容器服务的基础环境上直接就可以业务run起来。在不能使用容器同时没有对应软件仓库的环境中安装部署应用时,往往需要我们自己提前把所需的软件及文件准备好。由于本人在工作中使用的系统大多是Centos系列的,文档使用Centos 7.6系统为基础环境演示操作如何下载rpm包。
1.2 环境说明
文档采取的操作系统及软件如下表:

1.3 操作及步骤说明
下载rpm包的方式一般有两种方式,一种是明确的指导所需的rpm包名和版本,一种是无法获取到准确的软件名。对于能够明确知道rpm包名的情况可使用“yum install --downloadonly rpm名”或“yumdownloader --destdir=/yum_down_soft/ rpm包名”依次下载包。无法准确知道包名的情况下可尝试把整个仓库的内存全部down下来使用reposync命令。
1.配置yum源
2.安装相关的软件
3.进行镜像同步或下载单个软件
4.生成repo清单文件
5.打包带走
二、具体方式
2.1 配置yum源
按照你的需求配置你想要同步的yum源,如使用zabbix为例,模拟下载同步zabbix的相关软件包。
配置正确的yum源文件,重新生成yum仓库缓存。
[root@docker_0001 ~]# vim /etc/yum.repos.d/zabbix.repo
[zabbix]
name=zabbix
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/
enabled=1
gpgcheck=0
[supported]
name=supported
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/x86_64/
enabled=1
gpgcheck=0
[root@docker_0001 ~]# yum clean all #清空之前的yum源缓存
[root@docker_0001 ~]# yum makecache #重新生成仓库缓存,该步操作在网络不稳定的情况下可能会失败,不要慌多试几次,会成功的。
[root@docker_0001 ~]# yum repolist #查看仓库包id及仓库软件数
2.2 安装相关软件
yum-utils安装包提供了reposync命令用来同步镜像,yumdownloader命令下载rpm包。
yum-utils安装包提供了reposync命令用来同步镜像,createrepo软件实现生成本地yum仓库的清单文件。 [root@docker_0001 ~]# yum install yum-utils -y
createrepo软件实现生成本地yum仓库的清单文件。
[root@docker_0001 ~]# yum install createrepo -y
2.3 同步镜像
如果需要同步制定的yum仓库数据则选取这一步的命令。单个rpm包下载请参考2.4章节的内容。
同步镜像到本地中
安装完成相关的软件过后,使用命令同步远端yum仓库数据到本地中。
命令格式:
reposync -r 仓库名(repo_name) 查看仓库名
[root@docker_0001 ~]# yum repolist 同步zabbix仓库的包,执行命令过后会在本地当前目录下创建一个与仓库名同名的文件夹。同步zabbix仓库至当前文件夹。
[root@docker_0001 ~]# reposync -r zabbix
注:
如果reposync -r zabbix命令不能使用
# mkdir docker_自建的文件夹
# reposync --repoid repo_id_名 -p docker_自建的文件夹
该步骤执行过后同步完了仓库包过后,还需参考2.5章节进行软件关联关系文件生成。
2.4 下载rpm包
对于只下载几个rpm的包的情况下可使用命令直接对rpm包进行下载。使用命令直接下载仓库中rpm包有两种方式。
使用yum-utils软件包中的yumdownloader命令对软件进行下载。
命令格式:
yumdownloader --destdir=目录名/ 软件名
#下载vim软件到/yum_down_soft/目录下
[root@docker_0001 ~]# yumdownloader --destdir=/yum_down_soft/ vim
直接使用yum命令下载软件,不推荐这种方式。展示出来只是让你知道有这个玩意。
[root@docker_0001 ~]# yum install --downloadonly yum-utils 找到软件目录使用该种方式下载的包存放在/var/cache/yum目录下但是查找起来是一个大问题。不一定能够找到,所以这种方式直接滚蛋
下载完成软件后如果你想通过yum install命令来安装使用刚才新下载的rpm包,你还需要生成repo清单文件。但是如果你直接使用rpm -ivh命令安装的,恭喜你你可以跳过2.5章节,直接进入2.6章节打包打走。
2.5 生成repo清单文件
远端仓库同步完成洪还不能马上使用必须生成一个repodata清单目录,用户才能通过配置yum源的方式来使用仓库中的软件包。
我同步下来的zabbix仓库位置就是/root/zabbix,请个人根据自己的实际路径情况设置。
[root@docker_0001 ~]# createrepo /root/zabbix/
对于下载下来的rpm包如果想要通过yum命令安装使用也是要生成repo清单文件的,此处不累述

确认仓库中是否包含repodata数据 [root@docker_0001 ~]# ll /root/zabbix/ | grep -i repo
也可以使用该路径配置为yum源,尝试是否能够进行正常包的安装

2.6 打包带走
对于同步过后的镜像需要在其他地方使用直接打包压缩带走,然后在需要的地方解压就好了。
使用tar命令,通过gzip的方式压缩文件。
打包zabbix/文件夹命名为zabbix.tar.gz
[root@docker_0001 ~]# tar -zcvf zabbix.tar.gz zabbix/

解压仓库包,解压过后就可以像一般的仓库一样使用。
[root@docker_0001 ~]# tar -zxvf zabbix.tar.gz

ps:如果解压过后你需要把仓库内的rpm包添加到之前正在使用仓库中,一定要在拷贝过后使用createrepo重新生成一次repodata。
Centos Linux下载rpm软件包(基础环境篇)-从零到无的更多相关文章
- Linux学习笔记之在 CentOS 里下载 RPM 包及其所有依赖包
0x00 概述 前几天我尝试去创建一个仅包含我们经常在 CentOS 7 下使用的软件的本地仓库.当然,我们可以使用 curl 或者 wget 下载任何软件包,然而这些命令并不能下载要求的依赖软件包. ...
- 如何在 CentOS 里下载 RPM 包及其所有依赖包
方法一.利用 Downloadonly 插件下载 RPM 软件包及其所有依赖包 默认情况下,这个命令将会下载并把软件包保存到 /var/cache/yum/ 的 rhel-{arch}-channel ...
- hadoop完全分布式手动安装(一主多从centos linux各版本均试验成功,文档完整无一遗漏)
hadoop完全分布式手动安装(一主多从centos linux各版本均试验成功,文档完整无一遗漏) 网上的文章99%都是垃圾,我凭良心书写,确保幼儿园同学也能安装成功! 查看系统环境 1.查看 ...
- CentOS 8.2 对k8s基础环境配置
一.基础环境配置 1 IP 修改 机器克隆后 IP 修改,使Xshell连接上 [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg- ...
- linux的RPM软件包管理工具
RPM(Redhat Package Manage)原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采 ...
- linux 下载rpm包到本地,createrepo:创建本地YUM源
如何下载rpm包到本地 设置yum安装时,保留rpm包. 1.编辑 /etc/yum.conf 将keepcache的值设置为1; 这样就可以将yum安装时的rpm包保存在 /var/cache/yu ...
- [转]Linux下RPM软件包的安装及卸载 yum操作
在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装.卸载及管理等操作.RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下 ...
- linux之rpm软件包管理
1.RPM包的命名规则 例如:httpd-2.2.15-15.el6.centos.1.i686.rpm httpd · 软件包名 2.2.15 软件版本 15 ...
- Linux下RPM软件包的安装及卸载
http://os.51cto.com/art/201001/177866.htm 在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装.卸载及管理等操作.RPM 的全称为Redhat P ...
随机推荐
- golang中的标准库flag
Go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简单. os.Args 如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数. ...
- Kubeadm部署K8S(kubernetes)集群(测试、学习环境)-单主双从
1. kubernetes介绍 1.1 kubernetes简介 kubernetes的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理.目的是实现资源管理的自动 ...
- 学习Java第5天
今天所做的工作: 1.包装类 2.数字处理类 3.ArrayList数组 4.学生信息管理系统样卷(部分) 明天工作安排: 1.完成学生信息管理系统样卷 2.核心技术接口继承,多态 所遇到的问题及解决 ...
- 关于基于python2.7的unity自动化测试框架GAutomator测试环境的搭建(源码网盘下载地址:https://pan.baidu.com/s/1c2TXwtU)
关于基于python 2.7的unity自动化测试框架GAutomator测试环境的搭建 百度云盘链接(思维图学习资料):https://pan.baidu.com/s/1dFWExMD 准备工作(具 ...
- markdown介绍和使用(超全建议收藏)
Markdown介绍 Markdown 其实在 2004 年就有了,不过之前一直很小众,这几年随着相关应用平台的发展,Markdown以其独到的优势迅速火起来了.Markdown编辑器使用一套格式标记 ...
- Sublime Text 官方网站 http://www.sublimetext.com
Sublime Text 官方网站 http://www.sublimetext.com
- _call妙用
class Magic { function __call($name,$arguments) { if($name=='foo') { if(is_int($arguments[0])) $this ...
- Java线程--CyclicBarrier使用
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11867687.html Java线程--CyclicBarrier使用, 代码里头有详细注释: ...
- webhook触发jenkins进行sonar检测
目的 jenkins仅需创建一个job,git推送后自动进行sonar代码检测并上传到sonarqube jenkins插件 已按社区推荐安装基本插件 Generic Webhook Trigger ...
- Solution -「多校联训」神
\(\mathcal{Description}\) Link. 给定 \(n\) 阶排列 \(a\),\(q\) 次询问,每次给出 \(1\le l_1\le r_1<l_2\le r_ ...