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

在服务器上安装AlphaFold2遇到的问题(1)

犯了错误,轻信deepseek,误将cuDNN8.9.7删掉

[root@localhost ~]# cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 7
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)/* cannot use constexpr here since this is a C-only file */
[root@localhost ~]# ldconfig -p | grep libcudnn.so.8libcudnn.so.8 (libc6,x86-64) => /usr/local/cuda/targets/x86_64-linux/lib/libcudnn.so.8libcudnn.so.8 (libc6,x86-64) => /lib64/libcudnn.so.8
[root@localhost ~]# export LD_PRELOAD=/usr/local/cuda/lib64/libcudnn.so.8
[root@localhost ~]# cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 7
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)/* cannot use constexpr here since this is a C-only file */
[root@localhost ~]# cat /usr/include/cudnn_version.h
cat: /usr/include/cudnn_version.h: 没有那个文件或目录
#???
cat /usr/include/cudnn.h
[root@localhost ~]# ls /usr/lib64/libcudnn.so*
/usr/lib64/libcudnn.so.8
[root@localhost ~]# dnf list installed | grep cudnn
cudnn-local-repo-rhel8-9.10.0.x86_64               1.0-1                                                      @System     

剁手!!!

[root@localhost ~]# dnf remove -y libcudnn* libcudnn8* libcudnn-devel*
未找到匹配的参数: libcudnn*
未找到匹配的参数: libcudnn8*
未找到匹配的参数: libcudnn-devel*
没有软件包需要移除。
依赖关系解决。
无需任何处理。
完毕!
[root@localhost ~]# rm -f /usr/local/cuda/include/cudnn*.h
[root@localhost ~]# rm -f /usr/local/cuda/lib64/libcudnn*
[root@localhost ~]# ldconfig
[root@localhost ~]# find / -name "*cudnn*" 2>/dev/null
/home/Softwares/AlphaFold2/cudnn-local-repo-rhel8-9.10.0-1.0-1.x86_64.rpm
/home/Softwares/AlphaFold2/cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
/home/Softwares/AlphaFold2/cudnn-linux-x86_64-8.9.7.29_cuda12-archive
…………………………
/var/cache/PackageKit/8.7/hawkey/cudnn-local-rhel8-9.10.0.solv
/var/cache/PackageKit/8.7/hawkey/cudnn-local-rhel8-9.10.0-filenames.solvx
/var/cache/dnf/cudnn-local-rhel8-9.10.0-903bc33f34604e66
/var/cache/dnf/cudnn-local-rhel8-9.10.0.solv
/var/cache/dnf/cudnn-local-rhel8-9.10.0-filenames.solvx
/var/cudnn-local-repo-rhel8-9.10.0
/var/cudnn-local-repo-rhel8-9.10.0/cudnn-9.10.0-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/cudnn-jit-9.10.0-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/cudnn-local-D3C757D7-keyring.gpg
/var/cudnn-local-repo-rhel8-9.10.0/cudnn9-9.10.0-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/cudnn9-cuda-11-8-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/cudnn9-cuda-11-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/cudnn9-cuda-12-9-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/cudnn9-cuda-12-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/cudnn9-jit-9.10.0-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/cudnn9-jit-cuda-11-8-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/cudnn9-jit-cuda-11-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/cudnn9-jit-cuda-12-9-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/cudnn9-jit-cuda-12-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-cuda-11-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-cuda-12-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-devel-cuda-11-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-devel-cuda-12-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-headers-cuda-11-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-headers-cuda-12-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-jit-cuda-11-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-jit-cuda-12-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-jit-devel-cuda-11-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-jit-devel-cuda-12-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-samples-9.10.0.56-1.noarch.rpm
/var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-static-cuda-11-9.10.0.56-1.x86_64.rpm
/var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-static-cuda-12-9.10.0.56-1.x86_64.rpm

