【问题标题】:Rails 3.1 app can't install sqlite3 gem because libraries are out of dateRails 3.1 应用程序无法安装 sqlite3 gem,因为库已过时
【发布时间】:2011-11-14 02:25:05
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    您可以编译您需要的 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
    

    【讨论】:

    • 我必须像 bundle config build.sqlite3 --with-sqlite3-include=$HOME/include --with-sqlite3-lib=$HOME/lib --with-sqlite3-dir=$HOME/bin 这样使用捆绑程序自定义安装。然后只需要运行bundle install,一切都很好。
    【解决方案2】:

    这些步骤对我有用,只需稍加调整即可。对于步骤 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文件不解析选项

    【讨论】:

      【解决方案3】:

      这适用于我的 MacBook,它具有多年来积累的一些不同版本的 sqlite3。

      对我来说,gem 安装是:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-28
        • 2016-03-13
        • 2011-12-28
        • 2018-01-29
        • 2011-04-01
        • 2011-10-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多