Updated: December 23, 2009
This sounds like a very interesting notion. The popular saying goes, you should never reboot your Linux, unless you have to, which is usually only when a kernel update comes. But maybe not even then?
For home users, the necessary for not rebooting is not really dire. Apart from a 20-seconds nuisance, you are not missing much. But if you are running a mission-critical service like a Web server, a MySQL server or perhaps a firewall machine, then reboots are a pain which you want to avoid.
Luckily for you, there's Ksplice.
Ksplice is the tool that promises this functionality - seamless updates without reboots, allowing you to stay up to date and safe, without any downtime. It's a very aspiring, welcome project. Let's see what it can do.
Currently, Ksplice is available as a .deb package for Ubuntu only. If you run RedHat, SUSE or even Debian, you will have to contact the owners. From my brief experience with Ksplice, this does pose a problem. We will discuss this a little later.
You can download the .deb package and run the installer or manually add the Ksplice repository to your software sources. The manual installation means you can have updates for your software. The instructions for the manual installation are available on the official website.
If you're connected to the Internet using a proxy, you might have problems installing Ksplice. Ksplice uses the curl utility to connect to the servers and download the right packages; the thing is, curl disregards the system proxy settings and times out.
You can try solving the problem by setting the proxy environment variable in the current shell and invoking a package manager against the installer file. Gdebi yields the same results as the conventional installation method, but the traditional dpkg -i works well.
This is really troubling, considering that most serious business run some sort of proxy, meaning that Ksplice has not been designed with the right target audience in mind.
Configuring proxy after Ksplice is installed is quite simple. The main issue is during the installation. Being able to auto-magically use system settings would be nice.
Once you bridge the initial installations woes, Ksplice will start and show as an icon in the system area. You can invoke it any time you want, manually. It will search for updates and install them. While using Ksplice, you can switch to using Synaptic and the Update Manager any time you want. The two services coexist well together.
Once you have updates, the system icon will change:
And when you have updates ready:
Click Install all updates to proceed. The system will now update.
And that's it! You're now using Ksplice. No more reboots. There's also a command-line interface, which lets you script and schedule the tool usage.
The official website has lots of useful screenshots and a very decent FAQ, which you should definitely read to get even more information about what Ksplice it, how it works and how it may suit your business needs.
I've had two major problems with Ksplice: one was the installation issue, but that can be managed. The other is the fact the service is only available freely for Ubuntu, which constitutes for a minuscule percentage of infrastructure servers, compared to RH and SLES. You would expect test packages for these platforms to be readily available, as well, as most other major commercial products.
Other than that, Ksplice was robust and performed well.
Ksplice seems like a very interesting project. The prospect of reboot-less usage is most appealing, considering the complexity and the dire need for availability in some environments, where bringing systems down is simply impossible.
Of course, it all depends what your machines are doing. Your setup could be so delicate that you can't even afford one mistake with any one update, in which case even Ksplice would not be enough. But for the business that can permit their systems to be continuously updated, without the fear of broken functionality due to changes in system libraries between updates, Ksplice is a true blessing.