基本上,我想构建 ubuntuone-client,使其不具有 nautilus 和 gnome 相关的依赖项。这可以做到吗?如果可以,怎么做?
答案1
Ubuntu One 文件同步守护程序ubuntuone-syncdaemon
和相关的命令行实用程序u1sdtool
都是 Python 程序,因此不需要传统意义上的“构建”(ubuntuone-client
需要构建的部分是 nautilus 扩展(您不需要它)及其使用的图标)。运行时u1sdtool
只需通过 dbus 进行通信syncdaemon
,并且syncdaemon
对 Ubuntu 桌面提供的一些服务的依赖性非常窄,而且仅通过 dbus 进行通信(因此理论上您可以使用提供相同 API 的其他服务来满足依赖性)。
您需要在会话总线上提供一些org.freedesktop.Secret.Session
相关接口。这是由 使用的ubuntu-sso-client
,它由 用来syncdaemon
提供所需的凭据。
您可能还希望系统总线上提供某些功能org.freedesktop.NetworkManager
(通常是网络管理器本身)来告知syncdaemon
您是否已连接到网络。然而,这并不是必需的。
您还需要以下 Python 库:configglue
、dbus
(显然)、、、、、、oauth
和(pyinotify
这又依赖于上面的一些内容以及simplejson
) 。twisted
您也可以选择拥有、以及一些我假设您不会拥有的 Unity 相关内容。xdg
ubuntuone.storageprotocol
protobuf
pynotify
zeitgeist
祝移植顺利,如果我忘记了什么或者你遇到了困难,请告诉我们!