yum은 커널 버전과 다른 커널 개발을 설치합니다.


32

Fedora 19에서 VMWare 플레이어를 설치하려고합니다. VMware 플레이어가 커널 헤더를 찾을 수없는 여러 사용자에게 발생한 문제가 발생했습니다. kernel-headers와 kernel-devel패키지를 설치했으며 yum그 파일 /usr/src/kernels은 다음과 같습니다.

3.12.8-200.fc19.x86_64

그러나 uname -rFedora 커널 버전을 수행 할 때 :

3.9.5-301.fc19.x86_64

다른 버전입니다. 이것은 커널 경로에서 VMware 플레이어를 가리킬 때이 오류가 발생하는 것을 의미합니다.

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

올바른 커널을 어떻게 설치할 수 /usr/src/kernels/<my-kernel>있습니까? 그렇지 않은 경우 VMware를 가리켜 야하는 곳은 어디 입니까?


그냥 궁금해서 ... 왜 Fedora 19에서 최신 커널을 사용하지 않습니까?
— rickhg12hs

내 자신의 결정이 아닙니다. 나는 webiste에서 내가 할 수있는 최신 빌드를 설치했다. 커널을 업데이트하는 방법이 있습니까?
— 환상적인 미스터 폭스

대부분 패키지 관리자를 사용하거나 yum update명령 줄에서 루트로 실행하여 모든 패키지를 최신 상태로 유지합니다 . 자주 인터넷 연결이 제대로되어 있으면 시간이 오래 걸리지 않지만 약간의주의를 기울여야합니다. 새 커널을 사용하려면 업데이트가 완료된 후 재부팅해야합니다.
— rickhg12hs

답변:


33

올바른 커널 헤더 파일을 다음과 같이 설치할 수 있습니다.

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

예

이 명령은 항상 올바른 버전을 설치합니다.

$ 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

또는 다음과 같이 검색 할 수 있습니다.

$ 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

그러나 특정 버전의 헤더가 리포지토리에없는 경우 에도이 문제를 발견했습니다. 특정 버전의 빌드를 찾으려면 Koji에 문의해야 할 수도 있습니다.

이 페이지에는 특정 버전의 커널에 대한 모든 자산이 포함되어 있습니다.


2
왜 이것보다 낫 yum install "kernel-devel-$(uname -r)"습니까? 귀하의 예에서, 그것은 심지어 작동하지 않는 것 같습니다 ...
— drs

1
@drs-커널 버전에 헤더를 제공하는 일치하는 pkg이 없으므로 b / c에서 작동하지 않습니다. for -uname-r`을 사용하는 것은 커널 버전에 묶인 pkgs로 작업을 수행하는보다 이식성이 좋은 방법입니다. 당신이 너무 자신의 예를 보면 그것은 대부분의 repos에 사용되는 : rpmfusion.org/Howto/nVidia
— SLM

정말 도움이되었습니다. 올바른 버전의 커널 헤더, 이름의 작은 차이를 설치했다고 생각했지만 정확하지 않고 빌드하지 못했습니다. 위의 명령을 통해 실제 검색 결과를 얻을 수 있었으며 패키지 검색에 대한 더 나은 통찰력을 얻을 수있었습니다. 감사합니다 +1
— fkl

yum / dnf가 커널을 업데이트 할 때마다 새 커널 헤더를 자동으로 설치할 수있는 방법이 있습니까?
— Shankar Narayanan

2
@slm이 구문에 대한 정보 / 문서는 어디에서 찾을 수 "kernel-devel-uname-r == $(uname -r)"있습니까?
— Vadim Kotov

8

배포 동기화

문제는 "분배 동기화"일 수 있습니다. 이 명령을 실행하면 내 문제가 해결되었습니다.

yum distro-sync

설치된 패키지 세트를 사용 가능한 최신 패키지와 동기화합니다.이 작업은 필요에 따라 폐기, 업그레이드 또는 다운 그레이드하여 수행됩니다. ( http://man7.org/linux/man-pages/man8/yum.8.html )


4

로 패키지 이름과 함께 버전을 지정하여 특정 버전의 패키지를 설치할 수 있습니다 yum. 예를 들어, 실행중인 특정 커널에 대한 커널 개발 파일을 설치하려면 다음을 입력하십시오.

yum install kernel-devel-3.9.5-301.fc19

비슷한 명령을 수행하여 올바른 kernel-headers패키지 를 얻을 수 있습니다 .


0

시스템 업데이트 후 VMBoxAdditions를 설치하면 나에게도 때때로 발생합니다.

커널 개발자 를 제거 해야합니다 .

yum remove kernel-devel

그런 다음 다시 설치하십시오.

yum install kernel-devel

그리고 다음 마술이 작동합니다.


0

커널을 업데이트 한 후에도 같은 일이 발생했으며 Jim의 대답이 많은 도움이되었습니다. 할 수있는 활성화 [elrepo-kerne] REPO로 이동 /etc/yum.repos.d/elrepo.repo파일 및 설정 enabled=1(아닌 enabled=0경우) [elrepo 커널] 다음, SLM의 대답에 의해 정보를 업데이트 할. 그 후, enabled=0m이이 리포지토리와 상호 작용하지 않도록으로 반전하십시오 . 간단히 yum repolist all말해 , 명령 은 모든 활성화 및 비활성화 된 repos를 보여줍니다.


-2

모든 사람의 제안을 따른 후 나는 이것을 고치는 데 도움이되는 한 가지를 발견했습니다. [elrepo-kernel] repo를 활성화해야했습니다. 그런 다음 올바른 헤더와 커널 개발을 설치할 수있었습니다


이것은 질문에 대한 완전한 답변이 아닙니다. 더 자세한 내용으로 답을 개선하거나 주석으로 추가해야합니다.
— 환상적인 미스터 폭스

@FantasticMrFox 이것은이 절차가 왜 필요한지에 대한 간단한 설명은 아니지만 질문에 대한 답변이며, 다른 사람들이 이미 말한 내용과 중복됩니다.
— Kusalananda
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.