2

CentOS 5.6 上可用且已安装的最新 SQLite3 库是 3.3.6 版。我的理解是 sqlite3 gem 需要 3.6 或更高版本。

如何在不升级服务器上的库的情况下让我的应用程序与 SQLite3 一起使用?它在工作环境中,我根本不允许升级它。

4

3 回答 3

5

您可以编译您需要的 sqlite 版本的静态库。然后安装 sqlite3 gem 并引用您的新静态库。

虽然我还没有测试过这个过程,但我可以看到这个过程......

1. 在新目录中下载并解压 SQLite 源代码。

mkdir $HOME/sqlite3.7.7.1
cd $HOME/sqlite3.7.7.1
wget http://www.sqlite.org/sqlite-autoconf-3070701.tar.gz
tar -zxvf sqlite-autoconf-3070701.tar.gz
cd sqlite-autoconf-3070701

2. 配置、编译、安装。

./configure --disable-shared --enable-static --prefix=$HOME/sqlite3.7.7.1
make && make install

3.A. (选项 1)安装 SQLite gem 并引用您的新静态库。

gem install sqlite3 --with-sqlite3-dir=$HOME/sqlite3.7.7.1

3.B。(选项2)通过捆绑器安装。*假设 sqlite3 已经添加到 Gemfile 中感谢 Lester

bundle config build.sqlite3 \
  --with-sqlite3-include=$HOME/sqlite3.7.7.1/include \
  --with-sqlite3-lib=$HOME/sqlite3.7.7.1/lib \
  --with-sqlite3-dir=$HOME/sqlite3.7.7.1/bin
bundle install
于 2011-09-10T13:51:32.077 回答
0

这些步骤对我有用,只需稍作调整。对于步骤 3.A,使用 gem 1.3.7 和 rails 3.1.0。我必须做:

gem install sqlite3 -- --with-sqlite3-dir=$HOME/sqlite3.7.7.1 --with-sqlite3-lib=$HOME/sqlite3.7.7.1/lib

中间的额外“--”允许选项不被 gem 文件解析

于 2011-09-15T21:56:53.130 回答
0

这在 MacBook 上对我有用,该 MacBook 具有多年来积累的一些不同版本的 sqlite3。

对我来说,gem 安装是:

gem install sqlite3 -- --with-sqlite3-dir=/path/to/sqlite3/directory

换句话说,我只需要列出主要的 sqlite3 开发目录,但我必须使用额外的“--”。

这允许在 Max OS X Lion 下安装 Rails 3.1

于 2011-09-20T04:26:57.377 回答