leon0dm 2011-10-25
服务器系统是Red Hat 4.1.2-48。默认已安装sqlite3。gem install 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。
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库的位置即可解决该问题。