I read somewhere that Ubuntu One only runs on Ubuntu, which was a surprise (and I suppose it's just an official stance). What will it take for me to run it on Debian?
Just for the record, you can run Ubuntu One anywhere you want, but we don't have the resources to test it and get it running smoothly everywhere.
Having said that, Ubuntu One is made up of several parts; the most problematic to get running in Debian is the syncdaemon, and I presume that is what you mean; tomboy, desktopcouch and funambol plugins shouldn't be an issue at all (at least, no issue specific to Debian :-) ).
@ajmitch is working on getting packages of syncdaemon ("ubuntuone-client") into Debian.
Meanwhile, you can get it running. The versions of some of the libraries are slightly off for squeeze, so some patching is needed for now. Here's what you can do for the most rudimentary version of "running", in squeeze (starting from a base install with the 'desktop' task installed):
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
while the above gets the syncdaemon online and syncing (assuming you're using Network Manager), it doesn't include dbus activation and nautilus integration, which help. If you want those, you could try
(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
this should make the whole stack work. If you get import errors, check
that things got installed in
dist-packages and not
(if they're in the latter, move them over :-) )
See? One-click install.
ubuntu-sso-client (single sign on) and all their various dependencies. It's mostly python so there shouldn't be any binary compatibility issues from just dragging the packages over.
But you can start tracking down the dependencies here: http://packages.ubuntu.com/maverick/ubuntuone-client
Q. Why not give instructions to add Ubuntu repositories to Debian for this?
A. Unless you found a PPA that just had the required stuff, you could end up with it replacing (read: upgrading) a whole load of packages to a point where things became very unstable. It's much safer to only pull in what you need.
apt-get install --no-install-recommends ubuntuone-client wouldn't work, because as soon as you add the Ubuntu repository to a Debian install, it would try to upgrade all packages to the latest version. If any of the packages in the Maverick repo were newer than those in the Debian repo(s) used on that system, it would want you to upgrade to them. If those packages contained (as they probably do) any Debian-incompatible patches, it would nuke the Debian system. It's infinitely safer to just download the required debs through packages.ubuntu.com (or even just the source) and install manually.
The problem of automatically upgrading unwanted packages could be reduced or possibly avoided by using apt pinning, but that's beyond the scope of my answer.
Well, it is Ubuntu One, and not Debian One. :)
You should of course, be able to rebuild the packages from the latest Ubuntu for the pieces of Ubuntu One you need, on a Debian-based distribution which has the required dependencies available for doing so. If the dependencies aren't available, you may also need to port them over.
Those distributions are not supported, though if you run into any issues getting the packages rebuilt on them, you can ask for some help in #ubuntuone IRC on the Freenode network.
There's a much easier way: get the DEBs from the package site (for Debian Wheezy get DEBs from UBuntu 12.04), install one by one using gdebi (or similar). Trial and error to get the right order. After isntalling all the DEBs, run ubuntuone-install from comand line and follow the instructions.
Hint: you must have Network-Manager enabled and managing your connection.
In this site I list the packages needed:
It's in spanish but the names of the packages are the same :-D
I recently migrated from Ubuntu to Debian and had the same problem. I have it running now and have written a detailed blog entry on how to run Ubuntu One on debian.
The link is here: http://blog.pinguinplanet.de/2012/05/ubuntu-one-on-debian-wheezy.html
I was able to get the syncing to work using the information from the link above and some trial and error. The references are this thread, https://wiki.ubuntu.com/UbuntuOne/Headless and http://blog.pinguinplanet.de/2012/05/ubuntu-one-on-debian-wheezy.html.
These are the steps needed:
Switch to 'testing' release by replacing 'wheezy' with 'testing' in the configuration file /etc/apt/sources.list followed by:
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
Build and install the UbuntuOne client:
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)
get and save the Ubuntu One login token:
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 .
u1sdtool --start can be used to start the sync daemon and
u1sdtool -s gives:
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
It seems OK to ignore the error. I don't have Unity installed.