2click Update v5.5: Going Lightning with Axel
I am pleased to announce that 2click Update version 5.5 of 5.X series is out. In this major release the entire structure of code has changed. The code is structured in a modular way so that every feature is just a module. Also a new feature is available that will automatically boost the downloading of upgrades in a way that traditional apt-get cannot. The new module is called Speed-apt.
Go grab the new version of 2clickUpdate 5.5 at the Download Page
Behind the scenes...
Not so long ago in WebUpd8 I came across with Axel, a simple piece of software that tries to accelerate HTTP/FTP downloading process by using multiple connections for one file. It can use multiple mirrors for a download. Axel has no dependencies and is lightweight, so it might be useful as a wget clone on byte-critical systems.
I told Andrew, the editor of WebUpd8, that I would integrate Axel in 2clickUpdate for faster downloading of packages. One of the main advantages of Open Source is that there is no need to reinvent the wheel. If a tool exists, use it or make it better. This is the way Science works, in contrast to Closed-Source software development.
Well, 2clickUpdate is a script so I had to find a simple way to implement Axel and more over future improvements and new features. I had to make the move to a "Modular Bash Scripting" (I am not aware if this is the right definition). Modular Script Writing is the notion that many scripts will use the same features/processes over and over again. Rather than copying the concept from one project to another, entire segments are duplicated. In 5.1 version of 2clickUpdate I made an announcement that the 5.X series until 6.0 will change, internally, so that the code will lead to a better expandable and maintainable software. Version 6.0 is not so far and 5.5 is a complete, working version with implemented Axel software.
Matt Parnell, has released a "replacement" of apt-get (upgrade, install, dist-upgrade) by combining it with axel in a bash script. With some modifications I was able to create a module that will load when you use 2clickUpdate and accelerate the downloading of package upgrades by using multiple connections. This move, lead me to "extract" all internal procedures to modules. The following image represents the new structure of 2clickUpdate:
I hope that this new approach will eventually lead to a better 2clickupdate and future improvements and new features will be implemented faster, better and in an easier way.