第十五章 yum安装

第十五章 yum安装

15.1 yum源配置

我们在《Linux系统》一书中介绍过yum的配置,是把光盘作为安装源操作的,配置文件在/etc/yum.repos.d/下,以.repo结尾。其实yum可以设置多个repo文件,即从多个源上下载、查找安装包。本章就来介绍一下有几种镜像源可以设置。

15.1.1 官网源

我们知道CentOS安装完毕后,/etc/yum.repos.d/中会有多个CentOS开头的repo文件,这些文件都是指向官网的,我们可以打开一个看一下:

当然,里面不只[base]一项,不过启动方式都一样。会发现里面的baseurl项被注释了,我们可以手动解注释后,把mirror行注释掉,再写入enabled=1就可以了。如果不想使用其他的,完全可以把其他项都删除。

PS:mirror指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释禁用了,其实系统会自动把版本号和架构(如:i386等)加入后,指定官方可用的镜像服务器的地址列表。

其实,/etc/yum.repos.d/中的默认的除了CentOS-Base.repo以外,其他文件中的baseurl都是启用的,所以只要连网,是可以直接使用yum安装软件的,都会从官网直接下载。

15.1.2 第三方源(epel源)

除了官网源和光盘源外,还有第三方机构架设的镜像源,一般是一些非官方出台的软件,会在一些机构架设的镜像源上能够查找到。现今,网络上使用比较多的镜像源有清华tuna源、163镜像源、阿里镜像源等。

这种镜像源,配置非常简单,一般会有三种情况:

一、我们从网上下载到它们公布的epel文件,有的是rpm后缀的,安装后就会自动创建.repo文件,指向公网地址。

二、可以直接下载到.repo文件,复制到/etc/yum.repos.d/下即可使用

三、可以找到镜像源的url路径,直接写到自定义的.repo文件中的baseurl=后即可。

15.1.3 相关命令

我们都知道,yum -y install 是安装软件的命令,但其实还有很多隐藏的参数可以设置,如下:

yum --enablerepo=demo install 软件名–y ---指定使用哪个源文件

注:当/etc/yum.repos.d/下有多个.repo文件时,我们可以使用--enablerepo参数指定使用哪个源,注意,这里设置的源,不是.repo文件的名字,而是源文件里[]中设置的项名。

再来看下一个命令:

yum -y install--downloadonly --downloaddir=/mnt nagios ---仅下载,不安装,其中nagios是要下载的软件名

这个命令中,--downloadonly参数的功能是仅从设定的安装源上(可以上官网源或epel源)做软件包的下载,不真正安装,--downloaddir参数是指定下载到哪个目录中。这样我们就可以收集所需要的软件包及其依赖包了,就可以给多台主机使用了。

15.2 配置自定义镜像源

我们把所有需要的软件包,收集完整,可以自己创建一个镜像源。这种方式比较适合于企业局域网内,创建内部镜像源,供内网内其他主机使用。

创建内部镜像源的思路非常简单,可以使用web服务或ftp服务把所有软件包发布出来,然后在客户机上配置.repo文件,指向该服务器即可。下面我们来举例说明:

假设,我们人为收集的所有软件包都放在服务器的/mnt/rpms/目录下,然后在服务器上部署apache服务,我们知道,apache服务的网页默认存放位置是/var/www/html/下,所以我们可以在其下创建一个软链接,链接到/mnt/rpms/下:

ln -s /mnt/rpms /var/www/html/rpms

PS:因为apache配置文件中默认option indexes followsymlinks 都是开启的,所以软链接是可以使用的。

systemctl restart httpd ---启动httpd服务

可以在客户端打开web页面验证一下访问的成功,并可以进入到rpms目录下,看到所有安装包。

然后在/mnt/rpms/下需要生成依赖关系文件。依赖关系文件?好像之前没有讲过,那么下面我们就先来介绍一下这个文件的功能。我们知道yum的功能是安装软件时自动下载软件的依赖包并安装,那么yum怎么知道要安装的软件的依赖包都有哪些呢?其实yum是要到指定的目录下找到repodata目录,再进入该目录下读取repomd.xml的文件,这个文件中会记录安装源目录下所有包的依赖关系。yum就是根据查到的这些依赖关系逐一检查并安装依赖包的。这个repodata/repomd.xml文件,在光盘上是已经存在的,即已经事先写好了,所以我们使用光盘作为yum源时直接yum install安装就好了。但是,我们自己收集的软件包,存到/mnt/rpms/中后,并没有制作repodata/repomd.xml文件,所以yum install 是无法正确执行的。

