当前位置: 首页 > news >正文

centos7.9升级rockylinux8.8

前言

查看centos的版本 ,我这台服务器是虚拟机,下面都是模拟实验

升级前一定要把服务器上配置文件,数据等进行备份

[root@localhost ~]#cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[root@localhost ~]#uname -a
Linux jenkins_server 3.10.0-1160.83.1.el7.x86_64 #1 SMP Wed Jan 25 16:41:43 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux[root@localhost ~]# docker run --name my-memcache -m 64  -d  docker.io/memcached:1.6.20
/usr/bin/docker-current: Error response from daemon: Minimum memory limit allowed is 4MB.
See '/usr/bin/docker-current run --help'.
[root@localhost ~]# docker run --name my-memcache -m 64mb  -d  docker.io/memcached:1.6.20
1ad3ad059e1a2f3d179c64f88bd0ec494c46adf78caa9c0f1603e0210b639869
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS               NAMES
1ad3ad059e1a        docker.io/memcached:1.6.20   "docker-entrypoint..."   3 seconds ago       Up 2 seconds        11211/tcp           my-memcache
[root@localhost ~]# netstat -lnpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1563/mysqld         
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      908/redis-server 12 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1160/nginx: master  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      903/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1567/master         
tcp6       0      0 :::80                   :::*                    LISTEN      1160/nginx: master  
tcp6       0      0 :::22                   :::*                    LISTEN      903/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1567/master   

