sqlite3 shell方向键、浏览历史命令不能用的问题

2014-05-11 07:23:33来源:代码消得人憔悴作者:人点击

这个问题是有意为之的,原因是:命令行编辑特性是有外部依赖的,sqlite3二进制包的维护者不对可用的外部库作假定,默认不去引用这些外部库,否则,二进制包可能是不可用的。

命令行编辑特性依赖的外部库是readline,在debian/ubuntu下,通常readline库默认是已经安装的(比如我的ubuntu 11.10桌面版默认已经安装了这三个包readline-common, libreadline5, libreadline6),但sqlite3在编译阶段需要检测readline的头文件,所以还得安装dev包:

 

sudo apt-get install libreadline6-dev libreadline-dev

 

坑爹的是,我用的网易源中没有readline的dev包,google之,在这里找到11.10对应的.deb格式的包:

 

https://launchpad.net/ubuntu/oneiric/i386/libreadline6-dev/6.2-2ubuntu1

https://launchpad.net/ubuntu/oneiric/i386/libreadline-dev/6.2-2ubuntu1

 

dpkg -i libreadline-dev_6.2-2ubuntu1_i386.deb

dpkg -i libreadline6-dev_6.2-2ubuntu1_i386.deb

 

下载与11.10所用版本的sqlite3源码(3.7.7),重新编译、安装,进入sqlite3 shell,发现问题已解决。Enjoy it!

微信扫一扫

第七城市微信公众平台