Giter Site home page Giter Site logo

Comments (2)

e-kov avatar e-kov commented on September 17, 2024

This issue is reproducible on CentOS 6, 7, 8, Fedora 31 and, probably other rpm-based systems.
As example, on CentOS 6.10:

  Installing : dkms-assurio-snap-0.10.13-1.el6.noarch
Loading new assurio-snap-0.10.13 DKMS files...
Building for 2.6.32-754.3.5.el6.x86_64
Module build for kernel 2.6.32-754.3.5.el6.x86_64 was skipped since the
kernel headers for this kernel does not seem to be installed.

Full installation log is attached. CentOS6.log
DKMS checks a dir /lib/modules/2.6.32-754.3.5.el6.x86_64/build which is a symlink to the ../../../usr/src/kernels/2.6.32-754.3.5.el6.x86_64 to find kernel headers there. The target dir doesn't exist. That's why it shows a message about missing kernel headers. But the message isn't quite accurate. /usr/src/[kernel-name] is provided by the kernel-devel package. And DKMS has dependency on [it] (https://github.com/dell/dkms/blob/v2.8.1/dkms.spec#L19). But this dependency installs kernel-debug-devel instead. There are few bugs about that:

  • Bug 1228897 - dnf installs the wrong kernel variant subpackages
Steps to Reproduce:
1. Set up a Fedora system without kernel-devel installed already running on a non-debug kernel
2. Install dkms through dnf (or yum on Fedora 21)

Actual results:
kernel-debug-devel is pulled in as a dependency and installed

Expected results:
kernel-devel should be installed as a dependency on a system that's not running a debug kernel

Solution
We need have to add a dependency to the kernel-devel package, somehow to have exactly it installed, not the kernel-debug-devel. Also we can't add dependency on the kernel-devel-uname-r to preserve ability of the package installation on the chroot env or in a docker container without necessity to build the kernel module during the installation for the current running kernel. In these cases, mostly, user will go to build the kernel module for the offline kernel. And it's possible to do with dkms.
This solution will resolve the issue just partially for the case, when a system running under most recent kernel.

from elastio-snap.

e-kov avatar e-kov commented on September 17, 2024

Tested an idea to add weak dependency

Recommends: kernel-devel-uname-r

to preserve possibility of the installation on the chroot/docker environment and at the same time resolve this issue for cases when current running kernel is not most recent. But, unfortunately, kernel-devel-uname-r installs kernel-debug-devel or kernel-devel of the most recent version still.
And, unfortunately, rpm doesn't support a statement like:
Recommends: kernel-devel-$(uname -r)
or
Recommends: kernel-devel-uname-r == $(uname -r)
as analog of yum install "kernel-devel-uname-r == $(uname -r)".
So in theory this idea is good, but not applicable in practice.

from elastio-snap.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.