Skip to content

SQLite 在 Linux 上安装

本文档详细介绍 SQLite 在各种 Linux 发行版上的安装方法和配置步骤。

安装方法

使用包管理器安装

Debian/Ubuntu

bash
sudo apt-get update
sudo apt-get install sqlite3 libsqlite3-dev

CentOS/RHEL

bash
sudo yum install sqlite sqlite-devel

Fedora

bash
sudo dnf install sqlite sqlite-devel

Arch Linux

bash
sudo pacman -S sqlite

从源代码编译安装

  1. 下载最新版本的 SQLite 源代码:
bash
wget https://www.sqlite.org/2023/sqlite-autoconf-3440200.tar.gz
tar -xzvf sqlite-autoconf-3440200.tar.gz
cd sqlite-autoconf-3440200
  1. 编译并安装:
bash
./configure
make
sudo make install

验证安装

安装完成后,可以通过以下命令验证 SQLite 是否安装成功:

bash
sqlite3 --version

预期输出:

sqlite3 3.44.0 2023-11-01 11:23:50 93525403c12143aee0ff8a577399e94070845ebd9b9725354437d16569df19a5

版本差异与注意事项

不同Linux发行版的SQLite版本差异

发行版默认安装版本备注
Ubuntu 22.043.37.2较新,支持JSON和GENERATED列
Ubuntu 20.043.31.1较旧,不支持GENERATED列
CentOS 73.7.17非常旧,不支持WAL模式优化
CentOS 83.26.0支持基本WAL模式,但缺少新特性
Fedora 383.42.0较新,支持大多数现代特性
Arch Linux3.44.0最新稳定版,支持所有新特性

生产环境安装建议

  1. 版本选择:对于生产环境,建议使用至少3.31.0以上版本,以支持WAL模式和JSON功能
  2. 编译选项:从源代码编译时,可以使用以下优化选项:
    bash
    ./configure --enable-threadsafe --enable-json1 --enable-session --enable-fts5 --enable-R-tree
    make
    sudo make install
  3. 静态链接:考虑静态链接SQLite到应用程序,避免依赖系统版本
  4. 安全加固:确保编译时包含安全补丁,避免已知漏洞

配置与优化

环境变量配置

可以通过环境变量调整SQLite的行为:

bash
# 设置默认缓存大小(KB)
export SQLITE_DEFAULT_CACHE_SIZE=8192

# 设置默认页大小(字节)
export SQLITE_DEFAULT_PAGE_SIZE=4096

编译时配置选项

选项说明推荐值
--enable-threadsafe启用线程安全支持
--enable-json1启用JSON1扩展
--enable-session启用会话管理支持视需求而定
--enable-fts5启用全文搜索支持视需求而定
--enable-R-tree启用空间索引支持视需求而定

安装后验证与测试

基本功能测试

bash
# 创建测试数据库
sqlite3 test.db "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);"

# 插入测试数据
sqlite3 test.db "INSERT INTO users (name) VALUES ('Test User');"

# 查询测试数据
sqlite3 test.db "SELECT * FROM users;"

扩展功能测试

bash
# 测试JSON功能
sqlite3 test.db "SELECT json('{\"name\": \"Test\"}');"

# 测试WAL模式
sqlite3 test.db "PRAGMA journal_mode=WAL;"

常见问题(FAQ)

Q: 如何升级 SQLite 到最新版本?

A: 对于旧版本发行版,可以从源代码编译安装最新版本,或使用第三方仓库如Ubuntu的PPA。

Q: 如何查看已安装的 SQLite 版本?

A: 使用 sqlite3 --version 命令,或在SQLite提示符下执行 .version 命令。

Q: 安装过程中遇到依赖问题怎么办?

A: 确保系统已更新,或尝试安装缺失的依赖包。对于复杂的依赖问题,可以考虑使用Docker容器。

Q: 如何处理安装后无法找到sqlite3命令的问题?

A: 检查是否将安装目录添加到了PATH环境变量中,或使用绝对路径执行命令。

Q: 如何配置系统默认使用新版本的SQLite?

A: 可以将新版本的安装目录添加到PATH环境变量的前面,或使用update-alternatives命令(部分发行版支持)。

Q: 从源代码编译安装后,如何卸载SQLite?

A: 进入源代码目录,执行 sudo make uninstall 命令。

Q: 如何在同一系统上安装多个版本的SQLite?

A: 可以将不同版本安装到不同目录,然后通过PATH环境变量或绝对路径来选择使用哪个版本。