Resumen Ejecutivo
Probablemente desee instalar el paquete llamado linux-headers-generic
.
Si correr uname -r
le da algo más que generic
después del número de versión, sustitúyalo por generic
in linux-headers-generic
. (Esto podría ser server
o generic-pae
en algunas instalaciones de algunos lanzamientos de Ubuntu, y hay algunos otros "sabores" ocasionales del kernel).
Dado que lo más probable es que necesite esto para poder construir un controlador (que podría estar automatizado, es posible que no esté "construyéndolo usted mismo"), es una buena idea instalar build-essential
también para hacerlo, de modo que probablemente tenga todas las herramientas necesarias .
Explicación completa
Que yo sepa, ningún sistema operativo tiene un paquete llamado Linux-kernel-devel
. Esto es por dos razones:
- Los nombres de paquetes que comienzan con letras mayúsculas son extremadamente raros, para cualquier sistema operativo tipo Unix.
- Los sistemas operativos GNU / Linux suelen nombrar sus paquetes relacionados con el kernel para que los nombres contengan la palabra kernel o la palabra linux , pero no ambas. (En Ubuntu, es la palabra Linux ).
Es común que los paquetes relacionados con el kernel en sistemas que usan Red Hat Package Manager ( rpm
) y utilidades relacionadas tengan kernel
en el nombre de sus paquetes. Por ejemplo, Mageia tiene varios paquetes cuyos nombres comienzan kernel
y terminan en devel
. Estos paquetes casi siempre (en Mageia y cualquier sistema operativo que los tenga) proporcionan los archivos de encabezado necesarios para construir controladores desde la fuente para usar con el núcleo. También pueden proporcionar utilidades relacionadas para facilitar. Estos paquetes:
- no no proporcionar el código fuente completo del núcleo. Eso lo proporcionan otros paquetes.
- no no proporcionar un kernel utilizable pre-compilados. Eso lo proporcionan otros paquetes.
- no no proporcionar un compilador o la mayoría de las otras herramientas especialmente construido. Esos también son provistos por otros paquetes.
En Ubuntu, como se puede ver en la lista aquí , los paquetes que proporcionan encabezados de kernel tienen nombres que comienzan con linux-headers
. Por lo general, el paquete correcto para instalar es linux-headers-generic
. Sin embargo, para estar seguro de qué paquete instalar para obtener los encabezados que corresponden a su núcleo actualmente en ejecución, ejecute:
uname -r
Obtendrá una salida que se parece a:
3.5.0-36-generic
Es decir, tendrá un número de versión (que incluirá .
caracteres y generalmente al menos uno -
), seguido de a -
, seguido de una o más palabras que indican qué tipo de núcleo está ejecutando.
Si solo desea los encabezados para la versión específica que está ejecutando ahora, puede instalar el paquete cuyo nombre es linux-headers-*
donde *
se reemplaza por la salida completa de uname -r
. Por ejemplo, en mi sistema, podría ejecutar:
sudo apt-get update && sudo apt-get install linux-headers-3.5.0-36-generic
Incluso podría automatizarlo:
sudo apt-get update && sudo apt-get install linux-headers-`uname -r`
Estos enfoques son equivalentes, pero no suelen ser el mejor camino a seguir.
En su lugar, generalmente querrá instalar el metapaquete que siempre proporciona los encabezados de kernel más nuevos como una actualización (dependiendo perpetuamente del paquete de encabezado más nuevo). Esto es paralelo a la forma en que su núcleo compilado y en ejecución se instala y se actualiza. Para hacer eso, mire solo la parte de uname -r
la salida después del número de versión. Es decir, si uname -r
te da 3.5.0-36-generic
, toma solo la generic
parte.
Luego instale el paquete llamado linux-headers-*
donde *
se reemplaza por esa parte. Entonces, en mi sistema, sería linux-headers-generic
y una forma en que podría instalarlo sería ejecutar:
sudo apt-get update && sudo apt-get install linux-headers-generic
Para la mayoría de la gente es linux-headers-generic
, pero dependiendo de lo suelte Ubuntu se está ejecutando, lo que la arquitectura y el tipo de dispositivo que se está ejecutando en, y la forma en que está instalado y configurado, otras posibilidades incluyen generic-pae
, highbank
, omap
, server
, y virtual
.
Paquetes relacionados
Los archivos de encabezado facilitan el desarrollo y la compilación / creación de software que utiliza las instalaciones proporcionadas por el software cuyos archivos de encabezado se están utilizando. La razón más común por la que puede necesitar encabezados de núcleo es si va a construir un controlador (un módulo de núcleo) a partir del código fuente. Algunas aplicaciones, como VMware y VirtualBox, a veces requerirán esto y automatizarán la compilación ellos mismos.
Además de los archivos de encabezado, para construir software se necesita un compilador y otras herramientas. Para maximizar la probabilidad de que tenga las herramientas necesarias, también es una buena idea instalar el build-essential
paquete.
Es raro que alguien necesite el código fuente completo del núcleo real (a menos, por supuesto, que esté planeando construir su núcleo desde la fuente). Pero si lo necesita, también deberá instalar otro paquete. En Ubuntu se llama el paquete para el código fuente completo del núcleo linux-source
. (Esto está de acuerdo con la convención Debian / Ubuntu de nombrar paquetes que proporcionan partes sustantivas del kernel de Linux en linux
lugar de kernel
).
Si aún tienes problemas
Si intenta instalar cualquiera de estos paquetes pero experimenta problemas y desea ayuda, deberá incluir el texto completo y exacto del Terminal, incluidas las líneas donde escribió los comandos. La mejor manera de proporcionar esto es editando su pregunta, pero si es demasiado larga, puede pegarla en algún lugar como http://paste.ubuntu.com y proporcionarnos la URL donde podemos acceder a ella.
Si comentas sobre esta pregunta, seré notificado. Puede editar su pregunta y también comentar aquí para llamar la atención sobre la información que ha proporcionado en su pregunta. (La información importante se guarda mejor en preguntas y respuestas). ¡Buena suerte!