【yum】CentOS7.x上主包及其依赖的下载

一、实验背景

CentOS上服务搭建,服务器能联网,一切好说,根据相关文档,添加指定的yum仓库源安装就是了。

问题是,很多时候,生产环境的服务器并不能联网,甚至登录相关服务器还要各种跳板机,最多你能拖个CentOS官方镜像去搭建本地yum源,解决相关软件安装的依赖。

那么,如果你要安装服务的目标服务器操作系统是最小化安装,需要安装的软件官方iso镜像文件中有没有,怎么办?


二、实验思路

如果需要安装的软件如 zabbix、MySQL、nginx等软件官方iso镜像文件中并没有或者说没有我们想要的指定的较新版本,我们需要做的是找一台联网的虚拟机(和安装服务的目标服务器操作系版本一致),用相关命令将其主包及其依赖一次性下载,用于内网服务器搭建本地yum,实现离线安装。

那么问题来了:我们怎么添加zabbix、MySQL、nginx等软件官方的官方yum源,下载其指定版本的主包及其依赖?

一般套路是去官方仓库,下载安装其 release rpm包,就会相应的添加仓库文件和软件包校验文件。


三、实验环境

操作系统: CentOS7.5 Minimal

开发机(联网): 192.168.1.101


四、安装主包及依赖包下载工具


# yum  -y install epel-release

# yum -y install createrepo

# yum -y install yum-utils

上述相关软件包的作用如下:

EPEL是企业版 Linux 附加软件包的简称,EPEL是一个由Fedora特别兴趣小组创建、维护并管理的,针对 红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS、Scientific Linux、Oracle Enterprise Linux)的一个高质量附加软件包项目。

createrepo 命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。

yum-utils是管理repository及扩展包的工具,包含一系列yum工具,本实验中我们用到其中的  repotrack,直接下载指定的包,包括所有依赖一块完成,实乃解决软件依赖之利器!


五、添加相关软件的yum仓库

添加epel官方yum源

EPEL是企业版 Linux 附加软件包的简称,EPEL是一个由Fedora特别兴趣小组创建、维护并管理的,针对 红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS、Scientific Linux、Oracle Enterprise Linux)的一个高质量附加软件包项目。

# yum  -y install epel-release 

# rpm -ql epel-release

# cat /etc/yum.repos.d/epel.repo




添加nginx官方yum仓库

http://nginx.org/en/linux_packages.html#stable


# vim  /etc/yum.repos.d/nginx.repo

################################################

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/

gpgcheck=0

enabled=1

###################################################

# rpm  --import  http://nginx.org/keys/nginx_signing.key

# yum list available --disablerepo="*"  --enablerepo="nginx" | grep nginx

注:实际上,默认是拉最新包,只要仓库中有相关包,你可以指定需要下载的主包的版本,如  repotrack  nginx-1.14.2    -p /root/rpmDeps/  当然,前提是你要按套路出牌,别写错了指定版本的格式!


添加zabbix官方仓库

https://repo.zabbix.com/zabbix/4.3/rhel/7/x86_64

# rpm -ivh  https://repo.zabbix.com/zabbix/4.3/rhel/7/x86_64/zabbix-release-4.3-1.el7.noarch.rpm

# rpm -ql zabbix-release

# cat /etc/yum.repos.d/zabbix.repo

# yum list available --disablerepo="*" --enablerepo="zabbix" 

\


添加MySQL社区版官方仓库

https://repo.mysql.com

https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en



# rpm -ivh https://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm

# rpm -ql mysql57-community-release

# ll /etc/yum.repos.d/mysql-community*

# cat /etc/yum.repos.d/mysql-community.repo

# yum list available --disablerepo="*" --enablerepo="mysql57-community"


添加ceph官方仓库


国外官方仓库:

https://download.ceph.com

https://docs.ceph.com/docs/master/install/get-packages


阿里云镜像站: 

https://mirrors.aliyun.com/ceph

https://download.ceph.com/rpm-luminous/el7/x86_64





# vim /etc/yum.repos.d/ceph.repo

##############################################################

[ceph]