现在可以将 CentOS 7 升级到 Rocky Linux 8。由于 CentOS 8 已经死了,所以将 CentOS 7 迁移到 CentOS 8 是没有意义的。
现在,您不仅可以将 CentOS 7 升级到 Rocky Linux 8,还可以将 CentOS 7 升级到其他 EL 8 衍生产品,如 AlmaLinux、CentOS Stream、Oracle 和 Rocky Linux。
感谢ELevate(https://wiki.almalinux.org/elevate/),一项计划和工具,可以在RHEL衍生品的主要版本之间进行迁移。
在这里,我们将看到如何将 CentOS 7 升级到 Rocky Linux 8。

一 进行系统备份

在继续之前,我强烈建议您进行系统备份或快照以进行恢复,以防升级后出现问题。除此之外,您还可以先在虚拟机或测试计算机上尝试此升级过程,然后再在实际服务器上执行此升级过程。

如果你的centos7系统未到达最新版本,请进行升级

yum update -y
[root@localhost ~]#cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[root@localhost ~]#uname -a
Linux localhost 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

1 升级内核,使用最新内核

在这里插入图片描述

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

二 安装提升

安装提升发布包以配置项目存储库并安装 GPG 密钥。

yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm

三 安装 Rocky Linux 的 leapp 软件包和迁移数据。

 yum install -y leapp-upgrade leapp-data-rocky

四 执行预检查

使用以下命令启动升级前检查。此检查将确定操作系统升级的可能性,并报告升级前需要修复的潜在问题。

leapp preupgrade

1 报错

在这里插入图片描述
此外,您还可以在文件中获取有关报告的升级阻止程序(风险因素:高(限制)和建议的解决方案)的详细信息。除了阻止程序之外,该文件还将包含从信息到高的其他风险,您可以查看并进一步进行。/var/log/leapp/leapp-report.txt

[root@localhost ~]#  cat /var/log/leapp/leapp-report.txt |grep command
[command] yum -y remove kernel-devel-3.10.0-1160.83.1.el7
Remediation: [hint] Please register user choices with leapp answer cli command or by manually editing the answerfile.
[command] leapp answer --section remove_pam_pkcs11_module_check.confirm=True
Summary: In RHEL 8, there is no 'python' command. Python 3 (backward incompatible) is the primary Python version and Python 2 is available with limited support and limited set of packages. Read more here: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/configuring_basic_system_settings/#using-python3
The postqueue command no longer forces all message arrival times to be reported in UTC. To get the old behavior, set TZ=UTC in main.cf:import_environment.

2 处理,根据文件中提升执行命令

[root@localhost ~]# yum -y remove kernel-devel-3.10.0-1160.90.1.el7 && leapp answer --section remove_pam_pkcs11_module_check.confirm=True 

3再次检测,没有再报错,当然也可以再次查看/var/log/leapp/leapp-report.txt

[root@localhost ~]#leapp preupgrade

在这里插入图片描述

五 升级到 Rocky Linux 8

1使用以下命令开始升级。此升级需要一些时间才能完成。下载了一堆包,更新了一堆包

leapp upgrade

在这里插入图片描述
在这里插入图片描述

2 升级报错

在这里插入图片描述

STDERR:
No matches found for the following disable plugin patterns: subscription-manager
Repository extras is listed more than once in the configuration
Warning: Package marked by Leapp to upgrade not found in repositories metadata: gpg-pubkey
RPM: warning: Generating 6 missing index(es), please wait...
Error: Transaction test error:file /usr/lib64/.libcrypto.so.1.1.1k.hmac from install of openssl-libs-1:1.1.1k-9.el8_7.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-5.el7.x86_64file /usr/lib64/.libssl.so.1.1.1k.hmac from install of openssl-libs-1:1.1.1k-9.el8_7.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-5.el7.x86_64file /usr/lib64/engines-1.1/afalg.so from install of openssl-libs-1:1.1.1k-9.el8_7.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-5.el7.x86_64file /usr/lib64/engines-1.1/capi.so from install of openssl-libs-1:1.1.1k-9.el8_7.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-5.el7.x86_64file /usr/lib64/engines-1.1/padlock.so from install of openssl-libs-1:1.1.1k-9.el8_7.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-5.el7.x86_64file /usr/lib64/libcrypto.so.1.1.1k from install of openssl-libs-1:1.1.1k-9.el8_7.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-5.el7.x86_64file /usr/lib64/libssl.so.1.1.1k from install of openssl-libs-1:1.1.1k-9.el8_7.x86_64 conflicts with file from package openssl11-libs-1:1.1.1k-5.el7.x86_64============================================================END OF ERRORS                        
============================================================Debug output written to /var/log/leapp/leapp-upgrade.log============================================================REPORT                           
============================================================A report has been generated at /var/log/leapp/leapp-report.json
A report has been generated at /var/log/leapp/leapp-report.txt============================================================END OF REPORT                        
============================================================Answerfile has been generated at /var/log/leapp/answerfile
2023-06-01 14:19:34.232 ERROR    PID: 26818 leapp: Upgrade workflow failed, check log for details
[root@localhost ~]# 

2.1 报错处理:移除openssl11-libs

[root@localhost ~]# yum remove  openssl11-libs-1:1.1.1k-5.el7.x86_64

请先备份nginx配置文件在移除
在这里插入图片描述

3 再次升级

leapp upgrade

终于通过了
在这里插入图片描述

3.1 重启,选择升级

[root@localhost ~]# shutdown -r now

选择第一个
在这里插入图片描述

3.2 更新并安装一些包,这个过程相当缓慢

在这里插入图片描述

3.4 熟悉的页面

在这里插入图片描述

4 系统升级成功

但是我的docker被卸载了,镜像也找不到了,如果安装了docker 一定要备份啊 ,当然其他服务也是如此

[root@localhost ~]# cat /etc/redhat-release 
Rocky Linux release 8.8 (Green Obsidian)
[root@localhost ~]# uname -a
Linux localhost.localdomain 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 22:15:39 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

六 升级后操作

1 先重新配置下yum吧

[root@localhost ~]# cd  /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
总用量 76
-rw-r--r--. 1 root root 2523 8月   4 2022 CentOS-Base.repo.rpmsave
-rw-r--r--. 1 root root  379 3月  17 19:26 ELevate.repo
-rw-r--r--. 1 root root 1698 11月  5 2022 epel-modular.repo
-rw-r--r--. 1 root root 1332 11月  5 2022 epel.repo
-rw-r--r--. 1 root root 1797 11月  5 2022 epel-testing-modular.repo
-rw-r--r--. 1 root root 1431 11月  5 2022 epel-testing.repo
-rw-r--r--. 1 root root  710 4月  26 02:50 Rocky-AppStream.repo
-rw-r--r--. 1 root root  695 4月  26 02:50 Rocky-BaseOS.repo
-rw-r--r--. 1 root root 1753 4月  26 02:50 Rocky-Debuginfo.repo
-rw-r--r--. 1 root root  360 4月  26 02:50 Rocky-Devel.repo
-rw-r--r--. 1 root root  695 4月  26 02:50 Rocky-Extras.repo
-rw-r--r--. 1 root root  731 4月  26 02:50 Rocky-HighAvailability.repo
-rw-r--r--. 1 root root  680 4月  26 02:50 Rocky-Media.repo
-rw-r--r--. 1 root root  680 4月  26 02:50 Rocky-NFV.repo
-rw-r--r--. 1 root root  690 4月  26 02:50 Rocky-Plus.repo
-rw-r--r--. 1 root root  715 4月  26 02:50 Rocky-PowerTools.repo
-rw-r--r--. 1 root root  746 4月  26 02:50 Rocky-ResilientStorage.repo
-rw-r--r--. 1 root root  681 4月  26 02:50 Rocky-RT.repo
-rw-r--r--. 1 root root 2335 4月  26 02:50 Rocky-Sources.repo
[root@localhost yum.repos.d]# rm -rf CentOS-Base.repo.rpmsave
[root@localhost yum.repos.d]#  mkdir backup
[root@localhost yum.repos.d]# cp ./Rocky-*.repo ./backup/
[root@localhost yum.repos.d]# mv ELevate.repo  epel-modular.repo epel.repo epel-testing-modular.repo epel-testing.repo ./backup/
[root@localhost yum.repos.d]# sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \-i.bak \/etc/yum.repos.d/Rocky-*.repo
[root@localhost ~]# yum makecache  
或者 dnf makecache[root@localhost ~]# yum makecache
Rocky Linux 8 - AppStream                                                                                                                                      276 kB/s | 9.2 MB     00:34    
Rocky Linux 8 - BaseOS                                                                                                                                          225 kB/s | 3.8 MB     00:17    
Rocky Linux 8 - Extras                                                                                                                                             1.2 kB/s |  13 kB     00:10    
元数据缓存已建立。

2 新的系统中无法找到docker服务,无法使用docker命令,但是docker的存储数据目录还在

但是我的docker被卸载了,镜像也找不到了,如果安装了docker 一定要备份啊 ,当然其他服务也是如此

[root@localhost ~]# netstat -lnpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1039/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1650/master         
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      1045/redis-server 1 
tcp6       0      0 :::22                   :::*                    LISTEN      1039/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1650/master         
tcp6       0      0 :::3306                 :::*                    LISTEN      1325/mysqld         
[root@localhost ~]# which docker
/usr/bin/which: no docker in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@localhost ~]# du -sh /var/lib/docker
96M	/var/lib/docker
[root@localhost ~]# ll /var/lib/docker/
总用量 4
drwx------.  3 root root   78 6月   1 14:02 containers
drwx------.  3 root root   22 6月   1 13:56 image
drwxr-x---.  3 root root   19 6月   1 13:56 network
drwx------. 11 root root 4096 6月   1 13:47 overlay2
drwx------.  4 root root   32 6月   1 13:56 plugins
drwx------.  2 root root    6 6月   1 13:56 swarm
drwx------.  2 root root    6 6月   1 14:00 tmp
drwx------.  2 root root    6 6月   1 13:56 trust
drwx------.  2 root root   25 6月   1 15:37 volumes