1. 文件来源:
这些文件通常是您通过 NVIDIA 官方 .rpm 包安装 cuDNN 时自动生成的
/var/cudnn-local-repo-* 目录包含本地仓库信息和安装包缓存
2. 文件作用:
cudnn-local-repo-rhel8-9.10.0 是本地仓库配置目录
cudnn-9.10.0-1.x86_64.rpm 是下载的原始安装包
可以安全删除,因为:
这些只是安装过程中的缓存文件和仓库配置
删除不会影响已经安装到系统目录的 cuDNN 库文件
如果需要重新安装,可以从 NVIDIA 官网重新下载
安全删除方法
#删除整个本地仓库目录
sudo rm -rf /var/cudnn-local-repo-rhel8-9.10.0
#也可以选择性只删除 RPM 包
sudo rm -f /var/cudnn-local-repo-rhel8-9.10.0/cudnn-9.10.0-1.x86_64.rpm
删除后建议

  1. 如果您计划未来重新安装相同版本:
    可以保留 .rpm 文件以便重复使用
    但通常建议从官网下载最新版本
  2. 清理后重建仓库缓存:
    sudo dnf clean all
    sudo dnf makecache
  3. 验证已安装的 cuDNN 是否仍然工作:
    ldconfig -p | grep libcudnn

其他类似可删除的文件
同样可以安全删除的类似文件包括:
/var/cuda-repo-* 目录
/var/nvidia-driver-* 目录
任何 /var/ 下以 -repo- 命名的目录
这些都是在安装 NVIDIA 相关软件时创建的临时仓库目录,删除不会影响已安装的软件功能。

因为上面剁手了所以这里出现问题了

[root@localhost ~]# ls -l /var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-static-cuda-12-9.10.0.56-1.x86_64.rpm
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
-rw-r--r--. 1 root root 749479982 55 13:25 /var/cudnn-local-repo-rhel8-9.10.0/libcudnn9-static-cuda-12-9.10.0.56-1.x86_64.rpm
[root@localhost ~]# ls -l /home/Softwares/AlphaFold2/cudnn-linux-x86_64-8.9.7.29_cuda12-archive/include/cudnn_version.h
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
-rw-r--r--. 1 25503 2174 4019 1130 2023 /home/Softwares/AlphaFold2/cudnn-linux-x86_64-8.9.7.29_cuda12-archive/include/cudnn_version.h
[root@localhost ~]# cd /home/
[root@localhost home]# ls
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Softwares  user  wulu1  yhm
[root@localhost home]# cd Softwares/
[root@localhost Softwares]# ls
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
AlphaFold2
[root@localhost Softwares]# cd AlphaFold2/
[root@localhost AlphaFold2]# ls
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
cuda-repo-rhel8-12-9-local-12.9.0_575.51.03-1.x86_64.rpm  cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
cudnn-linux-x86_64-8.9.7.29_cuda12-archive                cudnn-local-repo-rhel8-9.10.0-1.0-1.x86_64.rpm
[root@localhost AlphaFold2]# cd cudnn-linux-x86_64-8.9.7.29_cuda12-archive/
[root@localhost ~]# ldconfig -p | grep cudnn
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

想注释环境变量来着

[root@localhost ~]# vi /ect/profile
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
[root@localhost ~]# vi ~/.bashrc
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
[root@localhost ~]# vi /etc/profile
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
[root@localhost ~]# rm -rf /var/cudnn-local-repo*
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

这个错误信息看似与删除操作无关,实际上是系统在尝试加载一个已经被删除或不可用的 CUDA/cuDNN 库文件。
错误原因分析
表面现象:当执行 rm 命令时,系统显示无法预加载 libcudnn.so.8
这不是删除操作本身的错误,而是 LD_PRELOAD 环境变量配置问题
根本原因:
某些程序(可能是之前安装的 CUDA 相关工具)在环境变量中设置了 LD_PRELOAD=/usr/local/cuda/lib64/libcudnn.so.8

1. 临时解决方案(当前会话有效)

# 取消 LD_PRELOAD设置 unset LD_PRELOAD
# 然后重新执行删除命令 rm -rf /var/cudnn-local-repo*

2. 永久解决方案(推荐)

# 检查哪些配置文件设置了 LD_PRELOAD grep -r "LD_PRELOAD" /etc/ ~/.bash* ~/.profile* /etc/profile.d/
# 找到包含该设置的文件后,编辑文件删除或注释相关行 sudo nano /etc/profile #或其他查找到的文件 #注释掉类似这样的行:export LD_PRELOAD=/usr/local/cuda/lib64/libcudnn.so.8
# 使更改生效 source ~/.bashrc # 或其他被修改的文件

3. 如果文件确实需要保留

如果 libcudnn.so.8 是其他程序必需的:
# 重新安装正确的库文件 sudo dnf install libcudnn8
# 或创建正确的符号链接 sudo ln -s /usr/local/cuda/lib64/libcudnn.so.8 /lib64/ sudo ldconfig

现在这个库文件已被删除或路径变更,导致系统无法加载

注释掉环境变量后,反而报了一大堆错误

[root@localhost ~]# source /etc/profile
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

这里应该是取消注释环境变量

[root@localhost ~]# vi /etc/profile
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
[root@localhost ~]# ls
ERROR: ld.so: object '/usr/local/cuda/lib64/libcudnn.so.8' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
公共  模板  视频  图片  文档  下载  音乐  桌面  anaconda-ks.cfg  initial-setup-ks.cfg  NVIDIA-Linux-x86_64-550.144.03.run
[root@localhost ~]# unset LD_PRELOAD
[root@localhost ~]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面  anaconda-ks.cfg  initial-setup-ks.cfg  NVIDIA-Linux-x86_64-550.144.03.run
[root@localhost ~]# rm -rf /var/cudnn-local-repo*
[root@localhost ~]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面  anaconda-ks.cfg  initial-setup-ks.cfg  NVIDIA-Linux-x86_64-550.144.03.run
[root@localhost ~]# cd /home/
[root@localhost home]# ls
Softwares  user  wulu1  yhm
[root@localhost home]# cd Softwares/
[root@localhost Softwares]# ls
AlphaFold2
[root@localhost Softwares]# cd AlphaFold2/
[root@localhost AlphaFold2]# ls
cuda-repo-rhel8-12-9-local-12.9.0_575.51.03-1.x86_64.rpm  cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
cudnn-linux-x86_64-8.9.7.29_cuda12-archive                cudnn-local-repo-rhel8-9.10.0-1.0-1.x86_64.rpm

手动删除残余文件

[root@localhost Softwares]# rm -rf /etc/yum.repos.d/cudnn-local-rhel8-9.10.0.repo
[root@localhost Softwares]# rm -rf /var/cache/PackageKit/8.7/hawkey/cudnn-local-rhel8-9.10.0.solv
[root@localhost Softwares]# rm -rf /var/cache/PackageKit/8.7/hawkey/cudnn-local-rhel8-9.10.0-filenames.solvx
[root@localhost Softwares]# rm -rf /var/cache/dnf/cudnn-local-rhel8-9.10.0-903bc33f34604e66
[root@localhost Softwares]# rm -rf /var/cache/dnf/cudnn-local-rhel8-9.10.0.solv
[root@localhost Softwares]# rm -rf /var/cache/dnf/cudnn-local-rhel8-9.10.0-filenames.solvx

文件路径类型是否可删除备注

/etc/yum.repos.d/cudnn-local-rhel8-9.10.0.repo仓库配置文件✅ 可删除删除后需通过 dnf clean all 更新缓存
/var/cache/PackageKit/8.7/hawkey/cudnn-local-rhel8-9.10.0.solv包管理器缓存✅ 可删除PackageKit 的解决依赖缓存
/var/cache/PackageKit/8.7/hawkey/cudnn-local-rhel8-9.10.0-filenames.solvx包管理器缓存✅ 可删除文件名索引缓存
/var/cache/dnf/cudnn-local-rhel8-9.10.0-903bc33f34604e66DNF 缓存目录✅ 可删除包含下载的元数据
/var/cache/dnf/cudnn-local-rhel8-9.10.0.solvDNF 依赖解析缓存✅ 可删除二进制格式的依赖关系数据
/var/cache/dnf/cudnn-local-rhel8-9.10.0-filenames.solvxDNF 文件名索引✅ 可删除加速包搜索的索引文件

