yum instaluje kernel-devel inny niż moja wersja jądra


32

Próbuję zainstalować odtwarzacz VMWare w Fedorze 19. Mam problem, który miał wielu użytkowników, ponieważ odtwarzacz VMware nie mógł znaleźć nagłówków jądra. Zainstalowałem pakiety kernel-headersi kernel-develpoprzez, yuma plik, który się pojawi /usr/src/kernelsto:

3.12.8-200.fc19.x86_64

Jednak kiedy robię, uname -rmoja wersja jądra Fedory to:

3.9.5-301.fc19.x86_64

która jest inną wersją. Wydaje się to oznaczać, że gdy wskazuję odtwarzacz VMware na ścieżkę jądra, pojawia się ten błąd:

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

Jak mogę zainstalować poprawne jądro i gdzie mam wskazać VMware, jeśli nie /usr/src/kernels/<my-kernel>?


Ciekawe ... Dlaczego nie używasz najnowszego jądra w Fedorze 19?
— rickhg12hs

Nie na podstawie mojej własnej decyzji. Zainstalowałem z witryny najnowszą wersję, jaką mogłem. Czy istnieje sposób na aktualizację jądra?
— Fantastyczny Pan Lis

Większość utrzymuje wszystkie pakiety na bieżąco za pomocą Menedżera pakietów lub jako root wykonujący yum updatez wiersza poleceń. Zrobione często, a przy przyzwoitym połączeniu internetowym nie trwa to długo, ale masz trochę do nadrobienia. Aby użyć nowego jądra, musisz zrestartować komputer po zakończeniu aktualizacji.
— rickhg12hs

Odpowiedzi:


33

Możesz zainstalować prawidłowe pliki nagłówków jądra, takie jak:

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

Przykład

To polecenie zawsze zainstaluje odpowiednią wersję.

$ 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

Możesz też wyszukać je w ten sposób:

$ 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

Jednak zauważyłem również ten problem, gdy określone wersje nagłówków nie są obecne w repozytoriach. Być może będziesz musiał sięgnąć do Koji, aby znaleźć konkretną wersję kompilacji.

Ta strona zawiera wszystkie zasoby dla tej konkretnej wersji jądra.


2
Dlaczego to jest lepsze niż yum install "kernel-devel-$(uname -r)"? Z Twojego przykład, to nawet nie wydają się pracować ...
— DRS

1
@drs - To nie działa b / c, nie ma żadnych pasujących pkgs, które zapewniają nagłówki dla mojej wersji jądra. Użycie opcji -uname-r` jest bardziej przenośnym sposobem wykonywania pracy w / pkgs, które są powiązane z wersją jądra. Jest używany w większości repozytoriów, jeśli spojrzysz na ich przykłady: rpmfusion.org/Howto/nVidia
— slm

To było bardzo pomocne. Myślałem, że zainstalowałem poprawną wersję nagłówków jądra, bardzo niewielka różnica w nazwie, ale nie była poprawna i nie udało się jej zbudować. Powyższe polecenie pomogło mi uzyskać właściwy, a także dać lepszy wgląd w wyszukiwanie pakietów. Dziękuję +1
— fkl

Czy istnieje sposób na to, aby yum / dnf automatycznie instalował także nowe nagłówki jądra, ilekroć aktualizuje jądro?
— Shankar Narayanan

2
@slm gdzie mogę znaleźć żadnych informacji / dokumentacji dotyczącej tej składni: "kernel-devel-uname-r == $(uname -r)"?
— Vadim Kotov

8

Synchronizacja dystrybucji

Twoim problemem może być „synchronizacja dystrybucji”. Uruchomienie tego polecenia rozwiązało mój problem.

yum distro-sync

Synchronizuje zainstalowany zestaw pakietów z najnowszymi dostępnymi pakietami. Odbywa się to, odpowiednio, odpowiednio usuwając, aktualizując lub obniżając wersję. ( http://man7.org/linux/man-pages/man8/yum.8.html )


4

Możesz zainstalować określoną wersję pakietu, podając wersję wraz z nazwą pakietu za pomocą yum. Na przykład, aby zainstalować pliki programistyczne jądra dla konkretnego uruchomionego jądra, wpisz

yum install kernel-devel-3.9.5-301.fc19

Możesz wykonać podobne polecenie, aby uzyskać odpowiedni kernel-headerspakiet.


0

Zdarza mi się to także czasami, gdy instaluję VMBoxAdditions po aktualizacji systemu.

Muszę usunąć kernel-devs:

yum remove kernel-devel

a następnie zainstaluj ponownie:

yum install kernel-devel

A potem magicznie działa.


0

To samo spotkałem po aktualizacji jądra i odpowiedź Jima bardzo pomogła. Aby włączyć repozytorium [elrepo-kerne] , przejdź do /etc/yum.repos.d/elrepo.repopliku i ustaw enabled=1(zamiast enabled=0) dla [elrepo-kernel] , a następnie wykonaj aktualizację zgodnie z odpowiedzią SLM . Następnie odwróć do enabled=0, aby mniam nie wchodził w interakcje z tym repozytorium. Dla przypomnienia, polecenie yum repolist allpokaże wszystkie włączone i wyłączone repozytorium.


-2

Po zapoznaniu się z sugestiami każdego z nas znalazłem jedną rzecz, która pomogła mi to naprawić. Musiałem włączyć repozytorium [elrepo-kernel]. Potem mogłem zainstalować poprawne nagłówki i jądro


To nie jest pełna odpowiedź na pytanie. Powinieneś albo poprawić swoją odpowiedź o więcej szczegółów, albo dodać to jako komentarz.
— Fantastyczny Pan Fox,

@FantasticMrFox To jest odpowiedź na pytanie, choć krótka odpowiedź bez wyjaśnienia, dlaczego ta procedura jest konieczna, i powiela to, co już powiedzieli inni.
— Kusalananda
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.