软件仓库部署及应用

        随着某公司内部的Linux服务器不断增多,软件更新,系统升级等需求也逐渐凸显。为了提高软 件包管理效率,减少重复下载,公司要求部署一台软件仓库服务器,面向内网提供安装源。

需求描述

> 服务器使用CentOS7操作系统IP地址为192.168.4.254.

> 基于FTP方式为其他服务器提供软件安装源,使用yum命令安装软件。

> 软件仓库中的所有软件包均来自CentOS7的DVD光盘(或镜像文件)。

推荐步骤

①部署YUM软件仓库。

(1)从CentOS7光盘中安装vsftpd软件包,配置并启用vsftpd服务。

(2)创建目录/var/ftp/centos7.并将CentOS 7光盘中的内容复制到该目录下。

(3)在客户机访问ftp://192.168.4.254/centos7,确认能够下载软件仓库中的文件。

(4)在客户端(可以与服务端使用同一台主机)指定软件仓库位置。

② 使用 yum工具管理软件包。

(1)查看当前系统中已安装了哪些软件包,查看YUM软件仓库中有哪些软件包可用。

(2)搜索与DNS相关的软件包,并查看其中的描述信息。

(3)安装软件包net-snmp.卸载软件包autofs。

(4)执行"yum grouplist"命令,查看YUM软件仓库中的软件分组。

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

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

1.准备软件仓库目录

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

[root@node01 ~]# mount /dev/cdrom /mnt/
[root@node01 ~]# mkdir -p /var/ftp/centos7
[root@node01 ~]# cp -rf /mnt/* /var/ftp/centos7

 软件仓库部署及应用_第1张图片

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

[root@node01 ~]# mkdir /var/ftp/other
[root@node01 ~]# cd /var/ftp/other/
[root@node01 other]# createrepo -g /mnt/repodata/repomd.xml ./

软件仓库部署及应用_第2张图片

2.安装并启用vsftpd服务

[root@node01 ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm 
[root@node01 ~]# systemctl start vsftpd
[root@node01 ~]# systemctl enable vsftpd

软件仓库部署及应用_第3张图片

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

软件仓库部署及应用_第4张图片

软件仓库部署及应用_第5张图片

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

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

[root@node02 ~]# cd /etc/yum.repos.d/
[root@node02 yum.repos.d]# mv * /opt/

软件仓库部署及应用_第6张图片

[root@node02 ~]# vim /etc/yum.repos.d/centos7.repo


[base]                                   //仓库类别,可自定义
name=CentOS 7.3                          //仓库名称(说明),可自定义
baseurl=ftp://192.168.184.101/centos7    //URL访问路径
enabled=1                                //启用此软件仓库
gpgcheck=1                               //验证软件包的签名
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7  //GPG公钥文件的位置

[other]
name=Other RPM Packages
baseurl=ftp://192.168.184.101/other
enableed=1
gpgcheck=0                               //不验证软件包的签名

软件仓库部署及应用_第7张图片

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

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

 

以下是服务端配置yum源,与实验无关 

[root@node01 ~]# vim /etc/yum.repos.d/local.repo


[local]
name=CnetOS 7.3
baseurl=file:///mnt/
enabled=1
gpgcheck=0

软件仓库部署及应用_第8张图片

11.2.1查询软件包 yum

      工具的常见查询操作包括查询软件包列表、查询软件包的描述信息、查询指定的软件包. 分别可结合子命令list,info,search来实现。

1.yum list——查询软件包列表

      直接执行“yum list”命令可以获得系统中的软件安装情况,也可以查询软件仓库中可用的软件 包列表,其中子命令list表示列表查看。

[root@node02 ~]# yum list

已安装的软件包 

软件仓库部署及应用_第9张图片

可安装的软件包(来自服务端的yum源)

软件仓库部署及应用_第10张图片

      若执行‘yum list installed’命令,则表示只列出系统中已安装的软件包:若执行‘yum list available" 命令,则表示只列出软件仓库中可用(尚未安装)的软件包:若执行“yum list updates命令,则表示只列出可以升级版本的软件包。

2.yum info——查询软件包的描述信息

     当需要查看某个软件包的描述信息时,可以执行‘yum info软件包名”,其中子命令info表示获取信息。例如,执行以下操作可以查看软件包httpd的信息。

[root@node02 ~]# yum info httpd

软件仓库部署及应用_第11张图片

3.yum search——查询指定的软件包

      当需要根据某个关键词来查找相关的软件包时,可以执行“yum search关键词”,默认仅根据软 件包名称和描述信息进行搜索:若执行‘yum search all关键词”,可以扩大搜索范围。例如,执行 以下操作将搜索软件仓库并列出与“httpd”相关的软件包。

[root@node02 ~]# yum search all httpd

软件仓库部署及应用_第12张图片

注:通过执行查询操作“yum grouplist”“yum groupinfo分组名称”可 以获得YUM仓库中的软件分组信息。例如,执行“yum groupinfo gnome-desktop”命令后将列出软件分组gnome-desktop所包括的软件包 等信息。 cne

11.2.2安装、升级、卸载软件包

      使用yum工具安装、升级软件包,分别通过子命令install、update来完成,操作对象为指定的软件包名(可以有多个)。执行操作时会自动检查并解决软件包之间的依赖关系,期间会提示用户按Y 键确认安装或升级操作,若希望自动确认,可以在yum命令后添加“-y”选项。例如,执行以下操 作将从软件仓库下载并安装net-snmp软件包,并自动解决其依赖关系。

[root@node02 ~]# yum clean all
[root@node02 ~]# yum -y install net-snmp

软件仓库部署及应用_第13张图片

软件仓库部署及应用_第14张图片

软件仓库部署及应用_第15张图片 

     

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

[root@node02 ~]# yum -y remove autofs

软件仓库部署及应用_第16张图片

(4)执行yum grouplist命令,查看YUM软件仓库中的软件分组。

[root@node02 ~]# yum grouplist

软件仓库部署及应用_第17张图片

 

你可能感兴趣的:(linux,服务器,运维)