目录
yum --> 软件管理工具 --> 基于rpm方式但更胜于rpm的软件管理工具
YUM的基本工作流程如下:
YUM相关文件存放:
YUM的相关命令
YUM的软件群组功能
无网络情况下进行软件安装(即搭建本地yum源服务器)
多个YUM源的优先级问题
基于ftp的yum源服务器
在本地YUM源中增加自己的软件包(官方yum没有提供无法直接yum安装的)
问题:
yum --> 软件管理工具 --> 基于rpm方式但更胜于rpm的软件管理工具
优点:
- 更方便的管理rpm软件包
- 自动解决rpm包的依赖关系
- 可以配置多个资源仓库
资源仓库:repository --> /etc/yum.repos.d
YUM的基本工作流程如下:
- 服务器端:在服务器上面存放了所有的RPM软件包,搭建ftp或者http提供软件下载,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。
- 客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过www或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。
- 先下载解决依赖关系的元文件,根据元文件分析安装A软件时还需要下载哪些软件,依赖关系的分析,然后去下载所有需要的软件,安装完成后,直接删除刚刚下载的除A软件之外的软件
YUM相关文件存放:
- RHEL(Red Hat Enterprise Linux)默认已经安装YUM
- YUM的配置文件:/etc/yum.conf
- YUM的缓存目录(元数据目录):/var/cache/yum --> centos7
- /var/cache/dnf --> centos8
- YUM的日志目录:/var/log/yum.log
- 创建仓库索引文件的软件包:createrepo.noarch(未安装)
以下是yum的配置文件,以下仅列出base这个软件库
- vim /etc/yum.repos.d/CentOS-Base.repo
复制代码

然后解释一下 这几行的大致意思
[仓库的名字]
| 源的名字 --> 名字可以定义
| name
| 后面是对仓库(源)进行简单的介绍
| mirrorlist
| 镜像站点的列表 --> 有哪些镜像可以使用 --> 合作伙伴的服务器
| baseurl
| 是直接访问centos官方的服务器下载软件
| gpgcheck
| 客户端下载软件后进行安装时,是否对下载的软件进行gpg签名的验证 --> 防止软件不是官方的,会有病毒,centos官方出品的每个软件都有签名(防伪标志),1是表示进行签名的检查,0表示不进行签名的检查;gpg是一种加密算法
| gpgkey
| 提供公钥文件的路径,供gpgcheck使用
| enabled=0
| 是否使用这个源 1 表示可以使用 0 表示禁用
| 三个源仓库意思
[base]
| 绝大多数的软件都在这个源里
| [updates]
| 更新使用的源
| [extras]
| 扩展的源 --> epel
| 除了以上几个源外,Linux还有个第三方库叫epel,epel源里提供了很多第三方强大的软件
通过安装 epel-release 会得到 epel 源

YUM的相关命令
1.列出 yum 服务器上面提供的所有软件名称
[root@kafka01 ~]# yum list

-
@anaconda
| 表示安装系统的时候安装
| @base
| 表示后来通过baase源安装
| @AppStream 、@BaseOS
| 表示通过官方源安装
| @epel(extras)
| 表示通过epel(第三方)源安装
| installed
| 使用rpm命令安装
| 前面没有@符号
| 表示没有安装但可以安装的软件,通过没有@符号的源安装
|
也可以模糊列出 yum list pam*
2.yum repolist 列出服务器能使用的源(以下为Centos7)

3.yum search 搜寻某个软件名称或是描述的重要关键词(查询名字里包含raid的软件包)

- 在冒号:左边的是软件名称,右边的则是在 RPM 内的 name 设定 (软件名)
4.yum info 查询软件的功能和具体信息

5.yum makecache 生成解决依赖关系的缓存元数据
6.yum groupinstall 开发工具 yum grouplist "Development Tools" -y
7.yum remove 卸载软件包
8.yum update 升级整个系统里所有的软件(可以做crontab计划任务来自动升级),若接具体软件名可以只升级此软件
9.yum list updates 列出服务器上可供本机进行升级的软件 一定要打对updates

10.yum clean all 清楚缓存数据 --> 清楚所有的yum源的元数据
11.yum reinstall 重新安装软件
12.yum provides pstree 列出提供pstree的软件有哪些 --> psmisc
YUM的软件群组功能
用法:yum [群组功能] [软件群组]
选项与参数:
- grouplist:列出所有可使用的软件群组组,例如 Development Tools 之类的
- groupinfo:后面接 group_name,则可以了解该group内含的所有软件名

- groupinstall:安装一整组的软件群组
- 但如果想要让 groupinstall 预设安装好所有的 optional 软件呢,就得要修改配置文件!更改选 groupinstall 选择的软件项目即可,即在配置文件中添加一行 group_package_types=default,mandatory,optional

- 然后就可以直接 yum groupinstall "Scientific Support"
无网络情况下进行软件安装(即搭建本地yum源服务器)

如上图所示,即直接使用光盘作为主要的软件来源。
1. 在虚拟机中将镜像文件放入光驱,挂载镜像文件到新建文件夹 /centos7
- <code>[root@localhost ~]# mkdir /centos
- [root@localhost ~]# mount /dev/cdrom /centos
复制代码
2. 创建本地的repo仓库文件 内容即如图所示

