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

【问题排查】SQLite安装失败

启动 Django 自带的开发服务器

python manage.py runserver

出现如下报错:

[root@iZ2zedudtf2cwzi9argky2Z myproject]# python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...System check identified no issues (0 silenced).
Exception in thread django-main-thread:
Traceback (most recent call last):File "/usr/local/lib/python3.11/site-packages/django/db/backends/base/base.py", line 279, in ensure_connectionself.connect()File "/usr/local/lib/python3.11/site-packages/django/utils/asyncio.py", line 26, in innerreturn func(*args, **kwargs)^^^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/db/backends/base/base.py", line 256, in connectself.connection = self.get_new_connection(conn_params)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/utils/asyncio.py", line 26, in innerreturn func(*args, **kwargs)^^^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/db/backends/sqlite3/base.py", line 207, in get_new_connectionregister_functions(conn)File "/usr/local/lib/python3.11/site-packages/django/db/backends/sqlite3/_functions.py", line 45, in registercreate_deterministic_function("django_date_extract", 2, _sqlite_datetime_extract)
sqlite3.NotSupportedError: deterministic=True requires SQLite 3.8.3 or higherThe above exception was the direct cause of the following exception:Traceback (most recent call last):File "/usr/local/lib/python3.11/threading.py", line 1038, in _bootstrap_innerself.run()File "/usr/local/lib/python3.11/threading.py", line 975, in runself._target(*self._args, **self._kwargs)File "/usr/local/lib/python3.11/site-packages/django/utils/autoreload.py", line 64, in wrapperfn(*args, **kwargs)File "/usr/local/lib/python3.11/site-packages/django/core/management/commands/runserver.py", line 137, in inner_runself.check_migrations()File "/usr/local/lib/python3.11/site-packages/django/core/management/base.py", line 587, in check_migrationsexecutor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/db/migrations/executor.py", line 18, in __init__self.loader = MigrationLoader(self.connection)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/db/migrations/loader.py", line 58, in __init__self.build_graph()File "/usr/local/lib/python3.11/site-packages/django/db/migrations/loader.py", line 235, in build_graphself.applied_migrations = recorder.applied_migrations()^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/db/migrations/recorder.py", line 89, in applied_migrationsif self.has_table():^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/db/migrations/recorder.py", line 63, in has_tablewith self.connection.cursor() as cursor:^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/utils/asyncio.py", line 26, in innerreturn func(*args, **kwargs)^^^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/db/backends/base/base.py", line 320, in cursorreturn self._cursor()^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/db/backends/base/base.py", line 296, in _cursorself.ensure_connection()File "/usr/local/lib/python3.11/site-packages/django/utils/asyncio.py", line 26, in innerreturn func(*args, **kwargs)^^^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/db/backends/base/base.py", line 278, in ensure_connectionwith self.wrap_database_errors:File "/usr/local/lib/python3.11/site-packages/django/db/utils.py", line 91, in __exit__raise dj_exc_value.with_traceback(traceback) from exc_valueFile "/usr/local/lib/python3.11/site-packages/django/db/backends/base/base.py", line 279, in ensure_connectionself.connect()File "/usr/local/lib/python3.11/site-packages/django/utils/asyncio.py", line 26, in innerreturn func(*args, **kwargs)^^^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/db/backends/base/base.py", line 256, in connectself.connection = self.get_new_connection(conn_params)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/utils/asyncio.py", line 26, in innerreturn func(*args, **kwargs)^^^^^^^^^^^^^^^^^^^^^File "/usr/local/lib/python3.11/site-packages/django/db/backends/sqlite3/base.py", line 207, in get_new_connectionregister_functions(conn)File "/usr/local/lib/python3.11/site-packages/django/db/backends/sqlite3/_functions.py", line 45, in registercreate_deterministic_function("django_date_extract", 2, _sqlite_datetime_extract)
django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3 or higher

从错误信息来看,问题的核心是 Django 使用的 SQLite 数据库版本过低。
具体来说,Django 需要 SQLite 3.8.3 或更高版本,而系统中安装的 SQLite 版本低于这个要求。

  1. 检查当前 SQLite 版本
    运行以下命令检查系统中 SQLite 的版本:
[root@iZ2zedudtf2cwzi9argky2Z myproject]# sqlite3 --version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668

输出的版本号低于 3.8.3,则需要升级 SQLite。

  1. 升级 SQLite:通过源码编译安装最新版本
    访问SQLite 官方网站下载最新的源码包。
    sqlite-autoconf-3490100.tar.gz

解压源码包

[root@iZ2zedudtf2cwzi9argky2Z myproject]# cd /root/opt
[root@iZ2zedudtf2cwzi9argky2Z opt]# ll
总用量 244100
-rw-r--r--  1 root root 34557312 311 13:48 containerd.io-1.6.9-3.1.el7.x86_64.rpm
-rw-r--r--  1 root root    40816 311 15:31 container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
drwxr-xr-x  3 root root     4096 311 17:24 dify
-rw-r--r--  1 root root 50923520 311 16:39 dify-1.0.0.tar
drwxr-xr-x 10 root root     4096 311 17:23 dify-main
-rw-r--r--  1 root root 22021294 311 17:20 dify-main.zip
-rw-r--r--  1 root root 28596976 311 13:48 docker-ce-26.1.4-1.el7.x86_64.rpm
-rw-r--r--  1 root root 15445372 311 13:48 docker-ce-cli-26.1.4-1.el7.x86_64.rpm
-rw-r--r--  1 root root 73691062 311 11:17 docker-compose-linux-x86_64
-rw-r--r--  1 root root       94 311 14:36 docker-compose-linux-x86_64.sha256
-rw-r--r--  1 root root 14058416 311 13:49 docker-compose-plugin-2.27.1-1.el7.x86_64.rpm
-rw-r--r--  1 root root  7367636 311 13:49 docker-compose-plugin-2.6.0-3.el7.x86_64.rpm
-rw-r--r--  1 root root      318 311 16:51 docker-compose.yml
-rw-r--r--  1 root root  3226385 49 10:25 sqlite-autoconf-3490100.tar.gz
[root@iZ2zedudtf2cwzi9argky2Z opt]# tar xvfz sqlite-autoconf-3490100.tar.gz 
sqlite-autoconf-3490100/
sqlite-autoconf-3490100/sqlite3.c
sqlite-autoconf-3490100/sqlite3.rc
sqlite-autoconf-3490100/Makefile.msc
sqlite-autoconf-3490100/sqlite3.1
sqlite-autoconf-3490100/auto.def
sqlite-autoconf-3490100/Makefile.in
sqlite-autoconf-3490100/autosetup/
sqlite-autoconf-3490100/autosetup/jimsh0.c
sqlite-autoconf-3490100/autosetup/system.tcl
sqlite-autoconf-3490100/autosetup/pkg-config.tcl
sqlite-autoconf-3490100/autosetup/autosetup-config.sub
sqlite-autoconf-3490100/autosetup/cc.tcl
sqlite-autoconf-3490100/autosetup/LICENSE
sqlite-autoconf-3490100/autosetup/autosetup
sqlite-autoconf-3490100/autosetup/sqlite-config.tcl
sqlite-autoconf-3490100/autosetup/proj.tcl
sqlite-autoconf-3490100/autosetup/cc-db.tcl
sqlite-autoconf-3490100/autosetup/README.autosetup
sqlite-autoconf-3490100/autosetup/cc-lib.tcl
sqlite-autoconf-3490100/autosetup/autosetup-config.guess
sqlite-autoconf-3490100/autosetup/autosetup-test-tclsh
sqlite-autoconf-3490100/autosetup/README.md
sqlite-autoconf-3490100/autosetup/autosetup-find-tclsh
sqlite-autoconf-3490100/autosetup/cc-shared.tcl
sqlite-autoconf-3490100/VERSION
sqlite-autoconf-3490100/Makefile.fallback
sqlite-autoconf-3490100/shell.c
sqlite-autoconf-3490100/sqlite3.h
sqlite-autoconf-3490100/README.txt
sqlite-autoconf-3490100/tea/
sqlite-autoconf-3490100/tea/tclconfig/
sqlite-autoconf-3490100/tea/tclconfig/tcl.m4
sqlite-autoconf-3490100/tea/tclconfig/install-sh
sqlite-autoconf-3490100/tea/Makefile.in
sqlite-autoconf-3490100/tea/aclocal.m4
sqlite-autoconf-3490100/tea/win/
sqlite-autoconf-3490100/tea/win/rules-ext.vc
sqlite-autoconf-3490100/tea/win/makefile.vc
sqlite-autoconf-3490100/tea/win/targets.vc
sqlite-autoconf-3490100/tea/win/nmakehlp.c
sqlite-autoconf-3490100/tea/win/rules.vc
sqlite-autoconf-3490100/tea/README.txt
sqlite-autoconf-3490100/tea/configure.ac
sqlite-autoconf-3490100/tea/doc/
sqlite-autoconf-3490100/tea/doc/sqlite3.n
sqlite-autoconf-3490100/tea/pkgIndex.tcl.in
sqlite-autoconf-3490100/tea/configure
sqlite-autoconf-3490100/tea/license.terms
sqlite-autoconf-3490100/tea/generic/
sqlite-autoconf-3490100/tea/generic/tclsqlite3.c
sqlite-autoconf-3490100/sqlite3ext.h
sqlite-autoconf-3490100/configure
sqlite-autoconf-3490100/Replace.cs
sqlite-autoconf-3490100/sqlite3rc.h
sqlite-autoconf-3490100/sqlite3.pc.in
[root@iZ2zedudtf2cwzi9argky2Z opt]# ll
总用量 244104
-rw-r--r--  1 root            root            34557312 311 13:48 containerd.io-1.6.9-3.1.el7.x86_64.rpm
-rw-r--r--  1 root            root               40816 311 15:31 container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
drwxr-xr-x  3 root            root                4096 311 17:24 dify
-rw-r--r--  1 root            root            50923520 311 16:39 dify-1.0.0.tar
drwxr-xr-x 10 root            root                4096 311 17:23 dify-main
-rw-r--r--  1 root            root            22021294 311 17:20 dify-main.zip
-rw-r--r--  1 root            root            28596976 311 13:48 docker-ce-26.1.4-1.el7.x86_64.rpm
-rw-r--r--  1 root            root            15445372 311 13:48 docker-ce-cli-26.1.4-1.el7.x86_64.rpm
-rw-r--r--  1 root            root            73691062 311 11:17 docker-compose-linux-x86_64
-rw-r--r--  1 root            root                  94 311 14:36 docker-compose-linux-x86_64.sha256
-rw-r--r--  1 root            root            14058416 311 13:49 docker-compose-plugin-2.27.1-1.el7.x86_64.rpm
-rw-r--r--  1 root            root             7367636 311 13:49 docker-compose-plugin-2.6.0-3.el7.x86_64.rpm
-rw-r--r--  1 root            root                 318 311 16:51 docker-compose.yml
drwxrwxr-x  4 ecs-assist-user ecs-assist-user     4096 218 22:09 sqlite-autoconf-3490100
-rw-r--r--  1 root            root             3226385 49 10:25 sqlite-autoconf-3490100.tar.gz

