.YUM的概念和作用
YUM的前身是YUP(Yellow dog Updater,Yellow dog Linux的软件更新器),最初由TSS公司(Terra Soft Solutions,INc.)使用Python语言开发而成,后来由杜克大学(DuckUniversity)的Linux开发队伍进行改进,命名为YUM(Yellow dog Updater,Modified)
作用
YUM软件仓库,可以完成安装、卸载、自动升级rpm软件包等任务,能够自动査找并解决rpm包之间的依赖关系/
2.软件仓库的提供方式
FTP服务:ftp://......
HTTP服务:http://......
本地目录:file:///.
3.RPM软件包来源Red Hat发布的RM包集合
第三方组织发布的RPM包集合
用户自定义的RPM包集合
4.yum
便于客户机查询软件包,获取依赖关系等信息,在软件仓库中需要提供仓库数据(Repodata),其中收集了目录下所有rpm包的头部信息
5.YUM工具概述
关于YUM命令
由软件包yum-3.2.29-40.el6.noarch提供
用来访问YUM仓库,查询、下载及安装、卸载软件包
yum的配置文件
基本设置:/etc/yum.conf
仓库设置:/etc/yum.repos.d/*.repo
日志文件:/var/log/yum.log
repodata:rpm头部包信息
packages: 各种rpm包
YUM缓存目录
存放下载的软件包、仓库信息等数据
位于/var/cache/yum/$basearch/$releasever
$basearch:硬件架构,如x86_64
$releasever:OS版本
清理YUM缓存
[root@client ~]# yum clean all
重建YUM缓存
[root@localhost ~]# yum makecache
查询软件包
yum list [软件名]...
yum info [软件名]...
yum search <关键词>
[root@localhost ~]# yum list
[root@localhost ~]# yum list httpd vsftpd
[root@localhost ~]# yum info
[root@localhost ~]# yum info vsftpd
[root@localhost ~]# yum search "httpd"
查询软件包组
yum grouplist [包组名]...
yum groupinfo <包组名>..
[root@localhost ~]# yum grouplist
[root@localhost ~]# yum grouplist "带 GUI 的服务器"
[root@localhost ~]# yum groupinfo "带 GUI 的服务器"
安装软件、升级软件
yum install [软件名]
yum groupinstall <包组名>
yum update
yum groupupdate
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# yum -y groupinstall "带 GUI 的服务器"
[root@localhost ~]# yum -y update
//-y 表示自动确认
卸载软件
yum remove <软件名>...
yum groupremove <包组名>...
[root@localhost ~]# yum -y remove autofs
[root@localhost ~]# yum -y groupremove "带 GUI 的服务器"
使用YUM更新方式的好处是什么?
自动解决依赖关系/方便的管理软件仓库/安全更新/批量安装和更新/系统一致性/易于回滚/节省网络带宽和磁盘空间/社区支持
YUM软件仓库可以通过哪几种方式提供
本地目录/FTP服务/HTTP服务/第三方组织发布的RPM包集合/用户自定义的RPM包集合/网络中的开源镜像站/光盘或ISO镜像
如何为Linux服务器指定YUM软件仓库的位置?
1、创建或选择存储库文件:
在/etc/yum.repos.d/目录下创建一个新的.repo文件。例如,创建一个名为myrepo.repo的文件。
使用文本编辑器打开该文件,如vi /etc/yum.repos.d/myrepo.repo。
2、编辑存储库配置文件
[myrepo]
name=My Repository
baseurl=http://example.com/path/to/repository/
enabled=1
gpgcheck=0
name是存储库的名称。
baseurl是存储库的URL地址,指向包含RPM包的目录。
enabled设置为1表示启用该存储库,0表示禁用。
gpgcheck设置为1表示启用GPG签名检查,0表示禁用。
3、清除YUM缓存:
为了使新的存储库生效,需要清除YUM的缓存。运行命令:sudo yum clean all。
4、测试存储库:
运行命令:sudo yum repolist,以列出所有已启用的存储库。如果新添加的存储库出现在列表中,说明设置成功
.1.1、构建CentOS 7 软件仓库
RPM包来自CentOS 7 DVD光盘
通过FTP、HTTP或本地目录提供给客户机
1、关闭防火墙
[root@PXE ~]# systemctl stop firewalld
2、为vsftpd创建匿名访问的根目录
[root@PXE ~]# mkdir -p /opt/ftp
3、安装vsftpd
[root@PXE ~]# yum -y install vsftpd
4、修改配置文件指定匿名用户根目录
vim /etc/vsftpd/vsftpd.conf
anon_root=/opt/ftp
5、测试
vsftpd服务端创建测试文件:
[root@PXE centos-7]# touch /opt/ftp/yum.test
ftp客户端测试下载:
[root@client ~]# wget ftp://172.22.1.100/yum.test
--2024-05-23 17:02:36-- ftp://172.22.1.100/yum.test
=> “yum.test”
正在连接 172.22.1.100:21... 已连接。
正在以 anonymous 登录 ... 登录成功!
==> SYST ... 完成。 ==> PWD ... 完成。
==> TYPE I ... 完成。 ==> 不需要 CWD。
==> SIZE yum.test ... 完成。
==> PASV ... 完成。 ==> RETR yum.test ... 完成。
[ <=> ] 0 --.-K/s 用时 0s
2024-05-23 17:02:36 (0.00 B/s) - “yum.test” 已保存 [0]
6、删除测试文件,并挂载光盘,将关盘数据复制到vsftpd的根目录
[root@PXE cdrom]# rm /opt/ftp/yum.test
rm:是否删除普通空文件 "/opt/ftp/yum.test"?y
[root@PXE centos-7]# mkdir /media/cdrom
[root@PXE centos-7]# mount /dev/cdrom /media/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@PXE cdrom]# mkdir /opt/ftp/centos-7
[root@PXE cdrom]# cp -rf /media/cdrom/* /opt/ftp/centos-7
[root@PXE cdrom]# ls /opt/ftp/centos-7
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
、在软件仓库加入非官方RPM包组
包括存在依赖关系的所有RPM包
使用createrepo工具建立仓库数据文件
1、创建数据库文件目录
[root@PXE ~]# mkdir /opt/ftp/other
2、使用createrepo工具建立仓库数据文件
[root@PXE ~]# cd /opt/ftp/other/
[root@PXE other]# createrepo -g /media/cdrom/repodata/repomd.xml ./
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
为客户机指定YUM仓库位置
配置文件:/etc/yum.repos.d/*.repo
1、进入/etc/yum.repos.d/,备份原先的配置文件
[root@client ~]# cd /etc/yum.repos.d/
[root@client yum.repos.d]# ls
CentOS-Base.repo CentOS-fasttrack.repo CentOS-x86_64-kernel.repo
CentOS-Base.repo.backup CentOS-Media.repo epel.repo
CentOS-CR.repo CentOS-Sources.repo epel-testing.repo
CentOS-Debuginfo.repo CentOS-Vault.repo
[root@client yum.repos.d]# mkdir bak
[root@client yum.repos.d]# mv *.repo bak
2、使用自建源创建YUM仓库
[root@client yum.repos.d]# vim centos-7.repo
[base]
name=CentOS-7
baseurl=ftp://172.22.1.100/centos-7
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[other]
name=Other RPM Packages
baseurl=ftp://172.22.1.100/other
enabled=1
gpgcheck=0
3、清理YUM缓存并重建
[root@client yum.repos.d]# yum clean all
已加载插件:fastestmirror
正在清理软件源: base other
Cleaning up list of fastest mirrors
Other repos take up 510 M of disk space (use --verbose for details)
[root@client yum.repos.d]# yum makecache
已加载插件:fastestmirror
Determining fastest mirrors
base | 3.6 kB 00:00
other | 3.6 kB 00:00
(1/8): base/group_gz | 153 kB 00:00
(2/8): base/primary_db | 3.3 MB 00:00
(3/8): base/filelists_db | 3.3 MB 00:00
(4/8): base/other_db | 1.3 MB 00:00
(5/8): other/group_gz | 1.1 kB 00:00
(6/8): other/filelists_db | 586 B 00:00
(7/8): other/primary_db | 1.1 kB 00:00
(8/8): other/other_db | 575 B 00:00
元数据缓存已建立
4、查看YUM源列表
[root@client yum.repos.d]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识 源名称 状态
base CentOS-7 4,071
other Other RPM Packages 0
repolist: 4,071
构建本地YUM源
1、挂载光盘
[root@client ~]# mount /dev/cdrom /media/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载
2、创建本地YUM源
[root@client yum.repos.d]# vim local.repo
[local]
name=CentOS 7.9
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
3、清理YUM缓存并重建
[root@client ~]# yum clean all
已加载插件:fastestmirror
正在清理软件源: local
Cleaning up list of fastest mirrors
Other repos take up 562 M of disk space (use --verbose for details)
[root@client ~]# yum makecache
已加载插件:fastestmirror
Determining fastest mirrors
local | 3.6 kB 00:00
(1/4): local/group_gz | 153 kB 00:00
(2/4): local/filelists_db | 3.3 MB 00:00
(3/4): local/primary_db | 3.3 MB 00:00
(4/4): local/other_db | 1.3 MB 00:00
元数据缓存已建立
第二部分:部署PXE远程安装服务
PXE (预启动执行环境) 是由 Intel 公司设计的协议,它可以使计算机通过网络启动。
当计算机引导时,BIOS 把 PXE client 调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
除了可以通过网络直接运行操作系统外,也可以用于通过网络来将系统安装到本地。在运维中工作中,通过 PXE 来为机房服务器批量部署系统是非常方便的。
特点:
规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质
先决条件
客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导;
网络中必须有一台DHCP服务器为客户机分配IP地址、指定引导文件的位置;
服务器通过TFTP(简单文件传输协议)提供引导镜像文件的下载;
准备带有桌面环境的服务器,用于生成自动化部署系统文件,也可在其他带有桌面环境的服务器中生成自动化部署系统文件拷贝至当前服务器使用;
关闭服务器防火墙、seLinux;
PXE网络批量装机步骤
安装FTP服务并准备CentOS 7 安装源;
安装TFTP服务并启动;
准备Linux内核、初始化镜像文件;
准备PXE引导程序、启动菜单文件;
安装并启动DHCP服务;
验证PXE网络安装效果。
客户机测试装机,客户端内存必须2G以上,否则将会出现以下错误:
默认客户端硬盘都没有任何数据,因此开机后无法读取系统则会从网卡启动,
所以不需要调整boot为网卡启动,设置后反而会出现反复重装系统的问题。
显示以下界面后输入选项有:
A.直接回车,安装图形化界面
B.linux text,命令行安装
C.linux rescue,救援模式
boot:
回车后可直接进入图形化界面进行安装。
在”分区信息”中划分磁盘分区,根据公司实际情况划分,实验阶段可像如下图所示划分:
先划分swap,再划分boot,最后把所有剩余空间分配给”/”
{
socket_type = dgram //服务使用的套接字类型
protocol = udp //服务使用的协议
wait = no //将yes改为no,是否等待客户端连接
user = root //运行服务的用户
server = /usr/sbin/in.tftpd //TFTP服务器的可执行文件路径
server_args = -s /var/lib/tftpboot //将文件存储在/var/lib/tftpboot目录下
disable = no //将yes改为no,指定是否禁用该服务
per_source = 11 //每个客户端的最大并发连接数
cps = 100 2 //每秒允许的最大连接数,这里是100个连接,每个连接最多处理2个请求
flags = IPv4 //服务支持的IP版本
}