Ivanovo Linux Users Group - Not logged in
Forum Help Search Login
Previous Next Up Topic Администрирование / Общее администрирование / Patch-o-matic//.. (35213 hits)
- By DMSSAN Date 06.12.04 10:29
Чтобы установить "заплатки" на ядро вроде как нужно использовать patch-o-matic, выполнением следующей команды:
make patch-o-matic KERNEL_DIR=/usr/src/linux/

Вопрос: Как работает этот patch-o-matic? Откуда он берет информацию? А make на него вообще ругается, говоря, что у него в целях такого нет..
ТОже самое касается и команд:
make pending-patches KERNEL_DIR=/usr/src/linux/
make most-of-pom KERNEL_DIR=/usr/src/linux/

patch-o-matic содержит обновления по ядру, но где сконцентрирован этот ресурс?
Parent - By LOE (Site/forum admin) Date 06.12.04 11:08 Edited 06.12.04 13:15
1. Качаешь архивчик типа http://newsoft.ivanovo.ru/Linux/IPtables/POM/patch-o-matic-ng-20041201.tar.bz2
2. Куда-нито распаковываешь
3. Запускаешь runme (возможны некоторые опции типа base, extra - задают набор патчей)
3.1. Для некоторых патчей нужны исходники iptables, поскольку нужно и его патчить
3.2 Исходники ядра обязательны :-)
5. runme задает вопросы - ставить такой-то патч или нет, дается описание патча
6. После наложения патчей, в конфигураторе ядра появятся соответствующие опции. Ядро компилишь-ставишь как обычно.

PS. может потребоваться запускать так:

KERNEL_DIR=<<where-you-built-your-kernel>> \
IPTABLES_DIR=<<where-the-source-of-iptables>> \
./runme [base|extra]

PPS. гнездо PoM: http://www.netfilter.org/
PPPS. Кстати,  patch-o-matic - это не заплатки (суть которых исправление ошибок), это добавление новых функций в подсистему netfilter ядра.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - By UncleAndy Date 07.12.04 11:02
А эти модули отдельно нельзя скомпилить?
Естественно, если есть исходники ядра с включенным iptables.
Дядюшка Энди
Parent - By LOE (Site/forum admin) Date 07.12.04 12:30
Если есть исходники, то отдельно и не надо.
Просто все(?) забывают, что можно пропатчить ядро (или добавить новые модули), сделать make menuconfig, выбрать новые фичи модулями, потом make modules , положить готовые модули в /lib/modules.... и выполнить depmod
Т.е. перекомпилять и переинсталить всё ядро - не обязательно.
Однако, может возникнуть ситуация, что от этих новых модулей станут зависить другие. Тогда можно сделать make modules_install и перегрузить зависимые модули.

PS. перегружать тачку с линуксом нужно только когда меняется само ядро. в 99% остальных случаев перегруз не требуется.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - By UncleAndy Date 07.12.04 12:36
Не. Я рассуждаю по другому.
Если есть необходимость перекомпилировать дерево исходников ядра, то тут нет 100% гарантии, что просто установка модулей будет работать.
А для всех модулей, которым перекомпиляция ядра не обязательна, обычно есть возможность скомпилировать их отдельно.
Для установки модулей на удаленном сервере это критично.
Дядюшка Энди
Parent By LOE (Site/forum admin) Date 07.12.04 12:47
Про не 100%-ю гарантию я и упомянул в словах, что может возникнуть обратная зависимость "штатных" модулей от "новых"
Но, повторюсь, в 99% можно сделать make modules && make modules_install и юзать вновь появившиеся модули. Без перезагрузок.

А если модуль подготовлен к компиляции отдельно, то тогда исходники ядра не обязательны. Нужны только ядреные include'ы
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - By DMSSAN Date 10.12.04 14:37
Как вообще ядро перекомпилить и в каких случаях это нужно? Какие могут быть опасности?...
Parent By LOE (Site/forum admin) Date 10.12.04 16:29
Перекомпиляция ядра описана в /usr/doc/Linux-HOWTOs/Kernel-HOWTO
Нужна для дого, чтобы перекомпилировать или "под себя" (в дистрибутивных ядрах как правило много лишнего вкомпилено), или после наложения нужных патчей.
В любом случае к процессу перекомпиляции ядра надо подходить очень ответственно и быть подготовленным к этой операции.
Опасностей много. Хотя бы то, что можно так наконфигурировать, что отключится поддержка твоего "железа".
При неаккуратной инсталяции своего ядра, можно добиться незагружаемой системы (поможет только физический доступ к компу и загрузка, например, с СД)

И не забывай. Мало скомпилить само ядро. Надо еще скомпилить и проинсталировать модули, само ядро положить в нужное место и настроить загрузчик на использование этого нового ядра.

PS. практически во всех дистрибутивах скомпилить-инсталировать ядро можно штатными для дистра командами.
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - By UncleAndy Date 07.12.04 12:53
Кстати, runme сразу требует исходники iptables
Дядюшка Энди
Parent - By LOE (Site/forum admin) Date 07.12.04 12:55
К сожалению да. Хотя не для всех патчей они требуются.
Но когда мне надо было поставить один патч, не затрагивающий iptables, я просто из скрипта runme убрал проверку наличия исходников iptables :-)
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - By UncleAndy Date 07.12.04 13:00
А я его просто вручную поставил в дерево исходников. :-)
Дядюшка Энди
Parent - By UncleAndy Date 07.12.04 13:06
Только это не помогло. :-(
Вот как орет при попытке использования:
iptables v1.2.7a: Couldn't load target `TARPIT':/lib/iptables/libipt_TARPIT.so: cannot open shared object file: No such file or directory
:-(((
Дядюшка Энди
Parent - By LOE (Site/forum admin) Date 07.12.04 13:32
И при чем тут ядро?
Апгрейдь iptables сам по себе.

PS:
$ iptables --version
iptables v1.2.11

PPS. опять-же: ./configure && make && make install
перегрузки не требуется
iptables - userspace утилита, только и всего
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - By UncleAndy Date 07.12.04 13:34
Т.е. я так понял, что мой iptables просто слишком стар для pom?
Или его в любом случае надо апгрэйдить?
Дядюшка Энди
Parent By LOE (Site/forum admin) Date 07.12.04 13:36
да
"No! Try not! Do. Or do not. There is no try." -- Yoda
Parent - By DMSSAN Date 10.12.04 14:35
Здравствуйте.. Ну и разговор вы там завели. У меня проблемы намного приземленнее.. Главным образом не в понимании, а в неумении.
Вопросики по прочитанному: Я ставил iptables 1.2.7a  вместе с Линуксом, а под исходниками я понимаю всякие сорсы и хедеры, которые нужно компилить, о них ли идет постоянно речь в диалоге?

runme - это прединсталяционный скрипт типа ./configure? Как он запускается вообще? И что это за base, extra?

Где лежат исходники ядра, на инсталяционном диске? И зачем и в каком виде они будут нужны?

KERNEL_DIR=<<where-you-built-your-kernel>> \
IPTABLES_DIR=<<where-the-source-of-iptables>> \
Что делают эти команды?

Команда make configmenu может запускаться в любых случаях? У меня на нее ругается, что нет таких целей.
Parent By LOE (Site/forum admin) Date 10.12.04 16:23
Ндя.
У тебя именно полное непонимание. До неумения дело еще не дошло ;-)

По порядку.
iptables 1.2.7a - устарели. Необходимо обновить до версии 1.2.11 (желательно штатным для дистрибутива методом - обновлением пакета, хотя если потребуется патчить исходники - то заодно новую версию и скомпилишь)

Исходники - да, исходные тексты программ

runme - это скрипт, который делает всю "черную" работу накладывания патчей на исходники ядра и (при необходимости) iptables

Исходники ядра изначально лежат в архиве. В распакованом виде лежат в /usr/src (например /usr/src/linux-2.4.28 и создана символическая ссылка на этот каталог с именем linux)
Т.е. /usr/src/linux должен содержать исходники ядра (для 2.4.x - примерно 150-200 мегабайт)

>KERNEL_DIR=<<where-you-built-your-kernel>> \
>IPTABLES_DIR=<<where-the-source-of-iptables>> \
>Что делают эти команды?


Эти команды присваивают переменным значения. Скрипт runme по этим переменным находит исходники.

Для конфигурирования ядра необходимо в каталоге /usr/src/linux запустить команду make menuconfig

PS. Возьми ты наконец практически любую книжку по линуксу и почитай общие принципы.
По конфигурированию-компиляции-инсталляции ядра почитай /usr/doc/Linux-HOWTOs/Kernel-HOWTO (или аналогичный в твоем дистре)
"No! Try not! Do. Or do not. There is no try." -- Yoda
Previous Next Up Topic Администрирование / Общее администрирование / Patch-o-matic//.. (35213 hits)

Powered by mwForum 2.12.0 © 1999-2007 Markus Wichitill

Page created in 0.076s with 10 database queries.