配置、编译并安装
执行脚本./configure --prefix=/usr/local

  • 作用:
    ./configure 是一个脚本,用于检查系统环境和配置选项。
    它会生成一个适合当前系统的 Makefile 文件,供后续编译使用。
    --prefix=/usr/local指定了软件安装的目标路径为 /usr/local,这是常见的第三方软件安装目录。
  • 常见选项:
    • --prefix=DIR: 指定软件安装目录。
    • --enable-FEATURE: 启用某个功能模块。
    • --disable-FEATURE: 禁用某个功能模块。
    • --with-PACKAGE: 指定依赖库的位置。
  • 可能的错误:
    如果缺少依赖库或工具(如编译器、头文件等),./configure 可能会失败,提示缺失的组件。
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# ./configure --prefix=/usr/local
Host System...x86_64-pc-linux-gnu
Build System...x86_64-pc-linux-gnu
C compiler... cc  
C++ compiler... c++  
Build C compiler...cc
Checking for stdlib.h...ok
Source dir = /root/opt/sqlite-autoconf-3490100
Build dir  = /root/opt/sqlite-autoconf-3490100
Configuring SQLite version 3.49.1
Looking for install ... /usr/bin/install
Checking for int8_t...ok
Checking for int16_t...ok
Checking for int32_t...ok
Checking for int64_t...ok
Checking for intptr_t...ok
Checking for uint8_t...ok
Checking for uint16_t...ok
Checking for uint32_t...ok
Checking for uint64_t...ok
Checking for uintptr_t...ok
Checking for gmtime_r...ok
Checking for isnan...ok
Checking for localtime_r...ok
Checking for localtime_s...not found
Checking for malloc_usable_size...ok
Checking for strchrnul...ok
Checking for usleep...ok
Checking for utime...ok
Checking for pread...ok
Checking for pread64...ok
Checking for pwrite...ok
Checking for pwrite64...ok
Checking libs for fdatasync...none needed
Checking libs for nanosleep...none needed
Checking for sys/types.h...ok
Checking for sys/stat.h...ok
Checking for dlfcn.h...ok
Checking for unistd.h...ok
Checking for stdlib.h...(cached) ok
Checking for malloc.h...ok
Checking for memory.h...ok
Checking for string.h...ok
Checking for strings.h...ok
Checking for inttypes.h...ok
Checking for zlib.h...ok
Checking libs for deflate...-lz
Checking whether the C compiler accepts -rpath /usr/local/lib...no
Checking whether the C compiler accepts -Wl,-rpath,/usr/local/lib...yes
SQLITE_DEBUG build? no
Support threadsafe operation? Checking for libs...
Checking libs for pthread_create...-lpthread
Checking libs for pthread_mutexattr_init...-lpthread
Checking for line-editing capability...
Checking libs for tgetent...-lncurses
Checking libs for readline...-lreadline
Using readline flags: -I/usr/include -lreadline -lncurses
Line-editing support for the sqlite3 shell: readline
Checking libs for dlopen...-ldl
Loadable extension support enabled.
Checking libs for ceil...-lm
Enabling math SQL functions -lm
ICU support is disabled.
Feature flags...- fts4- fts5- geopoly- rtree- session- update-limit- memsys5- memsys3- scanstatus+ json
Library feature flags: -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_THREADSAFE=1
Shell options: -DHAVE_READLINE=1 -DSQLITE_HAVE_ZLIB=1
Created Makefile from Makefile.in
Created sqlite3.pc from sqlite3.pc.in
Created sqlite_cfg.h

执行命令:make

  • 作用:
    • 根据 ./configure 生成的 Makefile 文件,调用编译器(如 gccclang)对源代码进行编译。
    • 编译完成后,生成可执行文件或库文件。
  • 多核加速:
    • 如果你的 CPU 有多个核心,可以使用 make -jN(例如 make -j4)来并行编译,加快速度。
  • 可能的错误:
    • 缺少依赖库或头文件。
    • 编译器版本不兼容。
    • 源代码中有语法错误或其他问题。
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# make
cc -c /root/opt/sqlite-autoconf-3490100/sqlite3.c -o sqlite3.o -O2 -g  -I. -fPIC  -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_THREADSAFE=1
cc -o libsqlite3.so  sqlite3.o -shared \-Wl,-rpath,/usr/local/lib -lpthread -lm -ldl -lz    \ar cr libsqlite3.a sqlite3.o
cc -o sqlite3 \/root/opt/sqlite-autoconf-3490100/shell.c /root/opt/sqlite-autoconf-3490100/sqlite3.c -Wl,-rpath,/usr/local/lib -lpthread -lm -ldl -lz    \-I. -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_THREADSAFE=1 -DHAVE_READLINE=1 -DSQLITE_HAVE_ZLIB=1 \-O2 -g  -I/usr/include  \-lreadline -lncurses

执行命令:sudo make install

  • 作用:
    • 将编译生成的文件(如可执行文件、库文件、配置文件等)复制到指定的安装目录(如 /usr/local)。
    • 需要管理员权限(sudo),因为默认安装路径通常是系统目录。
  • 注意事项:
    • 安装后可能会覆盖系统中已有的文件,请谨慎操作。
    • 如果不想使用 sudo,可以在 ./configure时指定用户目录(如 --prefix=$HOME/myapp)。
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# sudo make install
/usr/bin/install libsqlite3.so "/usr/local/lib"
Setting up libsqlite3.so version symlinks...
lrwxrwxrwx 1 root root      20 49 10:38 libsqlite3.so -> libsqlite3.so.3.49.1
lrwxrwxrwx 1 root root      20 49 10:38 libsqlite3.so.0 -> libsqlite3.so.3.49.1
-rwxr-xr-x 1 root root 4575296 49 10:38 libsqlite3.so.3.49.1
/usr/bin/install -m 0644 libsqlite3.a "/usr/local/lib"
/usr/bin/install -s sqlite3 "/usr/local/bin"
/usr/bin/install -m 0644 /root/opt/sqlite-autoconf-3490100/sqlite3.h /root/opt/sqlite-autoconf-3490100/sqlite3ext.h "/usr/local/include"
/usr/bin/install -m 0644 sqlite3.pc "/usr/local/lib/pkgconfig"
/usr/bin/install -m 0644 /root/opt/sqlite-autoconf-3490100/sqlite3.1 "/usr/local/share/man/man1"

