CentOS 5.6 上可用且已安装的最新 SQLite3 库是 3.3.6 版。我的理解是 sqlite3 gem 需要 3.6 或更高版本。
如何在不升级服务器上的库的情况下让我的应用程序与 SQLite3 一起使用?它在工作环境中,我根本不允许升级它。
CentOS 5.6 上可用且已安装的最新 SQLite3 库是 3.3.6 版。我的理解是 sqlite3 gem 需要 3.6 或更高版本。
如何在不升级服务器上的库的情况下让我的应用程序与 SQLite3 一起使用?它在工作环境中,我根本不允许升级它。
您可以编译您需要的 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
这些步骤对我有用,只需稍作调整。对于步骤 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 文件解析
这在 MacBook 上对我有用,该 MacBook 具有多年来积累的一些不同版本的 sqlite3。
对我来说,gem 安装是:
gem install sqlite3 -- --with-sqlite3-dir=/path/to/sqlite3/directory
换句话说,我只需要列出主要的 sqlite3 开发目录,但我必须使用额外的“--”。
这允许在 Max OS X Lion 下安装 Rails 3.1