ruby-on-rails - Rails 3.1 应用程序无法安装 sqlite3 gem,因为库已过时

标签 ruby-on-rails ruby-on-rails-3 sqlite centos sqlite3-ruby

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

关于ruby-on-rails - Rails 3.1 应用程序无法安装 sqlite3 gem,因为库已过时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7367274/

相关文章:

ruby-on-rails - 需要从我的基于云的服务器使用 Modbus over TCP/IP 与盒子通信

ruby-on-rails - 在 Ruby 中从 AWS S3 中仅检索文件名

ruby-on-rails - Rails - 一个操作,许多模板 - Rails 处理这个问题的方法是什么?

java - 无法向 MySQL 插入记录,但没有显示错误

C# SQLite 参数化选择使用 LIKE

ruby-on-rails - ActionMailer 和 Ramaze

ruby-on-rails - 新的(干净的)Rails 项目崩溃( Action 包错误)

ruby-on-rails - 如何使用fakeredis清除测试环境中的Redis数据库?

ruby-on-rails - 除了一个属性外,如何在 Rails 中复制一条记录?

java - Android Sqlite db.insert 带 null