2.1 rockylinux上的并没有docker的安装包,叫podman

官网 https://podman.io/

[root@localhost ~]# yum install docker
上次元数据过期检查:0:02:00 前,执行于 2023年06月01日 星期四 15时36分48秒。
依赖关系解决。
==============================================================================================================================================================================================软件包                                              架构                           版本                                                              仓库                               大小
==============================================================================================================================================================================================
安装:podman-docker                                       noarch                         3:4.4.1-12.module+el8.8.0+1265+fa25dd7a                           appstream                          74 k
安装依赖关系:conmon                                              x86_64                         3:2.1.6-1.module+el8.8.0+1265+fa25dd7a                            appstream                          56 kcontainernetworking-plugins                         x86_64                         1:1.2.0-1.module+el8.8.0+1265+fa25dd7a                            appstream                          20 Mpodman                                              x86_64                         3:4.4.1-12.module+el8.8.0+1265+fa25dd7a                           appstream                          15 Mpodman-catatonit                                    x86_64                         3:4.4.1-12.module+el8.8.0+1265+fa25dd7a                           appstream                         361 kshadow-utils-subid                                  x86_64                         2:4.6-17.el8                                                      baseos                            112 k事务概要
==============================================================================================================================================================================================
安装  6 软件包总下载:35 M
安装大小:107 M
确定吗?[y/N]: y
下载软件包:
(1/6): conmon-2.1.6-1.module+el8.8.0+1265+fa25dd7a.x86_64.rpm                                                                                                  10 kB/s |  56 kB     00:05    
(2/6): podman-catatonit-4.4.1-12.module+el8.8.0+1265+fa25dd7a.x86_64.rpm                                                                                      242 kB/s | 361 kB     00:01    
(3/6): podman-docker-4.4.1-12.module+el8.8.0+1265+fa25dd7a.noarch.rpm                                                                                         196 kB/s |  74 kB     00:00    
(4/6): shadow-utils-subid-4.6-17.el8.x86_64.rpm                                                                                                               199 kB/s | 112 kB     00:00    
(5/6): podman-4.4.1-12.module+el8.8.0+1265+fa25dd7a.x86_64.rpm                                                                                                225 kB/s |  15 MB     01:07    
(6/6): containernetworking-plugins-1.2.0-1.module+el8.8.0+1265+fa25dd7a.x86_64.rpm                                                                            228 kB/s |  20 MB     01:29    
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                                          405 kB/s |  35 MB     01:29     
Rocky Linux 8 - AppStream                                                                                                                                     172 kB/s | 1.6 kB     00:00    
导入 GPG 公钥 0x6D745A60:Userid: "Release Engineering <infrastructure@rockylinux.org>"指纹: 7051 C470 A929 F454 CEBE 37B7 15AF 5DAC 6D74 5A60来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
确定吗?[y/N]: y
导入公钥成功
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务准备中  :                                                                                                                                                                               1/1 安装    : shadow-utils-subid-2:4.6-17.el8.x86_64                                                                                                                                        1/6 安装    : containernetworking-plugins-1:1.2.0-1.module+el8.8.0+1265+fa25dd7a.x86_64                                                                                                     2/6 安装    : conmon-3:2.1.6-1.module+el8.8.0+1265+fa25dd7a.x86_64                                                                                                                          3/6 安装    : podman-catatonit-3:4.4.1-12.module+el8.8.0+1265+fa25dd7a.x86_64                                                                                                               4/6 安装    : podman-3:4.4.1-12.module+el8.8.0+1265+fa25dd7a.x86_64                                                                                                                         5/6 安装    : podman-docker-3:4.4.1-12.module+el8.8.0+1265+fa25dd7a.noarch                                                                                                                  6/6 运行脚本: podman-docker-3:4.4.1-12.module+el8.8.0+1265+fa25dd7a.noarch                                                                                                                  6/6 验证    : conmon-3:2.1.6-1.module+el8.8.0+1265+fa25dd7a.x86_64                                                                                                                          1/6 验证    : containernetworking-plugins-1:1.2.0-1.module+el8.8.0+1265+fa25dd7a.x86_64                                                                                                     2/6 验证    : podman-3:4.4.1-12.module+el8.8.0+1265+fa25dd7a.x86_64                                                                                                                         3/6 验证    : podman-catatonit-3:4.4.1-12.module+el8.8.0+1265+fa25dd7a.x86_64                                                                                                               4/6 验证    : podman-docker-3:4.4.1-12.module+el8.8.0+1265+fa25dd7a.noarch                                                                                                                  5/6 验证    : shadow-utils-subid-2:4.6-17.el8.x86_64                                                                                                                                        6/6 
已更新安装的产品。已安装:conmon-3:2.1.6-1.module+el8.8.0+1265+fa25dd7a.x86_64                                    containernetworking-plugins-1:1.2.0-1.module+el8.8.0+1265+fa25dd7a.x86_64                           podman-3:4.4.1-12.module+el8.8.0+1265+fa25dd7a.x86_64                                   podman-catatonit-3:4.4.1-12.module+el8.8.0+1265+fa25dd7a.x86_64                                     podman-docker-3:4.4.1-12.module+el8.8.0+1265+fa25dd7a.noarch                            shadow-utils-subid-2:4.6-17.el8.x86_64                                                              完毕!

