一、部署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
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
作为临时解决办法之一,实际上也可以使用本地文件夹作为软件仓库。例如.将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表示列表查看。
yum info——查询软件包的描述信息
当需要查看某个软件包的描述信息时,可以执行“yum info软件包名”,其中子命令info表示获取信息。例如,执行以下操作可以查看软件包httpd的信息。
yum search——查询指定的软件包
当需要根据某个关键词来查找相关的软件包时,可以执行“yum search关键词”.默认仅根据软件包名称和描述信息进行搜索﹔若执行“yum search all关键词”,可以扩大搜索范围。例如,执行以下操作将搜索软件仓库并列出与“httpd”相关的软件包.
通过执行查询操作“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
使用yum工具卸载软件包时,通过子命令remove来完成.卸载操作通过软件仓库也可以完成。
[root@localhost ~]# yum -y remove autofs
使用yum 工具管理软件包时,结合子命令groupinstall、groupupdate、groupremove可以针对软件分组进行安装、升级、卸载操作。例如,若执行“yum-y groupremove gnomc-desktop”命令,则会删除整个Desktop分组所包含的软件包。