LINUX.ORG.RU
ФорумAdmin

Как патчить «регулярное» ядро?

 ,


0

1

Доброго времени суток. Интересует отклик людей с практическим опытом.

Допустим, есть офисный роутер под 20-ой Ubuntu-server, которому я регулярно делаю «apt upgrade». Кроме iptables, на нем крутится еще bind, strongswan, postfix с dovecot’ом, ну и еще по мелочи. Допустим также, что у меня возникло желание применить к его ядру некий патч, не входящий в майнстрим. Например https://github.com/vel21ripn/nDPI/tree/flow_info-3.2 или IMQ. Как я понимаю, в этом случае, я должен зафиксировать соответствующие пакеты.Типа: «sudo apt-mark hold linux-image linux-headers». При этом, скорее всего «заморозится» еще куча всего? Типа libc…. и всего, что от нее зависит? И при появлении критичных апдейтов, я должен буду собирать их самостоятельно, ручками или заново патчить lnux-source ?

В общем, существует ли на этом пути какой-то вариант, который можно назвать если не «best-», то хоть «good-практик» ?


Ответ на: комментарий от nager

Это-то понятно. Я спрашиваю про зависимости и реальный опыт. Много пакетов придется ручками отслеживать? Не выливается ли это в сопровождение «условно-своего» дистриба.

У меня несколько таких рутеров, разнесенных на несколько сот километров. Как лучше практически осуществлять замену ядра? Через .deb ? Ну и т.д.

Я же написал, что интересует т.з. людей, имеющих практический опыт.

artp
() автор топика
Ответ на: комментарий от artp

Нет не выливается, вообще надо смотреть в сторону kernel-package

Begemoth ★★★★★
()
Ответ на: комментарий от artp

У меня несколько таких рутеров, разнесенных на несколько сот километров.

Начать лучше от обратного. По какой причине планируете периодически менять ядра?

anc ★★★★★
()
Ответ на: комментарий от anc

По какой причине планируете периодически менять ядра?

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

Во-вторых, это и есть часть моего вопроса. Не приводит ли «отставание» пакетов linux-image, linux-headers и т.п., через зависимости, к замораживанию апдейтов прочих пакетов? Не является ли постоянное обновление ядра обязательным условием обновления, например, strongswan’а ?

artp
() автор топика
Ответ на: комментарий от artp

Не приводит ли «отставание» пакетов linux-image, linux-headers и т.п., через зависимости, к замораживанию апдейтов прочих пакетов?

Нет. Можно вообще ничего не замораживать, а удалить метапакеты (linux-generic и linux-headers-generic вроде, точно не помню, посмотреть сейчас негде) и у тебя останется навсегда то ядро, которое поставил сам.

zemidius
()
Ответ на: комментарий от artp

Во-первых, привык. IMHO, профессионалы лучше меня знают, какие дырки и ляпы надо закрывать в софте.

И при этом есть старое доброе «работает не трогай» или «пофиксили 30 багов, добавили 40». Помимо этого изменяются/удаляются старые фичи, добавляются новые. Да, в части удаления, бывают случаи когда удаляется нафиг, без возможности альтернативной настройки фичи которая ранее работала. Это весьма болезненные моменты. Потому, что приходиться заново изобретать велосипед, тестировать и потом в прод. Собстно подобные случаи достаточно живенько обсуждаются теми кто на это попал.
Поэтому рекомендую читать, что именно изменено думать нужно ли оно вам, тестировать на кошках и только потом обновлять. А то с учетом «У меня несколько таких рутеров, разнесенных на несколько сот километров», «апдэйт ради апдэйта» может внезапно привести в лучшем случае к бессонной ночи в худшем к дальней поездке.

Не является ли постоянное обновление ядра обязательным условием обновления, например, strongswan’а ?

Ну иногда вам и лебедя может оказаться не надо обновлять. Бывали у них ломающие обновы.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)
Ответ на: комментарий от anc

Не будешь обновлять - получится ситуация как у товарища в соседнем топике, когда у него уже дефолтный openssh не коннектится из-за устаревших шифров на девайсе, а обновлять 20-лет не обновляющуюся железку - вот тут 100% всё посыпется.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Бывали у них ломающие обновы.

Не означает, что всё, забыли и забили. Я про то, что апдэйты это не всегда выполнили одну команду и дальше курим бамбук. И бывает, что между выходом обновы и её установкой может пройти весьма не мало времени. А может и не установите вообще, а передите на что-то другое.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)

Если хочешь по нормальному - собирай пакет и делай локальную репу.

anonymous
()

Бест-практис на мой вкус такой:

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

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

rukez ★★★★
()
Ответ на: комментарий от rukez

Спасибо откликнувшимся.

To @zemidius

удалить метапакеты (linux-generic и linux-headers-generic вроде…

Погуглю. Если, при случае, сможешь глянуть и дать более целевую рекомендацию, буду признателен.

To @anc

…старое доброе «работает не трогай»…

На личном опыте убедился, что ломающие апдейты, конечно, бывают, но в целом, разработчики люди хорошие и думающие. А опыт есть. Первые дискеты с ядром 0.9 (кажется) и иксами я в 93-м из Берлина привез. Сам тогда на 286-м ксениксе и VMS-е сидел. И согласен я не с тобой, а с @Legioner. Обновляться надо, а разрабов обижать нет.

To @rukez и anonymous : Я как-то так себе это и представлял. deb-ы уже научился собирать. Насчет репки - подумаю, спасибо. Задавая вопрос надеялся на то, что посоветуют что-то менее геморройное. Проходить весь маршрут самому было лень, но раньше студенты и молодые it-шники вокруг крутились. Было кому идею подкинуть и дождаться. А теперь поразбежались :(

Я, вообще-то, админ в далеком прошлом, но по привычке, продолжаю хвататься за консоль.

artp
() автор топика
Ответ на: комментарий от artp

Погуглю. Если, при случае, сможешь глянуть и дать более целевую рекомендацию, буду признателен.

Случай представился )

Метапакеты linux-image-generic и linux-headers-generic указывают всегда на последнее ядро и, соответственно, хедеры. Если их удалить, то система будет и далее обновляться, но без ядра и хедеров, они останутся на месте.

zemidius
()

Можно своё ядро ставить рядом с системным, так, что пакеты никакие затронуты не будут, будет у тебя два ядра на выбор, с каких грузиться. Одно дефолтное для роутера, а второе твоё с патчами

menangen ★★★★★
()
Ответ на: комментарий от menangen

О! Мне почему-то это в голову не пришло :) . Спасибо.

artp
() автор топика
Ответ на: комментарий от zemidius

Метапакеты linux-image-generic и linux-headers-generic…их удалить…

Спс. Буду экспериментировать. На просторах инета попалось что просто повесить их на hold не достаточно. Буду проверять.

artp
() автор топика

Вот тебе реальный опыт: ставишь Gentoo, создаёшь /etc/portage/patches, в ней sys-kernel/gentoo-sources и кладёшь свой патч.

Всё, при каждой установке новой версии пакета с исходными кодами ядра будет накладываться твой патч.

Далее компилишь ядро, готово.

anonymous
()
Ответ на: комментарий от anonymous

Все ждал, когда Gentoo’шники проявятся :)

Глубоко уважаю, но этот путь самурая не для меня. Когда кросс-компиляцией массово увлекался успел немного поработать. Правда, давно было, но по отзывам ситуация изменилась мало.

artp
() автор топика

В NixOS сие делается элементарно, как и в Gentoo.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.