我有带有的 SQLite3 的 Ubuntu 存储库v3.7.17
。但是它没有.save
较新版本的命令。
为了更新我所做的:
sudo apt-get purge sqlite3
- 下载SQLite 3.8.4.3
- 使用安装
./configure && make && sudo make install
但是现在当我尝试sqlite3
从命令行运行时我得到:
SQLite header and source version mismatch
2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
2014-04-03 16:53:12 a611fa96c4a848614efe899130359c9f6fb889c3
经过搜索,我发现了两个我尝试过但没有成功的解决方案:
知道如何解决这个错误吗?
答案1
从源代码构建后,您的v3.8.4.3版本现已安装在/usr/local/lib
。
您需要将/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6
(或/usr/lib/i386-linux-gnu/libsqlite3.so.0.8.6
对于 i386 arch) 替换为/usr/local/lib
:
sudo cp /usr/local/lib/libsqlite3.so.0.8.6 /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6
答案2
我刚刚在 Debian 上下载并编译了它,遇到了同样的问题。我通过静态链接 sqlite3 解决了它:
./configure --disable-dynamic-extensions --enable-static --disable-shared
make
make install
您可能只需要--enable-static
但我特意添加了--disable-shared
以确保。
问候
答案3
在我的例子中,sqlite3 二进制文件是从特定用户登录(批处理脚本)调用的。该脚本在/usr/bin/sqlite3
其自己的应用程序安装 sqlite3 版本之前就已经看到了,尽管读取的是第二个版本的库,而不是第一个版本的库。我在用户文件中的行${path to special application ~/bin}
首添加了以下内容。export PATH=
.bashrc