在Debian上运行Ubuntu One是“可能的”吗?

我在某个地方读到Ubuntu One只能在Ubuntu上运行,这让我很惊讶(我猜这只是官方立场)。我需要怎么做才能在Debian上运行它?
7个回答

只是为了记录,你可以在任何地方运行Ubuntu One,但我们没有资源来测试它并使其在所有地方都能顺利运行。
话虽如此,Ubuntu One由几个部分组成;在Debian中最难以运行的是同步守护进程,我想这就是你的意思;Tomboy、Desktopcouch和Funambol插件应该不会有任何问题(至少,没有特定于Debian的问题)。
@ajmitch正在努力将同步守护进程("ubuntuone-client")的软件包引入Debian。
与此同时,你确实可以让它运行起来。一些库的版本与squeeze稍有不同,因此现在需要进行一些修补。以下是你可以在squeeze上进行最基本版本的“运行”的操作(从安装了“desktop”任务的基本安装开始):
sudo apt-get install bzr python-lazr.restfulclient python-oauth python-pyinotify python-protobuf gnome-common gobject-introspection xutils-dev libnautilus-extension-dev libgconf2-dev libebook1.2-dev gnome-settings-daemon-dev python-twisted-names python-libproxy python-distutils-extra python-setuptools
mkdir ~/u1; cd ~/u1
bzr branch lp:ubuntuone-client/stable-1-4 client
bzr branch lp:ubuntuone-storage-protocol/stable-1-4 protocol
bzr branch lp:ubuntu-sso-client/stable-1-0 sso
bzr branch lp:configglue
sed -i~ -e 's/Spinner()/Label("...")/; /spinner.start/D' sso/ubuntu_sso/gui.py
(cd protocol; python setup.py build)
(cd client; ./autogen.sh --with-protocol=../protocol --with-sso=../sso --prefix=/usr; make)
PYTHONPATH=sso sso/bin/ubuntu-sso-login &
PYTHONPATH=configglue:sso:client:protocol client/bin/ubuntuone-syncdaemon client/data/syncdaemon.conf --debug
PYTHONPATH=sso:client client/bin/u1sdtool -c

虽然上述操作可以使同步守护程序在线并进行同步(假设您使用的是网络管理器),但它不包括DBus激活和Nautilus集成,这会有所帮助。如果您想要这些功能,您可以尝试

(cd sso && sudo python setup.py install --prefix=/usr)
(cd configglue && sudo python setup.py install --prefix=/usr)
(cd protocol && sudo python setup.py install --prefix=/usr)
(cd client && sudo make install)
sudo mkdir /etc/xdg/ubuntuone; sudo cp client/data/syncdaemon.conf /etc/xdg/ubuntuone

这应该可以让整个堆栈工作。如果出现导入错误,请检查安装在 dist-packages 而不是 site-packages (如果它们在后者中,请将它们移动过去 :-) )

看到了吗?一键安装。


2自从您的回复以来,对此有任何改进吗?谢谢。 - F.C.
1有没有可能你会更新这个答案以反映2013年的情况? - Redsandro

你需要安装ubuntuone-clientubuntu-sso-client(单一登录)以及它们的各种依赖项。大部分是用Python编写的,所以只需将软件包拖放过去就不会有任何二进制兼容性问题。
但你可以从这里开始查找依赖关系:http://packages.ubuntu.com/maverick/ubuntuone-client 问:为什么不给出在Debian上添加Ubuntu存储库的说明? 答:除非你找到一个只包含所需内容的PPA,否则可能会导致替换(即升级)大量软件包,使事情变得非常不稳定。只获取所需内容更安全。

类似于apt-get install --no-install-recommends ubuntuone-client这样的命令是行不通的,因为一旦将Ubuntu软件源添加到Debian系统中,它会尝试将所有软件包升级到最新版本。如果Maverick软件源中的某些软件包比Debian软件源中的软件包更新,它会要求你升级到这些软件包。如果这些软件包包含(很可能如此)任何与Debian不兼容的补丁,它将破坏Debian系统。通过packages.ubuntu.com(甚至只需源代码)手动下载所需的deb包安装是无限安全的选择。

