我最近开始在 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)
这是一个错误,还是我遗漏了一些东西(比如事件循环)?