YUM仓库服务

简介: YUM仓库服务

       通过源代码编译的方式安装程序在灵活性、可定制性方面具有无可比拟的优势,但也正因为这种特性给管理员带来了额外的维护开销,当应用在大规模的服务器群时存在一定的局限性。另外,在大规模的Linux应用环境中,如web集群,分布式计算等,服务器往往并不配备光驱设备,在这种情况下,如何为数十乃至上百台服务器裸机快速安装系统呢?传统的USB光驱、移动硬盘等安装方法显然已经难以满足需求。

部署YUE软件仓库

       借助于YUM软件仓库,可以完成安装、卸载、自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,而无需管理员逐个、手工地去安装每个rpm包,是管理员在维护大量linux服务器时更加轻松自如。特别是在拥有大量linux主机的本地网络中,构建一台源服务器可以大大缓解软件安装、升级等对internet的依赖。

       YUM的前身是YUP(Yellow dog Updater,Yellow dog Linux的软件更新器),最初由TSS公司(TerraSorf Solutions , INC)使用Python语言开发而出,后来由杜克大学的Linux开发队伍进行改进,命名为YUM(Yellow dog Updater , Modified)。

       要成功使用YUM机制来更新系统和软件,需要有一个包含各种rpm安装包文件及依赖软件的软件仓库,提供软件仓库的服务器也称为“源”服务器。在客户机中只要正确指定软件仓库的地址等信息,就可以通过对应的“源”服务器来安装或更新软件了。

环境如下

     

准备网络安装源(服务器端)

       YUM软件仓库通常借助于HTTP或FTP协议来进行发布,这样可以面向网络中的所有客户机提供软件源服务。为了便于客户机查询软件包,获取依赖关系等信息,在软件仓库中需要提供仓库数据,其中收集了目录下所有rpm包的头部信息。

准备软件仓库目录

       在CentOS7系统的安装光盘中,已针对软件目录Packages建立好repodata数据,因此只要简单地将整个光盘中的内容通过HTTP或FTP进行发布,就可以作为软件仓库了。例如,可以创建/var/ftp/centos7目录,并确保有足够的可用空间(建议大于5G),然后将CentOS7光盘的所有数据复制到该目录下。

1.  [root@localhost ~]# mkdir -p /var/ftp/centos7
2.  [root@localhost ~]# mount /dev/cdrom /media
3.  mount: /dev/sr0 写保护,将以只读方式挂载
4.  [root@localhost ~]# cp -rf /media/* /var/ftp/centos7/

       对于用户搜集的非centos7光盘自带的更多其他软件包(必须包括存在依赖关系的所有安装文件),除了准备相应的目录之外,还需要手动创建repodata数据文件,这就要用到createrepo工具(需要从CentOS7光盘中安装)。例如,若已将作为源发布的其他rpm安装包文件存放到/var/ftp/otenr目录下,则可执行以下操作为其创建repodata数据。

1.  [root@localhost ~]# mkdir /var/ftp/other
2.  [root@localhost ~]# cd /var/ftp/other/
3.  [root@localhost other]# createrepo -g /media/repodata/repomd.xml ./
4.  Saving Primary metadata
5.  Saving file lists metadata
6.  Saving other metadata
7.  Generating sqlite DBs
8.  Sqlite DBs complete

安装并启用vsftpd服务

1.  [root@localhost ~]# rpm -ivh /media/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm 
2.  警告:/media/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
3.  准备中...                          ################################# [100%]
4.  正在升级/安装...
5.     1:vsftpd-3.0.2-21.el7              ################################# [100%]
6.  [root@localhost ~]# systemctl start vsftpd
7.  [root@localhost ~]# systemctl enable vsftpd

       访问ftp://192.168.1.10/centos7/,确保可以查看到已复制到软件仓库目录/var/ftp/centos7下的光盘数据;访问ftp://192.168.1.10/other/,可以查看非CentOS7光盘自带的其他软件包。