name=Ceph packages for $basearch

baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64

enabled=1

gpgcheck=0

##############################################################


# yum list available --disablerepo="*" --enablerepo="ceph"

# yum list available --disablerepo="*" --enablerepo="ceph" | grep ceph


上面只列了 epel、nginx、zabbix、mysql-community、ceph的官方仓库的添加方法,其他软件仓库添加方式类似,触类旁通,举一反三!

# ll /etc/yum.repos.d/



六、下载主包及依赖包

yum-utils是管理repository及扩展包的工具,包含一系列yum工具,本实验中我们用到其中的  repotrack,直接下载指定的包,包括所有依赖一块完成,实乃解决软件依赖之利器!

# yum -y install yum-utils

# yum  info  yum-utils

# repotrack --help



# repotrack  X  -p   /path/to/destDir

# repotrack  X*  -p   /path/to/destDir

注:此命令,会将软件包X和其全部依赖关系包一并下载到某个指定目录,支持通配符


我们用一个小脚本,将项目安装所需要的所有软件包及其依赖一次性下载

# vim  downloadDeps.sh

############################################################

#!/bin/bash

yum -y install yum-utils

mkdir -p /root/yum

rpms=(

  nginx

  keepalived

  bind

  ntp

  ntpdate

  libaio

  psmisc

  net-tools

  perl

  MySQL-python

  mysql-community-common

  mysql-community-libs

  mysql-community-client

  mysql-community-server

  mysql-community-libs-compat

  ceph

  ceph-base

  ceph-common

  ceph-mon

  ceph-mgr

  ceph-osd

  ceph-mds

  ceph-fuse

  httpd

  php

  php-mysql

  mod_ssl

  zabbix-server-mysql

  zabbix-web

  zabbix-web-mysql

  zabbix-sender

  zabbix-get

  zabbix-java-gateway

  php-gd

  php-bcmath

  php-mbstring

  php-xml

)

for rpm in ${rpms[@]}

do

  repotrack $rpm  -p /root/yum

done

############################################################

# sh  downloadDeps.sh | tee downloadDeps.log

# ll  /root/yum




createrepo 命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。


#  yum  -y install createrepo 

#  createrepo   -v  /root/yum

查看生成的仓库清单文件

# ll /root/yum/repodata/


现在我们可以将下载的主包及其依赖整个打包,拷贝到内网机器搭建本地yum,做离线安装了! 

# tar -zcf yum.tar.gz   /root/yum 


七、在内网机器搭建本地yum

将yum.tar.gz 拷贝到内网离线机器,搭建本地yum

#  mkdir  /tmp/install

# tar -zxf   yum.tar.gz  -C   /tmp/install


#  vim  /etc/yum.repos.d/yum.repo

############################################

[YUM]

name=Local Repositry

baseurl=file:///tmp/install/yum

enabled=1

gpgcheck=0

###############################################

# yum clean all 

# yum list available --disablerepo="*" --enablerepo="YUM" 

# yum  -y install   X  --disablerepo="*" --enablerepo="YUM" 


八、参考


【yum】解决离线安装依赖包的方法

//www.greatytc.com/p/6f4f9a80a726

【createrepo】createrepo生成仓库元数据,搭建本地yum源

//www.greatytc.com/p/5cb5af152e75

【yum】yum install --help

//www.greatytc.com/p/713979e2f9bc

【yum源】CentOS7安装第三方源

//www.greatytc.com/p/63fdf9875633

【yum】在CentOS7.x中使用yum安装软件的指定版本

//www.greatytc.com/p/ca3ddf69ca4e

【Nginx】CentOS7 上yum 安装nginx的最新版

//www.greatytc.com/p/ebe4489dae66

【nginx】nginx最新稳定版的安装

//www.greatytc.com/p/c2f579c44055

【repotrack】repotrack工具的使用

https://rnd-dev.com/download-rpm-and-dependencies-from-yum-repo/

https://www.thegeekdiary.com/downloading-rpm-packages-with-dependencies-yumdownloader-vs-yum-downloadonly-vs-repoquery


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349