yum installa kernel-devel diverso dalla mia versione del kernel


32

Sto tentando di installare il lettore VMWare in Fedora 19. Sto riscontrando il problema che hanno avuto più utenti in cui il lettore VMware non riesce a trovare le intestazioni del kernel. Ho installato i pacchetti kernel-headerse kernel-develtramite yume il file che appare /usr/src/kernelsè:

3.12.8-200.fc19.x86_64

Tuttavia, quando faccio la uname -rmia versione del kernel Fedora è:

3.9.5-301.fc19.x86_64

che è una versione diversa. Questo sembra significare che quando indico VMware Player sul percorso dei kernel ottengo questo errore:

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

Come posso installare il kernel corretto e dove dovrei puntare VMware in caso contrario /usr/src/kernels/<my-kernel>?


Solo curioso ... Perché non stai eseguendo l'ultimo kernel in Fedora 19?
rickhg12hs

Non per mia decisione. Ho installato dal webiste l'ultima build che ho potuto. C'è un modo per aggiornare il kernel?
Fantastico Sig. Fox,

La maggior parte mantiene aggiornati tutti i pacchetti utilizzando Gestione pacchetti o come esecuzione root yum updateda una riga di comando. Fatto di frequente e con una buona connessione a Internet, non ci vuole molto, ma hai un po 'di recupero da fare. Per utilizzare il nuovo kernel, è necessario riavviare al termine dell'aggiornamento.
rickhg12hs,

Risposte:


33

È possibile installare i file di intestazione del kernel corretti in questo modo:

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

Esempio

Questo comando installerà sempre la versione corretta.

$ 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

Oppure puoi cercarli in questo modo:

$ 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

Tuttavia, ho notato questo problema anche quando nei repository non sono presenti versioni specifiche delle intestazioni. Potrebbe essere necessario contattare Koji per trovare una versione particolare di una build.

Quella pagina include tutte le risorse per quella particolare versione del kernel.


2
Perché è meglio di yum install "kernel-devel-$(uname -r)"? Dal tuo esempio, non sembra nemmeno funzionare ...
Dr

1
@drs - Non funziona b / c non ci sono pkg corrispondenti che forniscono le intestazioni per la mia versione del kernel. L'uso di for -uname-r` è un modo più portatile di lavorare con pkg legati alla versione del kernel. È usato sulla maggior parte dei repository anche se guardi anche i loro esempi: rpmfusion.org/Howto/nVidia
slm

Questo è stato davvero utile. Pensavo di aver installato la versione corretta delle intestazioni del kernel, una piccola differenza nel nome, ma non era corretta e non riusciva a compilare. Il comando sopra mi ha aiutato a ottenere quello reale e mi ha dato una visione migliore nella ricerca di pacchetti. Grazie +1
fkl

C'è un modo in cui possiamo fare in modo che yum / dnf installi automaticamente anche nuove intestazioni del kernel ogni volta che aggiorna il kernel?
Shankar Narayanan,

2
@slm dove posso trovare tutte le informazioni / documentazione su questa sintassi: "kernel-devel-uname-r == $(uname -r)"?
Vadim Kotov,

8

Sincronizzazione della distribuzione

Il tuo problema potrebbe essere "sincronizzazione della distribuzione". L'esecuzione di questo comando ha risolto il mio problema.

yum distro-sync

Sincronizza il set di pacchetti installato con gli ultimi pacchetti disponibili, ciò viene fatto obsoleto, aggiornato o declassato secondo necessità. ( http://man7.org/linux/man-pages/man8/yum.8.html )


4

È possibile installare una versione specifica di un pacchetto specificando la versione insieme al nome del pacchetto con yum. Ad esempio, per installare i file di sviluppo del kernel per il kernel specifico in esecuzione, digitare

yum install kernel-devel-3.9.5-301.fc19

È possibile eseguire un comando simile per ottenere il kernel-headerspacchetto giusto .


0

Succede qualche volta anche a me, installando VMBoxAdditions dopo un aggiornamento del sistema.

Devo rimuovere kernel-devs:

yum remove kernel-devel

e quindi reinstallarlo:

yum install kernel-devel

E poi magicamente funziona.


0

Mi imbatto nella stessa cosa dopo l'aggiornamento del kernel e la risposta di Jim mi ha aiutato molto. Per abilitare il repository [elrepo-kerne] , andare su /etc/yum.repos.d/elrepo.repofile e impostare enabled=1(anziché enabled=0) per [elrepo-kernel] , quindi eseguire l'aggiornamento informato dalla risposta di slm. Successivamente, tornare a enabled=0, in modo che lo yum non interagisca con questo repository. Solo per sottolineare, il comando yum repolist allmostrerà tutti i repository abilitati e disabilitati.


-2

Dopo aver seguito i suggerimenti di tutti ho trovato una cosa che mi ha aiutato a risolvere questo problema. Ho dovuto abilitare il repository [elrepo-kernel]. Quindi sono stato in grado di installare le intestazioni e lo sviluppo del kernel corretti


Questa non è una risposta completa alla domanda. Dovresti migliorare la tua risposta con maggiori dettagli o aggiungerla come commento.
Fantastico Mr Fox il

@FantasticMrFox Questa è una risposta alla domanda, anche se una breve risposta senza spiegazioni sul perché questa procedura è necessaria e duplica ciò che altri hanno già detto.
Kusalananda
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.