from deepseek
在这里插入图片描述

在这里插入图片描述

[root@localhost Softwares]# cd AlphaFold2/
[root@localhost AlphaFold2]# ls
cuda-repo-rhel8-12-9-local-12.9.0_575.51.03-1.x86_64.rpm  cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
cudnn-linux-x86_64-8.9.7.29_cuda12-archive                cudnn-local-repo-rhel8-9.10.0-1.0-1.x86_64.rpm
[root@localhost AlphaFold2]# cd cudnn-linux-x86_64-8.9.7.29_cuda12-archive/
[root@localhost cudnn-linux-x86_64-8.9.7.29_cuda12-archive]# ls
include  lib  LICENSE

验证是否清理干净

# 检查仓库配置
ls /etc/yum.repos.d/ | grep -i cudnn
# 检查缓存文件
ls /var/cache/{dnf,PackageKit}/* | grep -i cudnn
[root@localhost cudnn-linux-x86_64-8.9.7.29_cuda12-archive]# ls /etc/yum.repos.d/ | grep -i cudnn
[root@localhost cudnn-linux-x86_64-8.9.7.29_cuda12-archive]# ls /var/cache/{dnf,PackageKit}/* | grep -i cudnn

这些文件删除后,系统会更加干净,不会影响其他CUDA/cuDNN组件的运行。如果未来需要重新安装相同版本,只需重新下载官方安装包即可恢复仓库配置。

[root@localhost cudnn-linux-x86_64-8.9.7.29_cuda12-archive]# dnf clean all
31 文件已删除
[root@localhost cudnn-linux-x86_64-8.9.7.29_cuda12-archive]# dnf makecache
Rocky Linux 8 - AppStream                                                                            1.5 MB/s |  18 MB     00:11    
Rocky Linux 8 - BaseOS                                                                               4.0 MB/s |  23 MB     00:05    
Rocky Linux 8 - Extras                                                                                13 kB/s |  15 kB     00:01    
cuda-rhel8-12-9-local                                                                                 81 MB/s | 121 kB     00:00    
元数据缓存已建立。

完整删除 cuDNN 残留的步骤

  1. 先修复 LD_PRELOAD 问题:unset LD_PRELOAD
  2. 然后删除目标文件:sudo rm -rf /var/cudnn-local-repo*
  3. 清理其他残留:
    sudo rm -f /usr/local/cuda/lib64/libcudnn*
    sudo rm -f /usr/include/cudnn.h
    sudo ldconfig

验证删除结果

#检查文件是否已删除
ls /var/cudnn-local-repo* 2>/dev/null
#检查库加载是否正常
ldconfig -p | grep cudnn
在这里插入图片描述

相关文章:

在服务器上安装AlphaFold2遇到的问题(1)

犯了错误,轻信deepseek,误将cuDNN8.9.7删掉 [rootlocalhost ~]# cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2 #define CUDNN_MAJOR 8 #define CUDNN_MINOR 9 #define CUDNN_PATCHLEVEL 7 -- #define CUDNN_VERSION (CUDNN_MA…...

ch10 题目参考思路

ch10 - 最小生成树 有线通讯网 知识点:Prim 算法思路: 该题要求对 n 座城市铺设 n - 1 条光缆,并要求所有城市连通,那本质上是一棵树,又要求铺设光缆的费用最低,即要求选取的 n - 1 条光缆的长度最小&…...

Hudi、Iceberg 、 Paimon 数据湖选型对比

Hudi、Iceberg 和 Paimon 是当前数据湖领域的三大主流开源框架,均致力于解决数据湖场景下的增量更新、事务支持、元数据管理、流批统一等核心问题,但设计理念和适用场景存在差异。以下从技术特性、适用场景和选型建议三方面对比分析: 一、核心技术特性对比 维度HudiIceberg…...

2025认证杯数学建模第二阶段A题完整论文(代码齐全):小行星轨迹预测思路

2025认证杯数学建模第二阶段A题完整论文(代码齐全):小行星轨迹预测思路,详细内容见文末名片 第二阶段问题 1 分析 问题起源与相关性:为了更全面地评估近地小行星对地球的潜在威胁,需要对其轨道进行长期预测。三个月内的观测数据为…...

信息安全基础知识

信息系统 信息系统能进行(数据)的采集、传输、存储、加工,使用和维护的计算机应用系统 例如:办公自动化、CRM/ERP、HRM、12306火车订票系统等。 信息安全 信息安全是指保护信息系统中的计算机硬件、软件、数据不因偶然或者恶意…...

UE RPG游戏开发练手 第二十六课 普通攻击1

UE RPG游戏开发练手 第二十六课 普通攻击1 1.定义攻击的InputTag MyGameplayTags.h代码 RPGGAMETEST_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(InputTag_LightAttack_Axe);MyGameplayTag.cpp代码 UE_DEFINE_GAMEPLAY_TAG(InputTag_LightAttack_Axe, "InputTag.LightAttack.Ax…...

SAP ABAP 程序中归档数据读取方式

上一篇文章记录了字段目录,归档信息结构,这篇文章记录如何通过字段目录,归档信息结构,归档对象读取归档数据。未归档数据是从数据库表直接抽取,本样例是通过归档读取方式复写sql。 发布时间:2025.05.16 示…...

每周资讯 | 腾讯Q1财报:国内游戏业务收入同比增长24%;Tripledot 8亿美元收购AppLovin游戏业务

内容速览: 广州“服务贸易和数字贸易22条”助推游戏产业发展Tripledot Studios 8亿美元收购AppLovin游戏业务苹果紧急申请暂停执行AppStore新规4月中国手游出海收入下载榜,点点互动《Kingshot》收入激增 腾讯Q1财报:国内游戏业务收入同比增长…...

iOS SwiftUI的具体运用实例(SwiftUI库的运用)

最近接触到一个 SwiftUI的第三方框架,它非常的好用。以下是 具体运用实例,结合其核心功能与开发场景,分多个维度进行详细解析: 一、基础 UI 组件开发 登录界面 SwiftUI 的 VStack、TextField 和 Button 可快速构建用户登录表单。例…...

杰理ac696配置sd卡随机播放

#define FCYCLE_LIST 0 // 列表循环(按顺序播放文件列表) #define FCYCLE_ALL 1 // 全部循环(播放完所有文件后重新开始) #define FCYCLE_ONE 2 // 单曲循环(重复播放当前文件) #define …...

MCP协议的核心机制和交互过程

MCP的核心是JSON-RPC 2.0 MCP使用了 JSON-RPC 2.0 作为client和server端的消息传输。JSON-RPC 2.0是一个用JSON编码的轻量级远程过程调用协议。它的优越性如下: 易读,易调试与编程语言无关,环境无关技术成熟,规范清晰且应用广泛JSON-NPC 2.0定义了request、response、noti…...

论信息系统项目的范围管理

论信息系统项目的范围管理 前言一、规划范围管理,收集需求二、定义范围三、创建工作分解结构四、确认范围五、控制范围 前言 为了应对烟草零售客户数量大幅度增长所带来的问题,切实履行控烟履约的相关要求,同时也为了响应国务院“放管服”政策…...

米勒电容补偿的理解

米勒电容补偿是使运放放大器稳定的重要手法,可以使两级运放的两个极点分离,从而可以得到更好的相位裕度。 Miller 电容补偿的本质是增加一条通路流电流,流电流才是miller效应的本质。给定一个相同的输入,Miller 电容吃掉的电流比…...

力扣654题:最大二叉树(递归)

小学生一枚,自学信奥中,没参加培训机构,所以命名不规范、代码不优美是在所难免的,欢迎指正。 标签: 二叉树、递归 语言: C 题目: 给定一个不重复的整数数组 nums 。最大二叉树可以用下面的算…...

Go语言实现生产者-消费者问题的多种方法

Go语言实现生产者-消费者问题的多种方法 生产者-消费者问题是并发编程中的经典问题,涉及多个生产者生成数据,多个消费者消费数据,二者通过缓冲区(队列)进行协调,保证数据的正确传递和同步。本文将从简单到…...

深度学习驱动下的目标检测技术:原理、算法与应用创新(二)

三、主流深度学习目标检测算法剖析 3.1 R - CNN 系列算法 3.1.1 R - CNN 算法详解 R - CNN(Region - based Convolutional Neural Networks)是将卷积神经网络(CNN)应用于目标检测领域的开创性算法,其在目标检测发展历…...

提权脚本Powerup命令备忘单

1. 获取与加载 从 GitHub 下载:(New-Object Net.WebClient).DownloadFile("https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Privesc/PowerUp.ps1", "C:\Temp\PowerUp.ps1")本地加载:Import-Module .\Power…...

人工智能 (AI) 在无线接入网络 (RAN) 中的变革性作用

随着电信行业向更智能、更高效的系统迈进,将 AI 集成到 RAN 中已不再是可有可无,而是至关重要。 随着 6G 时代的到来,人工智能 (AI) 有望降低运营成本,并带来更大的盈利机会。AI-RAN 正处于这一变革的前沿,在 RAN 环境…...

从硬件角度理解“Linux下一切皆文件“,详解用户级缓冲区

目录 前言 一、从硬件角度理解"Linux下一切皆文件" 从理解硬件是种“文件”到其他系统资源的抽象 二、缓冲区 1.缓冲区介绍 2.缓冲区的刷新策略 3.用户级缓冲区 这个用户级缓冲区在哪呢? 解释关于fork再加重定向“>”后数据会打印两份的原因 4.内核缓冲…...

Python-感知机以及实现感知机

感知机定义 如果有一个算法,具有1个或者多个入参,但是返回值要么是0,要么是1,那么这个算法就叫做感知机,也就是说,感知机是个算法 感知机有什么用 感知机是用来表示可能性的大小的,我们可以认…...

根据台账批量制作个人表

1. 前期材料准备 1)要有 人员总的信息台账 2)要有 个人明白卡模板 2. 开始操作 1)打开 人员总的信息台账,选择所需要的数据模块; 2)点击插入,选择数据透视表,按流程操作&…...

ohttps开启群晖ssl证书自动更新

开启群晖ssl证书自动更新OHTTPS ohttps是一个免费自动签发ssl证书、管理、部署的项目。 https://ohttps.com 本文举例以ohttps项目自动部署、更新群晖的ssl证书。 部署 签发证书 打开ohttps-证书管理-创建证书-按你实际情况创建证书。创建部署节点 打开Ohttps-部署节点-添加…...

【Elasticsearch】flattened`类型在查询嵌套数组时可能返回不准确结果的情况

好的!为了更清楚地说明flattened类型在查询嵌套数组时可能返回不准确结果的情况,我们可以通过一个具体的例子来展示。这个例子将展示如何在文档中没有完全匹配的嵌套对象时,flattened类型仍然可能返回该文档。 示例文档结构 假设你有以下文…...

【知识点】语义分割任务中有哪些损失函数?

在语义分割任务中,模型需要对图像中的每个像素进行分类。因此,损失函数的设计不仅要关注整体精度,还需要特别注意目标物体的边界区域。以下是一些常用的损失函数及其适用场景,包括数学公式、PyTorch 实现和是否适合处理边界问题。 📌 一、交叉熵损失 Cross-Entropy Loss …...

Node.js 同步加载问题详解:原理、危害与优化策略

文章目录 一、什么是同步加载?二、同步加载的危害场景三、检测同步加载问题四、解决方案与代码优化 一、什么是同步加载? 1.核心概念 在 Node.js 的 CommonJS 模块系统中,require() 是同步操作: // 模块加载会阻塞后续代码执行 …...

linux下tcp/ip网络通信笔记1,

本文章主要为博主在学习网络通信的笔记一个Udp_echo_server,和client的代码实现 1,网络发展,网络协议,意识到网络通信——不同主机的进程间通信, 2,学习如何在应用层调用系统提供的接口进行通信,echo_Udp…...

网络攻防模拟:城市安全 “数字预演”

在当今数字化快速发展的时代,网络安全和城市安全面临着前所未有的挑战。为有效应对这些挑战,利用先进的技术搭建模拟演练平台至关重要。图扑软件的 HT for Web 技术,为网络攻防模拟与城市安全演练提供了全面且高效的解决方案。 三维场景搭建&…...

在 Ubuntu 20.04 中使用 init.d 或者systemd实现开机自动执行脚本

Ubuntu 20 默认使用的是 systemd 系统管理器,但传统的 SysV Init(/etc/init.d/)脚本依然兼容并可用。本文将介绍如何通过 init.d 写脚本来在开机时自动设置某个 GPIO(如 GPIO407)为高电平,适用于嵌入式系统…...

2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛) 解题报告 | 珂学家

前言 题解 2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛)。 国赛比省赛难一些,做得汗流浃背,T_T. RC-u1 大家一起查作弊 分值: 15分 这题真的太有意思,看看描述 在今年的睿抗比赛上,有同学的提交代码如下&#xff1…...

【生成式AI文本生成实战】从GPT原理到企业级应用开发

目录 🌟 前言🏗️ 技术背景与价值🩹 当前技术痛点🛠️ 解决方案概述👥 目标读者说明 🧠 一、技术原理剖析📊 核心概念图解💡 核心作用讲解🔧 关键技术模块说明⚖️ 技术选…...

【目标检测】RT-DETR

DETRs Beat YOLOs on Real-time Object Detection DETR在实时目标检测任务中超越YOLO CVPR 2024 代码地址 论文地址 0.论文摘要 YOLO系列因其在速度与精度间的均衡权衡,已成为实时目标检测领域最受欢迎的框架。然而我们观察到,非极大值抑制&#xf…...

数据库行业竞争加剧,MySQL 9.3.0 企业版开始支持个人下载

最新发现,Oracle 官方网站放开了 MySQL 9.3.0 企业版下载链接,个人用户也可以免费下载,不过只能用于学习、开发或者原型测试,不能用于生产环境。 通常我们都是下载 MySQL 社区版,不过 MySQL 企业版可以支持更多高级功能…...

QMK宏全面实战教程:从入门到精通(附17个实用案例)(理论部分)

🎯 QMK宏全面实战教程:从入门到精通(附17个实用案例) 大家好!作为一名机械键盘DIY爱好者和QMK固件深度玩家,今天我要带大家彻底掌握QMK宏的使用技巧!无论你是刚接触机械键盘的新手,还是想提升定制化水平的老玩家,这篇包含17个实战案例的教程都能满足你的需求! 🔍…...

H3C网络设备(交换机、路由器、防火墙)常用命令整理

H3C网络设备(交换机、路由器、防火墙)的常用命令整理。 一、H3C交换机常用命令 1. 基础操作 命令说明system-view进入系统视图quit返回上一级视图save保存配置display current-configuration查看当前配置(类似 show run)display…...

从前序与中序遍历序列构造二叉树(中等)

先从前序遍历列表取出第一个元素,这个元素就是根节点,然后从中序遍历中找到这个根节点,节点左侧就是该节点的左子树的节点集合,右侧就是该节点的右侧节点集合,然后递归构建左右子树。 /*** Definition for a binary t…...

ASP.NET/IIS New StreamContent(context.Request.InputStream) 不会立即复制整个请求流的内容到内存

StreamContent 的工作原理与内存占用 New StreamContent(context.Request.InputStream) 不会立即复制整个请求流的内容到内存。这个操作只是创建一个包装器,将原始的请求流(context.Request.InputStream)封装在 StreamContent 对象中&#x…...

Java大师成长计划之第24天:Spring生态与微服务架构之分布式配置与API网关

📢 友情提示: 本文由银河易创AI(https://ai.eaigx.com)平台gpt-4-turbo模型辅助创作完成,旨在提供灵感参考与技术分享,文中关键数据、代码与结论建议通过官方渠道验证。 在微服务架构中,如何管理…...

Spring Security vs Shiro vs Sa-Token

一句话总结: Spring Security:大公司专业保安队,功能全面但配置复杂Shiro:轻便灵活的安保工具包,上手简单但功能有限Sa-Token:国产智能门禁系统,开箱即用,代码极简 对比表格&#x…...

MongoTemplate 基础使用帮助手册

前言 MongoDB 是一种流行的 NoSQL 数据库,适合存储大量的非结构化数据。MongoTemplate 是 Spring Data MongoDB 中的一个核心组件,它提供了一组丰富的 API 来与 MongoDB 进行交互。它封装了许多常见的数据库操作,使开发者能够轻松执行 CRUD 操…...

CCIE与HCIE哪个考试难度更大?

CCIE(思科认证互联网专家)与HCIE(华为认证ICT专家)的考试难度差异体现在技术体系、实验要求及评分标准。2023年全球数据显示,CCIE通过率约25%,HCIE通过率32%,但通过率不能完全反映实际挑战。 C…...

子查询对多层join优化记录

需求背景 查询某个用户是否具有某个角色 表 CREATE TABLE mdm_platform_role_user (ID bigint NOT NULL AUTO_INCREMENT,ROLE_ID varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,USER_ID varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci …...

容器编排利器-k8s入门指南

Kubernetes(K8s)入门指南:容器编排利器 什么是 Kubernetes? Kubernetes(常简称为K8s)是一个开源的容器编排平台,由 Google 开源并交由云原生计算基金会(CNCF)管理。它可以帮助我们自动化部署、扩展和管理容器化应用程序。 为什么需要 Kubernetes? 在微服务架构盛行的今…...

MyBatis—动态 SQL

MyBatis—动态 SQL 一、动态 SQL 的核心作用 动态 SQL 主要解决以下问题: 灵活性:根据不同的输入参数生成不同的 SQL 语句(如条件查询、批量操作)。 可维护性:减少重复代码,通过标签化逻辑提高 SQL 可读…...

解决“VMware另一个程序已锁定文件的一部分,进程无法访问“

问题描述 打开VMware里的虚拟机时,弹出"另一个程序已锁定文件的一部分,进程无法访问"如图所示: 这是VM虚拟机的保护机制。虚拟机运行时,为防止数据被篡改,会将所运行的文件保护起来。当虚拟机崩溃或者强制…...

如何创建一个不可变类

写在前面 如果对象在构造后无法更改,则该对象是不可变的。不可变对象不会以任何方式暴露其他对象来修改其状态; 对象的字段仅在构造函数内初始化一次,并且永远不会再次更改。 1.不可变类的用法 如今,每个软件应用程序的*“必备”规范都是分…...

outbox架构解说

Outbox 模式是一种用于实现数据一致性的架构模式,特别是在微服务架构中。 它确保在处理事务时,数据的原子性和最终一致性。 Outbox 模式的详细解说: 1. 概念与背景 背景:在微服务架构中,一个操作可能涉及多个服务&…...

PT2020 20触控I2C输出IC

1.产品概述 ● PT2020是一款电容式触摸控制ASIC,支持20通道触摸输入,I2C键值输出。可通过I2C调节灵敏度以及功能设置。算法带有走线自补偿功能,具有高抗干扰、宽工作电压范围的突出优势。适用于小家电,智能门锁等消费类…...

【GAN网络入门系列】一,手写字MINST图片生成

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 博主简介:努力学习的22级本科生一枚 🌟​;探索AI算法,C,go语言的世界;在迷茫中寻找光芒…...

数据备份与恢复方案

数据备份与恢复方案 一.背景 为确保公司信息安全,防止关键数据丢失,应对突发事件,特制定全面的数据备份与恢复方案。该方案将对公司的各类文件资料进行分级管理,并针对不同级别的数据设定相应的备份策略和恢复流程。 二…...

Go的单测gomock及覆盖率命令

安装gomock: go get github.com/golang/mock/gomockgo get github.com/golang/mock/mockgen 使用 mockgen 生成 mock 代码: 参考 mockgen -sourceservice/user.go -destinationservice/mocks/mock_user_service.go -packagemocks go test -coverprofilecoverage.out…...