Rails 3.1 app无法安装sqlite3 gem,因为库已过期

Les*_*ody 2 sqlite centos ruby-on-rails sqlite3-ruby ruby-on-rails-3

CentOS 5.6上提供的最新SQLite3库已安装,版本为3.3.6.我的理解是sqlite3 gem需要3.6或更高版本.

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

crf*_*ftr 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
Run Code Online (Sandbox Code Playgroud)

2.配置,编译和安装.

./configure --disable-shared --enable-static --prefix=$HOME/sqlite3.7.7.1
make && make install
Run Code Online (Sandbox Code Playgroud)

3.A. (option1)安装SQLite gem并引用新的静态库.

gem install sqlite3 --with-sqlite3-dir=$HOME/sqlite3.7.7.1
Run Code Online (Sandbox Code Playgroud)

3.B. (option2)通过bundler安装.*假设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
Run Code Online (Sandbox Code Playgroud)