你好

一、构建YUM软件仓库服务

1.YUM概述及作用

YUM的前身是YUP(Yellow dog Updater),TSS公司使用Python开发,改进后命名为YUM(Yellow dog Updater Modified)

  • 基于RPM包构建的软件更新机制
  • 可以自动解决依赖关系
  • 所有软件包由集中的YUM软件仓库提供

2.软件仓库的提供方式

  • FTP服务:ftp://…………
  • HTTP服务:http://………… //要使用需要连接外网
  • 本地目录:file://………… //安全性要求较高环境适用,无需网络

3.RPM软件包的来源

  • Centos发布的RPM包集合
  • 第三方组织发布的RPM包集合
  • 用户自定义的RPM包集合

4.准备安装源(服务器端)

先安装vsftpd服务程序

(1)构建Centos 7软件仓库

  • RPM包来自于Centos 7 DVD光盘
  • 通过FTP、HTTP或本地目录提供给客户机
[root@ns1 ~]# mkdir -p /var/ftp/centos7
/创建目录作为软件仓库

[root@ns1 ~]# cp -rf /media/cdrom/* /var/ftp/centos7/
/先将光盘挂载到/media/cdrom,
再将Centos 7光盘中的所有数据复制到/var/ftp/centos7目录下

([root@ns1 ~]# mount /dev/sr0 /var/ftp/centos7/)
/也可以直接将光盘挂载到/var/ftp/centos7目录下

(2)在软件仓库中加入非官方RPM包组

  • 包括存在依赖关系的所有RPM包
  • 需要使用createrepo工具建立仓库数据文件
[root@ns1 ~]# mkdir /var/ftp/other    /创建目录other作为仓库
[root@ns1 ~]# cd /var/ftp/other/

[root@ns1 other]# createrepo -g /var/ftp/centos7/repodata/repomd.xml ./
/将Centos 7 光盘的repodata数据文件作为样板,创建other仓库的repodata数据

[root@ns1 repodata]# pwd
/var/ftp/other/repodata
[root@ns1 repodata]# ls
01a3b489a465bcac22a43492163df43451dc6ce47d27f66de289756b91635523-filelists.sqlite.bz2
1d887c3c3a620dbc9310a2eeff1929e021978fea8cb604d179ebde5a8a4b4441-repomd.xml.gz
…………
  • 确保客户端能访问软件仓库
[root@ns2 ~]# ftp 192.168.100.200

ftp> ls
drwxr-xr-x    8 0        0            2048 May 03  2018 centos7
drwxr-xr-x    3 0        0              22 Jun 28 07:10 other

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

客户机端:主机名:ns2.cool.com IP地址:192.168.100.160

  • ftp服务提供
[root@ns2 ~]# cd /etc/yum.repos.d/   /进入yum仓库目录

[root@ns2 yum.repos.d]# mkdir back   
[root@ns2 yum.repos.d]# mv *.repo back  
/将默认的各个仓库文件,移动到back目录下

[root@ns2 yum.repos.d]# cp /etc/yum.repos.d/back/CentOS-Media.repo my-centos7.repo
/复制一份仓库文件,在此基础上修改

[root@ns2 yum.repos.d]# vim my-centos7.repo
[my-ftp-centos7-repo]         /仓库类别,自定义
name=my ftp c7 repo           /仓库名称(说明),自定义
baseurl=ftp://192.168.100.200/centos7  /URL访问路径
gpgcheck=0                         /验证软件包签名,1验证,0不验证
enabled=1                          /启用此软件仓库,1启用,0不启用
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7  /GPG公钥文件位置,注释掉
/centos7仓库

[my-ftp-other-repo]
name=my ftp other repo
baseurl=ftp://192.168.100.200/other
gpgcheck=0
enabled=1
/other仓库

[root@ns2 yum.repos.d]# yum clean all     /清空缓存
[root@ns2 yum.repos.d]# yum repolist      /重新加载仓库
repo id                  repo name            status
my-ftp-centos7-repo      my ftp c7 repo         0
my-ftp-other-repo        my ftp other repo      0
/加载成功
  • 本地目录提供
[root@ns2 yum.repos.d]# mount /dev/sr0 /media/cdrom/

[root@ns2 yum.repos.d]# vi my-DVD.repo
[my-dvd]
name=my-dvd-repo
baseurl=file:///media/cdrom
enable=1
gpgcheck=0
  • HTTP服务提供
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
/浏览器选择一个镜像网站,如阿里云镜像,根据提示下载仓库文件

[root@ns2 yum.repos.d]# ls
CentOS-Base.repo              /下载完成

二、使用YUM工具管理软件包

1.YUM工具概述

(1)关于YUM命令

  • 由软件包yum-3.4.3-158.el7.centos.noarch提供
  • 用来访问YUM仓库,查询、下载及安装、卸载软件包

(2)YUM的配置文件

  • 基本设置:/etc/yum.conf
  • 仓库设置:/etc/yum.repos.d/*.repo
  • 日志文件:/var/log/yum.log

(4)YUM缓存目录

  • 存放下载的软件包、仓库信息等数据
  • 位于 /var/cache/yum/目录下

2.YUM命令

  • yum list
yum list                 /查看全部列表
yum list installed       /只列出已安装软件包
yum list available       /只列出仓库中可用(尚未安装)的软件包
yum list updates         /只列出可升级软件包

yum list httpd           /查看指定列表
……
Available Packages
httpd.x86_64     2.4.6-93.el7.centos              bas
  • yum info
yum info          /查询全部软件包信息

yum info httpd vsftpd   /查询指定的两个软件包信息
……
Available Packages
Name        : httpd
Arch        : x86_64
Version     : 2.4.6
Release     : 93.el7.centos
Size        : 2.7 M
Repo        : base/7/x86_64
Summary     : Apache HTTP Server
URL         : http://httpd.apache.org/
License     : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
            : web server.

Name        : vsftpd
Arch        : x86_64
……
  • yum search
yum search httpd   /查询指定软件包 
  
========================================== Matched: httpd ===========================================
keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
libmicrohttpd-doc.noarch : Documentation for libmicrohttpd
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
……

yum search all httpd   /扩大搜索范围
  • yum grouplist
[root@ns2 ~]# yum grouplist    

[root@ns2 ~]# yum grouplist gnome-desktop  /查询指定的软件包组
Available Environment Groups:
   GNOME Desktop
   …………
  • yum groupinfo
[root@ns2 ~]# yum groupinfo                 

[root@ns2 ~]# yum groupinfo gnome-desktop    /查询指定的软件包组
  • yum -y install
  • yum -y groupinstall
  • yum -y update
  • yum -y groupupdate
  • yum -y remove
  • yum -y groupremove
  • yum provides
[root@ns2 ~]# yum provides ftp

ftp-0.17-67.el7.x86_64 : The standard UNIX FTP (File Transfer Protocol) client
Repo        : base