Please note that although the trunk version of anything can lead to more features, the chances that the program won’t even start because of bugs are also increased. Running trunk takes some risks, but some people would still like to do it anyway on non-production machines.
About KDE Trunk
It’s fine if people want to run the trunk version of certain programs, but who would want to run the trunk version of KDE? Although technically it poses even more risks, running the trunk version of KDE provides the latest and greatest code for features and performance. Some people just happen to want to run the absolute latest stuff. As for myself, I am currently interested in running KDE Trunk because the current version (which will later become KDE 4.7) can finally sync to all the Google calendars that I have via CalDAV.
Setting Up Repositories
Normally to run KDE Trunk, you’d have to pull the latest code from their servers and compile it yourself. Not only is it hard, but it is very time consuming, and more than likely there will already be newer code before you even finish compiling. openSUSE makes this a lot easier by offering a repository that updates every week with the latest code from KDE Trunk. You can then install these packages like any other.
To add the repository, you’ll need to open up YaST as if you’re installing a program, then go up to the menu Configuration, and choose Repositories. After the repositories load, you’ll need to click on Add, then choose HTTP, and then enter the URL for “Core packages” listed here for your system. Then just add it, and let YaST update the repositories.
If it asks, go ahead and import the GPG key for the repository. Repeat this process for “Released applications” and “Extra“. If you really desire, you can also add “Unstable:Playground“; though I wouldn’t recommend it, as I didn’t add it myself.
Disable Vendor Stickiness
If you check for updates now, nothing will happen. Why? openSUSE implements a feature called “Vendor Stickiness”. Basically, this means that after a package is installed, the system will only check for updates in the same repository that it was installed from. Even if a different repository has the same package in a newer version, YaST won’t accept that as a viable update. This feature is simply meant to keep the system stable.
I learned, however, that there are two ways you can update. First, you can still keep vendor stickiness on and run zypper dup –from <repoName> –from <repoName2> to update the system using the two repositories we added (don’t forget to actually replace <repoName> and <repoName2> with the actual names), or you can go ahead and just disable vendor stickiness. Be warned though that it’s not recommended to disable it.
But since what we’re technically doing is making it unstable, we can if we want. In order to do that, use your favorite graphical or terminal text editor to edit the file /etc/zypp/zypp.conf. In there, you need to set solver.allowVendorChange from false to true. Save the file, and open up YaST again to check for updates. You should now have a lot more KDE updates to install.
Words Of Wisdom
One last thing you need to be careful about. It is possible that some packages that you will update don’t have perfect dependencies. Many of the conflicts occur because the packages request specific versions of a package, even though you’re updating the package to a newer version than what is requested. Since it is very rare that a newer package will have lost some functionality that another package needs from it, I’d recommend telling YaST to ignore the conflicts and install all packages anyways. The problem came up for me once, and I had no problems after I did that. Any minor problems I did have after the update came from the instability of KDE Trunk.
openSUSE is a great distro with a stable working environment. However, the ability to install bleeding edge packages is also worth a lot to many people, and KDE Trunk definitely satisfies. No matter what the reason, it is a great choice to have for installation.
Do you run openSUSE? Do you think KDE Trunk may benefit you? Why or why not? Let us know in the comments!