2.2 podman 启动,启动文件

[root@localhost ~]# ll /usr/lib/systemd/system/podman*
-rw-r--r--. 1 root root 284 5月  17 05:25 /usr/lib/systemd/system/podman-auto-update.service
-rw-r--r--. 1 root root 143 5月  17 05:25 /usr/lib/systemd/system/podman-auto-update.timer
-rw-r--r--. 1 root root 667 5月  17 05:25 /usr/lib/systemd/system/podman-clean-transient.service
-rw-r--r--. 1 root root 443 5月  17 05:25 /usr/lib/systemd/system/podman-kube@.service
-rw-r--r--. 1 root root 510 5月  17 05:25 /usr/lib/systemd/system/podman-restart.service
-rw-r--r--. 1 root root 324 5月  17 05:25 /usr/lib/systemd/system/podman.service
-rw-r--r--. 1 root root 176 5月  17 05:25 /usr/lib/systemd/system/podman.socket
[root@localhost ~]# [root@localhost ~]# systemctl startpodman
[root@localhost ~]# systemctl enable podman
[root@localhost ~]# podman -v
podman version 4.4.1

2.3 podman的目录

podman本地存储地址 /var/lib/containers/storage
[root@localhost ~]# find / -name podman
/run/podman
/var/lib/cni/networks/podman
/usr/bin/podman
/usr/share/doc/podman
/usr/share/licenses/podman
/usr/share/bash-completion/completions/podman
/usr/libexec/podman[root@localhost ~]# find / -name containers
/run/containers
/etc/containers
/var/lib/containers
/var/lib/docker/containers
/usr/share/containers

