实战-centos7升级内核(yum方式)-2023.1.5(测试成功)

news2025/1/19 3:36:41

目录

前言

注意:内核升级可能涉及系统稳定性和兼容性的风险;在进行内核升级之前,请确保了解这些风险并备份重要的数据。

kernel-ml:kernel-ml 中的ml是英文【 mainline stable 】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。

kernel-lt:kernel-lt 中的lt是英文【 long term support 】的缩写,elrepo-kernel中罗列出来的长期支持版本。

ML 与 LT 两种内核类型版本可以共存,但每种类型内核只能存在一个版本。

测试环境

centos7.9
测试环境

1、检查已安装的内核版本

让我们安装了一个发行版,它包含了一个特定版本的内核。为了展示当前系统中已安装的版本,我们可以:

[root@node2 ~]#uname -a
Linux node2 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

2、在 CentOS 7 中升级内核

大多数现代发行版提供了一种使用 yum 等包管理系统和官方支持的仓库升级内核的方法。

但是,这只会升级内核到仓库中可用的最新版本 - 而不是在 https://www.kernel.org/ 中可用的最新版本。不幸的是,Red Hat 只允许使用前者升级内核。

与 Red Hat 不同,CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。

  • 要在 CentOS 7 上启用 ELRepo 仓库,请运行:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
  • 仓库启用后,你可以使用下面的命令列出可用的内核相关包:
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

kernel-lt.x86_64	5.4.265-1.el7.elrepo  
kernel-ml.x86_64	6.6.9-1.el7.elrepo
  • 接下来,安装最新的主线稳定内核:
# 安装 最新版ML 版本
# yum --enablerepo=elrepo-kernel install  kernel-ml-devel kernel-ml -y
# 安装 最新版LT 版本
# yum --enablerepo=elrepo-kernel install kernel-lt-devel kernel-lt -y

yum --enablerepo=elrepo-kernel install kernel-ml -y

注意:

这个只安装了一个rpm包哦,没其它依赖包哦!


🔰 将内核工具包一并升级**(可选)**(可忽略次步骤,一般也不用配置次步骤。)

  • 默认:
[root@docker ~]#uname -a
Linux docker 3.10.0-1160.102.1.el7.x86_64 #1 SMP Tue Oct 17 15:42:21 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

[root@docker ~]#rpm -qa|grep kernel
kernel-3.10.0-957.el7.x86_64
kernel-tools-libs-3.10.0-957.el7.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64
kernel-tools-3.10.0-957.el7.x86_64
kernel-3.10.0-1160.102.1.el7.x86_64
kernel-devel-3.10.0-957.el7.x86_64
kernel-headers-3.10.0-957.el7.x86_64
[root@docker ~]#
  • 将内核工具包一并升级
# 删除旧版本工具包
yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64

# 安装新版本工具包
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64
  • 验证
[root@docker ~]#rpm -qa|grep kernel
kernel-3.10.0-957.el7.x86_64
kernel-ml-tools-6.6.9-1.el7.elrepo.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64
kernel-ml-tools-libs-6.6.9-1.el7.elrepo.x86_64
kernel-3.10.0-1160.102.1.el7.x86_64
kernel-devel-3.10.0-957.el7.x86_64
kernel-headers-3.10.0-957.el7.x86_64
[root@docker ~]#

3、设置 GRUB 默认的内核版本并重启

注意:内核安装好后,需要设置为默认启动选项并重启后才会生效。

为了让新安装的内核成为默认启动选项,你需要如下修改 GRUB 配置:

  • 查看系统上的所有可用内核

方法1:(查看内核启动顺序)

[root@docker ~]#awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.4.265-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.102.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-5987de640e6d4ac9b69d19e0059df86e) 7 (Core)
[root@docker ~]#

方法2:(查看系统上的所有可用内核)

[root@docker ~]#rpm -qa | grep kernel
kernel-3.10.0-957.el7.x86_64
kernel-tools-libs-3.10.0-957.el7.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64
kernel-tools-3.10.0-957.el7.x86_64
kernel-3.10.0-1160.102.1.el7.x86_64
kernel-lt-5.4.265-1.el7.elrepo.x86_64
kernel-devel-3.10.0-957.el7.x86_64
kernel-headers-3.10.0-957.el7.x86_64
[root@docker ~]#
  • 打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核。(其中 0 是上面查询出来的可用内核)
