First of all, this is my experience on macbook pro. Let me begin by saying this is not recommended, my notes are practically non-existent (I’m just typing this from memory and the “history” command) and Oneiric Alpha three isn’t officially ready for production systems. That is to say, DO NOT TRY THIS AT HOME!
The other issue that you must be aware of is the ability to put your computer in a non-bootable state very easily. If you start this process, you must finish it. If you turn off your computer part way through or before all of the dependencies are configured, you may find yourself with an inoperable computer, or with some subsystems (such as networking) in a completely unusable state – forcing a complete reinstall.
Ok, those disclaimers out of the way, it IS possible to go directly from Maverick (Ubuntu 10.10) to Oneiric (Ubuntu 11.11), but I don’t recommend it. The process took hours (for me, 5 hours) of (learning how to) manually straighten out dependencies. It was absolutely not worth the pain. (It took approximately 500 install/remove/configure commands to straighten out, so consider yourself forewarned!)
To get it started, I brute forced the upgrade by opening my /etc/apt/sources.list file and doing a global search and replace, changing “maverick” to “oneiric”. At that point, you can issue the command:
sudo apt-get update; sudo apt-get dist-upgrade
That will get the upgrade started. If you’re ready for 5 hours of agony, press Y. Before your trial by fire can begin, you may have to wait about while the nearly 1.3Gb of updated packages download. It took about 2 hours for me.
At first, the process will look fine, installing packages quickly, with the update manager doing what it should. However, at some point, the whole upgrade crapped out on me with unresolvable dependencies. At this point, I used two tools:
sudo apt-get dist-upgrade
sudo dpkg --install [deb filename] sudo dpkg --remove [package name]
Between those two tools (and three commands), you can work through all but one of the broken package problems you’ll face. (I used synaptic to bypass that one, as mentioned below.)
Unfortunately, I don’t have any screen captures, but if you try, you’ll see a message that reads something like:
Package [name1] can't be installed, depends: [name2] (>version). [name2] not configured.
Each time, you’ll need to manually try to add package [name2] yourself. The trick is that all of these files are already downloaded, so you can add them relatively easily by moving into the directory in which apt downloaded them:
The (not so hard) challenge is to figure out the name of the .deb file you need to install – which is surprisingly easy. Once you’re in the apt archives directory, all of the packages will start with the name of the package as described by the error message above.
The bigger problem is that the dependency relations can be pretty deep. Sometimes trying to install one package will result in another message that it, in turn, depends on another package. One by one, you have to follow each lead to figure out what the right package is, and worse, the right order to install them in.
The bigger issue is that periodically, you will find that there is a set of dependencies that you just can’t resolve, in which case, you need to remove the blocking package from the system, install the new package, then re-install the new version of the one you’ve just un-installed. For instance, I found I had to remove the kubuntu-desktop package to get some of the kdebase packages to install. It’s not a big deal to do this (although you need to be aware you can accidentally remove a lot of important stuff if you aren’t careful), but you’ll need to be aware of what you remove so you can add it back if (and only if!) there is an updated package for it in the archives directory.
I also found, at one point, that there were packages I could not resolve (icedtea-6-jre-jamvm and openjdk-6-jre, if I remember right) and ended up turning to synaptic. There was a simple “resolve broken packages” command or some such. That was able to get around the set I couldn’t fix manually. I still have no idea how. However, when Synaptic works, it can finish an install for you – while it can’t/doesn’t fix everything, it can be an incredibly useful tool for navigating some complex dependency nightmares.
Periodically, you’ll also discover that you have a bunch of things that are installed, but not configured because their dependencies weren’t satisfied. You can either re-install them manually, or use the command:
sudo dpkg --configure -a
that will reconfigure any packages in that state.
Other notes – I had to remove xserver-xorg-video-all and xserver-xorg-video-nouveau to get X to work again, as well as blacklist the nouveau driver. You can see my post here, where I describe it in more detail. I also had to reinstall kubuntu-desktop at the end, as it was removed earlier.
Finally, I also found I needed to recompile my kernel modules (eg, for nvida-current)at some point when I did a further dist-upgrade. For those who are familiar with the process, I discovered this on a later reboot when x refused to restart and had to drop to the terminal to make that change.
To give the complete picture, even now, not everything is now working. Adjusting KDE plasma panels can cause significant instability in compiz (driving it up to 100% cpu), and I had to reset the compiz settings to default before compiz would stop becoming unstable. (I have a diff between the before and after settings, and nothing jumps out at me other than the active plugins and the s0_outputs resolution:
< s0_active_plugins = core;bailer;detection;composite;opengl;imgjpeg; debugspew;compiztoolbox;decor;vpswitch;mousepoll;resize; commands;imgpng;imgsvg;staticswitcher;move;dbus;resizeinfo; regex;text;wobbly;place;session;animation;kdecompat;fade; cube;rotate;expo;scale;scaleaddon; --- > s0_active_plugins = core;bailer;composite;opengl;debugspew;decor; cube;kdecompat;vpswitch;resize;imgpng;rotate;move;scale; snap;place;
< s0_outputs = 1680x1050+0+0; --- > s0_outputs = 640x480+0+0;
I can’t see that helping anyone, but perhaps one of the packages previously enabled was the cause of the instability.
Hopefully the above is useful to someone else, either by pointing you in the right directions if you follow my footsteps, OR, by keeping someone from following. Either one would be a good outcome!
Good luck, and happy migrating.