-1

currently I'm thinking about switching completly to a Linux Distribution. I actually like Ubuntu alot, but I have some concerns about outdated (user) applications.

It's recommended to use the official repositories to install any kind of software (I'm aware, that there are other possibilities like ppas etc.). As far as I know, applications which are in this repository aren't updated for a specific Ubuntu version (e.g. App A Ver 1.6 is available in Ubuntu 12.10, devs create version 1.7 (no securityfixes, just a functional update) and it wouldn't be available in the official repository til Ubuntu 13.04). There are some exceptions like Firefox, but for the majority of the apps, there are no (functional) updates within 1 Ubuntu iteration. I'm also aware, that there are distributions which follow a rolling release model. There you get updates very soon after they are released. The downside there is the stability. It's possible, that you break your system with an update.

I just wanted to ask, what leads to this situation on the technical side. In my understandig it should be possible to update every kind of user application (Chromium, Gimp, ... - everything which is not part of the operating system itself), without breaking any essential system functionality (Like it's the case in Windows/Mac OS X, it's very unlikly to break your system with an update to some user applications).

Is it because backward compatibilty issues with some libraries?

So e.g. App X requires a function from Lib A (Ver 1.0). App Y requires another function from Lib A (Ver 1.1). The devs of Lib A decided to drop the specific function, which is needed in App X in version 1.1. If a user installs App Y, which requires Lib A in version 1.1, Lib A will be updated from 1.0 to 1.1. In this case you would break the functionality for App X.

  • Is this an situation which could occure?
  • How's the update mechanism for libraries in Linux? Would an update overwrite the previous version of a library?
  • Do systemcritical parts use libraries which are used in user applications too? (So if a library is updated in terms of a user application update, could it break system functionality?)

If the situation has nothing to do with libraries, could you explain which possible problems lead to this situation?

Thank you!

2 Answers2

1

There are several reasons that Ubuntu does not update packages every time an update is available upstream. Some of these are given below.

  • Stability: Many users want to be sure that their system will just work and every time you update software there is a risk that something will break. Some users are prepared to accept this risk for the latest features while others such as my self rely on my computers for business so would be very up set if the computer stopped working because of a bug introduced with some new feature that I don't particularly want to use anyway.

    To deal with this Ubuntu has two types of release standard releases and Long Term Stable (LTS) those of us who insist on Stability over features only use the LTS releases and only upgrade to the next LTS release several months after it has been released in order to be sure that if it has any problems it has been tested by enough people that the problems will have been found and fixed. LTS releases also tend to be less radical than non LTS releases in that the differences between the next LTS release and the previous LTS release will be small: New ideas are tested on standard releases.

    For those that are less concerned with stability there are the normal releases. Which may have more problems initially but contain more up to date features. If you want to be even more up to date you can install software from repositories other than the official ones or install code from source but this adds some risk.

  • Release Dates: The recent release of Raring Ringtail got people excited and as you can see from this thread on Ubuntu Forums people were waiting to download it as soon as it was released. This kind of event gets people excited and helps to promote Linux in general and Ubuntu in particular. If software was updated on a regular basis there would be little to choose between the latest release and a fully up to date older release. The marketing opportunity would be lost.

  • Libraries and Support: When a particular package is updated to provide some new features it is possible that it may rely on some feature in an updated library. This requires the library to be updated. However, there may be dozens or even hundreds of packages that use this library and they will all need to work with the new version of the library. Each will need to be tested to make sure it works and not only that they will have to be tested in all supported releases. Ubuntu relies on the community for much of this but there is a limit to how many of us have the time and technical ability to review all the changes in all the supported releases.

For these reasons we concentrate on security patches and bug fixes in the existing versions and add new features in the development release.

Warren Hill
  • 22,112
  • 28
  • 68
  • 88
  • Thanks for this informations. I found another question with some additions to your explanations. I thought it should be in the responsibility of the 3rd party app developers to maintain their apps - which can actually be the case if you use ppas from devs you trust. So basicly the apps in the official repository are under responsibility of Ubuntu. They need to ensure stability, so it's just not possible to keep all apps up-to-date in the official repos. –  May 16 '13 at 23:02
0

In addition to the other answer which is good:

It is generally frowned upon to do static builds or use non-release versions of libraries.

Direct rebuttal to the Windows comparison is how a user might have 3 or 4 different versions of msvcrt. It's just not visible to the user.

You could make a similar argument against some applications on OSX (where a static build or bundling libraries could have taken place).

How many applications and devices on other platforms have shipped with not just old, but truly ancient versions of libpng for example?

RobotHumans
  • 29,530
  • Thanks for this addition. Just for my understanding: In Linux based systems you have one global place, where libraries are stored, which are used by all kind of applications? So it wouldn't be possible to have different versions of the same library (like your msvcrt example on win)?. –  May 16 '13 at 21:07
  • It would, but only with LD_PRELOAD, linker search path manipulation, or static linking. It would be way more trouble than it was worth. – RobotHumans May 16 '13 at 21:23
  • Thanks for this information. I checked out a few sources to this, and I see the benefits of going this way than rather the way libraries are handled in Windows. –  May 16 '13 at 22:57