9

Being new to Linux and to Ubuntu, I've taken quite some time to tune it to my needs on my netbook. As I'm now convinced by the OS, I plan to install it on my desktop in the next few days. I was hoping that with Ubuntu One, after a sync, I would find back all my settings on the newly installed machine : system settings, language, list of installed programs (to quickly reinstall the same set), email chat and microblog accounts, Unity launcher shortcuts, etc...

I've just read trought the Ubuntu One website and it seems such a settings-sync feature is not part of it. Is this something that could be done? Is it planned? Is there another way to achieve this same effect?

Thanks in advance for any infos on that.

4
  • 1
    as of now, no it doesn't it's only a file storage service, like dropbox. Jun 13, 2011 at 2:05
  • Thanks. Then this question becomes a feature suggestion I guess ;-)
    – Jeremy
    Jun 13, 2011 at 14:51
  • 3
    Then suggest it the Canonical. Tell your suggestion here: brainstorm.ubuntu.com
    – Karolis
    Jun 13, 2011 at 17:05
  • Being able to use Ubuntu One's cloud file hosting service has been discontinued.
    – John Scott
    Jun 1, 2014 at 19:17

3 Answers 3

7

Ubuntu One does not currently support settings sync of arbitrary applications, although we're asked for it a lot. There are a couple of reasons for this. The major one is this: applications need to be written with settings sync in mind. If you take an arbitrary application, which stores its data in a configuration file, then that application is extremely unlikely to notice if Ubuntu One changes that configuration file while the application is running. Indeed, the app will almost certainly overwrite any Ubuntu One-made changes if you change the configuration of the app yourself.

A second issue is that applications do not distinguish between machine-specific settings and user-specific settings. If, for example, your app remembers the last files that it loaded, and you sync that list of recent files with Ubuntu One, what should other instances of that app (on other computers) do if those files are not present? If you save the app's window's position on your huge monitor, and then sync that setting to your netbook, how does the app cope with that? All of these things are certainly handleable within the app, but many apps don't actually realise that they may need to handle them.

The issue here is not that settings sync is in itself hard, but that applications are not really built with the idea that the settings file may contain "impossible to create", unlikely, or contradictory settings, and that the settings file may change at any time.

Some applications are set up to deal with this, and as part of the Ubuntu One application developer programme I'd be happy to talk to any application developer who would like their app to have syncable settings, to work out how best to do it for that app.

3
  • Thanks a lot Sil. I totally understand the issues you mentionned. However, I was having in mind a much more basic type of "sync": for example, the Ubuntu Software Center could have a "Previously installed" link, quite similar to the "Recommandations", that would simply display the apps I might want to re-install.
    – Jeremy
    Jun 14, 2011 at 0:15
  • In fact, the only apps I was hopping to be fully synced are the ones integrated into Ubuntu's top menu bar like Evolution, Empathy or Gwibber (because once configured they kind of become a part of the OS). A bonus could be to sync launcher shortcuts, language, keyboard and maybe screensaver or wallpaper settings... Just to quickly give this "I'm at home" feeling on a newly installed PC.
    – Jeremy
    Jun 14, 2011 at 0:44
  • Thanks again @sil ! (I forgot the mention in the first place).
    – Jeremy
    Jun 14, 2011 at 19:59
2

I have a similar problem I have a netbook that has all my current data & settings on it & I want my desktop software & files to be the same.

This is how I fixed my problem.

Let's call the computer with all the original data on it (in my case the netbook) the source & the computer that you want to get the data to the target.

Step 1). Make sure the source system is up to date

sudo aptitude update && sudo aptitude upgrade

Step 2). BACKUP the source user files. There are lots of different ways to do this. This is a good article on backing up. I also have a few articals on backing up in the IT section of my website www.marchiggins.com.

Personally, I choose rsync for this kind of task.

rsync -av /source_directory /target_directory

Depending on the destination you are going to backup your data to you need to run something like this on the source computer;

rsync -av /home/ /media/USB
rsync -av /usr/local /media/USB
cp /etc/apt/sources.list /media/USB

