--时间: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软件包(基础环境篇)-从零到无的更多相关文章

  1. Linux学习笔记之在 CentOS 里下载 RPM 包及其所有依赖包

    0x00 概述 前几天我尝试去创建一个仅包含我们经常在 CentOS 7 下使用的软件的本地仓库.当然,我们可以使用 curl 或者 wget 下载任何软件包,然而这些命令并不能下载要求的依赖软件包. ...

  2. 如何在 CentOS 里下载 RPM 包及其所有依赖包

    方法一.利用 Downloadonly 插件下载 RPM 软件包及其所有依赖包 默认情况下,这个命令将会下载并把软件包保存到 /var/cache/yum/ 的 rhel-{arch}-channel ...

  3. hadoop完全分布式手动安装(一主多从centos linux各版本均试验成功,文档完整无一遗漏)

    hadoop完全分布式手动安装(一主多从centos linux各版本均试验成功,文档完整无一遗漏) 网上的文章99%都是垃圾,我凭良心书写,确保幼儿园同学也能安装成功! 查看系统环境    1.查看 ...

  4. CentOS 8.2 对k8s基础环境配置

    一.基础环境配置 1 IP 修改 机器克隆后 IP 修改,使Xshell连接上 [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg- ...

  5. linux的RPM软件包管理工具

    RPM(Redhat Package Manage)原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采 ...

  6. linux 下载rpm包到本地,createrepo:创建本地YUM源

    如何下载rpm包到本地 设置yum安装时,保留rpm包. 1.编辑 /etc/yum.conf 将keepcache的值设置为1; 这样就可以将yum安装时的rpm包保存在 /var/cache/yu ...

  7. [转]Linux下RPM软件包的安装及卸载 yum操作

    在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装.卸载及管理等操作.RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下 ...

  8. linux之rpm软件包管理

    1.RPM包的命名规则 例如:httpd-2.2.15-15.el6.centos.1.i686.rpm httpd ·        软件包名 2.2.15        软件版本 15       ...

  9. Linux下RPM软件包的安装及卸载

    http://os.51cto.com/art/201001/177866.htm 在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装.卸载及管理等操作.RPM 的全称为Redhat P ...

随机推荐

  1. python 爬虫爬取历年双色球开奖信息

    目前写的这些爬虫都是些静态网页,对于一些高级网页(像经过JS渲染过的页面),目前技术并不能解决,自己也是在慢慢学习过程中,如有错误,欢迎指正: 对面前端知识本人并不懂,过程中如果涉及到前端知识,也是百 ...

  2. java内部类-局部内部类

    1 package face_09; 2 /* 3 * 内部类可以存放在局部位置上. 4 * 5 * 内部类在局部位置上只能访问局部中被final修饰的局部变量. 6 */ 7 /*class Out ...

  3. python06day

    Now代码1005行 回顾 字典的初识 查询速度快,{'name':'tangdaren'},存储大量关联型数据 键:int.str(bool tuple不常用)不可变的数据类型 值:任意数据类型 3 ...

  4. 人口信息普查系统-JavaWeb-四

    今天给大家分享前端人口登记页面,人口查询页面 人口登记 <%@ page language="java" contentType="text/html; chars ...

  5. django入门 01 创建项目

    安装django库 pip install django 创建--by 终端 django-admin startproject myproject 通过命令创建的django项目,默认不含templ ...

  6. Java 自定义窗体(标题栏、窗体背景)

    感谢大佬:https://blog.csdn.net/ltx06/article/details/28996839 最近在书上看到这篇文章,觉得挺有意思.与大家分享一下,具体可以参见明日科技出版的&l ...

  7. 如何清除项目git版本控制信息

    首先进入项目目录下 邮件打开 git bash here 执行命令 find . -name ".git" | xargs rm -rf 就清除了git版本控制信息

  8. Linux命令安装Mysql

    关键步骤: 4.创建用户组和用户 groupadd mysql useradd -r -g mysql mysql 5.修改权限 chown -R mysql:mysql ./ 6.安装数据库 ./s ...

  9. 教你用Elastic Search:运行第一条Hello World搜索命令

    摘要:Elastic Search可实时对数据库进行全文检索.处理同义词.从同样的数据中生成分析和聚合数据. 本文分享自华为云社区<Elastic Search入门(一): 简介,安装,运行第一 ...

  10. alpakka-kafka(10)-用kafka实现分布式近实时交易

    随着网上购物消费模式热度的不断提高,网上销售平台上各种促销手段也层出不穷,其中"秒购"已经是各种网站普遍流行的促销方式了."秒购"对数据的实效性和精确性要求非常 ...