12.04.2 LTS 3.5.0에서 linux-kernel-devel은 무엇입니까?


14

멍청한 질문에 대한 사과하지만, 시도 할 때

sudo apt-get install Linux-kernel-devel 

나는 다음을 얻는다 :

sudo apt-get install linux-kernel-devel  
Reading package lists... Done  
Building dependency tree        
Reading state information... Done  
E: Unable to locate package linux-kernel-devel  

나는 다음을 시도했다.

sudo apt-get install linux-headers-$(uname -r)  
sudo apt-get install build-essentials  
sudo apt-get install Linux-headers-generic 

기쁨없이 ... 어떤 제안?


2
linux-kernel-devel 패키지가 무엇을 할 것으로 기대하십니까? 머리글이나 다른 것을 찾고 있습니까?
Robie Basak

답변:


15

행정상 개요

라는 패키지를 설치하고 싶을 것입니다 linux-headers-generic.

실행이 경우 uname -r당신이 아닌 다른 제공 generic의 버전 번호 후, 대체 그 generic에서 linux-headers-generic. (때문일 수 있습니다 server또는 generic-pae일부 우분투 버전의 일부 설치에, 그리고 몇 가지 다른 가끔 커널이있다 "맛.")

드라이버를 빌드하려면 (자동화 될 수도 있고, "직접 빌드하지 않을 수도 있습니다")이 기능이 필요할 가능성이 높 build-essential으므로 반드시 필요한 도구를 모두 갖도록 설치하는 것이 좋습니다. .

전체 설명

내가 아는 한, 운영 체제에는 패키지라는 패키지가 없습니다 Linux-kernel-devel. 이것은 두 가지 이유 때문입니다.

  • 대문자로 시작하는 패키지 이름은 모든 유닉스 계열 OS에서 매우 드 rare니다.
  • GNU / Linux 운영 체제는 일반적으로 커널 관련 패키지의 이름을 지정하여 이름에 단어 kernel 또는 단어 linux 가 포함되지만 둘 다 포함되지는 않습니다. (우분투에서는 linux 라는 단어 입니다.)

Red Hat Package Manager ( rpm) 및 관련 유틸리티를 사용하는 시스템의 커널 관련 패키지는 패키지 이름으로 사용하는 것이 일반적입니다 kernel. 예를 들어 Mageia에는 이름이로 시작 하고 끝나는 여러 패키지 가 있습니다 . 이 패키지는 거의 항상 (Mageia 및 패키지가있는 모든 OS 에서) 커널과 함께 사용할 소스에서 드라이버를 빌드하는 데 필요한 헤더 파일을 제공합니다 . 또한 촉진을 위해 관련 유틸리티를 제공 할 수도 있습니다. 이 패키지들 :kerneldevel

  • 커널의 전체 소스 코드를 제공 하지 마십시오 . 그것은 다른 패키지에서 제공됩니다.
  • 사전 컴파일되고 사용 가능한 커널을 제공 하지 마십시오 . 그것은 다른 패키지에서 제공됩니다.
  • 컴파일러 또는 대부분의 다른 목적 빌드 도구를 제공 하지 마십시오 . 이것들도 다른 패키지에서 제공됩니다.

우분투에서 여기 목록에서 알 수 있듯이 커널 헤더를 제공하는 패키지 이름은로 시작합니다 linux-headers. 일반적으로 설치할 올바른 패키지는 linux-headers-generic입니다. 그러나 현재 실행중인 커널에 해당하는 헤더를 얻기 위해 설치할 패키지를 확인하려면 다음을 실행하십시오.

uname -r

다음과 같은 출력이 나타납니다.

3.5.0-36-generic

즉, 버전 번호 ( .문자 및 일반적으로 하나 이상 포함 -), 뒤에 -, 뒤에있는 커널 종류를 나타내는 하나 이상의 단어가 있습니다.

지금 실행중인 특정 버전의 헤더 원하는 경우 이름이 linux-headers-*있는 패키지를 *전체 출력으로 대체 할 수 uname -r있습니다. 예를 들어, 내 시스템에서 다음을 실행할 수 있습니다.

sudo apt-get update && sudo apt-get install linux-headers-3.5.0-36-generic

나는 그것을 자동화 할 수도 있습니다.

sudo apt-get update && sudo apt-get install linux-headers-`uname -r`

이러한 접근 방식은 동일하지만 일반적으로 가장 좋은 방법은 아닙니다.

대신, 항상 최신 커널 헤더를 항상 업데이트로 제공 하는 메타 패키지 를 설치하려고 합니다 (최신 헤더 패키지에 따라 영구적으로). 이것은 컴파일되고 실행중인 커널이 설치되고 업데이트되는 방식과 유사합니다. 이를 위해서는 버전 번호 다음uname -r 의 출력 부분을 ​​살펴보십시오 . 즉, 만약 당신에게 제공한다면 , 그 일부만 취하십시오 .uname -r3.5.0-36-genericgeneric