GRUB_TIMEOUT=5
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
  • 生成 grub 配置文件,执行如下命令。

GRUB2 的配置文件通常为 /boot/grub2/grub.cfg,虽然此文件很灵活,但是我们并不需要手写所有内容。可以通过程序自动生成,或是直接修改生成之后的文件。通常情况下简单配置文件 /etc/default/grub ,然后用程序 grub-mkconfig 来产生文件 grub.cfg。

[root@node2 ~]#grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.6.9-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-6.6.9-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-5987de640e6d4ac9b69d19e0059df86e
Found initrd image: /boot/initramfs-0-rescue-5987de640e6d4ac9b69d19e0059df86e.img
done
[root@node2 ~]#

/etc/grub2.cfg 是 /boot/grub2/grub.cfg的软链接

注意:

[root@node2 ~]#ll /etc/grub2.cfg 
lrwxrwxrwx. 1 root root 22 May 30  2021 /etc/grub2.cfg -> ../boot/grub2/grub.cfg

/etc/grub2.cfg 是 /boot/grub2/grub.cfg的软链接。

## 这个是干嘛的呢??
grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
  • 重启并验证最新的内核已作为默认内核。

需要重启才能生效。

[root@node2 ~]#uname -a
Linux node2 6.6.9-1.el7.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Jan  1 13:50:39 EST 2024 x86_64 x86_64 x86_64 GNU/Linux
[root@node2 ~]#

恭喜你!你已经在 CentOS 7 中升级内核了!

4、 删除旧内核(可选)

**注意:**无法卸载当前在用的内核版本。

建议还是保留旧内核,如果后续发现有问题可以回退。

  • 查看系统中全部的内核:
[root@docker ~]#rpm -qa | grep kernel
kernel-3.10.0-957.el7.x86_64
kernel-tools-libs-3.10.0-957.el7.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64
kernel-tools-3.10.0-957.el7.x86_64
kernel-3.10.0-1160.102.1.el7.x86_64
kernel-lt-5.4.265-1.el7.elrepo.x86_64
kernel-devel-3.10.0-957.el7.x86_64
kernel-headers-3.10.0-957.el7.x86_64
[root@docker ~]#

方法1、yum remove 删除旧内核的 RPM 包

yum remove -y kernel-3.10.0-957.el7.x86_64 \
kernel-tools-libs-3.10.0-957.el7.x86_64 \
kernel-tools-3.10.0-957.el7.x86_64 \
kernel-3.10.0-1160.102.1.el7.x86_64

只需删除kernel-3.10.0-514kernel-tools-libskernel-tools即可。

  • 验证
[root@docker ~]#awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.4.265-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (0-rescue-5987de640e6d4ac9b69d19e0059df86e) 7 (Core)
[root@docker ~]#rpm -qa | grep kernel
kernel-ml-tools-6.6.9-1.el7.elrepo.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64
kernel-ml-tools-libs-6.6.9-1.el7.elrepo.x86_64
kernel-lt-5.4.265-1.el7.elrepo.x86_64
kernel-devel-3.10.0-957.el7.x86_64
kernel-headers-3.10.0-957.el7.x86_64
[root@docker ~]#

image-20240105094834470

方法2、yum-utils工具

未实际测试,仅记录。

如果安装的内核不多于 3 个,yum-utils 工具不会删除任何一个。只有在安装的内核大于 3 个时,才会自动删除旧内核。

安装yum-utils

$ yum install yum-utils

删除旧版本

package-cleanup --oldkernels

升级脚本

UpdateKernel-v1-2024.1.4.sh(网上脚本)

UpdateKernel.sh

yum localinstall -y kernel-lt*
if [ $? -eq 0 ];then
    grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg
    grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
fi
echo 'Please reboot your system quick !!!'

UpdateKernel-v2-2023.11.24.sh(yum升级到最新长久支持版-亲测成功)(最新)

可一键粘贴使用!

uname -a

# 载入公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装ELRepo
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm


# 载入elrepo-kernel元数据
yum --disablerepo=\* --enablerepo=elrepo-kernel repolist
# 查看可用的rpm包
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
# 安装最新版本的lt kernel
yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-lt -y
#如果是安装指定版本
#yum --enablerepo=elrepo-kernel install kernel-lt-devel-5.4.225-1.el7.elrepo.x86_64 kernel-lt-5.4.225-1.el7.elrepo.x86_64 -y #注意包的个数

#yum install -y kernel-lt
if [ $? -eq 0 ];then
    grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg
    grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
fi
echo 'Please reboot your system quick !!!'

reboot
uname -a

🔰 开始测试:(测试成功)2024.1.5

  • 升级前内核
[root@node2 ~]#uname -a
Linux node2 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
  • 开始升级
uname -a

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
yum --enablerepo=elrepo-kernel install kernel-lt -y
if [ $? -eq 0 ];then
    grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg
    grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
fi
echo 'Please reboot your system quick !!!'

reboot
uname -a

  • 升级后测试

image-20240104165257371

[root@node2 ~]#uname -a
Linux node2 5.4.265-1.el7.elrepo.x86_64 #1 SMP Wed Dec 20 13:57:20 EST 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@node2 ~]#

FAQ

小版本升级

仅做记录,未实际测试。2024年1月5日

在实验环境下,已安装了最新的CentOS 7.4操作系统,现在需要升级内核版本。

实验环境

CentOS-7-x86_64-Minimal-1708.iso
CentOS Linux release 7.4.1708 (Core)
Kernel 3.10.0-693.el7.x86_64

连接并同步CentOS自带yum源,更新内核版本。此方法适用于更新内核补丁 。
具体实验步骤:

yum list kernel
yum update -y kernel

此时,已安装成功,但若想将系统运行在新版本的kernel上,则需要重新启动操作系统。

重启完成,至此,Kernel版本已升级至【3.10.0-693.17.1.el7.x86_64】

安装指定内核版本Rpm

仅做记录,未实际测试。

本次以安装 LT 内核的5.4.230 版本为例。

  • 当前内核版本(centos7.9默认内核)
[root@docker ~]#uname -a
Linux docker 3.10.0-1160.102.1.el7.x86_64 #1 SMP Tue Oct 17 15:42:21 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@docker ~]#rpm -qa|grep kernel
kernel-3.10.0-957.el7.x86_64
kernel-tools-libs-3.10.0-957.el7.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64
kernel-tools-3.10.0-957.el7.x86_64
kernel-3.10.0-1160.102.1.el7.x86_64
kernel-devel-3.10.0-957.el7.x86_64
kernel-headers-3.10.0-957.el7.x86_64
[root@docker ~]#

1、查找版本

因 ELRepo 源都是最新版本,所以旧版本内核只能手动下载。查找 kernel rpm 历史版本:http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/

2、下载内核 RPM

下载rpm:

wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-devel-4.4.215-1.el7.elrepo.x86_64.rpm
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-4.4.215-1.el7.elrepo.x86_64.rpm

3、安装内核

rpm -ivh kernel-lt-4.4.215-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-lt-devel-4.4.215-1.el7.elrepo.x86_64.rpm

4、确认已安装内核版本

[root@localhost ~]# rpm -qa | grep kernel
kernel-headers-3.10.0-1160.15.2.el7.x86_64
kernel-devel-3.10.0-1160.49.1.el7.x86_64
kernel-tools-libs-3.10.0-957.el7.x86_64
kernel-3.10.0-957.el7.x86_64
kernel-ml-4.9.9-1.el7.elrepo.x86_64
kernel-lt-4.4.215-1.el7.elrepo.x86_64
kernel-tools-3.10.0-957.el7.x86_64
kernel-lt-devel-4.4.215-1.el7.elrepo.x86_64

5、设置启动

<code class="language-text"># 查看启动顺序
[root@localhost ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.4.215-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (4.9.9-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-b91f945269084aa98e8257311ee713c5) 7 (Core)

# 设置启动顺序
[root@localhost ~]# grub2-set-default 0
# 生成grub配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg

# 重启生效
[root@localhost ~]# reboot

自编译升级(不推荐)

Step1: 下载源码
Step2: 安装gcc bc cmake
Step3: 编译源码,安装新内核
自编译升级过程略微复杂,且不便于后期维护,具体操作步骤在此略去不表。

参考链接

https://www.linuxprobe.com/update-kernel-centos7.html

https://www.cnblogs.com/gaoyuechen/p/16848807.html

https://blog.csdn.net/u010674953/article/details/129064085

https://www.zzbaike.com/23045.html

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码

x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号

《云原生架构师实战》

image-20230107215126971

🍀 个人博客站点

https://onedayxyy.cn/

🍀 语雀

https://www.yuque.com/xyy-onlyone

🍀 csdn

https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎

https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1357802.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于卷积神经网络的回归分析

目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 卷积神经网络的回归分析 完整代码:卷积神经网络的回归分析(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/…

前端跨域问题的解决思路

目录 前言 跨域问题的解决思路 一般跨域的解决方案 前言 做了一个简单页面&#xff0c;做了一些数据埋点&#xff0c;想通过企业微信机器人来推送数据&#xff0c;遇到了一些问题&#xff0c;顺便记录下。 跨域问题的解决思路 由于是项目比较简单&#xff0c;直接使用了aj…

日常工作 经验总结

1,在使用vue2开发项目时,快捷有效的组件化component 若有参数传递时,可以通过这样传递 在component中: 2,上拉加载,下拉刷新 若是使用局部进行上拉加载 下拉刷新 且需要用到scroll-view时 那么需要切记scroll-view在内被mescroll-uni包裹。若场景有限 对于无数据显示…

Linux第2步_创建虚拟机

VMware软件安装好后&#xff0c;就可以创建虚拟机了。 一、虚拟机对CPU的要求较高 i7 处理器&#xff1a;CPU&#xff1a;Intel(R) Core(TM) i7-8700 CPU 3.20GHz 3.19 GHz 内核数&#xff1a;6 线程数&#xff1a; 12 最大睿频频率&#xff1a; 4.60 GHz 英特尔 睿…

新手可理解的PyTorch线性层解析:神经网络的构建基石

目录 torch.nn子模块Linear Layers详解 nn.Identity Identity 类描述 Identity 类的功能和作用 Identity 类的参数 形状 示例代码 nn.Linear Linear 类描述 Linear 类的功能和作用 Linear 类的参数 形状 变量 示例代码 nn.Bilinear Bilinear 类的功能和作用 B…

勒索事件急剧增长,亚信安全发布《勒索家族和勒索事件监控报告》

近期(12.15-12.21)态势快速感知 近期全球共发生了247起攻击和勒索事件&#xff0c;勒索事件数量急剧增长。 近期需要重点关注的除了仍然流行的勒索家族lockbit3以外&#xff0c;还有本周top1勒索组织toufan。toufan是一个新兴勒索组织&#xff0c;本周共发起了108起勒索攻击&a…

【Bootstrap5学习 day10】

Flex布局 弹性盒子是CSS3的一种新的布局模式&#xff0c;更适合响应式的设计 创建一个弹性盒子容器 使用d-flex类&#xff0c;创建flexbox容器并将直接子项转换为flex项 <div class"d-flex p-3 bg-info text-white"><div class"p-2 bg-secondary"…

客服系统接入FastGPT

接入FastGPT 点击【应用】【外部使用】【API访问】【新建】新建一个KEY&#xff0c;同时也可以看到我们的API根地址 这个根地址和Key可以填入任何支持OpenAI接口的应用里&#xff0c;这个接口是兼容OpenAI格式。 在客服系统【知识库AI配置】里填上接口地址和接口密钥。这样我…

国家信息安全水平等级考试NISP二级题目卷⑥(包含答案)

国家信息安全水平等级考试NISP二级题目卷&#xff08;六&#xff09; 国家信息安全水平等级考试NISP二级题目卷&#xff08;六&#xff09;需要报考咨询可以私信博主&#xff01; 前言&#xff1a; 国家信息安全水平考试(NISP)二级&#xff0c;被称为校园版”CISP”,由中国信息…

接口自动化--断言

目标&#xff1a; 1、学习常见的自动化断言方法 2、把自动化断言分装和应用于接口测试 具体内容&#xff1a; 1、学习常见的自动化断言方法 第一类&#xff1a;比较大小和是否相等 而assert可以使用直接使用“”、“!”、“<”、“>”、“>”、"<"…

在 Windows 中安装 SQLite 数据库

在 Windows 上安装 SQLite 步骤1 请访问 SQLite 下载页面&#xff0c;从 Windows 区下载预编译的二进制文件 ​ 步骤2 您需要下载 sqlite-dll-win-x64-3440200.zip 和 sqlite-tools-win-x64-3440200.zip 压缩文件 步骤3 创建文件夹 C:\Program Files\SQLite&#xff0c;并在…

常见类型_字符串..

1.字符串 在Java中用java.lang.String来表示字符串 字符串底层使用字符数组来储存字符串的每一个字符 但是从Java9开始 就改成使用byte[]去储存字符串中的字符内容 所有字符串字面量都是字符串实例 字符串对象一旦创建成功以后 他的内容是不可以被修改的 2.字符串常量池 在J…

redis中bitmap应用

原理介绍 Redis Bitmap 是 Redis 中的一种数据结构&#xff0c;它类似于位图&#xff0c;可以用来表示一组二进制位&#xff0c;每个二进制位只能是 0 或 1。Redis Bitmap 提供了一些操作命令&#xff0c;如 SETBIT、GETBIT、BITCOUNT 等&#xff0c;可以对位图进行设置、…

大田四情监测预警系统是什么

TH-Q2随着科技的飞速发展&#xff0c;农业领域正经历着前所未有的变革。大田四情监测预警系统作为这场变革的先锋&#xff0c;为现代农业注入了智慧的活力。这个系统集成了智能化、信息化、自动化的技术&#xff0c;对农田的墒情、苗情、虫情、灾情进行实时监测和预警&#xff…

数据结构与算法(九)图链式存储

邻接表 度&#xff1a;无向图的度&#xff1a;顶点与邻接点连接的边就做度。有向图的度&#xff1a;指向顶点的边叫做入度&#xff0c;由顶点指向其他邻接点的边叫做出度 顶点&#xff1a;存储自身顶点信息和指向下一个临界点的指针 邻接点&#xff1a;保存临接点的存储下标…

关于Flutter中Image的BoxFit属性介绍

BoxFit 是一个枚举类型&#xff0c;用于指定如何调整图像以适应其显示容器。它通常用于 Image 或 DecorationImage 等涉及图像的部件和类中。 BoxFit的常用值介绍&#xff1a; Image中不加fit属性时图片状态 ↓ 蓝色框为图片所在容器 添加fit属性时图片的状态 ↓ 1.fill: 完全…

AQS原来是这么设计的,泰裤辣!

缘起 每门编程语言基本都离不开并发问题&#xff0c;Java亦如此。谈到Java的并发就离不开Doug lea老爷子贡献的juc包&#xff0c;而AQS又是juc里面的佼佼者 因此今天就一起来聊聊AQS 概念 AQS是什么&#xff0c;这里借用官方的话 Provides a framework for implementing blo…

【Linux】常用的基本命令指令②

前言&#xff1a;前面我们学习了Linux的部分指令&#xff0c;今天我们将接着上次的部分继续将Linux剩余的基本指令. &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:Linux的学习 &#x1f448; &#x1f4af;代码仓库:卫卫周大胖的学习日记…

了解Service Mesh:构建微服务的下一代架构

1. 引言 服务网格&#xff08;Service Mesh&#xff09;作为构建下一代微服务架构的关键技术&#xff0c;能够显著地简化和改善微服务架构的管理和运维&#xff0c;并提供了更高的可靠性、安全性和可观察性。今天就和大家一起了解下什么是Service Mesh&#xff0c;它能够做什么…

bootstrap5实现的高端蔬菜食品网页Obrien

一、需求分析 蔬菜超市在线系统是指一个基于互联网的平台&#xff0c;使消费者可以通过网络购买蔬菜和其他相关农产品。它提供了一种便捷的购物方式&#xff0c;消费者可以通过在线浏览商品、选择购买、支付和配送等步骤来完成购物过程。以下是蔬菜超市在线系统的一些功能&…