小巧、快速、可靠。
三选其一。
如何下载正版 SQLite 源代码

1. 简介

大多数程序员使用 合并文件 将 SQLite 编译到他们的应用程序中。 合并文件 是 C 代码,但它不是“源代码”。 合并文件 是由脚本从源代码生成的。

本文档介绍如何获取 SQLite 的正版源代码 - 用于构建合并文件的原始源文件。有关获取正版源代码后如何操作的更多信息,请参阅 如何编译 SQLite 页面。

2. 直接下载

SQLite 源代码官方版本的快照通常可以从 SQLite 网站的 下载页面 直接获取。即使下载页面上没有列出所需的特定版本,命名约定也很清楚,因此程序员通常可以猜测历史版本的名称并以这种方式下载它。

3. 从版本控制系统直接获取代码

对于任何历史版本的 SQLite,都可以从 Fossil 版本控制系统获取源代码树,可以下载特定版本的 tarball 或 ZIP 存档,也可以克隆整个项目历史记录。

SQLite 源代码在三个地理位置分散的服务器上维护

https://www.sqlite.org/src (达拉斯)
https://www2.sqlite.org/src (纽瓦克)
https://www3.sqlite.org/src (旧金山)

文档在这些服务器上的单独源代码库中维护

https://www.sqlite.org/docsrc (达拉斯)
https://www2.sqlite.org/docsrc (纽瓦克)
https://www3.sqlite.org/docsrc (旧金山)

要下载特定历史版本,首先通过访问这些服务器之一的 timeline 页面来查找所需的特定版本(例如:https://www.sqlite.org/src/timeline)。如果您知道要下载的版本的近似日期,则可以在 "timeline" URL 中添加一个查询参数,例如 "c=YYYY-MM-DD",以查看以该日期为中心的 timeline。例如,要查看 2013 年 8 月 26 日左右发生的所有签入,请访问 https://www.sqlite.org/src/timeline?c=2013-08-26。如果您正在寻找官方版本,请访问 时间线 页面,单击要查找的版本左侧的日期,这将立即带您到与版本对应的签入。

找到特定版本后,单击该版本的超链接以查看 "签入信息页面"。然后单击 "Tarball" 链接或 "ZIP 存档" 链接以下载完整的源代码树。

4. 验证代码是否未修改

源代码树根目录下的 "manifest" 文件包含存储库中每个源文件的 SHA3-256 哈希或 SHA1 哈希。整个源代码树的版本名称只是 "manifest" 文件本身的 SHA3-256 哈希,如果最后一行以 "# Remove this line" 开头,则可能省略了该文件的最后一行。 "manifest.uuid" 文件应该包含 "manifest" 文件的 SHA3-256 哈希。如果所有上述哈希比较都正确,那么您可以确信您的源代码树是真实的,并且没有被篡改。关于 manifest 文件格式的详细信息可以在 Fossil 网站 上找到。

检查源代码真实性的过程由 makefile 自动化

make verify-source

或者在 Windows 上

nmake /f Makefile.msc verify-source

使用 makefile 验证源代码完整性对于检测对源代码树的意外更改很有用,但是恶意更改可以通过同时修改 makefile 来隐藏。

5. 克隆完整的开发历史记录

要克隆 SQLite 的整个历史记录,首先访问 https://www.fossil-scm.org/download.html 页面并获取 Fossil 版本控制程序的预编译二进制文件。或者在同一页面上获取源代码并自己编译它。

截至 2017-03-12,您必须使用 Fossil 2.0 或更高版本才能使以下说明起作用。SQLite 存储库从该日期开始使用以 SHA3 哈希而不是 SHA1 哈希命名的工件,并且需要 Fossil 2.0 或更高版本才能理解新的 SHA3 哈希。要找出您正在运行的 Fossil 版本,请键入 "fossil -v"。

Fossil 是一个完全独立的程序,因此只需将 "fossil" 或 "fossil.exe" 可执行文件放在您的 $PATH 或 %PATH% 上的某个位置即可安装。安装 Fossil 后,执行以下操作

fossil clone https://www.sqlite.org/src sqlite.fossil

上面的命令将在您的计算机上将 SQLite 的完整开发历史记录复制到 "sqlite.fossil" 文件中。制作此副本大约需要一分钟,并使用大约 32 兆字节的传输。制作副本后,通过键入以下命令 "打开" 存储库

fossil open sqlite.fossil

第二个命令将从 SQLite 源代码树中 "签出" 最新签入到您的当前目录。随后,您可以通过键入以下命令轻松切换到另一个版本

fossil update VERSION

其中 VERSION 可以是分支名称(如 "trunk" 或 "session")以获取特定分支上的最新签入,也可以是 SHA1 哈希或 SHA1 哈希的前缀以获取特定签入,或者 VERSION 可以是标签,例如 "version-3.8.8"。每次运行 "fossil update" 时,它都会自动联系 https://www.sqlite.org/src 上的原始存储库以获取自上次更新以来其他人可能做出的新签入。

此页面上次修改于 2023-08-03 14:10:55 UTC