配置软件仓库位置(客户端)

       在客户机上需要指定至少一个可用的软件仓库,然后才能使用下一节将要介绍的yum工具来下载、安装软件包。yum工具使用的软件仓库信息存放在/etc/yum.repos.d目录下扩展名为".repo"的文件中。以上一小节的网络安装源为例,典型的仓库配置如下所示。

1.  [root@localhost ~]# rm -rf /etc/yum.repos.d/*                 //删除原仓库
2.  [root@localhost ~]# vim /etc/yum.repos.d/centos7.repo         //创建新仓库
3.  [base]                                                        //仓库类别
4.  name=AAA                                                      //仓库名称(说明)
5.  baseurl=ftp://192.168.1.10/centos7                            //URL访问路径
6.  enabled=1                                                     //启用此软件仓库(默认开启)
7.  gpgcheck=0                                                    //验证软件包的签名

       上述操作中,文件centos7.repo需要手动创建,/etc/yum.repos.d目录下若有其他未用的“*.repo”文件建议将其删除。“enabled=1”为默认项,可以省略;“gpgcheck”配置用来检查软件包的完整性,若无此要求则可以省略。

验证:查看是否检查依赖关系安装samba

1.  [root@localhost ~]# yum -y install samba*
2.  ......          //省略部分
3.  Dependency Installed:
4.    pyldb.x86_64 0:1.1.26-1.el7            pytalloc.x86_64 0:2.1.6-1.el7          
5.    python-tdb.x86_64 0:1.3.8-1.el7_2      python-tevent.x86_64 0:0.9.28-1.el7    
6.  
7.  Complete!

配置本地yum仓库(服务器端)

       作为临时解决办法之一,实际上也可以使用本地文件夹作为软件仓库。例如,将CentOS7光盘挂载到/media/目录下以后,可以参考以下操作进行。注:这种方式仅限于在本机使用。

1.  [root@localhost ~]# rm -rf /etc/yum.repos.d/*
2.  [root@localhost ~]# vim /etc/yum.repos.d/local.repo
3.  [local]
4.  name=cnetos
5.  baseurl=file:///media/
6.  enabled=1
7.  gpgcheck=0

验证

1.  [root@localhost ~]# yum -y install samba*
2.  作为依赖被安装:
3.    pyldb.x86_64 0:1.1.26-1.el7            pytalloc.x86_64 0:2.1.6-1.el7          
4.    python-tdb.x86_64 0:1.3.8-1.el7_2      python-tevent.x86_64 0:0.9.28-1.el7    
5.  
6.  完毕!

使用yum工具管理软件包

查询软件包列表

1.  yum ilist 软件名
2.  [root@localhost ~]# yum list
3.  已加载插件:fastestmirror, langpacks
4.  Loading mirror speeds from cached hostfile
5.  已安装的软件包                                 //已安装的软件包列表
6.  ......//省略部分
7.  可安装的软件包                                 //可安装的软件包列表
8.  ......//省略部分
1.  yum list installed——列出已安装的软件包
2.  yum list available——列出yum仓库中未安装的软件包
3.  yum list updates——列出可以升级版本的软件包

查询软件包的描述信息

1.  yum info 软件名
2.  [root@localhost ~]# yum info httpd
3.  已加载插件:fastestmirror, langpacks
4.  Loading mirror speeds from cached hostfile
5.  可安装的软件包
6.  名称    :httpd
7.  架构    :x86_64
8.  版本    :2.4.6
9.  发布    :45.el7.centos
10.  大小    :2.7 M
11.  源    :local
12.  简介    : Apache HTTP Server
13.  网址    :http://httpd.apache.org/
14.  协议    : ASL 2.0
15.  描述    : The Apache HTTP Server is a powerful, efficient, and extensible
16.           : web server.

查询指定的软件包

       all选项表示可以扩大范围搜索。