3.然后就可以使用这个repo文件来安装软件了
多个YUM源的优先级问题
- 使用 YUM 的 yum-plugin-priorities 插件
- 或直接将yum.repos.d中的文件只留下想使用的repo
- <code>[root@localhost ~]# yum install yum-plugin-priorities
- [root@localhost ~]# cat /etc/yum/pluginconf.d/priorities.conf
- [main]
- enabled = 1
复制代码
然后在 /etc/yum.repos.d/local.repo 中的每一个节点加入 priority=1 (priority 越小表示优先级越高)

接下来举例安装一个基于ftp的yum源服务器。
基于ftp的yum源服务器
1.安装ftp软件
复制代码 2.开启ftp服务
- <code>[root@localhost ~]# service vsftpd start
- Redirecting to /bin/systemctl start vsftpd.service
- [root@localhost ~]# lsof -i:21
- COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
- vsftpd 38764 root 4u IPv6 131336 0t0 TCP *:ftp (LISTEN)
- # 在配置文件中修改准许匿名登录
- [root@localhost ~]# cd /etc/vsftpd/
- [root@localhost vsftpd]# vim vsftpd.conf
- anonymous_enable=YES --> 在centos8中默认是no,要修改成yes
- [root@localhost ~]# service vsftpd restart
复制代码
3.想让别的用户访问过来进行yum下载,应该把软件放到ftp在家目录
ftp这个用户是专门用来匿名登录ftp服务的,家目录在/var/ftp
[root@localhost ~]# mkdir /var/ftp/centos7
# 挂载镜像文件,获得很多rpm的包,然后复制rpm到/var/ftp/centos7里
[root@localhost ~]# cp /mnt/* /var/ftp/centos7/ -r
[root@localhost ~]# du -sh /var/ftp/centos7/
4.5G /var/ftp/centos7/
[root@localhost centos7]# ls
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
# 可以用下面命令以ftp用户访问web服务器,默认到家目录
[root@localhost centos7]# lftp 192.168.254.136
lftp 192.168.254.136:~> ls
drwxr-xr-x 8 0 0 220 Jan 13 06:26 centos7
drwxr-xr-x 2 0 0 6 Jun 09 2021 pub
lftp 192.168.254.136:/> cd centos7/
lftp 192.168.254.136:/centos7> ls
!此处要注意一个权限的问题,如果centos7目录下的文件无法读取的话,要授予该文件权力
| 4.编写ftp的repo仓库配置文件,指向我们自己搭建的ftp服务器,以下是示范Centos7
- cat ftp.repo
- [ftpyum]
- name="ftp yum server"
- baseurl=ftp://192.168.254.136/centos7
- enabled=1
- gpgcheck=0
复制代码
考虑到Centos8的repodata文件路径不一样,我们的配置文件要改成

5.测试,将其他repo结尾文件移动到backup目录下,只留下ftp.repo文件测试它的可用性,可以看出还是可以安装搭建成功!
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv C* backup/
[root@localhost yum.repos.d]# ls
backup
[root@localhost yum.repos.d]# yum install squid
已加载插件:fastestmirror, priorities
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 squid.x86_64.7.3.5.20-15.el7_8.1 将被 安装
--> 正在处理依赖关系 squid-migration-script,它被软件包 7:squid-3.5.20-15.el7_8.1.x86_64 需要.
| 6.如果其他客户机要是用这个yum源来安装的话,前提条件是系统的版本要一致
此时,我们再考虑个问题,如果我们要使用ftp的yum源来安装一个不是官方镜像中提供的rpm包,要怎么做呢?
在本地YUM源中增加自己的软件包(官方yum没有提供无法直接yum安装的)
此时我们可以把我们需要安装的rpm文件放到Packages文件中去,然后更新仓库的配置文件
[root@localhost yum.repos.d]# cp mysql80-community-release-el7-3.noarch.rpm /var/ftp/centos/Packages/
# 安装createrepo命令更新仓库配置文件
[root@localhost ftp]# yum install createrepo -y
# 重新生成解决依赖关系的文件
[root@localhost ftp]# createrepo --update /var/ftp/centos
# 更新完数据库之后一定要清空YUM缓存
[root@localhost ftp]# yum clean all
| 或者也可以直接在当前新建一个文件夹直接在此文件夹生成repodata文件,具体命令如下
[root@localhost centos7]# mkdir mysql-router
[root@localhost centos7]# cp mysql-router-community-8.0.21-1.el7.x86_64.rpm mysql-router
# 然后直接在此目录下生成repodata文件
[root@localhost centos7]# createrepo /var/ftp/centos7/mysql-router
| 然后将ftp.repo文件新建一个源

关键其实就是 repodata 目录!只要能产生这个目录就能使用 yum 安装相应的软件
但这样使用的话,软件的升级是一个问题,必须要紧跟着官方的脚步
问题:
- 假设有一个厂商推出软件时,自行处理了数字签名,你想要安装他们的软件所以需要使用数字签名,假设数字签名的档名为 signe, 那你该如何安装?
- 承上,假设该软件厂商提供了 yum 的安装网址为: http://their.server.name/path/ ,那你该如何处理 yum 的配置文件?
- 可自行取个档名,在此例中我们使用『 vim /etc/yum.repos.d/their.repo 』,扩展名要正确! 内容像这样即可:
-
[their]
name=their server name
baseurl=http://their.server.name/path/
enable=1
gpgcheck=0
|
- 然后使用 yum 去安装该软件看看。
三种安装已经全部更新完毕,有不对的或者疑问欢迎交流指点呀!
来源:https://blog.caogenba.net/m0_57053326/article/details/122478684
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |