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


32

Fedora 19에서 VMWare 플레이어를 설치하려고합니다. VMware 플레이어가 커널 헤더를 찾을 수없는 여러 사용자에게 발생한 문제가 발생했습니다. kernel-headerskernel-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.