web-dev-qa-db-fra.com

yum install kernel-devel différent de ma version du noyau

J'essaie d'installer le lecteur VMWare dans Fedora 19. Je rencontre le problème que plusieurs utilisateurs ont rencontré lorsque le lecteur VMware ne trouve pas les en-têtes du noyau. J'ai installé le kernel-headers et kernel-devel packages via yum et le fichier qui apparaît dans /usr/src/kernels est:

3.12.8-200.fc19.x86_64

Cependant, quand je fais uname -r ma version du noyau Fedora est:

3.9.5-301.fc19.x86_64

qui est une version différente. Cela semble signifier que lorsque je pointe le lecteur VMware sur le chemin des noyaux, j'obtiens cette erreur:

C header files matching your running kernel were not found.  
Refer to your distribution's documentation for installation instructions.

Comment puis-je installer le noyau correct et où dois-je pointer VMware si ce n'est pas /usr/src/kernels/<my-kernel>?

32
Fantastic Mr Fox

Vous pouvez installer les fichiers d'en-tête de noyau corrects comme ceci:

$ Sudo yum install "kernel-devel-uname-r == $(uname -r)"

Exemple

Cette commande installera toujours la bonne version.

$ Sudo yum install "kernel-devel-uname-r == $(uname -r)"
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
No package kernel-devel-uname-r == 3.12.6-200.fc19.x86_64 available.
Error: Nothing to do

Ou vous pouvez les rechercher comme ceci:

$ yum search "kernel-headers-uname-r == $(uname -r)" --disableexcludes=all
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
Warning: No matches found for: kernel-headers-uname-r == 3.12.6-200.fc19.x86_64
No matches found

Cependant, j'ai également remarqué ce problème lorsque des versions spécifiques d'en-têtes ne sont pas présentes dans les référentiels. Vous devrez peut-être accéder à Koji pour trouver une version particulière d'une version.

Cette page comprend tous les actifs de cette version particulière du noyau.

34
slm

Synchronisation de la distribution

Votre problème pourrait être "synchronisation de distribution". L'exécution de cette commande a résolu mon problème.

yum distro-sync

Synchronise l'ensemble de packages installé avec les derniers packages disponibles, cela se fait soit par obsolescence, soit par mise à niveau ou déclassement selon le cas. ( http://man7.org/linux/man-pages/man8/yum.8.html )

8
redolent

Vous pouvez installer une version spécifique d'un package en spécifiant la version avec le nom du package avec yum. Par exemple, pour installer les fichiers de développement du noyau pour le noyau spécifique que vous exécutez, tapez

yum install kernel-devel-3.9.5-301.fc19

Vous pouvez exécuter une commande similaire pour obtenir le bon kernel-headers paquet.

5
drs

Cela m'arrive aussi parfois, d'installer VMBoxAdditions après une mise à jour du système.

Je dois supprimer kernel-devs:

yum remove kernel-devel

puis réinstallez-le:

yum install kernel-devel

Et alors comme par magie, cela fonctionne.

0
Andrea

Je rencontre la même chose après la mise à jour du noyau et la réponse de Jim m'a beaucoup aidé. Pour activer le repo [elrepo-kerne], allez dans /etc/yum.repos.d/elrepo.repo fichier et définir enabled=1 (plutôt que enabled=0) pour [elrepo-kernel], puis faites la mise à jour informée par la réponse de slm. Après cela, inversez le enabled=0, afin que le miam n'interagisse pas avec ce dépôt. Juste pour souligner, la commande yum repolist all vous montrera tous les repos activés et désactivés.

0
João Paulo

Au cas où cela aiderait ceux qui voient cela ...

J'ai eu un problème où il se plaignait

failed dependency not found: kernel-devel-uname-r

comme indiqué dans la question. Fonctionnement

rpm -q kernel-devel

l'a montré installé et --provides a montré les informations appropriées, mais akmodsbuild n'a toujours pas pu les trouver.

Solution:

rpm --rebuilddb

Après cela akmods correctement reconstruit tous les pilotes, nvidia, virtualbox, etc.

0
Dave French