Linux下Rails 3.1安装sqlite3

leon0dm 2011-10-25

服务器系统是Red Hat 4.1.2-48。默认已安装sqlite3。gem install sqlite3时报错,原因是系统自带的sqlite3版本过低.

安装新版sqlite3

cd /tmp
wget http://www.sqlite.org/sqlite-autoconf-3070800.tar.gz
tar zxf sqlite-autoconf-3070800.tar.gz
cd sqlite-autoconf-3070800
./configure
make
make install
 

默认会安装到/usr/local/bin,库文件在/usr/local/lib。

删除旧版本的sqlite3

locate sqlite3
#找到旧版本sqlite3的目录并删除
rm /path/to/sqlite3/old_version
 

如果出现以下错误:

gems/sqlite3-1.3.4/lib/sqlite3/sqlite3_native.so: undefined symbol: sqlite3_open_v2

解决方法如下:

卸载已安装的sqlite3gem包

gem uninstall sqlite3

可能会提示有依赖关系,忽略即可。因为马上会把sqlite3安装上。通过指定使用的sqlite3的库来安装sqlite3 gem。

gem install sqlite3 -- --with-sqlite3-lib=/usr/local/lib

出现该错误的原因是系统在编译sqlite3的gem本地库时,使用了CentOS提供的低版本的sqlite3库。

通过–with-sqlite3-lib参数来指定正确的sqlite3库的位置即可解决该问题。

相关推荐