Cross-grading my laptop

Matts on 2002-04-04T10:13:34

I've been itching to try KDE3 on my laptop, but upgrading to the new KDE3 RPMS (I run RH 7.2) was proving very difficult indeed. So I took a kind of radical approach...

I first downloaded and installed apt, from Conectiva - they basically ported apt to work with RPMs.

Then I set my source.lst file to point to Conectiva's snapshot directories (kind of like a moving beta).

Then I said:

apt-get update
apt-get dist-upgrade
This got me some of the way, but a lot of modules failed to update (causing the whole thing to fail) due to dependencies. I removed quite a few things, then force-installed a few things, and kept trying, and eventually it all went in.

Then I removed KDE2:
rpm -e `rpm -qa | egrep ^kde`
(and also had to remove 3 modules that the above missed, that depended on KDE)

Then I installed KDE3:
apt-get install task-kde
And now I have a wonderful new working Conectiva Linux box, running KDE3.

Now a LOT of this failed along the way, and so I'm glossing over the details - remember that Red Hat and Conectiva have some very different config files, so I had to fix quite a few things, reconfigure X, and all sorts of funny bits and pieces. But yeah, now I'm running kernel 2.4.18 on my laptop with KDE3...

Now KDE3 is nice. Really nice. In fact it's absolutely gorgeous. Kmail now does IMAP just right (check mail in *all* folders for example), Kate makes for a really sweet editor, konqueror has seen some nice improvements, and generally I'm very happy with it. I think it's even a tiny wee bit faster, though I won't stake my life on it ;-)

Anyway, it was kinda fun seeing how I could cross-upgrade a machine to a completely different OS. I wouldn't say it went smoothly, but it was smoother than I honestly expected it to be. I am a happy bunny.


Hmm..

Odud on 2002-04-04T13:53:12

I'm currently trying to do (kind of) the reverse. Move from KDE2 to Gnome 1.4. Originally my laptop was a SuSE installation and they seem to rely on KDE in a big way. Having got Gnome up and running it seems almost impossible to remove KDE completely as lots of things have dependencies. Perhaps the answer is to do it manually rather than via YaST2...

Re:Hmm..

Matts on 2002-04-04T14:37:45

Why remove it? Is it for lack of space?

Anyway, getting gnome is generally quite easy:
lynx -source http://go-gnome.com/ | /bin/sh
Removing KDE wasn't too hard for me. SuSE uses RPMs so why don't you try the method I used?

Upgrading Linux

ziggy on 2002-04-04T13:59:55

Ya know, that's exactly why I don't like Linux. Try and install anything and the whole system feels like it's strung together like christmas tree lights. Cross-grading like this always makes it worse. :-)

Guess I'm just a BSD kinda guy at heart. Glad to hear that KDE3 is working out so well. It's high up on my list of things to install when it comes time to refresh my desktop at home. :-)

Re:Upgrading Linux

Matts on 2002-04-04T14:50:22

<rant>
Well people see stories like mine and think "Eek, what a nightmare - that would be so much easier in BSD", but that's complete and utter crap.

Had I waited for KDE3 to appear in RH 7.2's updates tree, or even waited for RH 7.3, I could upgrade trivially using up2date, and there would be no "dependency hell". None. I could have even done the upgrade directly using apt-get, once I'd installed apt. Exactly like BSD people talk about how they can do the same using ports.

Now if you decided to cross-upgrade OpenBSD to FreeBSD - would it be a simple matter of setting the right lines in some config files and force-installing a few apps? I don't think so (I'm sure I could be wrong - I haven't used BSD). You would have to re-install. I could have done the same, but wanted to see if it could be done this way.

RPM prevents you from doing the stupid things like I tried to do. And thank god for that. In all normal circumstances people should wait for their vendor to provide the software, and then it's just a simple matter of "apt-get install <program>".

Sorry, but the BSD eliteness sometimes gets on my nerves. It may have a more sensible directory layout, but if I want to try out new software and play with the latest toys on a non-proprietary OS, Linux is far ahead of BSD.
</rant>

Re:Upgrading Linux

ziggy on 2002-04-04T15:15:52

Now if you decided to cross-upgrade OpenBSD to FreeBSD - would it be a simple matter of setting the right lines in some config files and force-installing a few apps?
I don't think it matters. I can't imagine a situation where someone wants to convert a *BSD installation to another *BSD installation on a live system without reinstalling.
Sorry, but the BSD eliteness sometimes gets on my nerves. It may have a more sensible directory layout, but if I want to try out new software and play with the latest toys on a non-proprietary OS, Linux is far ahead of BSD.
Fair enough. I didn't feel like I was exuding BSD eliteness above; sorry if it came across that way.

It's not that I utterly despise Linux or want to make everyone a BSD convert. I like having choices and support as much as the next developer, and the ability to cross-upgrade is a good thing. It just sounds ugly -- and that's nothing more than a statement of personal preference, not a suggestion to avoid this behavior.

Again, enjoy KDE3. Glad there was an upgrade path available that didn't require excessive amounts of pain.

Re:Upgrading Linux

Matts on 2002-04-04T15:32:18

Fair enough. I didn't feel like I was exuding BSD eliteness above; sorry if it came across that way.

