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.