数据库
本文将继续对 Linux 中丰富的资源进行一次小型探险。上个月,我粗略地介绍了可用的电子表格和文本编辑器。该列表远非完整,并且几乎可以肯定在印刷时已经过时。同样的注意事项也适用于本文。
我新的素材来源是 Infomagic 的四张 CD Linux 开发者资源——Live Slackware、Tsx-11、Sunsite、GNU 档案以及各种其他主题的镜像。
很容易迷失在 Linux 程序的 CD 迷宫中,而且我因为在电脑前待了太多小时,眼镜已经很厚了。以下内容并非旨在成为权威列表,而只是对一些可用资源进行温和的调查。
正如我在上个月的专栏中所做的那样,我想强调以下产品并非商业产品,尽管可能有商业版本。另外,请允许我陈述我的期望,以便您了解我的观点。作为 DOS 数据库爱好者,我期望许多 Linux 数据库产品能与 dBase II 或 dBase III 相媲美,甚至可能与之兼容。有点像我发现的电子表格与早期版本的 Lotus-123 或 Excel 相媲美一样。此外,我希望界面比臭名昭著的 dBase 点提示符更友好。
术语“关系数据库”指的是一种基于通用(通常是索引)字段“连接”数据库的方式。例如,医生数据库可以使用医生 ID 这个通用字段链接到患者数据库,医生 ID 会同时出现在这两个数据库中。当您选择一位医生(从而也设置了一个 ID)时,所有具有相同医生 ID 的患者也将被选中。这不是最好的例子,但它传达了这个概念。
深吸一口气,继续前进。
mbase (v5.0) 是一个关系数据库系统,最初为 Amiga 编写,并移植到其他平台。它使用类似 C 的格式进行数据库编程,不幸的是,我只能做到这一步。编译需要 ncurses,我已经安装了,但显然没有安装到 mbase Makefile 期望的目录中。编辑 Makefile 也没有太大帮助。mbase 超出了这个新手的能力范围,至少设置它是这样。如果 mbase 使用 C 格式,我不认为它会满足我对友好界面的期望。最后,当我移除 ncurses 时,Linux 开始表现得很奇怪。奇怪的是,因为我使用了 Slackware 中包含的 installpkg 和 removepkg 实用程序,它们非常可靠(假设它们是问题所在)。我重新安装了 ncurses,现在 Linux 又高兴了。[ncurses 正在成为 Linux 的标准,这应该会消除其中一些问题。有关 ncurses 的更多信息,请参见 [??] 页——编者注]
lincks (v2.2 pl 1) 是一个 OODBMS 或面向对象数据库管理系统。它在 1995 年 3 月的 Linux Journal 杂志中有所介绍,但我犯了一个错误,在安装之前没有阅读这篇文章。因此,在试图让 RPC 端口映射器 portmap 感到困惑之后,我在很短的时间内就沮丧地放弃了。我将在这里停止,并将对 lincks 感兴趣的人们推荐给前面提到的文章。然而,一个想法闪过我的脑海:我正在寻找一个单用户类型的数据库系统,而这些数据库系统中的许多都是多用户、客户端-服务器的庞然大物。我预感,更多数据库系统将无法工作,因为它们期望某种类型的网络。
onyx (v2.24) 是一个数据库原型程序,也基于类似 C 的语言。程序作者 Michael Kraeh 在 1994 年 3 月的 Linux Journal 杂志创刊号中对其进行了评测。单用户可以将其用作数据库程序,我猜,但我无法使用它。文档没有明确说明如何编译或如何入门,这对这个新手来说非常恼火。我确实弄清楚了 make config 将启动该过程,并且出现了一系列结构良好的问题。这些问题将配置 onyx,但没有任何地方帮助说明它们指的是什么。当它崩溃时,我并不感到惊讶。在交换文件处于活动状态的情况下,我尝试了 make all install,它运行了一段时间但一无所获。我最后浏览了一下使用 mc 作为我的窥探工具的各种文件,但没有发现任何有用的东西。由于 onyx 仍然像许多 Linux 程序一样是一个正在进行中的工作,我继续研究下一个产品。
postgres (v4.0.1a) 和 Ingres (v8.9) 我将它们放在一起讨论。两者显然都是高端、多用户、客户端-服务器系统。两者的安装都让我感到困惑,因为我是单用户,并且没有安装任何网络程序。更糟糕的是,Ingres 建议查看 setup.doc 以获取安装说明。猜猜哪个文件不存在?虽然这两个软件包都不能满足我对易用性的 xBase 期望(我只是猜测),但我希望有空闲时间的专家能够撰写几篇深入的文章,介绍如何使用这两个程序。甚至在我摆弄 Unix 之前,我就听说过 postgres 和 Ingres,所以我对它们很好奇。[有一个相对较新的项目来创建“Postgres 95”,它旨在成为 postgres 的更现代、修复 bug 的版本。它也应该比旧的“大学 postgres”更容易构建——编者注]
pfl (0.2 alpha) 解压得很好,但 doinst.sh 脚本对我不起作用。根据文档,pfl 类似于 Lisp,这告诉我,这可能不适合易受影响的新手,当然也不是我在易于使用的程序中寻找的东西。也就是说,我怀疑它与 xBase 兼容。
qddb (1.41.3 beta) 代表“快速而肮脏的数据库”。它是一个数据库开发系统,它使用但不要求 Tcl。但是,它确实需要 bison 1.22 和 flex 2.4.1 才能编译。在经历了这么多软件包之后,我的心开始动摇了。我承认我看了看配置这个软件包需要什么,甚至没有尝试一下。它看起来那么可怕,而且有种感觉告诉我 qddb 无论如何都不会是我一直期望的那样。是的,我是一个彻头彻尾的懦夫。
DBF (1.5) 自称为 x-base 操作包,令人惊讶的是(在经历了这么多新手失败之后),它实际上对我有效。它是一个小型程序集合,用于操作 dbf 文件。例如,dbfadd 向数据库添加记录或信息层。dbflst 列出数据库中的记录。dbftst 列出结构。还有其他此类实用程序。我不想用这个包管理复杂的数据库系统,但是对于快速轻松地摆弄 dbf 文件,它很有效,而且程序不占用太多硬盘空间。
typhoon (1.06) 是另一个关系数据库系统。其中一个文本文件指出,这是一个赶工项目,意味着不完整的文档让可怜的新手受苦。我喜欢这种诚实,但讨厌这种现实。像之前的许多数据库软件包一样,它就是无法正确编译。该过程分为两个步骤。第一个步骤 configure 运行顺利。第二个步骤 make 崩溃了,出现某种菜单。我尝试了 make all 和 make install,都在 /usr 和 /usr/local 下,但都无济于事。在摆弄了一些其他软件包之后,我可能会回去再试一次,因为 typhoon 的灵感来自 Raima 的 db_VISTA,这是一个我想尝试的系统。我认为它与 db_VISTA 之间的一个主要区别是所有进程的 C 结构。根据 typhoon 的文献,它可以处理各种联合、关系键和变量类型。参照完整性也是一系列优秀功能的一部分。作者目前正在研究导入和导出功能等。这一切听起来令人印象深刻!如果它能为我编译就好了。
FlagShip 是一个有效期为 10 天的演示版,阅读一些文档让我对探索充满了希望和熟悉的基础。它提供了 CA/Clipper 和 dBase 兼容性,能够包含 C 代码,并且通过包含的实用程序甚至可以访问 FoxPro 程序和数据库!这会是我实现的圣杯吗?它开始时很容易。将多兆字节的 fs4lix.gz1 和 .gz2 复制到 /tmp/FS,并将它们与以下命令连接在一起
cat fs4lix.gz* > fsdemo.tar.gz
之后,我运行了 FSinstall,它引导我完成了一个菜单。然后我的运气就用光了。该程序对我的屏幕做了一些事情,以至于我看不到我在键入什么;重新启动解决了这个问题。转到 /usr/FSsrc,我成功编译了一个示例程序,但结果是一个名为 a.out 的文件,当我尝试运行时,它再次搞乱了我的屏幕。好吧,也许 FlagShip 期望在 X-Windows 下运行。删除 a.out,激活交换文件,进入 X-Windows,编译另一个测试程序,是的!,另一个 a.out,它使系统变得奇怪。幸运的是,退出 X-Windows 恢复了正常。也许这可能是之前为 mbase 安装的 ncurses。FlagShip 似乎想要一个不同版本的 curses,但不幸的是,我没有测试这个想法的知识。
告别 FlagShip。至少该软件包包含一个有用但繁琐的 FSuninstall。它会询问您是否要删除每个与 FlagShip 相关的文件。29 亿次删除提示,或者感觉是这样,过了一会儿。但在我查看的所有程序中,FlagShip 对我这个来自 DOS 的访问者来说最感兴趣,如果我需要 Unix 数据库系统,它可能是我会购买的。当然,我会让别人来安装它。
我对熟悉事物的期望没有得到满足。除了 FlagShip 之外,没有哪个软件包看起来像 dBase 克隆,但我从未让 FlagShip 达到任何视觉状态。然而,在我期望一个不成熟的领域中,这些程序看起来或听起来相当复杂(尽管编译和安装非常麻烦)。
但未满足的期望并不是挫败感。而是普遍缺乏成功。我努力让本专栏以某种成就结束。当然,我最终可能会重新安装 Linux 十二次,但总是以积极的方式结束,作为对我们这些勇敢的新手的士气鼓舞。这次不是这样。除了 DBF xbase 实用程序集之外,这位 Casey 被密集的安装说明击倒了,一败涂地。
让我困扰的还有,许多软件包——我不仅仅是指数据库——缺乏像样的文档。对于新手来说,两条关键信息是在哪里解压、解压缩或解 tar 软件包,以及如何编译,特别是当 Makefile 需要或期望某些东西以某种方式存在时。我赞赏 “.lsm” 文件,这些文件伴随许多 CD 和网络上的 zip 和压缩文件。它们在您实际解压之前提供了一些帮助,以了解内容放在哪里。
我可以听到一些软件作者说“那又怎样?黑客,专家可以弄清楚”,这可能是真的。但是 Linux 已经在许多流行的和不同的杂志上获得了很高的评价和提及,因此您会得到专家以外的人四处窥探并想知道,“为什么会引起轰动?”这些人代表了 Linux 未来的受众,不管你喜不喜欢,这些 Linux 新手都必须在更简单的安装例程和更清晰的文档方面得到关注。这是成功的代价的一部分!
下个月:更多的恶作剧和一个快乐的结局。
Dean Oisboid,Garlic Software 的所有者,是一位数据库顾问、Unix 初学者和公开的 Sandman 瘾君子。