2.4 拉取镜像memcache,podman从dockerhub拉去镜像是可以的

[root@localhost ~]# podman pull docker.io/memcached:1.6.20
Trying to pull docker.io/library/memcached:1.6.20...
Getting image source signatures
Copying blob 26b333375d58 done  
Copying blob f03b40093957 done  
Copying blob 42850af464e5 done  
Copying blob 66835158f1e3 done  
Copying blob 4027e4df9c70 done  
Copying blob e874830b2907 done  
Copying config a78754495c done  
Writing manifest to image destination
Storing signatures
a78754495cd58c1fd188f1147b890bd9de6c8a3bf9cbea69c917e578a7fa6842

2.5 启动镜像

[root@localhost ~]#  podman run --name my-memcache -m 64mb -p 11211:11211 -d  docker.io/memcached:1.6.20
[root@localhost ~]# podman ps
CONTAINER ID  IMAGE                               COMMAND     CREATED         STATUS         PORTS                     NAMES
3565b7560aca  docker.io/library/memcached:1.6.20  memcached   39 seconds ago  Up 39 seconds  0.0.0.0:11211->11211/tcp  my-memcache
[root@localhost ~]# netstat -lnpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1039/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1650/master         
tcp        0      0 0.0.0.0:11211           0.0.0.0:*               LISTEN      50316/conmon        
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      1045/redis-server 1 
tcp6       0      0 :::22                   :::*                    LISTEN      1039/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1650/master         
tcp6       0      0 :::3306                 :::*                    LISTEN      1325/mysqld [root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 872M     0  872M    0% /dev
tmpfs                    890M   84K  890M    1% /dev/shm
tmpfs                    890M  608K  889M    1% /run
tmpfs                    890M     0  890M    0% /sys/fs/cgroup
/dev/mapper/centos-root   38G  4.2G   34G   11% /
/dev/sda1                2.0G  266M  1.8G   14% /boot
tmpfs                    178M     0  178M    0% /run/user/0
shm                       63M     0   63M    0% /var/lib/containers/storage/overlay-containers/3565b7560aca675d9c5b293e60dbeafa696d22c004837e99e132a1568d46e26e/userdata/shm
overlay                   38G  4.2G   34G   11% /var/lib/containers/storage/overlay/9b0bc430742f2c32e1b7b8ff9e47e7811c4484b31c12d41eb0451a3c78d3df4e/merged

3 安装nginx

nginx从在centos7.9上的1.20版本降级到了1.14版本

[root@localhost ~]# yum install nginx
[root@localhost ~]# nginx -v
nginx version: nginx/1.14.1
systemctl start nginx
systemctl enable nginx

访问web
在这里插入图片描述

本文参考
https://www.itzgeek.com/how-tos/linux/centos-how-tos/how-to-upgrade-centos-7-to-rocky-linux-8.html#:~:text=Upgrade%20CentOS%207%20to%20Rocky%20Linux%208%201,Linux%208%20…%205%20Post%20Migration%20Checkouts%20

相关文章:

centos7.9升级rockylinux8.8

前言 查看centos的版本 &#xff0c;我这台服务器是虚拟机,下面都是模拟实验 升级前一定要把服务器上配置文件&#xff0c;数据等进行备份 [rootlocalhost ~]#cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]#uname -a Linux jenkins_ser…...

C++初阶(三)---C++入门(下)

目录 一、内联函数 1.内联函数的定义与底层机制 0x01.内联函数的定义 0x02.内联函数的底层机制 2.内联函数的优缺点 优点&#xff1a; 缺点&#xff1a; 3.内联函数的使用建议 4.内联函数的注意事项 二、auto关键字&#xff08;C11&#xff09; 1.代码示例 2.auto使…...

Linux--多路转接之epoll

上一篇:Linux–多路转接之select epoll epoll 是 Linux 下多路复用 I/O 接口 select/poll 的增强版本&#xff0c;它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统 CPU 利用率。它是 Linux 下多路复用 API 的一个选择&#xff0c;相比 select 和 poll&#xff0c…...

自动化工具Nico,从零开始干掉Appium,移动端自动化测试框架实现

这篇将用较短的篇幅给大家介绍我是如何实现iOS和Android的inspector&#xff08;元素审查工具&#xff09;的。 实现原理 为了更方便的显示UI界面&#xff0c;且更容易制作&#xff0c;我选择了使用web端来承载整个元素树展示。同时我选用Flask一次性梭哈前后端&#xff08;因…...

Fast CRC32

链接&#xff1a; Fast CRC32 Error Checking Real life data tends to get corrupted because machines (and humans) are never as reliable as we wish for. One efficient way is make sure your data wasnt unintendedly modifiied is to generate some kind of hash. T…...

生成一个带有二维数据和对应标签的螺旋形数据集(非线性可分数据集)的代码解析

def create_dataset():np.random.seed(1)m 400 # 数据量N int(m/2) # 每个标签的实例数D 2 # 数据维度X np.zeros((m,D)) # 数据矩阵Y np.zeros((m,1), dtypeuint8) # 标签维度a 4 for j in range(2):ix range(N*j,N*(j1))t np.linspace(j*3.12,(j1)*3.12,N) np.rando…...

PHP unset() 函数的作用

PHP 中的 unset() 函数用于销毁指定的变量。具体来说&#xff0c;它会解除变量名与其数据之间的关联&#xff0c;从而释放该变量所占用的内存。不过需要注意的是&#xff0c;unset() 并不是删除变量的内容&#xff0c;而是取消对变量名的引用。如果变量是数组中的某个元素或者对…...

长篇故事可视化方法Story-Adapter:能够生成更高质量、更具细腻交互的故事图像,确保每一帧都能准确地传达故事情节。

今天给大家介绍一个最新的长篇故事可视化方法Story-Adapter&#xff0c;它的工作原理可以想象成一个画家在创作一幅长画卷。首先&#xff0c;画家根据故事的文本提示画出初步的图像。这些图像就像是画卷的草图。接下来&#xff0c;画家会不断回顾这些草图&#xff0c;逐步添加细…...

C++基础面试题 | 什么是C++中的运算符重载?

文章目录 回答重点&#xff1a;示例&#xff1a; 运算符重载的基本规则和注意事项&#xff1a; 回答重点&#xff1a; C的运算符重载是指可以为自定义类型&#xff08;如类或结构体&#xff09;定义运算符的行为&#xff0c;使其像内置类型一样使用运算符。通过重载运算符&…...

深入 IDEA 字节码世界:如何轻松查看 .class 文件?

前言&#xff1a; 作为一名 Java 开发者&#xff0c;理解字节码对于优化程序性能、调试错误以及深入了解 JVM 运行机制非常重要。IntelliJ IDEA 作为最流行的开发工具之一&#xff0c;为开发者提供了查看 .class 文件字节码的功能。在本文中&#xff0c;我将带你一步步探索如何…...

NodeJS 利用代码生成工具编写GRPC

生成的 gRPC 代码优点 自动化和效率: 减少手动编码:生成代码自动处理了消息的序列化和反序列化、服务接口的定义等,减少了手动编码的工作量。一致性:生成的代码确保了客户端和服务器之间的一致性,避免了手动编码可能带来的错误。跨语言支持: 多语言兼容:gRPC 支持多种编…...

uni-app基础语法(一)

我们今天的学习目标 基础语法1. 创建新页面2.pages配置页面3.tabbar配置4.condition 启动模式配置 基础语法 1. 创建新页面 2.pages配置页面 属性类型默认值描述pathString配置页面路径styleObject配置页面窗口表现&#xff0c;配置项参考pageStyle 我们来通过style修改页面的…...

Linux:进程控制(三)——进程程序替换

目录 一、概念 二、使用 1.单进程程序替换 2.多进程程序替换 3.exec接口 4.execle 一、概念 背景 当前进程在运行的时候&#xff0c;所执行的代码来自于自己的源文件。使用fork创建子进程后&#xff0c;子进程执行的程序中代码内容和父进程是相同的&#xff0c;如果子进…...

LeetCode279:完全平方数

题目链接&#xff1a;279. 完全平方数 - 力扣&#xff08;LeetCode&#xff09; 代码如下 class Solution { public:int numSquares(int n) {vector<int> dp(n 1, INT_MAX);dp[0] 0;for(int i 1; i * i < n; i){for(int j i * i; j < n; j){dp[j] min(dp[j …...

python爬虫--某动漫信息采集

python爬虫--tx动漫 一、采集主页信息二、采集详情页信息三、代码供参考一、采集主页信息 略。 二、采集详情页信息 如上图所示,使用xpath提取详情页的标题、作者、评分、人气、评论人数等数据。 三、代码供参考 import csv import time import random import requests fr…...

使用Rollup.js快速开始构建一个前端项目

Rollup 是一个用于 JavaScript 项目的模块打包器&#xff0c;它将小块代码编译成更大、更复杂的代码&#xff0c;例如库或应用程序。Rollup 对代码模块使用 ES6 模块标准&#xff0c;它支持 Tree-shaking&#xff08;摇树优化&#xff09;&#xff0c;可以剔除那些实际上没有被…...

10.15学习

1.程序开发的步骤 定义程序的目标→设计程序→编写代码&#xff08;需要选择语言&#xff0c;一种语言对应一种编译器&#xff09;→编译→运行程序→测试和调试程序→维护和修改程序 2.ANSI/ISO C标准 1989年ANSI批准通过&#xff0c;1990年ISO批准通过&#xff0c;因此被称…...

mongodb-7.0.14分片副本集超详细部署

mongodb介绍&#xff1a; 是最常用的nosql数据库&#xff0c;在数据库排名中已经上升到了前六。这篇文章介绍如何搭建高可用的mongodb&#xff08;分片副本&#xff09;集群。 环境准备 系统系统 BC 21.10 三台服务器&#xff1a;192.168.123.247/248/249 安装包&#xff1a…...

C++运算出现整型溢出

考虑如下代码&#xff1a; int aINT_MAX; int b 1; long c ab; 这段代码没有编过&#xff01; 原因是a和b都是int型&#xff0c;相加之后会溢出。 请记住&#xff0c;c语言没有赋值&#xff0c;只有表达式&#xff0c;右侧会存在一个暂存的int保存ab的值&#xff0c;而明…...

LeetCode岛屿数量

题目描述 给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以假设该网…...

Karmada核心概念

以下内容为翻译&#xff0c;原文地址 Karmada 是什么&#xff1f; | karmada 一、Karmada核心概念 一&#xff09;什么是Karmada 1、Karmada&#xff1a;开放&#xff0c;多云&#xff0c;多集群Kubernetes业务流程 Karmada (Kubernetes Armada)是一个Kubernetes管理系统&…...

Rust 与生成式 AI:从语言选择到开发工具的演进

在现代软件开发领域&#xff0c;Rust 语言正在逐步崭露头角&#xff0c;尤其是在高性能和可靠性要求较高的应用场景。与此同时&#xff0c;生成式 AI 的崛起正在重新塑造开发者的工作方式&#xff0c;从代码生成到智能调试&#xff0c;生成式 AI 的应用正成为提升开发效率和质量…...

Python爬虫高效数据爬取方法

大家好!今天我们来聊聊Python爬虫中那些既简洁又高效的数据爬取方法。作为一名爬虫工程师,我们总是希望用最少的代码完成最多的工作。下面我ll分享一些在使用requests库进行网络爬虫时常用且高效的函数和方法。 1. requests.get() - 简单而强大 requests.get()是我们最常用的…...

C语言之扫雷小游戏(完整代码版)

说起扫雷游戏&#xff0c;这应该是很多人童年的回忆吧&#xff0c;中小学电脑课最常玩的必有扫雷游戏&#xff0c;那么大家知道它是如何开发出来的吗&#xff0c;扫雷游戏背后的原理是什么呢&#xff1f;今天就让我们一探究竟&#xff01; 扫雷游戏介绍 如下图&#xff0c;简…...

Spring WebFlux 响应式概述(1)

1、响应式编程概述 1.1、响应式编程介绍 1.1.1、为什么需要响应式 传统的命令式编程在面对当前的需求时的一些限制。在应用负载较高时&#xff0c;要求应用需要有更高的可用性&#xff0c;并提供低的延迟时间。 1、Thread per Request 模型 比如使用Servlet开发的单体应用&a…...

Unity游戏通用框架——事件的订阅和发布(观察者模式)

在游戏开发的基本思想中&#xff0c;逻辑与表现的分离极为重要&#xff0c;相互之间并不关心具体实现&#xff0c;只注册对应的事件&#xff0c;有事件发生时才调用相应的函数 事件管理器 using System.Collections; using System.Collections.Generic;public class event_ma…...

将 Ubuntu 系统中的 **swap** 空间从 2GB 扩展到 16GB

要将 Ubuntu 系统中的 swap 空间从 2GB 扩展到 16GB&#xff0c;可以按照以下步骤操作&#xff1a; 1. 关闭现有 Swap 文件 首先需要禁用当前的 swap 文件&#xff0c;以便重新调整其大小。 sudo swapoff -a2. 删除旧的 Swap 文件 假设当前的 swap 文件位于 /swapfile&…...

流程图 LogicFlow

流程图 LogicFlow 官方文档&#xff1a;https://site.logic-flow.cn/tutorial/get-started <script setup> import { onMounted, ref } from vue import { forEach, map, has } from lodash-es import LogicFlow, { ElementState, LogicFlowUtil } from logicflow/core …...

Mac通过键盘选取内容

问题&#xff1a; 我们在使用键盘的时候经常懒得动手去拿鼠标了&#xff0c;并且熟练使用键盘可以提高我们的工作效率&#xff0c;比如在我们需要复制内容的时候&#xff0c;可以仅仅通过键盘来选取想要的内容&#xff1b; 解决&#xff1a; 将鼠标光标移动到想要选取的内容…...

如何通过OpenCV实现图像融合拼接?

图像拼接的意义 2024年了&#xff0c;谈论图像拼接&#xff0c;不算新事物&#xff0c;我们这里探讨图像拼接&#xff0c;主要探讨图像拼接的意义、难点和大概的实现思路。图像拼接可以突破设备视野限制&#xff0c;通过拼接低分辨率图像获得高分辨率图像。 扩展视野&#xff…...