Build essential linux headers uname

Как установить заголовочные файлы ядра в Linux

Когда вы компилируете драйвер устройства как модуль ядра, вам необходимы установленные заголовочные файлы ядра. Также они требуются, если вы собираете пользовательское приложение, которое взаимодействует напрямую с ядром. При установке заголовочных файлов ядра, необходимо убедиться, что их версия совпадает с версией ядра установленного в системе.

Если версия вашего ядра не менялась после установки дистрибутива, или вы обновляли его с использованием системного менеджера пакетов (то есть apt-get, aptitude или yum) из системных репозиториев, то заголовочные файлы вы также можете установить с помощью пакетного менеджера. Однако если вы скачивали исходный код ядра и компилировали его самостоятельно, то заголовочные файлы необходимо устанавливать с помощью команды make.

Здесь мы предполагаем, что ваше ядро установлено из основного системного репозитория вашего дистрибутива, и вы хотите установить соответствующие заголовочные файлы ядра.

Установка заголовочных файлов ядра в Debian, Ubuntu или Linux Mint

Если вы не компилировали ядро вручную, то можете установить соответствующие заголовочные файлы ядра с помощью команды apt-get.
Сначала проверьте, не установлены ли уже требуемые заголовочные файлы с помощью команды:

Теперь установите заголовочные файлы, как показано ниже.

Проверьте, что установка прошла успешно.

По умолчанию в Debian, Ubuntu или Linux Mint заголовочные файлы находятся в /usr/src.

Установка заголовочных файлов ядра в Fedora, CentOS или RHEL

Если вы не обновляли ядро вручную, то можете установить соответствующие заголовочные файлы ядра с помощью команды yum.
Сначала проверьте, не установлены ли уже требуемые заголовочные файлы. По умолчанию заголовочные файлы ядра расположены в /usr/src/kernels/.
Если подходящих заголовочных файлов не установлено, вы можете установить их с помощью команды yum. Она автоматически найдет подходящий пакет.

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

Теперь проверьте, что установлены заголовочные файлы соответствующей версии с помощью команды:

Источник

Правильная инструкция по установке linux-headers в Debian Stretch. uname -r|sed ‘s/[^-]*-[^-]*-//’ — работает неправильно?