验证安装
安装完成后,再次检查 SQLite 版本:

[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# sqlite3 --version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668

如果输出的是最新版本号,则说明安装成功。

从操作结果来看,虽然已经成功编译并安装了最新版本的 SQLite(3.49.1),但系统仍然显示旧版本(3.7.17)。
这表明系统默认的 sqlite3 二进制文件没有被新版本替换,或者系统路径中优先使用了旧版本。

以下是解决这个问题的步骤:
运行以下命令,检查 sqlite3 可执行文件的位置:
如果输出类似于 /usr/bin/sqlite3,说明系统仍在使用默认安装的旧版本。而刚刚安装的新版本应该位于 /usr/local/bin/sqlite3。

[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# which sqlite3
/usr/local/bin/sqlite3

从操作结果来看,which sqlite3 的输出是 /usr/local/bin/sqlite3,这表明系统已经正确指向了你刚刚安装的新版本 SQLite(3.49.1)
然而,运行 sqlite3 --version 时仍然显示旧版本(3.7.17)。
这种情况可能是由于以下原因之一:

存在多个 SQLite 二进制文件:虽然 which sqlite3 显示的是 /usr/local/bin/sqlite3,但可能有其他路径中的旧版本被优先调用。
动态链接库未更新:
即使 sqlite3 可执行文件是最新的,系统可能仍在使用旧的 SQLite 动态链接库。

检查所有 sqlite3 可执行文件
运行以下命令,查找系统中所有的 sqlite3 文件:

[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# whereis sqlite3
sqlite3: /usr/bin/sqlite3 /usr/local/bin/sqlite3 /usr/include/sqlite3.h /usr/share/man/man1/sqlite3.1.gz

或者更详细地查找:

[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# find / -name sqlite3 2>/dev/null
/root/opt/sqlite-autoconf-3490100/sqlite3
/usr/lib64/python2.7/sqlite3
/usr/lib64/python3.6/sqlite3
/usr/src/Python-3.11.0/Lib/sqlite3
/usr/src/Python-3.11.0/Doc/includes/sqlite3
/usr/local/aegis/PythonLoader/lib/python2.7/sqlite3
/usr/local/lib/python3.11/site-packages/django/db/backends/sqlite3
/usr/local/lib/python3.11/sqlite3
/usr/local/bin/sqlite3
/usr/bin/sqlite3

从操作结果来看,系统中确实存在多个 sqlite3 文件。
以下是关键信息的总结和解决方法:

系统中存在两个主要的 sqlite3 可执行文件

  • /usr/local/bin/sqlite3:这是你刚刚安装的新版本 SQLite(3.49.1)
  • /usr/bin/sqlite3:这是系统默认的旧版本 SQLite(3.7.17)

尽管 which sqlite3 显示的是 /usr/local/bin/sqlite3,但可能由于某些原因,运行 sqlite3 --version 时仍然调用了旧版本。

检查动态链接库路径
为了确认问题是否出在动态链接库上,我们需要检查 sqlite3 使用的动态链接库。

查看当前使用的动态链接库
运行以下命令:
如果显示的路径是 /usr/lib 或其他路径中的旧版本库(如 /usr/lib64/libsqlite3.so.0),说明系统仍然在使用旧的动态链接库。

[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# ldd $(which sqlite3)linux-vdso.so.1 =>  (0x00007ffe6b86e000)libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd0e865a000)libm.so.6 => /lib64/libm.so.6 (0x00007fd0e8358000)libdl.so.2 => /lib64/libdl.so.2 (0x00007fd0e8154000)libz.so.1 => /lib64/libz.so.1 (0x00007fd0e7f3e000)libreadline.so.6 => /lib64/libreadline.so.6 (0x00007fd0e7cf8000)libncurses.so.5 => /lib64/libncurses.so.5 (0x00007fd0e7ad1000)libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007fd0e78a7000)libc.so.6 => /lib64/libc.so.6 (0x00007fd0e74d9000)/lib64/ld-linux-x86-64.so.2 (0x00007fd0e8876000)

从 ldd 输出结果来看,动态链接库中缺少对 libsqlite3.so 的引用。
这表明当前的 sqlite3 可执行文件可能没有正确链接到 SQLite 的动态库,或者系统仍然在使用旧版本的 SQLite 动态库。

检查 /usr/local/lib 中的动态链接库
你之前已经编译并安装了新版 SQLite(3.49.1),其动态链接库应该位于 /usr/local/lib。运行以下命令,确认该目录下是否存在 libsqlite3.so 文件:

[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# ls -l /usr/local/lib | grep libsqlite3
-rw-r--r--  1 root root 10685798 49 10:38 libsqlite3.a
lrwxrwxrwx  1 root root       20 49 10:38 libsqlite3.so -> libsqlite3.so.3.49.1
lrwxrwxrwx  1 root root       20 49 10:38 libsqlite3.so.0 -> libsqlite3.so.3.49.1
-rwxr-xr-x  1 root root  4575296 49 10:38 libsqlite3.so.3.49.1

输出来看,/usr/local/lib 目录下确实存在正确版本的 SQLite 动态链接库(3.49.1)。
然而,在运行 ldd $(which sqlite3) 时没有显示出对 libsqlite3.so 的引用,这意味着 sqlite3 可执行文件可能没有正确链接到这些库。

接下来可以按照以下步骤进行操作以确保 sqlite3 使用新版本的动态链接库:

  1. 更新动态链接器缓存
    首先,确认 /usr/local/lib 已经添加到动态链接器配置中,并更新动态链接器缓存。

编辑 /etc/ld.so.conf 文件或在 /etc/ld.so.conf.d/ 目录下创建一个新的配置文件:
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# echo “/usr/local/lib” | sudo tee /etc/ld.so.conf.d/sqlite3.conf
/usr/local/lib
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# sudo ldconfig
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# sudo ldconfig
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# ldd $(which sqlite3)
linux-vdso.so.1 => (0x00007ffcd7d3d000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2944c1b000)
libm.so.6 => /lib64/libm.so.6 (0x00007f2944919000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2944715000)
libz.so.1 => /lib64/libz.so.1 (0x00007f29444ff000)
libreadline.so.6 => /lib64/libreadline.so.6 (0x00007f29442b9000)
libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f2944092000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f2943e68000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2943a9a000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2944e37000)
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# sqlite3 --version
SQLite header and source version mismatch
2025-02-18 13:38:58 873d4e274b4988d260ba8354a9718324a1c26187a4ab4c1cc0227c03d0f10e70
2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
从你的操作结果来看,sqlite3 --version 输出了以下错误信息:
SQLite header and source version mismatch
2025-02-18 13:38:58 873d4e274b4988d260ba8354a9718324a1c26187a4ab4c1cc0227c03d0f10e70
2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
这表明 sqlite3 可执行文件和其动态链接库的版本不匹配。这种情况通常发生在以下几种情况下:

可执行文件和动态库版本不一致:你可能使用了旧版本的 sqlite3 可执行文件,但它试图加载新版本的动态库。
编译或安装过程中出现问题:在编译 SQLite 时,某些文件未正确更新。
以下是解决此问题的具体步骤:

  1. 删除旧版本的 sqlite3
    为了确保系统中只有一个版本的 sqlite3,建议删除旧版本的 sqlite3 可执行文件。

查找所有 sqlite3 文件
运行以下命令查找系统中的所有 sqlite3 文件:
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# sudo mv /usr/bin/sqlite3 /usr/bin/sqlite3.bak
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# sudo mv /usr/bin/sqlite3 /usr/bin/sqlite3.bak
mv: 无法获取"/usr/bin/sqlite3" 的文件状态(stat): 没有那个文件或目录
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# which sqlite3
/usr/local/bin/sqlite3
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# ldconfig -p | grep libsqlite3
libsqlite3.so.3.49.1 (libc6,x86-64) => /usr/local/lib/libsqlite3.so.3.49.1
libsqlite3.so.0 (libc6,x86-64) => /usr/local/lib/libsqlite3.so.0
libsqlite3.so.0 (libc6,x86-64) => /lib64/libsqlite3.so.0
libsqlite3.so (libc6,x86-64) => /usr/local/lib/libsqlite3.so
libsqlite3.so (libc6,x86-64) => /lib64/libsqlite3.so
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# sudo ldconfig
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# sqlite3 --version
-bash: /usr/bin/sqlite3: 没有那个文件或目录
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# sudo mv /usr/bin/sqlite3 /usr/bin/sqlite3.bak
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# sudo mv /usr/bin/sqlite3 /usr/bin/sqlite3.bak
mv: 无法获取"/usr/bin/sqlite3" 的文件状态(stat): 没有那个文件或目录
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# which sqlite3
/usr/local/bin/sqlite3
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# ldconfig -p | grep libsqlite3
libsqlite3.so.3.49.1 (libc6,x86-64) => /usr/local/lib/libsqlite3.so.3.49.1
libsqlite3.so.0 (libc6,x86-64) => /usr/local/lib/libsqlite3.so.0
libsqlite3.so.0 (libc6,x86-64) => /lib64/libsqlite3.so.0
libsqlite3.so (libc6,x86-64) => /usr/local/lib/libsqlite3.so
libsqlite3.so (libc6,x86-64) => /lib64/libsqlite3.so
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# sudo ldconfig
[root@iZ2zedudtf2cwzi9argky2Z sqlite-autoconf-3490100]# sqlite3 --version
-bash: /usr/bin/sqlite3: 没有那个文件或目录
以下是解决问题的具体步骤:

  1. 检查 PATH 环境变量
    运行以下命令,检查 PATH 环境变量是否包含 /usr/local/bin:

Bash
深色版本
echo $PATH
输出应该包含 /usr/local/bin,并且它应该排在 /usr/bin 之前。例如:

深色版本
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
如果 /usr/local/bin 不在 PATH 中,或者它的优先级低于 /usr/bin,可以通过以下方式修复。

修改 PATH 环境变量
编辑 ~/.bashrc 文件:

Bash
深色版本
nano ~/.bashrc
在文件末尾添加以下内容:

Bash
深色版本
export PATH=/usr/local/bin:$PATH
保存并退出后,重新加载配置文件:

Bash
深色版本
source ~/.bashrc
然后再次检查 PATH:

Bash
深色版本
echo $PATH
确保 /usr/local/bin 在 /usr/bin 之前。

  1. 验证 sqlite3 是否正确使用
    运行以下命令,确认系统正在使用正确的 sqlite3 可执行文件:

Bash
深色版本
which sqlite3
输出应该是:

深色版本
/usr/local/bin/sqlite3
然后再次尝试运行 sqlite3 --version:

Bash
深色版本
sqlite3 --version

  1. 强制使用 pysqlite3
    如果上述方法都无法解决问题,可以尝试使用第三方库 pysqlite3 来替代标准库中的 sqlite3 模块。

安装 pysqlite3
Bash
深色版本
pip install pysqlite3-binary
修改 settings.py
在 settings.py 文件顶部添加以下代码,强制 Django 使用 pysqlite3:

Python
深色版本
import pysqlite3
import sys
sys.modules[“sqlite3”] = pysqlite3

相关文章:

【问题排查】SQLite安装失败

启动 Django 自带的开发服务器 python manage.py runserver出现如下报错: [rootiZ2zedudtf2cwzi9argky2Z myproject]# python manage.py runserver Watching for file changes with StatReloader Performing system checks...System check identified no issues (…...

stream流Collectors.toMap(),key值重复问题

文章目录 一、问题二、问题示例三、原因四、解决方法4.1、方案一 一、问题 发现Collectors.toMap的一个坑,若key值重复的时候会抛异常。如: IllegalStateException: Duplicate key 男 二、问题示例 报错示例如下: import lombok.AllArgsC…...

STM32(基于标准库)

参考博客:江科大STM32笔记 Stm32外设 一、GPIO 基础 GPIO位结构 I/O引脚的保护二极管是对输入电压进行限幅的上面的二极管接VDD, 3.3V,下面接VSS, 0V,当输入电压 >3.3V 那上方这个二极管就会导通,输入电压产生的电流就会大部分充入VD…...

OpenStack Yoga版安装笔记(十八)Self-service networks配置笔记

1、官方文档 在OpenStack官方安装文档中,提供了两个网络配置选项: Option1:Provider networksOption2:Self-service networks 这两个选项并不冲突,可以在OpenStack环境中同时配置。 在《OpenStack Yoga版安装笔记&…...

2025年黑龙江建筑安全员 C3 证考试题库练习题

黑龙江建筑安全员 C3 证考试题库练习题 1、消防控制室是设有火灾自动报警设备和消防设施控制设备,用于接收、显示、处理( ),控制相关消防设施的专门处所2。 A. 安全信息 B. 设备信息 C. 通讯信号 D. 火灾报警信号 答案&…...

JavaScript数据结构-Map的使用

在 JavaScript 中,Map 是 ES6 引入的一种新的数据结构,它类似于对象,也是键值对的集合,但 Map 的键可以是任意类型的值(对象、函数、基本类型等),而传统对象的键只能是字符串或 Symbol&#xff…...

LeetCode面试经典150题

目录 力扣80. 删除有序数组中的重复项 II 代码解析 力扣274. H 指数 代码解析 力扣151. 反转字符串中的单词 解析代码 力扣12. 整数转罗马数字 解析代码 力扣28. 找出字符串中第一个匹配项的下标 解析代码1(暴力模拟) 解析代码2(K…...

mysql之等值连接8个实例

以下实例以常见的业务场景为例,使用 MySQL 语法,假设存在员工表(employees)、部门表(departments)、订单表(orders)、客户表(customers)等,来展示…...

C基础笔记_指针专题

一:C 和 C 偏爱使用指针的原因 1. 通过指针可以直接操作内存 C 和 C 是系统级编程语言,它们的设计目标之一是允许开发者直接与硬件交互并高效地管理资源。 指针的本质:指针本质上是一个存储内存地址的变量,它让程序员可以直接访问和操作内…...

GPT-SoVITS Windows 配置与推理笔记(自用)

GPT-SoVITS Windows 配置与推理笔记(自用) 这是给自己留的备份,方便下次查。Windows 端配置和推理为主,代码为核心,直接干货。 环境准备 系统:Windows 10/11Python:3.9(别用别的版…...

【设计模式】面向对象开发学习OOPC

PLOOC-裸机思维 PLOOC OOPC精要——撩开“对象”的神秘面纱 C/C面向对象编程之封装-KK 面向过程,本质是“顺序,循环,分支”面向对象,本质是“继承,封装,多态”参考的书籍:《UMLOOPC嵌入式C语言…...

LVGL开发指南

一、主流ARM开发UI界面库 主流ARM开发UI界面库的详细对比分析,从多个维度评估各库的适用场景: 1. 基础对比表 特性LVGLQt for MCUEmbedded WizardTouchGFXemWin许可证MIT开源商业商业商业(STM32免费)商业RAM最小需求16KB512KB64KB256KB50KBFlash占用64KB+1MB+200KB+500KB+1…...

linux shell looop循环写法

在 Linux Shell 中编写loop循环的常见方法有以下几种,适用于持续执行任务或监控场景: 1. while true 循环(最常用) while true; do# 循环体内的命令echo "Running..."sleep 1 # 避免 CPU 占用过高 done 终止方式&…...

【力扣hot100题】(075)数据流的中位数

一开始只建立了一个优先队列,每次查询中位数时都要遍历一遍于是喜提时间超限,看了答案才恍然大悟原来还有这么聪明的办法。 方法是建立两个优先队列,一个大根堆一个小根堆,大根堆记录较小的数,小根堆记录较大的数。 …...

蓝桥杯刷题总结 + 应赛技巧

当各位小伙伴们看到这篇文章的时候想必蓝桥杯也快开赛了,那么本篇文章博主就来总结一下一些蓝桥杯的应赛技巧,那么依旧先来走个流程 那么接下来我们分成几个板块进行总结 首先是一些基本语法 编程语言的基本语法 首先是数组,在存数据的时候…...

JetBrains Terminal 又发布新架构,Android Studio 将再次迎来新终端

不到一年的时间,JetBrains 又要对 Terminal 「大刀阔斧」,本次发布的新终端是重构后的全新的架构,而上一次终端大调整还是去年 8 月的 v2024.2 版本,并且在「Android Studio Ladybug | 2024.2.1」也被引入。 不知道你们用不用内置…...

怎么构造思维链数据?思维链提示工程的五大原则

我来为您翻译这篇关于思维链提示工程的文章,采用通俗易懂的中文表达: 思维链(CoT)提示工程是生成式AI(GenAI)中一种强大的方法,它能让模型通过逐步推理来解决复杂任务。通过构建引导模型思考过程的提示,思维链能提高输出的准确性…...

mongodb--用户管理

文章目录 MongoDB 用户管理1. 连接到 MongoDB2. 用户创建2.1 创建管理员用户2.2 创建特定数据库用户2.3 常用内置角色 3. 用户管理操作3.1 查看所有用户3.2 查看特定用户信息3.3 更新用户密码3.4 添加用户角色3.5 移除用户角色3.6 删除用户 4. 权限修改4.1 创建自定义角色4.2 将…...

2025年考OCP认证有用吗?

在数字化转型的浪潮中,数据库管理技术成为企业核心竞争力的基石。Oracle作为全球领先的数据库解决方案提供商,其OCP(Oracle Certified Professional)认证不仅是技术能力的权威背书,更是职业发展的强力引擎。以下从多个…...

川翔云电脑:D5 渲染摆脱硬件限制,云端高效创作

在设计领域,D5 渲染器凭借实时光追技术、高效工作流程及优质输出效果,成为设计师的得力工具。然而,其对高端 RTX 显卡的依赖,导致硬件成本高、本地性能受限及办公地点固定等问题,让不少创作者望而却步。 D5 渲染器的优…...

设计模式(23种设计模式简介)

设计模式 简介 设计模式是解决软件设计中常见问题的可重用解决方案模板,通过总结反复验证的代码设计经验,提升代码的可重用性、可维护性和扩展性。其核心是通过标准化的设计思想,让代码更易理解、协作更高效,并在面向对象编程中…...

Python设计模式:工厂模式

1. 什么是工厂模式? 工厂模式是一种创建对象的设计模式,它提供了一种创建对象的接口,但不暴露对象创建的具体逻辑。工厂模式的核心思想是将对象的创建与使用分离,从而提高代码的灵活性和可维护性。 1.1 工厂模式的类型 1.1.1 简…...

UE5 给函数分类

如果函数太多不方便找,我们可以给函数设置一个分组 选中一个函数,修改它的类别 然后在函数列表里可以看到分好的类 其他函数可以直接拖进类别里,不用每个函数都手动设置类别 一次只能拖动一个函数...

5️⃣ Coze+AI应用基础教学(2025年全新版本)

目录 一、了解应用开发 1.1 扣子应用能做什么 1.2 开发流程 1.3 开发环境 二、快速搭建一个AI应用 2.1 AI翻译应用介绍 2.2 设计你的应用功能 2.3 创建 AI 应用项目 2.4 编写业务逻辑(新建工作流) 2.5 搭建用户界面 2.6 效果测试 2.7 发布应…...

高级前端题库

前端题库 JS篇 如何理解作用域和作用域链 作用域 作用域就是变量或函数在其内能够被访问的“可见区域” 全局作用域局部作用域 作用域链 当在某个作用域中尝试访问一个变量时,JS引擎会从当前作用域开始,沿着作用域链向上逐级开始查找,直到…...

博途 TIA Portal之1200做主站与汇川EASY的TCP通讯

前言,虽然已经做了几篇关于TCP通讯的文章,但是不同的PLC之间的配合可能不同,下面将演示这种差异。 关于汇川EASY做从站的配置请参见下方链接文章:汇川EASY系列之以太网通讯(套接字socket做从站)_汇川以太网tcp套接字fb块-CSDN博客 1、硬件准备: 1200PLC,汇川EASY320…...

在conda虚拟环境安装GIT并且克隆github上项目指南(解决443问题)

此次笔记记录自己在conda虚拟环境安装git,同时克隆github项目,并且解决了git的443问题。 如有不妥欢迎各位大佬批评指正。 首先默认你已经安装了anaconda。 代开命令提示行 配置环境 #首先创建虚拟环境 conda create -n git_env python3.8 #激活虚拟环…...

JavaWeb遇到的问题汇总

问题一:(键值对最后一项没有逗号) 在JSON字符串转自定义对象和自定义对象转JSON字符串时: 如图所示:若忘记删除键值对的最后一项没有逗号时,则下一句转换不会生效,应该删除最后一项的逗号。 解…...

Stable Diffusion + Contronet,调参实现LPIPS最优(带生成效果+指标对比)——项目学习记录

目录 前言 一、数据集:图像文本,部分选取于DeepFashion 二、优化一,img2img 三、优化二,微调sd参数 四、优化三,dreamshaper优化 五、优化四,sdv1.5contronet 六、问题探索历程 1. 从 SDXL 到轻量化模…...

【“星睿O6”AI PC开发套件评测】在O6开发板使用gemma-2b测试CPU性能

前提条件: x64 Linux 主机:安装CMake 和 arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-linux-gnu radxa O6主机 1.从 Kaggle 获取模型权重和分词器 Gemma 3 2B 模型文件:访问 Kaggle 上的 Gemma 模型页面 https://www.kaggle.com/mode…...

数学知识——矩阵乘法

使用矩阵快速幂优化递推问题 对于一个递推问题,如递推式的每一项系数都为常数,我们可以使用矩阵快速幂来对算法进行优化。 一般形式为: F n F 1 A n − 1 F_nF_1A^{n-1} Fn​F1​An−1 由于递推式的每一项系数都为常数,因此对…...

3DMax中模型解组

1、从网上下载下来的模型是一个整体,需要解开查看每个样式 2、解开组...

链路聚合+vrrp

1.链路聚合 作用注意事项将多个物理接口(线路)逻辑上绑定在一起形成一条逻辑链路,起到叠加带宽的作用1.聚合接口必须转发速率一致。2.聚合设备两端必须一致 配置命令 方法一 [Huawei]interface Eth-Trunk 0----先创建聚合接口,…...

0 std::process::Command 介绍

std::process::Command 是 Rust 标准库中用于创建和配置子进程的主要类型。它允许你启动新的进程、设置其参数和环境变量、重定向输入/输出等。 基本用法 use std::process::Command;let output Command::new("echo").arg("Hello, world!").output().ex…...

Android 中Intent 相关问题

在回答 Intent 问题时,清晰区分其 定义、类型 和 应用场景。以下是的回答策略: 一、Intent 的核心定义 Intent 是 Android 系统中的 消息传递对象,主要用于三大场景: 2. 隐式 Intent(Implicit Intent) 三、…...

【Docker】Docker Desktop镜像存储路径设置方法

在 Docker Desktop 中设置镜像存储路径(即下载的镜像文件存放位置)取决于你的操作系统。以下是不同系统下的设置方法: Windows 系统 完全卸载后重新安装指定路径(Docker Desktop for Windows 默认使用 C:\ProgramData\Docker&…...

Spring Boot 3.x 中 WebClient 全面详解及示例

Spring Boot 3.x 中 WebClient 全面详解及示例 1. WebClient 简介 定义:Spring 5 引入的响应式 HTTP 客户端,用于替代 RestTemplate(已弃用),支持异步非阻塞的 HTTP 请求。核心特性: 支持所有 HTTP 方法&a…...

将图片按照指定大小批量进行裁剪(可设置步长_python)

将图片按照指定大小批量进行裁剪(可设置步长_python) import os from PIL import Image# 设置更高的图像大小限制,禁用解压炸弹检查 Image.MAX_IMAGE_PIXELS None # 禁用解压炸弹检查def crop_image(image_path, block_size(640, 640), step_size(340, 340)):# 打…...

设计模式 --- 原型模式

原型模式是创建型模式的一种,是在一个原型的基础上,建立一致的复制对象的方式。这个原型通常是我们在应用程序生命周期中需要创建多次的一个典型对象。为了避免初始化新对象潜在的性能开销,我们可以使用原型模式来建立一个非常类似于复印机的…...

工作经验记录

坑 部门例会上:跨级暴露问题.部门例会上:说话没有条理,周报写得好,但是表达效果不同.领导直接要求的任务没有当时推进:需考虑GTD清单.不要马后炮领导签字要按顺序 会议上 发言有条理问题不要越级暴露不要强调过程 对同事 对领导 领导同意的文件最好当日通过. 对供应商 不…...

Unity中基于2.5D的碰撞系统

在2.5D游戏中实现精确的碰撞检测是一个关键挑战,因为我们需要在视觉上有深度感的同时保持游戏逻辑的准确性。下面我将详细解析2.5D碰撞系统的实现方法。 1. 2.5D碰撞的核心问题 1.1 Z轴深度与碰撞的关系 视觉表现:物体通过Y轴位置影响Z轴排序&#xff…...

设计模式-命令模式详解

命令模式详解及真实场景解决方案 模式定义 命令模式是一种行为设计模式,将请求封装为独立对象,包含执行操作所需的所有信息。通过这种方式,可以实现请求的参数化、队列管理、撤销/重做等高级功能,同时解耦请求发送者与接收者。 …...

基于Python(Django)+SQLite 实现(Web) 点菜管理系统

点菜管理系统 课程设计任务与要求 1、任务 题目:点菜管理信息系统 问题描述: 随着网络的迅速发展,越来越多的人开始接受甚至时依赖了网络营业的这种交易形式,传统的点菜模式不仅浪费时间,效率低下,而且…...

泰鸿万立上市:加强产品规划和前瞻性研发 打造优质汽车零部件制造商

4月9日,浙江泰鸿万立科技股份有限公司(股票简称“泰鸿万立”,股票代码“603210”)正式登陆上交所主板。 招股书显示,泰鸿万立主营业务为汽车结构件、功能件的研发、生产与销售。经过十余年发展,公司拥有了…...

Charles的安装和使用教程

Charles抓包工具与Sniff Master在Windows上的安装与使用指南 1. Charles抓包工具安装 1.1 下载Charles 进入Charles官网(https://www.charlesproxy.com/download/)下载最新版本的安装包 1.2 安装与激活 正常安装后,打开会提示试用版30天限制进入授权码生成页面…...

论文阅读笔记:Adaptive Multi-Modal Cross-Entropy Loss for Stereo Matching

论文阅读笔记:Adaptive Multi-Modal Cross-Entropy Loss for Stereo Matching 1 背景2 创新点3 方法4 模块4.1 基础和问题描述4.2 自适应多模态概率模型4.3 主模态视差估计器 5 效果6 结论 1 背景 尽管深度学习在立体匹配方面取得了巨大成功,但恢复准确…...

JavaScript学习教程,从入门到精通,JavaScript 运算符及语法知识点详解(8)

JavaScript 运算符及语法知识点详解 一、JavaScript 运算符 1. 算术运算符 用于执行数学运算: 加法- 减法* 乘法/ 除法% 取模(余数) 递增-- 递减** 幂运算(ES6) let a 10, b 3; console.log(a b); // 13 conso…...

聊聊Spring AI的ETL Pipeline

序 本文主要研究一下Spring AI的ETL Pipeline DocumentReader org/springframework/ai/document/DocumentReader.java public interface DocumentReader extends Supplier<List<Document>> {default List<Document> read() {return get();}}有TextReader…...

spark架构和RDD相关概念

运行架构&#xff1a; Spark采用master - slave结构&#xff0c;Driver作为master负责作业任务调度&#xff0c;Executor作为slave负责实际执行任务。 核心组件 Driver&#xff1a;执行Spark任务的main方法&#xff0c;将用户程序转化为作业&#xff0c;在Executor间调度任务&…...

Cloud Kernel SIG 季度动态:发布ANCK 6.6-003版本,支持一测多证

Cloud Kernel SIG&#xff08;Special Interest Group&#xff09;&#xff1a;支撑龙蜥内核版本的研发、发布和服务&#xff0c;提供生产可用的高性价比内核产品。 01 SIG 整体进展 发布 ANCK 6.6-003 版本。 一测多证流程建立。 OOT 驱动基线更新。 海光平台适配进展更新…...