Linux高级管理——yum仓库服务

一、部署yum软件仓库:

借助于YLM软件仓库,可以完成安装.卸载、自动升级rpm软件包等任务。YUM的前身是YUP (Yellow dog Updater, Yellow dog Linux的软件更新器),最初由TSS公司(TerraSoft Solutions,INC.)使用Python语言开发而成.后来由杜克大学(Duck Uhiversity)的Linux开发队伍进行改进,命名为YUM (Yellow dog Updater ,Modified).

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

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

[root@xiao ~]# mount /dev/cdrom /mnt   ##挂载
[root@xiao ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-25.el7.x86_64.rpm   ##安装vsftp服务

[root@xiao ~]# mkdir -p /var/ftp/centos7
[root@xiao ~]# cp -rf /mnt/ /var/ftp/centos7

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

[root@localhost ~]# mkdir /var/ftp/other
[root@localhost ~]# cd /var/ftp/other/
[root@localhost other]# createrepo -g /mnt/repodata/reomd.xml ./
[root@localhost other]# ls
repodata

 启用vsftp服务:

[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

连接ftp:

[root@localhost ~]# ftp 192.168.10.66

Linux高级管理——yum仓库服务_第1张图片 

1.2 配置软件仓库:

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

[root@xiao ~]# vi /etc/yum.repos.d/centos.repo

[base]
[base]
name=centos 7.3
baseurl=ftp://192.168.10.66/centos7
enabled=1
gpgcheck=0
 
[other]
name=Other RPM packages
baseurl=ftp:// 192.168.10.66/other
enabled=1
pgcheck=0

Linux高级管理——yum仓库服务_第2张图片

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

##服务器本地软件仓库配置

[root@localhost ~]# vi /etc/yum.repos.d/local.repo  

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

2.使用yum工具管理软件包: 

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

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

Linux高级管理——yum仓库服务_第3张图片

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

Linux高级管理——yum仓库服务_第4张图片

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

Linux高级管理——yum仓库服务_第5张图片

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

2.2 安装、升级、卸载软件包:

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

例如,执行以下操作将从软件仓库下载并安装net-snmp 软件包,并自动解决其依赖关系。

[root@localhost ~]# yum -y install net-snmp

 Linux高级管理——yum仓库服务_第6张图片

使用yum工具卸载软件包时,通过子命令remove来完成.卸载操作通过软件仓库也可以完成。

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

使用yum 工具管理软件包时,结合子命令groupinstall、groupupdate、groupremove可以针对软件分组进行安装、升级、卸载操作。例如,若执行“yum-y groupremove gnomc-desktop”命令,则会删除整个Desktop分组所包含的软件包。
 

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