1.  yum search 关键词
2.  [root@localhost ~]# yum search all httpd
3.  已加载插件:fastestmirror, langpacks
4.  Loading mirror speeds from cached hostfile
5.  ================================== 匹配:httpd ===================================
6.  httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
7.  httpd-manual.noarch : Documentation for the Apache HTTP server
8.  httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
9.  libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in
10.                       : applications
11.  httpd.x86_64 : Apache HTTP Server
12.  mod_dav_svn.x86_64 : Apache httpd module for Subversion server
13.  mod_fcgid.x86_64 : FastCGI interface module for Apache 2
14.  mod_ssl.x86_64 : SSL/TLS module for the Apache HTTP Server

安装、升级、卸载软件

       使用yum工具安装、升级软件包,分别通过子命令install、update来完成,操作对象为指定的软件包名(可以是多个)。yum命令后添加“-y”选项可以自动确认确定安装或升级操作。例如,执行以下操作将从软件仓库下载并安装net-snmp软件包,并自动解决依赖关系。

1.  [root@localhost ~]# yum -y install net-snmp
2.  已加载插件:fastestmirror, langpacks
3.  Loading mirror speeds from cached hostfile
4.  正在解决依赖关系
5.  --> 正在检查事务
6.  ......//省略部分
7.  作为依赖被安装:
8.    net-snmp-agent-libs.x86_64 1:5.7.2-24.el7_2.1                                  
9.  
10.  完毕!

       使用yum工具卸载软件包时,通过子命令remove来完成,卸载操作通过软件仓库也可以完成。例如,执行以下操作将卸载autofs软件包,并自动解决依赖关系。

1.  [root@localhost ~]# yum -y remove autofs
2.  已加载插件:fastestmirror, langpacks
3.  正在解决依赖关系
4.  --> 正在检查事务
5.  pa-client.x86_64 0:4.4.0-12.el7.centos                                         
6.  
7.  完毕!


相关文章
|
3月前
|
缓存
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
详解CentOS8更换yum源后出现同步仓库缓存失败的问题
122 0
|
6月前
|
Linux 应用服务中间件 nginx
CentOS7搭建yum源仓库(阿里源)
CentOS7搭建yum源仓库(阿里源)
1031 0
|
5月前
|
Linux Apache
Linux【环境部署 02】yum源镜像下载+挂载镜像+本地yum源配置+局域网yum源服务搭建+局域网yum源使用(一篇学会离线yum源配置)
Linux【环境部署 02】yum源镜像下载+挂载镜像+本地yum源配置+局域网yum源服务搭建+局域网yum源使用(一篇学会离线yum源配置)
551 0
|
存储 Linux 索引
CentOS7下同步阿里云CentOS7镜像并自建本地yum仓库
CentOS7下同步阿里云CentOS7镜像并自建本地yum仓库
1301 0
CentOS7下同步阿里云CentOS7镜像并自建本地yum仓库
|
16天前
|
缓存 Linux 测试技术
搭建本地YUM仓库
在Redhat 9系统中,通过挂载系统安装盘到/mnt,然后创建本地YUM仓库以实现软件包管理。首先查看磁盘挂载情况,将ISO镜像挂载到/mnt。接着,备份`/etc/yum.repos.d/`目录内容,删除原有仓库,创建`loaclhost.repo`文件并配置指向/mnt中的Package目录。运行`yum clean all`清除缓存,`yum makecache`建立元数据。最后,成功通过新配置的本地仓库安装了bind软件及其依赖。
32 3
|
9月前
|
消息中间件 Linux
centos7 yum快速安装rabbitmq服务
centos7 yum快速安装rabbitmq服务
139 0
|
5月前
|
缓存
简易yum仓库搭建
简易yum仓库搭建,实验准备,获取yum仓库、安装httpd,客户机配置yum源,测试、验证
68 0
|
8月前
|
缓存 安全 网络协议
部署YUM仓库及NFS共享服务
部署YUM仓库及NFS共享服务
160 0
|
9月前
|
缓存 运维
【运维知识进阶篇】一键部署yum本地仓库
【运维知识进阶篇】一键部署yum本地仓库
280 0
|
12月前
[There are unfinished transactions remaining.]【使用本地YUM源安装服务报错解决方法】
[There are unfinished transactions remaining.]【使用本地YUM源安装服务报错解决方法】