aptdaemon 模拟不更新依赖项

aptdaemon 模拟不更新依赖项

我最近开始在 Ubuntu 13.10 上玩aptdaemon,我感到很困惑。在事务上调用 mock() 不会更新依赖项列表。调试显示aptd正在发出几个事件,包括依赖项的 PropertyChanged 事件,但我的处理程序未被调用。以下是一些演示该问题的代码:

import aptdaemon.client

def printcall(*args, **kwargs):
    print("call(*%r, **%r)" % (args, kwargs))

client = aptdaemon.client.AptClient()
# I have make installed, but not abiword.
txn = client.install_packages(["make", "abiword"])
txn.connect("dependencies-changed", printcall)
txn.simulate()

print(txn.dependencies)
print(txn.packages)

对我来说,它会打印一个空的依赖项列表(实际上,一个包含 6 个空列表的列表),而apt-get install abiword从命令行运行会出现几个依赖项。此外,该dependencies-changed事件从未触发:

dbus.Struct((dbus.Array([], signature=dbus.Signature('s')), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([], signature=dbus.Signature('s'))), signature=None, variant_level=1)
dbus.Struct((dbus.Array([dbus.String(u'make'), dbus.String(u'abiword')], signature=dbus.Signature('s')), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([], signature=dbus.Signature('s')), dbus.Array([], signature=dbus.Signature('s'))), signature=None, variant_level=1)

这是一个错误,还是我遗漏了一些东西(比如事件循环)?

相关内容