그런 다음 linux-headers-*where *로 교체 된 패키지 를 해당 부분으로 설치하십시오 . 따라서 내 시스템에서 linux-headers-generic설치하고 실행할 수있는 한 가지 방법 은 다음 과 같습니다.

sudo apt-get update && sudo apt-get install linux-headers-generic

대부분의 사람들이있다 linux-headers-generic, 그러나 설치 및 구성 방법 우분투 당신이 그것을 실행중인 장치의 어떤 구조와 유형, 실행중인 제품을 출시하고, 내용에 따라 다른 가능성을 포함 generic-pae, highbank, omap, server,와 virtual.

관련 패키지

헤더 파일 은 헤더 파일이 사용되는 소프트웨어에서 제공하는 기능을 사용하는 소프트웨어 개발 및 컴파일 / 빌드를 용이하게합니다. 커널 헤더가 필요할 수있는 가장 일반적인 이유는 소스 코드에서 드라이버 (커널 모듈)를 빌드하려는 경우입니다. VMware 및 VirtualBox와 같은 일부 애플리케이션은 때때로이를 필요로하며 빌드 자체를 자동화합니다.

헤더 파일 외에도 소프트웨어를 빌드하려면 컴파일러 및 기타 도구가 필요합니다. 필요한 도구가있을 가능성을 최대화하려면 build-essential패키지도 설치하는 것이 좋습니다 .

실제 전체 커널 소스 코드가 필요한 사람은 드물다 (물론 소스에서 커널을 만들 계획이 아니라면). 그러나 필요한 경우 다른 패키지도 설치해야합니다. 우분투에서는 전체 커널 소스 코드를위한 패키지가 호출 linux-source됩니다. (이것은 리눅스 커널의 실질적인 부품 제공하는 패키지 이름의 데비안 / 우분투 규칙과 유지에 linux보다는를 kernel.)

여전히 문제가있는 경우

이러한 패키지를 설치하려고하는데 문제가 발생하지만 도움이 필요한 경우 명령을 입력 한 행을 포함하여 터미널의 완전하고 정확한 텍스트를 포함해야합니다. 이를 제공하는 가장 좋은 방법은 질문을 편집하는 것입니다. 그러나 질문이 너무 길면 http://paste.ubuntu.com 과 같은 곳에 붙여넣고 액세스 할 수있는 URL을 제공 할 수 있습니다.

이 질문에 대해 의견이 있으시면 알려 드리겠습니다. 질문을 편집하고 여기에 의견을 달면 질문에 제공 한 정보에주의를 환기시킬 수 있습니다. (중요한 정보는 질문과 답변으로 유지하는 것이 가장 좋습니다.) 행운을 빌어 요!


0

보고서가 말했듯이 (E : linux-kernel-devel 패키지를 찾을 수 없습니다) 그런 패키지는 없습니다. 여기 에서 데비안 커널 패키지를 다운로드하여 원하는 모든 커널 버전을 설치할 수 있습니다

예를 들어; 커널 3.9.8 (i386 아키텍처)을 설치하려고합니다. 모든 ** i386.deb 패키지 및 * * * all.deb 패키지를 폴더로 다운로드하십시오. 터미널에서 cd ​​명령을 사용하여 폴더에 들어가십시오.

sudo dpkg -i *.deb
sudo update-grub2
sudo reboot

원하는 커널 버전이 설치됩니다. 이 사이트 에서 커널 메인 라인 및 장기 버전의 버전을 분석 할 수 있습니다


0

어떤 특정 deb가 필요한지 스스로 매핑해야하지만 Ubunut의 커널 빌드에 필요한 뎁이 있습니다 .

솔직히 먼저 확인한 sudo apt-get update다음 sudo apt-get dist-upgrade최신 커널을 실행하고 있는지 확인하고 곧 다시 할 필요가 없습니다.

다음으로 여러분의 버전과 일치하는 커널 빌드 목록을 살펴보십시오 uname -r. 각 빌드 build.log를보고 빌드 할 헤드 버전을 확인해야합니다. 커널로 3.5.0-34 # 55가 나열되어 있지만 실제로 3.5.7.14-quantal 빌드 하도록 매핑되었습니다 . 해당 버전에 해당하는 모든 뎁을 설치하여 헤더 등을 얻고 빌드 도구가 있는지 확인하십시오.sudo apt-get install build-essential

마일리지는 개발 파일로 무엇을할지에 따라 매우 달라질 수 있습니다.


0

linux-kernel-devel은 genksyms와 같은 것을 제공하는 SUSE / Redhat 패키지의 이름입니다.

매우 빠른 구글은 linux-headers-generic이 데비안 / 우분투에서 genksyms를 제공한다고 제안합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.