1

I would like to set up my own Ubuntu distribution such that it is always updated with the latest stable releases of every single package I have. By stable I mean packages that according to their developers are stable. For example, latest FileZilla available in Xenial is version 3.15 whereas stable for FileZilla developers is 3.20.

As in the above example, many packages available for Ubuntu point releases are not updated (which is understandable). Thus, standard repositories are not helpful for my problem. I wonder if there is a method to do this automatically. I'm thinking of a few options:

  • Add a list of external PPA with the latest packages. Would this work for all applications? Do all applications have their own stable-latest PPA?

  • Create my own PPA, to be automatically updated (possible?) with new releases. Apparently, you cannot create a PPA in launchpad with unmodified packages (like a database of other people's packages). So this is not possible?

  • Use Synaptic Package manager? These seems to be quite flexible, allowing for latest releases. But it might not have access to all packages.

  • Writing a script that detects when new stable releases are available, and that can download and install new releases. This could be based in information from Launchpad, extracting information using Scrapy? This seems to be the optimal option. It might require considerable time to code, but it could turn out to be a nice script that can be transformed later into an app.

Please advice.

  • 2
    not to sound ignorant, but I probably am, Isn't the delay for adding the release to the stable releases what helps determine that it is stable and therefore suited for the "stable" release? – Buck Aug 1 '16 at 8:29
  • Well, Ubuntu is a collection of many packages, maintained by several teams (several of them independent from Ubuntu), which are upgrading them at different paces. As such, there are always newer stable versions available form many packages, even many months before they are included in the latest point releases. – user308164 Aug 1 '16 at 8:32
  • 1
    Honestly, given your requirements, I would just go with Debian sid or Debian testing and then install any of the commonly used DEs in Ubuntu except Unity (because Unity doesn't really play well outside Ubuntu). – edwinksl Aug 1 '16 at 11:16
  • Yes, Debian seems to be more at the upfront of packages. But I have also read that it's more advanced that Ubuntu. I'm not sure I'm quite there yet. There should be a relatively simple way to achieve this in Ubuntu, without giving it up! – user308164 Aug 1 '16 at 11:53
  • 4
    There's a reason stable releases don't work this way; I think you're headed for trouble if you really try. I strongly recommend either learning how to upgrade just the few packages that you really need the latest version of or (as @edwinksl says) learning how to use Debian Sid or Arch. – chaskes Aug 4 '16 at 15:26
2
+50

There is a BIG problem with the word "stable".

What do you mean by "stable"?

  1. Stable from the point of view of the developers of that single package?
  2. Stable on Debian Stable? (Ubuntu is based on Unstable or Testing)
  3. Stable on Ubuntu?

If 1., then it might break your system. It is stable for the developers, but they might have not tested it on Ubuntu.
If 3., then it is already included in the updated version of Ubuntu that you are using.
If 2., it's probably already too old for you.

When you clarify to yourself what you mean by "stable", then go on.

I'll try to answer to your points.

  • Add a list of external PPA with the latest packages. Would this work for all applications? Do all applications have their own stable-latest PPA?

No, only a few developers have PPAs, and only a few developers actually provide .deb files for installations. For example, the latest stable kernels are released by the developers only in source form (here), then various teams test and compile them to suit their needs (Ubuntu, Debian, Linux Mint, Android, Chromium and Chrome OS, ...)

  • Create my own PPA, to be automatically updated (possible?) with new releases. Apparently, you cannot create a PPA in launchpad with unmodified packages (like a database of other people's packages). So this is not possible?

"automatically updated".
This is a huge amount of work. First, because you have to track all the possible source codes of all the single packages that have a License that allows you to do this. Then you have to upload the codes to Launchpad, then set up receipts for each and every of these source codes (and they will be different), and finally check for each and everyone of them if something goes wrong.

  • Use Synaptic Package manager? These seems to be quite flexible, allowing for latest releases. But it might not have access to all packages.

When you add a PPA, it does not matter which tool you use to install packages. apt, Synaptic, aptitude, it's just a matter of choice.

  • Writing a script that detects when new stable releases are available, and that can download and install new releases. This could be based in information from Launchpad, extracting information using Scrapy? This seems to be the optimal option. It might require considerable time to code, but it could turn out to be a nice script that can be transformed later into an app.

Here, I don't see a big difference to the second of your points.

I would suggest you to try some other distros that maybe are born to use the latest packages. For example Debian Sid, as already mentioned, or even Slackware.


FileZilla is a good example. There are no repository, so you have to come up with a script that goes to their website, checks in some way if the version installed on your system is older than the latest one that they provide, then downloads the file. Then you have to extract it. Now, since it is a precompiled binary, you will not need to compile it! So the script should just copy all the files in the right directories. In order then for this to be recognised by apt you have to create a fake dpkg entry, manually modifying the database to mimic the fact that this program was installed with a .deb file. Then you can pack everything in a .deb file yourself and put it into your own repository. And do this again for another package. And then the long part comes in: you have to check that the new version of FileZilla does not give any problem to other parts of Ubuntu.

  • Well, actually my question referred mainly to third-party apps, not core ubuntu applications. That is why a python-based solution using Scrappy seemed to me a possible solution. Sometimes I open apps from where I get a message saying "a new stable release is available". Yet, because they have not been updated in the repositories I use, I am looking for my own method, which will avoid me to manually install every app that gets an update. – user308164 Aug 8 '16 at 8:05
  • Still, you did not clarify what you mean by "stable". In particular, stable for whom? – dadexix86 Aug 8 '16 at 15:16
  • Sorry. Stable as in 1. For example, stable FileZilla in Xenial is 3.15 whereas stable for FileZilla developers is 3.20 (same as 16.10, which is termed as active development). I'm not interested in nightly builds or so. Just stable for those who make the packages. That is why I am thinking of a Scrappy method that goes into every developers' website and look for changes, and then install them. – user308164 Aug 8 '16 at 15:22
  • Good. FileZilla is a good example. There are no repository, so you have to come up with a script that goes to their website, checks in some way if the version installed on your system is older than the latest one that they provide, then downloads the file. Then you have to extract it. Now, since it is a precompiled binary, you will not need to compile it! So the script should just copy all the files in the right directories.[...] – dadexix86 Aug 8 '16 at 15:29
  • [...] In order then for this to be recognised by apt you have to create a fake dpkg entry, manually modifying the database to mimic the fact that this program was installed with a .deb file. Then you can pack everything in a .deb file yourself and put it into your own repository. And do this again for another package. And then the long part comes in: you have to check that the new version of FileZilla does not give any problem to other parts of Ubuntu. – dadexix86 Aug 8 '16 at 15:29
1

I think I can answer this question. There is a script already built in. Go to vi and type this:

/etc/update-manager/release-upgrades

/etc/update-manager/release-upgrades

You should see this screenshot:

Upgrade

Ok, now that you have done this scroll down to the # sign in front of "normal".

Now just type

 dw

Finally, to save your file press the Esc button on your keyboard. Now, type

:wq

You are set, I hope this helps.

  • 1
    Can you explain what this is doing? It is far from clear to me. – user308164 Aug 4 '16 at 14:47
  • The # sign makes it a comment. After you take it out it becomes executable. – BJsgoodlife Aug 4 '16 at 14:52
  • 1
    But this refers only to Ubuntu packages. What about other packages offered by third-parties, or without Canonical support? I am looking for an all-encompassing solution. – user308164 Aug 4 '16 at 15:14
  • OK I am sorry I could not help you. I will continue to look into it. – BJsgoodlife Aug 4 '16 at 16:06
1

One thing you might try is to go into System Settings > Software & Updates > Developer Options and check the Pre-released updates box.

If you really want bleeding edge package updates, consider Debian testing or unstable, or an Arch-based distro like Manjaro. Ubuntu's based on Debian, so most of your software would still work, and with Debian's rolling release branches you'd always be up to date.

  • 1
    Thanks, but this has the same problem than below. I have a collection of packages that is not part of Canonical repositories. As such, I need a solution that does not depend on standard repositories only. – user308164 Aug 7 '16 at 8:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy