正在尝试升级Amazon EC2上的SQLite

muk1a3rh  于 2022-11-15  发布在  SQLite
关注(0)|答案(2)|浏览(186)

我需要SQLite最低版本3.8来支持在Amazon EC2上安装MediaWiki。Amazon Linux基于CentOS,yum存储库中提供的最新版本是SQLite 3.7.17。
奇怪的是,可从sqlite.org下载的内容并不包括64位Linux。有一个GitHub repo here有一个预置的64位版本,但是当我下载并解压缩它时,它只是SQLite的命令行版本。我将其放在/usr/bin:

$ which sqlite3
/usr/bin/sqlite3
$ sqlite3 --version
sqlite3: /lib64/libtinfo.so.5: no version information available (required by sqlite3)
3.26.0 2018-12-01 12:34:55 bf8c1b2b7a5960c282e543b9c293686dccff272512d08865f4600fb58238b4f9

但是我的MediaWiki安装仍然抱怨我安装了SQLite 3.7.17。当我自己编写一个PHP一行程序来测试它时,我得到:

$ cat x.php

<?php
print_r(SQLite3::version());
?>

运行它:

$ php7 x.php

Array
(
    [versionString] => 3.7.17
    [versionNumber] => 3007017
)

我猜这是因为这些图书馆的缘故:

$ sudo find / -name "libsqlite*"
/usr/lib64/libsqlite3.so.0
/usr/lib64/libsqlite3.so.0.8.6

如何下载/重建/或以其他方式安装这些SQLite3库的更新版本?

jhiyze9q

jhiyze9q1#

我找到的最简单的选择是自己建造它。在Amazon Linux Release 2(Karoo)上进行了测试。
1.从here下载最新源码和配置脚本。目前,这是:
curl https://www.sqlite.org/2020/sqlite-autoconf-3320300.tar.gz | tar xzf -
1.进入创建的目录,并使用我们的系统相关选项创建Makefile:
cd ./sqlite-autoconf-3320300 && ./configure
1.构建二进制文件
make
1.安装
sudo make install
1.打扫卫生
cd .. && rm -r ./sqlite-autoconf-3320300
注意:在没有适当的RPM包的情况下,这样做并不理想。如果您通过yum更新SQLite,您将覆盖您手动构建的版本。

mnowg1ta

mnowg1ta2#

添加到@halbgut Answer,但做了一些更改--1.从此处使用配置脚本下载最新的源代码。目前为:curl https://www.sqlite.org/2020/sqlite-autoconf-3320300.tar.gz|tar xzf-
2.进入创建的目录并使用我们的系统相关选项创建Makefile:cd./SQLITE-Autoconf-3320300&&./Configure
3.构建二进制Make
4.安装sudo make Install
现在,您已经创建了sqlite3文件。您需要在找到文件sqlite3的任何地方替换它们。
要查找所有这些位置--请运行以下命令--其中有以下命令:/usr/bin/sqlite3/usr/local/bin/sqlite3/usr/include/sqlite3.h/opt/c9/bin/sqlite3/usr/share/man/man1/sqlite3.1.gz
现在,在该文件夹--./SQLITE-AUTOCOF-3320300中,找到SQLITE3、SQLITE3.h文件并替换为以下cp命令。
Sudo cp sqlite-autoconf-3320300/sqlite3/usr/local/bin/sqlite3 sudo cp sqlite-autoconf-3320300/sqlite3/usr/local/bin/sqlite3 sudo cp sqlite-autoconf-3320300/sqlite3/opt/c9/bin/sqlite3{我使用的是c9,因此,这个文件,找出opt/dir中的是什么文件)sudo cp SQLite-Autoconf-3320300/sqlite3.h/usr/Include/SQlite3.h
完成后,您将同时升级env和python-env。现在,您只需定义通向它的路径。为此,请使用usr中的local/lib。EXPORT LD_LIBRARY_PATH=“/usr/local/lib”
现在您应该拥有这样的内容:$python-c“IMPORT SQLITE 3;PRINT(SQLITE 3.SQLITE_VERSION)”3.23.3$SQLITE 3--Version 3.32.3

相关问题