Monday, July 24, 2017

package management - Keep Ubuntu at the frontier with the latest stable releases


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.



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.


No comments:

Post a Comment

11.10 - Can't boot from USB after installing Ubuntu

I bought a Samsung series 5 notebook and a very strange thing happened: I installed Ubuntu 11.10 from a usb pen drive but when I restarted (...