CentOS 5.6上提供的最新SQLite3庫已安裝,版本爲3.3.6。我的理解是,sqlite3 gem需要3.6或更高版本。Rails 3.1應用程序無法安裝sqlite3 gem,因爲庫已過時
如何讓我的應用程序使用SQLite3而不升級服務器上的庫?它在工作環境中,我根本不被允許升級它。
CentOS 5.6上提供的最新SQLite3庫已安裝,版本爲3.3.6。我的理解是,sqlite3 gem需要3.6或更高版本。Rails 3.1應用程序無法安裝sqlite3 gem,因爲庫已過時
如何讓我的應用程序使用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. (option1)通過引用新的靜態庫來安裝SQLite gem。
gem install sqlite3 --with-sqlite3-dir=$HOME/sqlite3.7.7.1
3.B. (選項2)通過捆綁器安裝。 *假設sqlite3的已經被添加到Gemfile中(感謝萊斯特)
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
額外的「 - 」在中間允許選擇不通過寶石文件
這爲我工作在MacBook上帶來了一些不同版本的sqlite3的解析是已經積累了多年。
對我來說,創業板安裝是:
創業板安裝的sqlite3 - --with-sqlite3的-DIR = /路徑/要/ sqlite3的/目錄
換句話說,我也只需要列出主要的sqlite3開發目錄,但我確實需要使用額外的「 - 」。
這讓Rails的3.1的安裝目錄下最大OS X Lion的
我不得不定製與捆綁安裝,像這樣'束配置build.sqlite3 --with-sqlite3的,包括= $ HOME /包括--with -sqlite3-lib = $ HOME/lib --with-sqlite3-dir = $ HOME/bin'。然後只需要運行'bundle install',一切都很好。 –