所以,我们需要手动创建依赖关系文件,这就需要用到createrepo命令,但是这个命令可能并没有安装过,所以我们先通过光盘源yum -y install createrepo 安装上这个命令。然后执行下面命令:

createrepo -v /mnt/rpms

这个命令会自动根据目录下安装包的依赖需求,生成依赖关系文件。生成后可用ls命令查看到repodata目录及其内部文件。这样我们的http镜像源服务器就搭建好了。

在客户端主机上,我们可以编辑.repo文件,写入url路径指向就可以使用了,内容如下:

vi /etc/yum.repos.d/rpms.repo

[rpms]

name=httpd rpms

baseurl=http://192.168.10.10/rpms #指定url路径

enabled=1

gpgcheck=0

保存退出后,客户端就可以用yum install 安装服务器发布出的软件了。

同样,使用FTP服务也可以发布安装源。因为我们需要使用ftp服务的匿名用户登录,所以需要把所有软件包存放到/var/ftp/下(匿名用户默认登录目录):

mv /mnt/rpms /var/ftp/

createrepo -v /var/ftp/rpms ---同样需要创建依赖关系文件

systemctl restart vsftpd ---启动ftp服务

这样,我们的FTP安装源就部署好了。

客户机同样需要配置.repo文件,只不过里面的baseurl项设置为:

baseurl=file://192.168.10.10/rpms

客户机配置好repo文件后,也就可以yum install 安装了。

15.3 小结

本章介绍了yum安装的客户配置及服务端发布镜像源的设置。其中比较重要的是,用户需要掌握如何设置官网源、epel源、光盘源、内部共享源的设置,并且可以实现多源并存的使用。

再者,作为运维人员,我们还要掌握如何为企业内网提供web源、ftp源的支持,也就是搭建内部的web源或ftp源。

本文分享自微信公众号 - 教主小筑(gh_e0879483602d)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Rainbond用户案例分享【第二期】

    前段时间,我作为Rainbond官方交付工程师,受一家企业级客户所托,要将一批正在生产环境上运行的应用,完整的迁移到一个新平台上。这项工作完成后,在征得了客户同...

    Rainbond开源
  • 推荐 GitHub 上值得前端学习的开源实战项目

    获取真实链接请点击:https://github.com/biaochenxuying/blog/issues/32

    夜尽天明
  • 理解算法的时间复杂度[每日前端夜话0x82]

    在计算机科学中,算法分析是非常关键的部分。找到解决问题的最有效算法非常重要。可能会有许多算法能够解决问题,但这里的挑战是选择最有效的算法。现在关键是假如我们有一...

    疯狂的技术宅
  • WebIDE some installation screenshot

    The local installation version of SAP Web IDE is a trial shipment provided on SA...

    Jerry Wang
  • 部署明星关系图谱那些事儿(GitHub Pages)

    时光飞逝,距离发布上一篇文章 InteractiveGraph 实现酷炫关系图谱之前瞻 已经过去了近两个月,嘴上说着会马上把实战“娱乐圈明星关系图谱”的代码开源...

    古柳_DesertsX
  • Linux服务器被植入木马挖矿该怎么处理解决

    很多客户网站服务器被入侵,被攻击,找到我们SINE安全公司寻求技术支持与帮助,有些网站被篡改,被跳转,首页内容被替换,服务器植入木马后门,服务器卡顿,服务器异常...

    技术分享达人
  • push failed in WebIDE

    下面这个问题提交不了的问题是因为提交时在WebIDE里没有自动生成change id造成的。继而,在git里压根看不到对应的entry。 所以在WebIDE里...

    Jerry Wang
  • 老焦专栏 | 为什么我们要成为全栈工程师?

    最近我身边的几个技术专家都在学习前端技术(VUE)的开发,为什么他们要学习前端技术呢?因为随着软件技术的发展,全栈工程师已然成为未来发展趋势,对大部分技术人而言...

    yuanyi928
  • 来,科普一下JWT

    JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信...

    lyb-geek
  • Apache禁止ip访问网站,禁止ip访问规则下载

    网站遇到恶意镜像,是很烦人的,他们的作弊方法复制自己的网站。 我相信很多网站管理员都遇到过这些问题。 今天全百科教大家如何禁止对其网站的IP访问。

    于飞云计算

扫码关注云+社区

领取腾讯云代金券