(uname -r|sed ‘s/[^-]*-[^-]*-//’) — что вот это вот делает?

Читайте также:  Аналог tor browser для linux

Но почему apt-get устанавливает linux-headers откуда-то отсюда:

Или нужно при установке обязательно указывать часть backports?

apt-get install -t stretch-backports linux-headers-`uname -r`

Я читал это, но не понял что вот это делает: (uname -r|sed ‘s/[^-]*-[^-]*-//’)? uname -r — понятно, но sed.. ‘s/[^-]*-[^-]*-//’)?!

Заменяет последовательность «[не минусы]минус[не минусы]минус» на пустую строку

Кстати, можно было написать uname -r | cut -d- -f3 , но люди почему-то любят использовать sed для всего.

Можно, но пока нет

А как желательно писать при установку пакетов для архитектуры процессора amd64?

apt-get install linux-image-amd64

apt-get install linux-image-$(uname -r|sed ‘s/[^-]*-[^-]*-//’)

Зачем это всё, когда есть мета-пакеты? Поставил мета-пакет и у тебя всегда будет актуальная версия ядра и хедеров после обновления.

для amd64 одинаково, но это-то заклинание именно такое, чтобы не задавать новичку лишний раз вопрос об архитектуре системы, чтобы работало везде.

замудрено больно, мне проще посмотреть что там есть вкусного

и потом полностью указать желаемое

Зачем это всё, когда есть мета-пакеты?

И какой мета-пакет нужен мне?

мне проще посмотреть что там есть вкусного

Ещё есть apt-cache policy

uname -r | cut -d- -f3-

linux-image-amd64 linux-headers-amd64 — если для обоих указать backports, то так и поставятся.

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

А ну я уже поставил этот мета-пакет. Осталось только найти 5 пакетов для 390 драйвера. А эта установка мета-пакетов тоже нужна из backpor’ов насколько я понял.

Такой подход не всегда нужен. Иногда надо установить определённую версию, а не последнюю в случае указания мета-пакета.

Так для меня актуально ядро 4.17, а не 4.18, на который указывает мета-пакет.

в таком случае проще поставить нужную версию, чем колупать sed.

Правильная инструкция по установке linux-headers

Источник

Debian проблема c apt (linux-headers)

Проблема такая:
пробую установить linux-haders:
apt-get update apt-get install linux-headers-$(uname -r)
Он мне пишет:

Далее пытаюсь установить gcc-4.3: apt-get install gcc-4.3

P.S. sources.list — http://pastebin.com/XmnBTS0P Для некоторых пакетов мне требовались пакеты из testing и unstable.

А просто если сделать? 🙂

apt-get install -f

apt-get -f install
Ни чем не помогает

на команду от root apt-get -f install что отвечает?

на команду от root apt-get -f install что отвечает?

покажи содержимое /etc/apt/sources.list

У меня есть смутное сомнение что мне придется переустанавливать/ удалять пакеты:
gcc-4.4-base
gcc-4.7-base
если командую apt-get remove gcc-4.4-base
То он предлагает удалить среду рабочего стола, иксы, и так далее.

Читайте также:  Chown recursive in linux

apt-get remove gcc-4.7-base
Вообще все предлагает удалить (пакетов на гиг), и даже сам apt.

покажи содержимое /etc/apt/sources.list

В первом посте в самом конце. P.S. смотрите. Там ссылка

Может ядро обнови? В сквизе не 32, емнип.

Может ядро обнови? В сквизе не 32, емнип.

Я систему недавно поставил. И пологаю что ядро новое.

Что такое емнип ?

Если мне не изменяет память

Ядро у тебя нормальное

Было. apt-get —reinstall install gcc-4.<4,7>-base

полный выхлоп покажи

Проблему с gcc-4.7 решил, он не скачивался, так как я в sources.list за коментил wheezy. gcc имеется и работает.
Но основная проблема остается:

ССЗБ. Сперва сделал кашу из стейбла, тестинга и сида, а потом новые ветки закомментировал.

Я если честно не совсем понимаю, разве gcc-4.7 не совместим с gcc-4.3?
То есть по идее то что компилится на gcc-4.3 должно компилится и на gcc-4.7?
Нафига ему вообще 4.3 сдался ?

ССЗБ. Сперва сделал кашу из стейбла, тестинга и сида, а потом новые ветки закомментировал.

Согласен, с вами .
Это все из за моей не опытности. Сначало все было норм, но когда мне понадобилось, установить некоторые программы, которые требовали библиотеки более новых версий, пришлось включать testing и unstable. И с тех пор проблем не оберешься. Установилось несколько версий gcc. Много версий разных библиотек и так далее.

несколько версий gcc я бы собиралв в виртуалке.

несколько версий gcc я бы собиралв в виртуалке.

Да я же не совсем по своей воле.
Видимо что то понадобилось мне установить. Я скачал deb пакет. Кинул его в root/debs, dpkg-scanpackages и так далее.
apt-get install этот пакет -y
У него в зависимостях gcc-4.7 и пошло поехало.
Может дадите советы, как лучше поступать в таких случаях ?

1. Не делай мешанину из релизов, только stable 2. Ставь только из репозитория. 3. Если что — то может загадить систему — отправляешь в виртуалку

Тебе получается надо откатиться/обновиться на какую-нибудь определённую ветку. Current stable | testing. А потом в виртуалке/чруте колбаситься по чёрному с фаршем из всего подряд.

Почитай лучше про бэкпорты и больше так не делай.

GCC 4.3 слишком старый набор. Программы в Debian, скорее всего, собраны GCC 4.4 и более старших версий, поэтому пакет GCC 4.3 сломан намеренно, чтобы не ломать рантайм пользователям.

если командую apt-get remove gcc-4.4-base
То он предлагает удалить среду рабочего стола, иксы, и так далее.

apt-get remove gcc-4.7-base
Вообще все предлагает удалить (пакетов на гиг), и даже сам apt.

Чтобы избавиться от этих двух компиляторов, библиотеки рантайма которых в зависимостях у установленных программ, то нужно установить GCC 4.6.x, библиотеки рантайма которого возьмут на себя все их зависимые программы. А GCC 4.4 и 4.7 после этого уже можно удалять.

Читайте также:  Windows сертификат фстэк россии

Почитай лучше про бэкпорты и больше так не делай.

Интересно, про это не знал, суди по описанию:

Backports создан специально для решения подобных задач, новые пакеты при установке не тянут за собой библиотеки из не стабильного Debian и не создают проблем с зависимостями, софт собран специально под текущую стабильную ветку Debian, это очень удобно не правда ли?

Если это описание верно, то это как раз то что нужно.
Спасибо за совет

Для этого и создан. Естественно, что там есть не всё, но тем не менее.

На десктоп уже смело можно ставить Wheezy.

Тестинг в заморозке хуже анстейбла, так что не стоит.

В каком месте он хуже?

Полгода использую на работе — все нормально.

В таком, что не раз сталкивался с определёнными проблемами. Иногда убирается пакет из репов (потом конечно добавляется, но нужен сейчас, а не потом). Так было с каким-то system-settings (для KDE настройка gtk). Могут быть какие-то заскарузлые баги, которые упорно не правятся. И если в unstable прилетает новый софт, то здесь остаётся бажный софт и приходится ждать, пока мейнтейнеры Debian отрегаируют на багзиллу.

Поэтому я предпочитаю или stable или unstable. Хотя сейчас десктопы на Ubuntu.

ну не обновляйся, если нужный тебе пакет убирается. Опять же, при safe-upgrade такого не случается.

Дык в том и дело, что поставил я Testing. А нужного мне пакета нет на данный момент. Есть в stable, есть в unstable, а в testing нет.

И вообще, «не обновляться» это костыль, не должна нормальная ОС так работать.

Дык в том и дело, что поставил я Testing. А нужного мне пакета нет на данный момент. Есть в stable, есть в unstable, а в testing нет.

если тебе _так_ не повезло — чисти карму 😉

Обновляться можно, не нужно делать full-upgrade, не читая вывод апта.

Я лучше буду юзать или stable или unstable =)

Дык никто и не говорил, что нужно отключать мозг. Всегда надо думать, прежде чем что-то делать, не обязательно обновляться.

Источник

Оцените статью