你好
一、构建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
httpd 安装httpd单个软件包 -
yum -y groupinstall
gnome-desktop 安装gnome-desktop(桌面)软件包组 -
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