Technically in addition to the above you should also be getting your whole /etc directory & everything in /var (except /var/cache & /var/tmp) but I never bother. As you can see above I do make sure I get a copy of my /etc/apt/sources file.

Then we need to check what additional software is installed on the source computer. Again there are several ways you can do this but this is how I do it.

dpkg --get-selections > /media/USB/installed-software

Will create a file called installed-software that contains all the packages that you have installed.

Step 3). build the target computer & make sure it is the same OS version as the source computer. You can check your version number like this;

cat /etc/lsb-release

Step 4). Once the target has been built, you need to;

setup the users;

sudo adduser

copy the sources.list

sudo cp /media/USB /etc/apt/sources.list

& them make sure everything is up to date, just as we did in step 1)

sudo aptitude update && sudo aptitude upgrade

Step 6). Copy across all of your data, just as we did in step two except in reverse

sudo rsync -av /media/USB /home/
sudo rsync -av /media/USB /usr/local

Now you need to make sure the user ownership permissions on the home directories are set;

sudo chown -R username:username /home/pathtofolder

Step 7). Copy the installed-software file across to the Target computer & run the following to install all the software you had on the source machine to the target machine

sudo aptitude install dselect    
cp /media/USB/installed-software /
dpkg --set-selections < installed-software
sudo dselect

Select 3. [I]nstall Install & Upgrade Wanted Packages

At this point you should have two computers that are the same.

From here you can use unison to keep them in sync or rsync. My preference again is rysnc but many people I know use unison & swear by it.

1

All of these (personal) OS settings are stored in your home folder(~, or /home/username), most (if not all) of them in the form of hidden folders, folders that start with a period, like in ~/.config. You can see such folders if you open your home folder and hit CTRL+H or View > Show Hidden Files.

So if you add your home folder to the Ubuntu One sync, most of personal settings will be transfered to the new machine.

BUT... your installed apps will NOT transfer this way. And most of these settings will only be effective after you install the corresponding app. Also, for such a "hard" copy of settings and config files, its advisable to use exactly the same Ubuntu version in both computers, as well as install the same apps and versions.

That said, my recommended steps are:

  • Install in your desktop the same Ubuntu version thats in your netbook
  • Install in your desktop as many apps and packages as there are currently in your netbook, except those packages and apps that are only relevant in a netbook, like Powertop for example.
  • Power off your desktop
  • In your netbook, add your home folder to Ubuntu One
  • Turn on, login and sync your desktop. Settings will be copied
  • Reboot the desktop, so all setting changes will be effective

Please notice this is not a 100% fail proof procedure. Some settings will not work, while some may even let your desktop a little "weird", since some settings in a netbook simply dont apply in a desktop enviroment (battery management and screen size to name a few). So a few tweaks and re-tunning of settings will still be necessary. But its faster than doing from scratch.

Hope this helps!

4
  • Thanks, very informative answer! About your recommended steps: it's faster than doing from scratch but doesn't sound safe: I'm not sure my Ubuntu knowledge allows me to handle a "weird" desktop yet... But I'll definitely check the ~/.config folders to see if I'm confident moving some settings. Thanks again.
    – Jeremy
    Jun 13, 2011 at 14:52
  • @Jeremy: Thats a better approach. In my system (6 months old only), ~/.config is just 1 out of 65 other hidden folders in my home folder. Basically every app you install will create a hidden folder for its personal settings. You can try one by one, in a per-app basis, to find the ones that are better handled by syncing. And don't be afraid of a "weird" desktop: if one gives you trouble, you can always delete the ~/.folder to restore original settings for that particular app.
    – MestreLion
    Jun 13, 2011 at 18:56
  • @Jeremy: as a side comment, if you think a particular answer is good or very informative, upvote it (using the arrows). And The answer you consider the best approach (as the fantastic one @Sil did), mark it as Accepted Answer (checkmark below the arrows)
    – MestreLion
    Jun 13, 2011 at 19:11
  • Thanks again. My reputation wasn't high enough to upvote but now it is!
    – Jeremy
    Jun 13, 2011 at 22:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .