извиняюсь за вопрос нуба, но когда я пытаюсь
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
[ 116] без радости ... есть предложения?
Вам нужно будет самим наметить, какой конкретный deb вам нужен, но есть наборы, которые вам понадобятся в сборках ядра Ubunut .
Честно говоря, я сначала сверился с sudo apt-get update
, а затем с sudo apt-get dist-upgrade
, чтобы убедиться, что у вас запущено последнее ядро, и вам больше не понадобится делать это в ближайшее время.
Затем просмотрите список сборки ядра для вашей версии, которая соответствует вашей uname -r
. Вам нужно посмотреть в каждой сборке build.log, чтобы узнать, какую версию заголовка они сопоставляют с этой сборкой. У меня 3.5.0-34 # 55 в списке моего ядра, но это действительно карта для сборки 3.5.7.14-квантовая . Установите все дэбы, которые соответствуют этой версии, чтобы получить ваши заголовки и тому подобное, и убедитесь, что у вас есть инструменты сборки с sudo apt-get install build-essential
Ваш пробег может сильно зависеть от того, что вы планируете делать с файлы разработки.
linux-kernel-devel - это имя пакета SUSE / Redhat, предоставляющего такие вещи, как genksyms.
Очень быстрый Google предполагает, что linux-headers-generic предоставляет genksyms в Debian / Ubuntu.
Как сказано в отчете (E: Невозможно найти пакет linux-kernel-devel) Нет таких пакетов. Вы можете установить любую нужную версию ядра, загрузив пакеты ядра debian из здесь
Например; мы хотим установить ядро 3.9.8 (архитектура i386); Загрузите все ** i386.deb пакеты, а также * * * all.deb пакет в папку. Войдите в папку с помощью команды cd в терминале;
sudo dpkg -i *.deb
sudo update-grub2
sudo reboot
Это установит необходимую версию ядра. Вы можете проанализировать версии основной и долгосрочной версий ядра на этом сайте
Вы, вероятно, хотите установить пакет под названием linux-headers-generic
.
Если выполнение uname -r
дает вам что-то отличное от generic
после номера версии, замените это на generic
в linux-headers-generic
. (Это может быть server
или generic-pae
в некоторых инсталляциях некоторых выпусков Ubuntu, и есть несколько других случайных «разновидностей» ядра.)
Так как вам, скорее всего, это нужно, чтобы вы могли собрать драйвер (который может быть автоматизирован, вы не можете «собирать его самостоятельно»), также неплохо бы установить build-essential
, чтобы сделать его так, чтобы вы, вероятно, имели все необходимые инструменты.
Насколько мне известно, ни у одной операционной системы нет пакета под названием Linux-kernel-devel
. Это происходит по двум причинам:
Обычно для пакетов, связанных с ядром, в системах, использующих Red Hat Package Manager (rpm
), и связанных утилит для иметь kernel
в названии своих пакетов. Например, Mageia имеет несколько пакетов , имена которых начинаются с kernel
и заканчиваются на devel
. Эти пакеты почти всегда (в Mageia и любой операционной системе, в которой они есть) предоставляют заголовочные файлы , необходимые для сборки драйверов из исходного кода для использования с ядром. Они также могут предоставить соответствующие утилиты для облегчения. Эти пакеты:
В Ubuntu, как можно увидеть в списке здесь , пакеты, предоставляющие заголовки ядра, имеют имена, начинающиеся с 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 -r
даст вам 3.5.0-36-generic
, возьмите только часть generic
.
Затем установите пакет с именем linux-headers-*
, где *
заменяется этой частью. Итак, в моей системе это было бы linux-headers-generic
, и один из способов, которым я мог бы установить его, было бы запустить:
sudo apt-get update && sudo apt-get install linux-headers-generic
Для большинства людей это linux-headers-generic
, но в зависимости от того, что Ubuntu освободит вас Вы работаете, с какой архитектурой и типом устройства вы работаете, и как оно установлено и сконфигурировано, другие возможности включают generic-pae
, highbank
, omap
, server
и virtual
.
Заголовочные файлы облегчают разработку и компиляцию / сборку программного обеспечения, которое использует средства, предоставляемые программным обеспечением, чьи заголовочные файлы используются. Наиболее распространенная причина, по которой вам могут понадобиться заголовки ядра - это то, что вы собираетесь собрать драйвер (модуль ядра) из исходного кода. Некоторым приложениям, таким как VMware и VirtualBox, иногда требуется это, и они сами автоматизируют сборку.
В дополнение к заголовочным файлам для сборки программного обеспечения необходимы компилятор и другие инструменты. Чтобы максимально повысить вероятность того, что у вас есть необходимые инструменты, рекомендуется также установить пакет build-essential
.
Никому не нужен настоящий полный исходный код ядра (если, конечно, вы не планируете собирать ядро из исходного кода). Но если вам это нужно, вам придется установить и другой пакет. В Ubuntu пакет для полного исходного кода ядра называется linux-source
. (Это соответствует соглашению Debian / Ubuntu о именовании пакетов, которые предоставляют существенные части ядра Linux linux
, а не kernel
.)
Если вы пытаетесь установить любой из этих пакетов, но у вас возникают проблемы, и вам нужна помощь, тогда вам нужно будет включить полный и точный текст из Терминала, включая строки, где вы вводили команды. Лучший способ обеспечить это - отредактировать свой вопрос, но если он слишком длинный, вы можете вставить его где-нибудь, например, http://paste.ubuntu.com и предоставить нам URL-адрес, по которому мы можем получить доступ. это.
Если вы прокомментируете этот вопрос, я буду уведомлен. Вы можете отредактировать свой вопрос, а также прокомментировать здесь, чтобы привлечь внимание к информации, которую вы указали в своем вопросе. (Важную информацию лучше хранить в вопросах и ответах.) Удачи!