问题标签 [gdbm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - GDBM 与简单的 JSON、INI 或 YAML 配置文件
我正在研究基于文件的键值数据库,例如GDBM,与使用配置文件相比,我看不到任何真正的优势。这两种技术都允许您将键和值存储在文件中。
是GDBM的性能优势, GDBM解析文件更快吗?
php - Apache/PHP GDBM 因驱动程序初始化失败而导致处理程序失败:gdbm
我有一个使用 PHP 构建 GDBM 文件的系统,然后 Apache 引用该文件来执行基本身份验证。自 1999 年以来,它一直在运行许多版本的 apache 和 PHP,直到现在我正在进行升级以匹配公司政策。
如果我从命令行运行 php(指定适当的 php.ini 文件),则 DBA 功能可以正常工作。
但是,当它从 Apache 内部调用时,它从 PHP 调用 dba_open(...) 我得到:
PHP 是使用以下命令构建的:
我只是根据其他一些评论添加了 --enable-dba 。
gdbm_dump 失败并报告:
但现在已经设法使用命令行 PHP 重建 GDBM 数据文件,它可以正常工作 - 因此似乎可能存在(或曾经)字符编码问题或类似问题
在apache内部它失败了:
我假设它必须与机器 a 上的库不匹配有关,但我想不出更多的方法来调试它。任何帮助或建议将不胜感激。
ruby - 获取 ruby 上的数据库迭代索引
我正在尝试使用 gdbm 遍历数据库文件,使用我获得的值创建对象并将它们分配给数组。问题是我似乎无法获得迭代索引,我的数组需要它。这是代码:
我得到的错误:
另外,执行块后数据库文件会关闭吗?
python-3.x - Python:如何为 dbm.gnu 安装 gdbm
在 Python 3 文档中,它声明如果安装了 dbm 模块,它将使用 gdbm。在我的脚本中,我from dbm.gnu import open as dbm_open
用来尝试导入模块。它总是返回异常ImportError: No module named '_gdbm'
。我已经访问了 gnu 网站并下载了最新版本。我使用
./configure --enable-libgdbm-compat
,安装了它make; make check; make install
,并且安装时没有错误。我可以访问该库的手册页,但仍然无法将其导入 Python 3.5.2 (Anaconda)。如何为 gdbm 安装 Python 模块?
python - 得到 gdbm 错误:(13, 'Permission denied') — 尽管 posix 权限似乎没问题
我正在使用 python 2.7.6 中的搁置来缓存计算,我遇到了这里描述的问题,用于我生成的搁置文件,并在将文件合并到文件的函数中实现了建议的解决方案:other
target
这两个文件归我所有,记录在本地文件系统中,并将 posix 权限设置为0666
,或者等效地,-rw-rw-rw-
在我的 Linux Mint 框中,因此已经执行了明显的检查:
这里,cache
是target
,cache.0
是other
文件。当前工作目录归我所有并具有权限0775
,我可以使用 , 等创建文件touch
,cp
没有任何问题,我什至将 my 设置umask
为0000
,因此创建新文件时使用0666
, 或等价的-rw-rw-rw-
权限.
根据其文档,我什至将实际文件权限与 gdbm.open() 调用中的权限相匹配;然而,无济于事。
更新:通过使用超级用户权限运行python代码sudo
,错误发生在同一行;但是有不同的信息:gdbm error: Bad magic number
!这很奇怪,因为使用(看似)较低级别的模块(gdbm
而不是shelve
)正是为了绕过数据库类型检测。
更新#2:python whichdb.py
在文件上运行返回dbhash
;但是,将模块更改为dbhash
加载代码仍然会出现以下错误:
以用户身份运行时,但是
使用 sudo 运行时;merge-cache.py
是我的代码名称。
这里讨论了这个新错误,与 python 版本有关,但是 (i) 我的 python 版本与那篇文章中的不同,并且 (ii) 文件被创建并稍后使用相同版本的 python 读取。
这个答案表明shelve
大型集合“浪费”了,但我报告的问题也发生在较小的数据库中。
问题:如何使用 python-2.7.6 打开这些搁置文件?(升级 python 不是一种选择)。
ruby - dyld:惰性符号绑定失败:找不到符号:GDBM gem 的 __gdbm_lock_file 错误
当我尝试使用Ruby GDBM gem时,我遇到了这个奇怪的错误。宝石曾经工作过。现在,当我调用它时,我得到了这个错误(跨越许多不同版本的 ruby):
我尝试了许多 ruby 版本,直接从 Rbenv 执行,甚至安装/卸载我的 brew GDBM 安装。/usr/local/Cellar/gdbm/1.12
当我从命令行(例如)手动调用它时,我的 GDBM Brew 安装在GDBM 工作gdbm_load
。
我能想到的唯一改变是我现在在 OSX El Capitan 10.11.6 上运行。或者我以某种方式对可能导致此错误的配置或 PATH 文件进行了更改。
我该如何解决这个问题?
c - 将 struct 转换为字节数组并存储在 db 中。读取 db 并获取字节数组以在 C 中重新创建结构
大家好,很抱歉问,但我可以找到任何合适的解决方案。我正在研究一个文件系统,我将每个文件节点作为键值对保存在 GDBM 数据库中。我有一个具有一些属性的结构,我将其转换为字节数组
结构mystruct:
我将其转换为字节数组
为了存储在数据库中,我们使用如下数据结构:
我填写基准结构如下:
现在我将 GDBM 存储为键值对
然后在另一个文件中,我读取了我存储的数据并尝试将其重新转换为结构
它打印以下内容:
它设法恢复结构,但 char* 的数据丢失了。仅涵盖整数数据。知道为什么会这样吗?如何解决?它不能通过存储字节数组来解决,如何将字节数组转换为十六进制或 base64 并将其存储。
我真的在努力解决这个问题。提前谢谢你。
database - Berkley gdbm 通常如何使用?
gdbm 是一个简单的键值存储。我怀疑它的使用是基于各种技巧。例如,从最终用户的角度来看,我想要一个名为 的记录user/project
,它应该关联以下内容:
- 协议,git:// 或 http://
- domain like: github.com, bitbucket.com, etc. – 形成 url like github://user/project
- 启用/禁用
- 加载方法——这里有 3 种不同的方法,如“native”、“binary”、“normal”
- 主文件——“main.c”,或其他
- 忽略文件 - 用“&”分隔的字符串和要忽略的文件路径
- depth – 要下载的提交数
我认为这就足够了。我的意思是现实世界的用途是复杂的,而 Gdbm 似乎并没有为自己辩护。有没有办法将其用于上述场景?
openwrt - 如何在openwrt上安装gdbm
我以前从未使用过 openwrt,但现在我需要在 openwrt 上安装 gdbm 包。你能建议我怎么做吗?
Make 无法在 openwrt 上运行
下载 gdbm 源并编译它们是在配置时给我的
配置:错误:在/HDD/gdbm-1.13':
configure: error: C compiler cannot create executables
See
config.log' 以获取更多详细信息
请帮我
python - GDBM 不适用于 Python 3.6 和 anaconda
我在 anaconda 环境中使用 Python 3.6。我安装了 GDBM
安装很顺利,但是我不能dbm.gnu
从 Python 中使用:
_gdbm
即使实际安装了 GDBM ,Python 也似乎不包含该模块。
这是一个已知问题吗?我该如何解决?
谢谢!