【问题标题】:Trying to upgrade sqlite on Amazon EC2尝试在 Amazon EC2 上升级 sqlite
【发布时间】:2019-12-04 11:49:03
【问题描述】:

我需要 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 库的更高版本?

【问题讨论】:

  • 2 年多过去了,Amazon Linux 2 仍然只支持 SQLite 3.7!我在 Ubuntu 上重建了我的实例,事情变得更加顺利。

标签: php sqlite mediawiki


【解决方案1】:

我发现的最简单的选择是自己构建它。在 Amazon Linux 第 2 版 (Karoo) 上测试。

  1. here 下载最新的源代码使用配置脚本。目前是:
    curl https://www.sqlite.org/2020/sqlite-autoconf-3320300.tar.gz | tar xzf -

  2. 进入创建的目录并使用我们的系统相关选项创建 Makefile:
    cd ./sqlite-autoconf-3320300 &amp;&amp; ./configure

  3. 构建二进制文件
    make

  4. 安装它
    sudo make install

  5. 清理
    cd .. &amp;&amp; rm -r ./sqlite-autoconf-3320300

注意:如果没有适当的 RPM 包,这样做远非理想。如果你通过 yum 更新 sqlite,你会覆盖你手动构建的版本。

【讨论】:

  • 我按照这些步骤进行操作,但是在覆盖 /usr/lib64/libsqlite3.so.0/usr/lib64/libsqlite3.so.0.8.6 后得到了以下内容@" bash [ec2-user@ip-172-20-234-20 /]$ sqlite3 SQLite header and source version mismatch 2021-06-18 18:36:39 5c9a6c06871cb9fe42814af9c039eb6da5427a6ec28f187af7ebfb62eafa66e5 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
  • 我通过运行解决了这个问题:cp ./sqlite-autoconf-3360000/sqlite3 /usr/local/bin/sqlite3
猜你喜欢
  • 2017-01-06
  • 2011-08-20
  • 2014-06-26
  • 1970-01-01
  • 1970-01-01
  • 2015-10-22
  • 2016-08-29
  • 2013-11-10
  • 1970-01-01
相关资源
最近更新 更多