что такое эквивалент linux-kernel-devel в 12.04.2 LTS 3.5.0?

извиняюсь за вопрос нуба, но когда я пытаюсь

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] без радости ... есть предложения?

14
задан 15 July 2013 в 18:47

4 ответа

Вам нужно будет самим наметить, какой конкретный 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

Ваш пробег может сильно зависеть от того, что вы планируете делать с файлы разработки.

0
ответ дан 15 July 2013 в 18:47

linux-kernel-devel - это имя пакета SUSE / Redhat, предоставляющего такие вещи, как genksyms.

Очень быстрый Google предполагает, что linux-headers-generic предоставляет genksyms в Debian / Ubuntu.

0
ответ дан 15 July 2013 в 18:47

Как сказано в отчете (E: Невозможно найти пакет linux-kernel-devel) Нет таких пакетов. Вы можете установить любую нужную версию ядра, загрузив пакеты ядра debian из здесь

Например; мы хотим установить ядро ​​3.9.8 (архитектура i386); Загрузите все ** i386.deb пакеты, а также * * * all.deb пакет в папку. Войдите в папку с помощью команды cd в терминале;

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

Это установит необходимую версию ядра. Вы можете проанализировать версии основной и долгосрочной версий ядра на этом сайте

0
ответ дан 15 July 2013 в 18:47

Резюме

Вы, вероятно, хотите установить пакет под названием linux-headers-generic.

Если выполнение uname -r дает вам что-то отличное от generic после номера версии, замените это на generic в linux-headers-generic. (Это может быть server или generic-pae в некоторых инсталляциях некоторых выпусков Ubuntu, и есть несколько других случайных «разновидностей» ядра.)

Так как вам, скорее всего, это нужно, чтобы вы могли собрать драйвер (который может быть автоматизирован, вы не можете «собирать его самостоятельно»), также неплохо бы установить build-essential, чтобы сделать его так, чтобы вы, вероятно, имели все необходимые инструменты.

Полное объяснение

Насколько мне известно, ни у одной операционной системы нет пакета под названием Linux-kernel-devel. Это происходит по двум причинам:

  • Имена пакетов, начинающиеся с заглавных букв, встречаются крайне редко для любой Unix-подобной ОС.
  • Операционные системы GNU / Linux обычно называют свои пакеты, относящиеся к ядру, так что имена содержат слово kernel или слово linux , но не оба. (В Ubuntu это слово linux .)

Обычно для пакетов, связанных с ядром, в системах, использующих Red Hat Package Manager (rpm), и связанных утилит для иметь kernel в названии своих пакетов. Например, Mageia имеет несколько пакетов , имена которых начинаются с kernel и заканчиваются на devel. Эти пакеты почти всегда (в Mageia и любой операционной системе, в которой они есть) предоставляют заголовочные файлы , необходимые для сборки драйверов из исходного кода для использования с ядром. Они также могут предоставить соответствующие утилиты для облегчения. Эти пакеты:

  • делают not и предоставляют полный исходный код ядра. Это предусмотрено другими пакетами.
  • не не предоставляют предварительно скомпилированное, пригодное для использования ядро. Это предусмотрено другими пакетами.
  • не не предоставляют компилятор или большинство других инструментов для сборки. Они также предоставляются другими пакетами.

В 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-адрес, по которому мы можем получить доступ. это.

Если вы прокомментируете этот вопрос, я буду уведомлен. Вы можете отредактировать свой вопрос, а также прокомментировать здесь, чтобы привлечь внимание к информации, которую вы указали в своем вопросе. (Важную информацию лучше хранить в вопросах и ответах.) Удачи!

0
ответ дан 15 July 2013 в 18:47

Другие вопросы по тегам:

Похожие вопросы: