- Как установить заголовочные файлы ядра в Linux
- Установка заголовочных файлов ядра в Debian, Ubuntu или Linux Mint
- Установка заголовочных файлов ядра в Fedora, CentOS или RHEL
- Правильная инструкция по установке linux-headers в Debian Stretch. uname -r|sed ‘s/[^-]*-[^-]*-//’ — работает неправильно?
- Debian проблема c apt (linux-headers)
Как установить заголовочные файлы ядра в 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/[^-]*-[^-]*-//’) — что вот это вот делает?
Но почему 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
То он предлагает удалить среду рабочего стола, иксы, и так далее.
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 после этого уже можно удалять.
Почитай лучше про бэкпорты и больше так не делай.
Интересно, про это не знал, суди по описанию:
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 =)
Дык никто и не говорил, что нужно отключать мозг. Всегда надо думать, прежде чем что-то делать, не обязательно обновляться.
Источник