linux - sqlite 在 tcl 脚本中通过 nfs 使用(或者..如何制作可以在 nfs 上运行的独立 sqlite3)

标签 linux sqlite tcl nfs

我想将 sqlite 数据库嵌入到现有的 tcl 应用程序中(从平面文件迁移)。

目前;我们的 tcl 解释器是从网络位置运行的; <nfs share>/bin/tclsh8.3

我有一个 nfs $PATH对于已经为所有用户设置的可执行文件;我假设我可以在那里放置一个独立的 sqlite3 可执行文件;虽然我还没有找到一种简单的方法来编译本地 lib 独立的 sqlite ......(所有 linux 客户端,运行从 red hat 9 到 ubuntu 10.04 的任何东西)

任何人都能够在构建一个我可以在我的 nfs tcl 安装中使用的 sqlite3 独立二进制文件中指出正确的方向吗?

最佳答案

首先,Tcl 8.3.5 是古老的并且相对较慢。升级到 8.4 或 8.5(如果可以)将会看到性能改进(究竟哪个更快取决于您的脚本在做什么)。

其次,SQLite 支持通常通过可加载的(通常称为sqlite3)完成。您将希望获得一个与您支持的最旧版本的 Tcl 一起工作的构建(简单地在 stub 模式下编译——我认为无论如何这是默认的——针对你想要支持的最旧的 Tcl 版本应该没问题)然后把它在代码的 auto_path 目录中(作为软件包的完整安装)。做到这一点的最好方法之一是获得 tclkit单文件可执行 for Linux并将 sqlite3 包与您一起嵌入其中;这很好,因为您可以将所有内容集中在一个地方,这样用户就不会通过设置环境变量或其他类似的废话来轻易破坏事物。在 https://stackoverflow.com/questions/1379577/… 上有更多关于执行此操作的帮助

第三,不推荐混合使用数据库和 NFS(或任何其他网络文件系统),因为分布式锁定和确保事务期间正确刷新到永久存储存在困难犯罪。在这些条件下确保数据完整性非常困难!

关于linux - sqlite 在 tcl 脚本中通过 nfs 使用(或者..如何制作可以在 nfs 上运行的独立 sqlite3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2837528/

相关文章:

java - widgetSelected() 和不同的操作系统平台行为

java - 在android中的sqlite3中创建自定义函数

android - SQLiteOpenHelper "onCreate"没有被调用? (数据库不存在)

c++ - 连续错误 21 : "library routine called out of sequence"

python - 行号和语法突出显示在不同选项卡上不起作用

c - tcl/Tk 'invalid command name ""' 通过管道控制时

node.js - 我的 express https 服务器在本地工作但不在 docker 容器中

linux - 如何创建具有权限的linux用户

python - Tkinter/ttk 帧大小

linux - Bash 脚本输出到文件从脚本失败但从 bash 工作