自动升级不需要的软件包的问题可以通过使用apt pinning来减少或可能避免,但这超出了我的回答范围。


虽然可能性是存在的,但目前在Debian中还没有相关的软件包。不过有一个ITP bug的存在,这意味着报告该bug的人正在开发或者将要进行打包工作(ITP = 意图打包)。

有一种更简单的方法:从软件包网站获取DEB文件(对于Debian Wheezy,请从Ubuntu 12.04获取DEB文件),使用gdebi(或类似工具)逐个安装。通过试错来确定正确的顺序。在安装完所有DEB文件后,从命令行运行ubuntuone-install,并按照说明进行操作。
提示:您必须启用并管理Network-Manager连接。
在此网站上列出了所需的软件包:

http://conalambre.wordpress.com/2012/10/15/ubuntu-one-en-debian-wheezy/

这是西班牙语,但包的名称是一样的 :-D

嗯,它是Ubuntu One,而不是Debian One。 :)
当然,你应该能够从最新的Ubuntu中重建所需的Ubuntu One部分的软件包,在一个基于Debian的发行版上,该发行版具备进行此操作所需的依赖项。如果这些依赖项不可用,你可能还需要将它们移植过来。
尽管这些发行版不受支持,但如果在重建软件包时遇到任何问题,你可以在Freenode网络的#ubuntuone IRC频道寻求帮助。

我能够通过上面链接中的信息和一些试错来使同步工作。参考资料是这个帖子,https://wiki.ubuntu.com/UbuntuOne/Headlesshttp://blog.pinguinplanet.de/2012/05/ubuntu-one-on-debian-wheezy.html
需要以下步骤:
  • 通过在配置文件/etc/apt/sources.list中将'wheezy'替换为'testing'来切换到“testing”版本,然后执行以下命令:

    sudo apt-get update
    sudo apt-get upgrade
    
  • 安装先决条件:

    sudo apt-get install python-twisted pyqt4-dev-tools bzr python-lazr.restfulclient python-oauth python-pyinotify python-protobuf gnome-common gobject-introspection xutils-dev libnautilus-extension-dev libgconf2-dev libebook1.2-dev gnome-settings-daemon-dev python-twisted-names python-libproxy python-distutils-extra python-setuptools python-configglue python-oauthlib protobuf-compiler
    
  • 构建并安装UbuntuOne客户端:

    mkdir u1
    cd u1
    bzr branch lp:ubuntuone-storage-protocol
    (cd ubuntuone-storage-protocol/ ; sudo python setup.py install )
    bzr branch lp:configglue
    (cd configglue/ ; sudo python setup.py install) 
    bzr branch lp:dirspec
    (cd dirspec/ ; sudo python setup.py install) 
    bzr branch lp:ubuntu-sso-client
    (cd ubuntu-sso-client/ ; sudo python setup.py install) 
    bzr branch lp:ubuntuone-client
    (cd ubuntuone-client/ ; sudo python setup.py install)
    
  • 获取并保存Ubuntu One登录令牌:

    wget http://people.canonical.com/~roman.yepishev/us/ubuntuone-sso-login.py
    python ubuntuone-sso-login.py
    Ubuntu SSO Login: **your Ubuntu SSO Login**
    Password: **your Ubuntu SSO Password**
    oauth=hPQWPsH:rhOokmNiRuuoiHe... 
    
    mkdir ~/.config/ubuntuone
    cd ../.config/ubuntuone
    cp ../../u1/ubuntuone-client/data/syncdaemon.conf .
    

    编辑syncdaemon.conf文件:

    [__main__]
    oauth=hPQWPsH:rhOokmNiRuuoiHe... 
    
  • 现在可以使用u1sdtool --start来启动同步守护进程,u1sdtool -s则会返回以下内容:
    ERROR:root:Could not find any typelib for Unity
    State: QUEUE_MANAGER
    connection: With User With Network
    description: processing the commands pool
    is_connected: True
    is_error: False
    is_online: True
    queues: IDLE
    

    好像忽略这个错误没问题。我没有安装Unity。


    1欢迎来到Ask Ubuntu!虽然这理论上可以回答问题,但最好在这里包含答案的关键部分,并提供链接作为参考。 - fossfreedom