Not you really - I just see a lot of it in general. The problems with linux that BSD users tend to cite are often long-solved (as in "yes, they existed - yes, we fixed them" (with the "we" being not me there ;-)). Apart from SysV init. That will always be my very own personal hell. But what can you do ;-)

Re:Upgrading Linux

ct on 2002-04-04T16:01:20

Now if you decided to cross-upgrade OpenBSD to FreeBSD....

Apples and Oranges. (Open|Free|Net)BSD all share a common heritage, but you can't consider them to be similar to different Linux distributions.

The BSD's are distinct operating systems. Different libc's radically different kernel structures, etc.

Think of it this way. Sybase and MSSQL have the same ancestors. They use roughly the same protocol for communication in TDS, just as OpenBSD can run FreeBSD binaries. But despite similarities and common ancestry, any hope of turning one into the other by a simple package replacement is folly.

Now, as to whether upgrading BSD would have been easier? You'd have done less busy work, less typing, less hand configuration. Though, since you'd probably end up compiling everything, it may have taken just as long on your laptop.

You'd have gone to /usr/ports, done a cvs update, just in case, and done a make package inside the appropriate kde ports directories.

Ports and update by cvs is what finally sold me on OpenBSD. I have a Redhat 7.1 box still in production that I never upgraded because it's remote. Upgrading a machine you can't touch isn't a whole lot of fun when it comes to redhat. I usually upgrade redhat by scrubbing and installing clean.

On OpenBSD, upgrading is a gradual process. cvs update your /usr/src, recompile. OpenBSD 2.9 becomes 3.0. In june my 3.0 will become 3.1. and every time there's a patch or update in between versions, a cvs update takes care of that.

In essence, it just plain works, you never have any odd packaged dependency problems, and you don't have to scrub and reinstall, ever, even if you can't physically touch the machine.

Re:Upgrading Linux

Matts on 2002-04-04T16:20:13

Sorry, but this is the same on Red Hat now that we have apt (and probably works with up2date too, but I haven't tried it).

If you want to upgrade RH 7.1 to 7.2, first install apt (you can find the RH version via google). Then:

Simply edit /etc/apt/sources.lst and comment out the RH 7.1 lines and uncomment the 7.2 lines (yes this is slightly less automatic than updating CVS, but likely a lot quicker). Then type "apt-get dist-upgrade". You're now running Red Hat 7.2.

And yes, it does "just plain work", as long as you're not futzing with changing distributions like I was.

Re:Upgrading Linux

ziggy on 2002-04-04T16:28:42

You'd have gone to /usr/ports, done a cvs update, just in case, and done a make package inside the appropriate kde ports directories.

Ports and update by cvs is what finally sold me on OpenBSD.

In the spirit of fairness, Ports are great, but they have fundementally broken bits lurking inside.

Ports started out as a weekend hack Jordan Hubbard was able to throw together. It's proven to be an effective way to getting software onto a system, but the dependency checks aren't quite right, and deinstalling software isn't as easy as it could be.

That the ports system could be munged to work on all four major variants of BSD is a testament to the portability of the concept (and the skilled makefile hackery by Jordan and many others). That ports could be extended simply to produce packages is pretty cool too.

But even with an up-to-date ports tree, you may find that the current version of KDE needs a specific version of X to get installed (even if it's a minor upgrade or a packaging bugfix that you don't want to install). The net result is that dependencies are hard-coded to the current state of the ports tree, and the entire system errs on the side of installing too much to make sure you get a a working configuration (at the expense of breaking existing software through upgrades that aren't quite compatible with your current system).

Jordan has talked about this on the Darwin list, and has come up with some requirements for a next-generation ports system. (Sorry, no URL offhand).

Re:Upgrading Linux

ct on 2002-04-04T21:33:36

In the spirit of fairness, I have to admit that I don't use BSD on the desktop. Ports, for me, have been helpful for things not in default OpenBSD, such as ncftp, wget, links, and the like.

I'm a recent linux refugee. I've converted almost all my servers to OpenBSD or FreeBSD, but there's still Redhat 7.2 staring at me out from my laptop screen. I've been tempted to wipe and do (Free|Open)BSD on my laptop (A Thinkpad 600), except, because most things are ports, and are compiled, I'm too impatient to wait for all of KDE and XFree(if necessary) to load. As for Ports:TNG, the Gentoo linux crew have a linux dist based around a BSD style /usr/src and /usr/ports called Portage. It uses XML config files per "port" to specify dependencies in the way you'd expect.

Re:Upgrading Linux

Dom2 on 2002-04-08T14:52:40

If you're upgradnig ports, at all, ever, then run, don't walk to /usr/ports/sysutils/portupgrade and make install.

It's the easiest way to manage ports in FreeBSD, even though it's written in lots of ugly ruby.

Michael Lucas wrote a very good article about it recently on onlamp

Re:Upgrading Linux

ask on 2002-04-08T09:19:41

After about 3 years as a BSD guy I am switching back to Linux. At least in FreeBSD the dependancies goes totally @#$%@$# as soon as you try to upgrade complex packages (like gnome).

They do for me anyway.

A standard Linux installation (SuSE and RedHat are the ones I have used lately) is really really smooth and well configured to do work right from the install.

FreeBSD is nice for servers; not for "workstations".