A DKMS problem I had with lingering old versions
I use the DKMS-based approach for my ZFS on Linux install, fundamentally because using DKMS makes
upgrading kernels painless and convenient. It's worked well for a
long time, but recently some DKMS commands, particularly '
status', started erroring out with the odd message:
Error! Could not locate dkms.conf file. File: does not exist.
Since everything seemed to still work I shrugged my shoulders and
basically ignored it. I don't know DKMS myself; as far as I've been
concerned, it's just as much magic as, oh,
(which, if you're not familiar with it, is what Fedora runs to set
up new kernels). I did a little bit of Internet searching for the
error message but turned up nothing that seemed particularly relevant.
Then today I updated to a new Fedora kernel, got this message, and
in an excess of caution decided to make sure that I actually had
the ZoL binary modules built and installed for the new kernel.
Well, guess what? I didn't. Nor could I force them to be built for
the new kernel; things like '
dkms install ...' kept failing with
this error message or things like it.
(I felt very happy about checking before I rebooted the system into the new kernel and had it come up without my ZFS pools.)
I will cut to the chase. ZFS on Linux recently released version 0.6.4, when I had previously been running development versions that still called themselves 0.6.3 for DKMS purposes. When I upgraded to 0.6.4, something in the whole process left behind some 0.6.3 directory hierarchies in a DKMS area, specifically /var/lib/dkms/spl/0.6.3 and /var/lib/dkms/zfs/0.6.3. Removing these lingering directory trees made DKMS happy with life and allowed me to eventually build and install the 0.6.4 SPL and ZFS modules for the new kernel.
(The dkms.conf file(s) that DKMS was looking for are normally found in /usr/src/<pkg>-<ver>. My theory is that the lingering directories in /var/lib/dkms were fooling DKMS into thinking that spl and zfs 0.6.3 were installed, and then it couldn't find their dkms.conf files under /usr/src and errored out.)
I have no idea if this is a general DKMS issue, something that I
only ran into because of various somewhat eccentric things I wound
up doing on my machine, or some DKMS related thing that the ZoL
packages are doing slightly wrong (which has happened before). At
least I've solved it now and '
dkms status' is now happy with life.
(I can't say I've deeply increased my DKMS knowledge in the process. DKMS badly needs a 'so you're a sysadmin and something has gone wrong with a DKMS-based package, here's what you do next' document. Also, this is obviously either a bad or a buggy error message.)