06 August, 2013

using software.opensuse.org

A Frequently-Asked-Question: should I grab packages from software.o.o and should I add the repositories offered by One Click Install? Read on for an explanation of what is going on with One-Click-Install and what is wise.
software.opensuse.org in action

What does it all mean?

A basic explanation of repositories, packages and software.openSUSE.org.

On Linux, Software usually comes from a central location: your distribution. Apple used this model for its appstore, so did Google with the playstore - they are the same thing, expect that there is a payment system included. Every piece of software comes in a package (.rpm on openSUSE, .apk on Android). Like with Android app stores, there are various locations where you can get 'additional software'. As we all know, Apple prefers to keep you in your golden cage, no additional legal application stores for you there.

Thanks to the unique Open Build Service, openSUSE has also been offering a central place to get additional software outside the distribution: software.opensuse.org. This web based application store allows you to search not only in the official, released openSUSE packages but also offers access to the numerous (200K+) packages on build.opensuse.org. These are build as part of the process of developing openSUSE (in the 'devel projects', often offering newer versions of official software) or by private users for their own purposes (in their 'home projects', offering newer versions, obscure packages or special builds).

OBS is not all about obscure or updated software: some software is build by software vendors or otherwise 'officially blessed'; other things are there because they are too big for openSUSE Factory (games for example) or require very frequent updates (some software development tools and libraries).

The web interface works with openSUSE's One Click Install, a tool which makes it easy to install packages while adding the originating devel- or home projects to your software sources ('repositories').
Software vendors integrate OBS for official packages
When your openSUSE checks for updates to your packages, it will not only look in the official openSUSE sources, but also go over these additional repositories added when you installed extra software, making sure you have the latest security, feature and stability updates.

Adding repositories or not?

So, should you use software.opensuse.org and should you add the repositories which One Click Install will offer you? Installing software from software.opensuse.org should be fine as long as you follow the rules below.
  • Add the repo. Yes, you should. Your package gets updated/fixed, giving you security and stability improvements and preventing future system updates from getting stuck on a single obsolete package.
  • Make sure you pick repos for your specific openSUSE version. Don't mix repo's of Factory with 12.2 and 12.3 or such...
  • Pick 'devel projects' over home repos, devel projects are maintained by a group of people and thus safer from a stability and security point of view. Home projects start with 'home:'.
  • When upgrading to a new openSUSE, make sure all repos are modified for the new version or remove those which are not available (yet). Use the Apper or YaST repository management tool for this.
  • Don't use zypper dup after adding repositories unless you keep a very close eye on what is changing repositories and know what it means. Zypper up should service you fine (tools like Apper and YaST are safe by default).
The biggest potential issue with additional repositories is that besides the package(s) you wanted, they might contain more. And a 'zypper dup', in which zypper will pick the newest updates no matter the repository they're from, can thus break things. That chance is relatively small with special-purpose software sources like the games repository. But in some home projects a wide variety of things is build. The Devel projects for KDE and GNOME are a interesting case: you can indeed grab ONE updated application from there, but usually, it is wise to make it an either/or deal: grab them all or none of them. You can grab them all by doing a 'zypper dup --from REPOSITORY' on the command line and the YaST UI similarly allows you to switch packages to a specific repository.
What and how to pick on software.o.o
In the image above, you see the choices presented after clicking 'show other versions' and then 'show unstable packages'. Unstable, here, refers of course to anything not available as official update. Here, the official update is as new as anything and unless you want a testing version (2.7.9XXX) you should stick with it. But IF there were other options, this are the options:
  • KDE:Distro:Factory - Factory is where we develop openSUSE. The packages are often available for older openSUSE releases, but be careful, Factory is usually not very stable!
  • KDE:Release:410 - the KDE team maintains repositories with KDE releases. You can pick one of these and be sure to have quite stable, yet up to date software.
  • KDE:Unstable:Playground - guess... No, it is not very stable, as a matter of fact, this is a checkout directly from the source repositories at KDE - no guarantees, applications might not even start up.
  • KDE:UpdatedApps - this is a repository with updated applications. It is by far the best, safest choice.
  • devel:ARM:AArch64:12.3 - this is where the openSUSE ARM team develops their software. Only interesting if you run ARM hardware!
  • home:XX - these are home projects from individual users. If they are your only choice you should proceed with caution. Note that SOME home projects have tens of thousands of users and are very reliable - it just isn't visible from software.o.o (something we should indeed fix, help is welcome).

Zypper power

In dealing with multiple repositories, there are a few more advanced things you can do to keep things from breaking.
  • locking - if a package tends to break often and you want to keep total control over what happens to it, you can lock it. Commandline: "zypper addlock PACKAGENAME"
  • repository priorities - you can set priorities on repositories. "zypper dup" will always prefer packages from the highest priority (lowest number). Commandline: "zypper mr -p PRIORITY REPOSITORY"
  • zypper help - learn more on any command from zypper by typing "zypper help COMMAND"

You can find more information, as well as some more tips, in this article on news.opensuse.org.