DRBD on Ubuntu Karmic
Ubuntu 9.10 (aka karmic koala) has a frustrating packaging bug. Even
though the stock server kernel includes the DRBD module, the
drbd8-utils
package
depends on
drbd8-source
.
drbd8-source uses DKMS to build the drbd module to match the installed
kernel/s. As I stated in the bug report
(lp:474660),
“really don’t like having
build-essential
installed on production net facing servers, and where possible any
productions servers”.
As side from personal opinion on whether the module should be bundled or
not, the fact is that is bundled and so there is no need for the
dependency on drbd8-source
. As a work around I have added a meta package
to provide drbd8-source
, so I don’t need to install build-essential and
build the module every time a new kernel is installed.
After a quick test it is working well. Here is the DEBIAN/control
file
I used to make it all happen.
Package: dhc-drbd8-source-hack
Version: 0.1
Section: meta
Priority: optional
Architecture: all
Provides: drbd8-source
Installed-Size:
Maintainer: Dave Hall <spamme@davehall.com.au>
Description: Package to hack around drbd8-source dependency for drbd8-utils
If you are unsure how to use the control file above, see my recent blog post on building meta packages for ubuntu and debian.
Setting up a private package repository is outside the scope of this post. If you want to set one up, I would recommend Sander Marechal’s slightly dated howto - Setting up and managing an APT repository with reprepro. With a few changes I found it worked well.
If you have your own repository running you can run
sudo apt-get install dhc-drbd8-source-hack drbd8-utils
, if you don’t
you can run the following commands
sudo dpkg -i /path/to/dhc-drbd8-source-hack*.deb && sudo apt-get install drbd8-utils
. Either way you should now have drbd8-utils
installed on ubuntu karmic
without having to install the redundant drbd8-source
package.
To take it a step further you could build a meta package to install both drbd8 packages and allow you to have a potentially smoother upgrade to lucid. The meta package would contain the following line
Depends: dhc-drbd8-source-hack drbd8-utils
This is similar to what I now have in my HA server meta package.