分类 Linux 下的文章

1. 下载软件包

wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz

2. 解压软件包

# 解压
tar xf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
# 移动
mv mysql-5.7.36-linux-glibc2.12-x86_64 /usr/local/mysql

- 阅读剩余部分 -

ELRepo是用于Enterprise Linux软件包的RPM存储库。
它支持Red Hat Enterprise Linux(RHEL)及其衍生版本,例如Scientific Linux,CentOS等。

步骤1:将ELRepo添加到CentOS 8

sudo dnf -y install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

安装程序将在/etc/yum.repos.d目录下创建一个存储库文件

$ cat /etc/yum.repos.d/elrepo.repo

步骤2:导入GPG密钥
将存储库添加到系统后,您可以导入公钥:

sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

步骤3:在CentOS 8上安装Linux Kernel 5.4

这里添加的存储库具有elrepo-kernel通道,该通道为CentOS和RHEL Linux系统提供了长期(kernel-lt)支持内核和最新的稳定主线内核(kernel-ml)。

我们可以列出资源库中可用的主线内核版本:

[root@mhwy ~]# sudo dnf --disablerepo="*" --enablerepo="elrepo-kernel" list available | grep kernel-ml
kernel-ml-doc.noarch                    5.15.6-1.el8.elrepo        elrepo-kernel
kernel-ml-headers.x86_64                5.15.6-1.el8.elrepo        elrepo-kernel
kernel-ml-modules-extra.x86_64          5.15.6-1.el8.elrepo        elrepo-kernel
kernel-ml-tools.x86_64                  5.15.6-1.el8.elrepo        elrepo-kernel
kernel-ml-tools-libs.x86_64             5.15.6-1.el8.elrepo        elrepo-kernel
kernel-ml-tools-libs-devel.x86_64       5.15.6-1.el8.elrepo        elrepo-kernel

既然已经确认Linux Kernel 5.x的可用性,所以可以继续安装它。

sudo dnf --enablerepo=elrepo-kernel install kernel-ml

安装其他内核程序包

sudo dnf --enablerepo=elrepo-kernel install kernel-ml-{devel,headers}

安装 headers 出错就不装这个。

步骤4:在CentOS 8上启动到Linux Kernel 5.4

在CentOS 8上安装Linux Kernel 5.4之后,您需要重新引导系统。

sudo reboot

操作系统启动后,运行uname命令以确认操作系统正在运行的内核版本。

[root@mhwy ~]# uname -a
Linux mhwy 5.15.6-1.el8.elrepo.x86_64 #1 SMP Tue Nov 30 12:41:05 EST 2021 x86_64 x86_64 x86_64 GNU/Linux

在CentOS 8上卸载Kernel 5.x

您可以随时使用dnf命令从CentOS 8计算机上删除Linux Kernel5.x。

首先启动到Linux内核的默认操作系统版本。

确认当前安装的内核。

$ uname -r
4.18.0-80.el8.x86_64

然后从ELRepo中删除安装的Kernel5.x。

sudo dnf remove kernel-ml kernel-ml-{devel,headers}

确认即可

总结如下:
算是少些一行代码,与多运行一次函数的折中产物
但是同时限定了这个变量的作用域只能在if语言内

对比写法

未使用海象运算符1,多写一行代码

n = len(a)
if n > 10:
    print(f"List is too long ({n} elements, expected <= 10)")

未使用海象运算符2,多调用一次函数

if len(a) > 10:
    print(f"List is too long ({len(a)} elements, expected <= 10)")

使用海象运算符

if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")