与Linux shell中的.db文件交互

时间:2012-10-24 15:07:13

标签: database linux shell raspberry-pi

我最近在我的Raspberry Pi上安装了一个轻量级UPnP服务器minidlna。由于缺少其他程序的网络界面,如Mediatomb,我认为这对我来说可能是一个有趣的项目。

我相信minidlna将库信息存储在名为“files.db”的单个文件中。


编辑:我被建议检查file files.db的输出 - 这如下:

files.db: SQLite 3.x database, user version 8


但是,我找不到允许我从shell与.db文件交互的程序。我看过以下推荐的课程:

  • ISQL
  • DBACCESS
  • SQL
  • SQLite3的
  • db.util

在前四种情况下,sudo apt-get install无法找到程序。

sudo apt-get install db.util似乎已安装,但在安装过程中,会产生以下消息:

Processing triggers for man-db ...
Setting up gcj-4.7-base (4.7.1-1) ...
Setting up libgcj-common (1:4.6.3-7) ...
Setting up libgcj13 (4.7.1-1) ...
Setting up libgcj13-awt (4.7.1-1) ...
Setting up gcj-4.7-jre-headless (4.7.1-1) ...
Illegal instruction
ERROR: gcj-dbtool did fail; known problem on armv6l
Setting up gcj-4.7-jre (4.7.1-1) ...
Setting up gcj-4.7-jre-lib (4.7.1-1) ...
Setting up gcj-jre-headless (4:4.7.1-1) ...
Setting up gcj-jre (4:4.7.1-1) ...
Setting up libservlet2.5-java (6.0.35-5) ...
Setting up libhsqldb-java (1.8.0.10-11) ...
Setting up hsqldb-utils (1.8.0.10-11) ...

此后,which db-utilwhich db.utilwhich dbutil不会产生任何结果。

db.util是否正在安装与.db文件进行交互的正确程序?如果是这样,我如何使用gcj-dbtool修复报告的错误?如果没有,有人可以推荐一个更好的计划吗?

2 个答案:

答案 0 :(得分:4)

您必须安装名为“sqlite”或“sqlite3”的软件包。

然后,您将能够使用

与.db文件进行交互
$ sqlite3 files.db
> SELECT blah FROM your_table WHERE ......

在你的帖子中你提到'SQLite3',包名应该没有大写字母。

您是否运行了apt-cache search sqlite

答案 1 :(得分:0)

你也可以使用python,因为它应该已经在你的Raspberry Pi上,附带电池/ sqlite3

python -c "import sqlite3; print(sqlite3.connect('example.db').cursor().execute('SELECT * FROM stocks ORDER BY price'))"