Как собирать rpm-пакеты

Cent OS, Scientific Linux

Модератор: Модераторы разделов

Ответить
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)
Контактная информация:

Как собирать rpm-пакеты

Сообщение sunny1983 »

Хочу научиться собирать rpm-пакеты.
Цель не только научиться, есть практическая задача. Есть значит дистрибутив CentOS 7, нужно чтобы в системе работал netflow-сенсор ipt-netflow, для этого нужно собрать модуль ядра ipt-netflow и обновить iptables, в репозитории есть iptables версии 1.4.21, нужна последняя версия 1.6.0.
Лезу в гугл, и нахожу основной HOWTO по сборке rpm, а также материал с доп. инфой по макросам:
http://rpm.org/documentation.html
https://fedoraproject.org/wiki/How_to_create_an_RPM_package
https://fedoraproject.org/wiki/Packaging:RPMMacros
Лезу ещё и нахожу статьи по теме нарусском:
http://wiki.russianfedora.pro/index.php?ti...здать_пакет_RPM
https://www.opennet.ru/base/sys/rpm_create.txt.html
https://habrahabr.ru/post/246177

Итак, если я правильно понимаю тему, мне для этого нужны исходники и все зависимости, а также spec-файл, в нём есть все описания пакета, коды пред и постинсталяционных скриптов, и, самое главное , секции: %prep, %build, %install и %clean, в которых описываются вехи процесса сбохки пакета, обрабатываются эти секции как код обычных bash-скриптов, с включёнными в него макросами и переменными, начинающихся с символа "%". В домашнем каталоге пользователя (так проще при пересборке src.rpm) создаётся каталог rpmbuild, в нём подтаталоги: SOURCES, SPECS, BUILD, RPMS, SRPMS, SPEC-файлы помещаются в SPECS, архивы исходников в SOURCES.
Сейчас я пытаюсь написать spec-файл для iptables версии 1.6.0, в качестве образца беря spec-файл для версии 1.4.21. Сразу скажу, я не программист, поэтому возможно что-то понимаю не так. Что-то в образцовом spec-файле мне непонятно, из-за чего у меня появляется желание упростить код, выкинув из него то, что мне кажется лишним.

Секция %prep: я решил заменить макрос %setup на то, что он делает, что сделать код понятным для себя. Также я выкидываю из кода всё, что касается патчей, потому что в образцовом spec-файле это были патчи для версии 1.4.21, а я собираю 1.6.0. Итак, у меня получается:

Код: Выделить всё

%prep
cd %{_builddir}
rm -Rf %{name}-%{version}
tar --extract --file=%{_sourcedir}/%{name}-%{version}.tar.bz2
if [ $? -ne 0 ]; then
  exit $?
fi
cd %{name}-%{version}
chown -R root:root .
chmod -R u=rwX,g=rX,o=rX .

Собирать пакет буду из-под пользователя, но тут в сценарии я вижу одну команду, выполнение которой возможно только из-под рута, это "chown -R root:root .", я так понимаю что утилита rpmbuild, которая вызывает процесс сборки, будет вызывать fakeroot, иначе ведь ничего не получится.

Секции %build и %install: программа, которую я собираю, собирается при помощи стандартной трёхкомандной комбинации: «./configure», «make», «make install», собственно это и должно выполняться в этих секциях. Но я вижу в образцовом spec-файле много другого кода, например что делают эти две строки?

Код: Выделить всё

sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool

Или вот, зачем перед вызовом make удалять types.h?

Код: Выделить всё

rm -f include/linux/types.h

И что за переменная %{?_smp_mflags} такая?

Код: Выделить всё

make %{?_smp_mflags}

Вообще, в вышеописанных материалах макросы и переменные описаны не полностью.
Дальнейшие секции пока не разбирал.
А как делать, если нужно опакетить программу, собирающуюся не методом трёхкомандной комбинации, а через инсталлятор, например проприетарный драйвер nvidia, я вообще без понятия.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как собирать rpm-пакеты

Сообщение Bizdelnick »

sunny1983 писал(а):
19.12.2016 19:57
В домашнем каталоге пользователя (так проще при пересборке src.rpm) создаётся каталог rpmbuild

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

sunny1983 писал(а):
19.12.2016 19:57
Секция %prep: я решил заменить макрос %setup на то, что он делает, что сделать код понятным для себя.

Зря. Очень зря. Это весьма непростой макрос (а если честно и откровенно, то и не макрос вовсе), и выкидывать его не нужно. Вообще макросы выкидывать не нужно, потому что они избавляют от массы лишней работы при сопровождении пакета, но именно %setup выкидывать не следует ни при какой погоде. В частности, он определяет ряд других макросов.

sunny1983 писал(а):
19.12.2016 19:57
тут в сценарии я вижу одну команду, выполнение которой возможно только из-под рута, это "chown -R root:root ."

Откуда она там взялась? На фиг не нужна.

sunny1983 писал(а):
19.12.2016 19:57
что делают эти две строки?

Правят скрипт libtool. Вторая, по всей видимости, нужна, чтобы изничтожить DT_RPATH, насчёт первой — затрудняюсь сказать, видимо, приводит какие-то параметры сборки в соответствие с дистрибутивными правилами.

sunny1983 писал(а):
19.12.2016 19:57
зачем перед вызовом make удалять types.h?

Видимо чтобы использовался системный. Непонятно, зачем он тут понадобился.

sunny1983 писал(а):
19.12.2016 19:57
И что за переменная %{?_smp_mflags} такая?

Как правило это -j<число процессорных ядер>. См. rpm --eval='%{_smp_mflags}'. А вообще много интересного о макросах можно узнать из вывода rpm --showrc.

P. S. Единственная вменяемая дока, которая существует — Maximum RPM. Но её недостаточно, надо читать ещё и дистрибутивные руководства, чтобы понять, почему что-то в данном конкретном дистрибутиве делается именно так, а не иначе. Применительно к CentOS надо читать руководства от Федоры, но учитывать, что они часто меняются и, возможно, иногда следует ориентироваться на более старые версии.

P. P. S. В хабрапесочнице полнейший треш.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Как собирать rpm-пакеты

Сообщение Stauffenberg »

Я советую использовать OpenBuildService. Никаких проблем с созданием окружения (нужная архитектура, нужный дистрибутив), отслеживанием зависимостей, да и собраный rpm останется там в вашем домашнем каталоге (всегда будет доступен всем аля cloud).
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Как собирать rpm-пакеты

Сообщение Vascom »

sunny1983 писал(а):
19.12.2016 19:57
Хочу научиться собирать rpm-пакеты.
...
А как делать, если нужно опакетить программу, собирающуюся не методом трёхкомандной комбинации, а через инсталлятор, например проприетарный драйвер nvidia, я вообще без понятия.

Можем проконсультировать в режиме реального времени в чате телеграм Russian Fedora или jabber-комнате fedora на conference.jabber.ru.
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)
Контактная информация:

Re: Как собирать rpm-пакеты

Сообщение sunny1983 »

Bizdelnick писал(а):
19.12.2016 20:57
Зря. Очень зря. Это весьма непростой макрос (а если честно и откровенно, то и не макрос вовсе), и выкидывать его не нужно. Вообще макросы выкидывать не нужно, потому что они избавляют от массы лишней работы при сопровождении пакета, но именно %setup выкидывать не следует ни при какой погоде. В частности, он определяет ряд других макросов.

Тогда я не очень понимаю что он делает. Распаковывает исходники, упакованные архиватором tar и сжатые компрессором bzip2? А если сжаты компрессором gzip - распакует? А если xz? И как именно он "определяет ряд других макросов"
Дальше смотрю. Смысл секции %build понятен, установить программу во временный каталог и упаковать. Установка во временный каталог усуществляется командой "make install DESTDIR=%{buildroot}". Собственно эти опции и параметры: install, clean, -j<число ядер>, DESTDIR откуда они берутся? Они в Makefile прописаны? То есть для сборки пакетов нужно ещё и знать язык make-сценариев?
Опять же, есть ведь программы, которые устанавливаются без трёхкомандной комбинации «./configure», «make», «make install», там make нет вообще и, как я понимаю, методика написания spec-файлов должна быть совершенно другой. Есть пакеты, которые при установке просто распаковываются, а есть такие в процессе установки которых запускаются прединсталяционный и постинсталяционный скрипты, я так понимаю, скрипты нужны, когда необходимо изменить конфиг устанавливаемой или связанных программ, например прописать в скрипте условие, чтобы конфиг записывался только при его отсутствии, чтобы не происхзодила перезапись при обновлении.
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Как собирать rpm-пакеты

Сообщение Vascom »

Да, распаковывает практически любые архивы.

В секции %build и %install таргеты и параметры находятся в Makefile. Но если программа собирается не через make, то команды могут быть другими.
Знать язык make-файлов полезно, но не обязательно.

Например http://pkgs.rpmfusion.org/cgit/free/ffmult...iconverter.spec
Программа на питоне использует свои команды в этих секциях:

Код: Выделить всё

%build
%py3_build

%install
%py3_install

Соответственно эти макросы раскрываются так:

Код: Выделить всё

$ rpm --eval %py3_build

CFLAGS="-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic" /usr/bin/python3 setup.py  build --executable="/usr/bin/python3 -s"

Код: Выделить всё

$ rpm --eval %py3_install

CFLAGS="-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic" /usr/bin/python3 setup.py  install -O1 --skip-build --root /home/vascom/rpmbuild/BUILDROOT/%{name}-%{version}-%{release}.x86_64
Спасибо сказали:
HorekRediskovich
Сообщения: 125

Re: Как собирать rpm-пакеты

Сообщение HorekRediskovich »

Просмотрев тему лишний раз убедился что средне статистический сисадмин хрен соберет пакет, это отдельная профессия сборщик пакетов.
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Как собирать rpm-пакеты

Сообщение Vascom »

Да ну нет.
Если программа простая, разобраться в написании спека - дело одного-двух дней. Ну и полчаса на сборку самого пакета.

Просто федора старается следовать стандартам, соблюдать критерии качества пакетов, не допускать мусора и халтуры, потому предъявляет повышенные требования к спек-файлам и маинтейнерам.
Конечно можно (при сборке пакета для себя нелюбимого) не использовать флаги оптимизации, макросы, скриптлеты... Но людям такой пакет лучше не показывать - засмеют.
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Как собирать rpm-пакеты

Сообщение Stauffenberg »

HorekRediskovich писал(а):
27.12.2016 14:58
Просмотрев тему лишний раз убедился что средне статистический сисадмин хрен соберет пакет, это отдельная профессия сборщик пакетов.

Во всех фирмах, где я работал, сборка пакетов это один из заключительных шагов в цикле разработки ПО. Да, это на плечах software engineer'ов, или на крайняк DevOps, но не админов.
Ну а по поводу того, что это сложно... выше я упоминул о OBS, но ТС, по-видимому, хочет собирать именно в ручную, отказываясь от технологий, специально для упрощаюения этого процесса.

Vascom писал(а):
27.12.2016 15:13
Просто федора старается следовать стандартам, соблюдать критерии качества пакетов, не допускать мусора и халтуры, потому предъявляет повышенные требования к спек-файлам и маинтейнерам.

Не смешите :)
Как Вы к этому пришли?
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Как собирать rpm-пакеты

Сообщение Vascom »

Stauffenberg писал(а):
27.12.2016 16:46
Не смешите :)

Не ёрничайте.
С чем конкретно не согласны из сказанного?
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)
Контактная информация:

Re: Как собирать rpm-пакеты

Сообщение sunny1983 »

Stauffenberg писал(а):
27.12.2016 16:46
ТС, по-видимому, хочет собирать именно в ручную, отказываясь от технологий, специально для упрощаюения этого процесса.

Я не отказываюсь от использования технологий, я просто воздержусь от использования кода, который я не понимаю.
А если упрощать, то мне уже checkinstall посоветовали использовать.
Испольнение федоровских или центосных правил для меня нафиг нафиг не нужно, пакеты нужны лично мне, показывать и предлагать другим я их не собираюсь.
Вот у меня под юзером успешно скомпилировалась программа после "./configure" и "make". "sudo checkinstall make install" выполнить можно? Не возникнет ли в системе проблем, если я регулярно буду устанавливать программы таким способом? Или лучше сначала всякий раз в контейнере или виртуалке прогонять?
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Как собирать rpm-пакеты

Сообщение Vascom »

При установке программ таким способом проблемы возникнут обязательно рано или поздно. Это превратит систему в помойку.
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2042
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: Как собирать rpm-пакеты

Сообщение Stauffenberg »

А если упрощать, то мне уже checkinstall посоветовали использовать.

Если Вам действительно это использовать легче, чем OBS, то... не буду Вас сбивать.

sunny1983 писал(а):
27.12.2016 17:54
Или лучше сначала всякий раз в контейнере или виртуалке прогонять?

Вам нужен модуль ядра. Как же Вы хотите тестировать модуль ядра, если контейнеры не содержат ядра?
Конечно VM. И не забудьте, что виртуальные ядра никогда не дают 100% гарантии, что эффект бужет такой же на обычном ядре.

Изображение
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как собирать rpm-пакеты

Сообщение Bizdelnick »

sunny1983 писал(а):
26.12.2016 19:55
Тогда я не очень понимаю что он делает. Распаковывает исходники, упакованные архиватором tar и сжатые компрессором bzip2? А если сжаты компрессором gzip - распакует? А если xz? И как именно он "определяет ряд других макросов"

Распакует.
Как определяет... Ну примерно так же, как это делают %define и %global. Но обычный макрос (который Вы можете сами определить через тот же %define или %global) на такое не способен, потому я и написал, что %setup — на самом деле не макрос. Главное, что он определяет — это макрос, в котором прописан каталог, куда распакованы исходники, и где будет происходить сборка (навскидку не помню, как он называется, напрямую он в спеке никогда не используется). Может и ещё что-то, честно говоря, я просто не в курсе.

sunny1983 писал(а):
26.12.2016 19:55
Смысл секции %build понятен, установить программу во временный каталог и упаковать.

Нет, смысл секции %build — скомпилировать исходники. Установка производится в секции %install, а упаковка напрямую никакой секции не соответствует, в ней используется информация из %files, заголовков, скрипты и множество костылей, генерирующих зависимости и творящих прочую магию.

sunny1983 писал(а):
26.12.2016 19:55
Собственно эти опции и параметры: install, clean, -j<число ядер>, DESTDIR откуда они берутся? Они в Makefile прописаны? То есть для сборки пакетов нужно ещё и знать язык make-сценариев?

install и clean — это цели make. Они определяются в мейк-файле, но именно эти вполне стандартные. Они гарантированно есть, если для сборки используется autotools, cmake или что-то наподобие. DESTDIR — переменная, которая используется для указания, в какой каталог будет производиться установка. Её использование прописано (или не прописано) в мейкфайле. Хотя она тоже довольно стандартная, но на практике мейк-файлы без неё встречаются чаще, чем без целей install и clean. В частности, в случае autotools и cmake она есть, а вот (боюсь соврать, давно с этим не возился...) qmake вроде бы генерит мейк-файлы, в которых для этой же цели используется другая переменная. Если же мейк-файл не сгенерированный, а написанный вручную, то там может и вовсе не быть предусмотрено способа установки в альтернативный каталог.

sunny1983 писал(а):
26.12.2016 19:55
Опять же, есть ведь программы, которые устанавливаются без трёхкомандной комбинации «./configure», «make», «make install», там make нет вообще и, как я понимаю, методика написания spec-файлов должна быть совершенно другой.

Методика всегда одна и та же. Нужно в секции %prep подготовить каталог с исходниками, в секции %build их скомпилировать и в секции %install установить в %{buildroot}. То, как это делается, может отличаться, но это уже детали. Если ничего не компилируется, то секция %build может быть пустой. В принципе пустой может быть и секция %prep, но это уже совсем экзотика.
Насчёт ./configure, make и make install — долгая история. В начале был make — довольно простой инструмент для написания сценариев сборки. Он и сейчас частенько используется отдельно от всяких обёрток, а иногда вместо этого пишут обычные шелл-скрипты. Но у make есть один существенный недостаток — на нём очень сложно писать сценарии, которые были бы переносимыми, потому что у разных компиляторов разные опции, в разных ОС разные инструменты и разные пути, где всё лежит, и т.п. Поэтому стали писать скрипты, которые генерировали мейк-файлы под ту систему, на которой запускались. В итоге появилось мноожество довольно навороченных сборочных систем. Одна из наиболее распространённых — autotools, крайне монструозный набор костылей, обращение с которыми для пользователя сводится как раз к ./configure && make && make install. Есть и другие, нипример cmake, которые могут создавать как мейк-файлы, так и сценарии для других инструментов, похожих на make (ninja например); а есть и такие, которые обходятся без make вообще (скажем, Boost.Build, он же b2, он же bjam). В общем, всё сложно.

sunny1983 писал(а):
26.12.2016 19:55
Есть пакеты, которые при установке просто распаковываются, а есть такие в процессе установки которых запускаются прединсталяционный и постинсталяционный скрипты, я так понимаю, скрипты нужны, когда необходимо изменить конфиг устанавливаемой или связанных программ, например прописать в скрипте условие, чтобы конфиг записывался только при его отсутствии, чтобы не происхзодила перезапись при обновлении.

Скрипты могут быть нужны для разных целей. Самый распространённый в федоре/шапке случай — запуск /sbin/ldconfig после установки/удаления библиотек. В других дистрибутивах его добавление автоматизировано, и явно его прописывать не надо. Если устанавливается системный сервис (в случае centos 7 — сервис systemd), надо дать команду, которая должным образом зарегистрирует его в системе при установке и, может быть, запустит, если оно надо, перед удалением — остановит, а при обновлении — перезапустит, если он работал. Иногда в скриптах также генерируются файлы, которые должны быть на каждой машине свои, например ключи шифрования. В общем, вариантов очень много, но, за исключением ldconfig, ничего такого, о необходимости чего нельзя было бы догадаться самостоятельно, нет. А догадавшись, следует заглянуть в вики федоры и посмотреть, что же конкретно там рекомендуют прописывать.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
HorekRediskovich
Сообщения: 125

Re: Как собирать rpm-пакеты

Сообщение HorekRediskovich »

Stauffenberg писал(а):
27.12.2016 16:46
HorekRediskovich писал(а):
27.12.2016 14:58
Просмотрев тему лишний раз убедился что средне статистический сисадмин хрен соберет пакет, это отдельная профессия сборщик пакетов.

это на плечах software engineer'ов, или на крайняк DevOps, но не админов.

Согласен, но вот есть ситуация когда надо собрать пакет для себя тот же openssh свеженький, так как в репозиториях он чересчур уж старый.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как собирать rpm-пакеты

Сообщение Bizdelnick »

HorekRediskovich писал(а):
28.12.2016 11:03
Согласен, но вот есть ситуация когда надо собрать пакет для себя тот же openssh свеженький, так как в репозиториях он чересчур уж старый.

Обновление существующего пакета — куда более простая задача, чем сборка с нуля. А чего такого в свеженьком openssh, чего в нём не было пару лет назад, и без чего нельзя жить? Или в Вашем дистрибутиве обновления безопасности не выходят?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
HorekRediskovich
Сообщения: 125

Re: Как собирать rpm-пакеты

Сообщение HorekRediskovich »

Bizdelnick писал(а):
28.12.2016 11:20
HorekRediskovich писал(а):
28.12.2016 11:03
Согласен, но вот есть ситуация когда надо собрать пакет для себя тот же openssh свеженький, так как в репозиториях он чересчур уж старый.

Обновление существующего пакета — куда более простая задача, чем сборка с нуля. А чего такого в свеженьком openssh, чего в нём не было пару лет назад, и без чего нельзя жить? Или в Вашем дистрибутиве обновления безопасности не выходят?

Выходят, да в принципе всё по старому, просто мой гуру который меня изначально натаскивал, на своих серверах пересобирал openssh с целью извенить версию ssh сервера, ну к примеру реально пакет идет с версией 5.6 а он делал 5.2 или вообще 4.4, так как ssh пытаются проломить все же боты а не реальный человек, вот и получается что он видит версию к примеру 5.2 и пытается уязвимостями к 5.2 проломить сервак а фигушки ему так как там в реале стоит версия 5.6 в которой эти уязвимости уже пофиксины но не факт конечно. И тем самым повышается безопасность сервера, этакая защита от дурака. Но это было давненько, как он сейчас делает я не знаю давно его не видел.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как собирать rpm-пакеты

Сообщение Bizdelnick »

Гуру не из Бобруйска родом?

HorekRediskovich писал(а):
28.12.2016 12:44
тем самым повышается безопасность сервера, этакая защита от дурака

Безопасность — это защита от умного. А такие извращения — бесполезная трата времени, риск заполучить труднодиагностируемые глюки (и убить ещё больше времени на разбирательство с ними), а также снижение реального уровня безопасности из-за отказа от дистрибутивных обновлений.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)
Контактная информация:

Re: Как собирать rpm-пакеты

Сообщение sunny1983 »

Stauffenberg писал(а):
27.12.2016 20:34
Вам нужен модуль ядра. Как же Вы хотите тестировать модуль ядра, если контейнеры не содержат ядра?
Конечно VM. И не забудьте, что виртуальные ядра никогда не дают 100% гарантии, что эффект бужет такой же на обычном ядре.

Вот я сейчас с виртуалками и эксперементирую, заодно немного поднаторел в KVM и libvirt.
А не подскажите где можно взять готовый образ CentOS 7 в формате raw для быстрого развёртывания на ВМ? Взял готовый образ отсюда http://cloud.centos.org/centos/7/images но повидимому это не совсем то, что мне нужно, у меня же обычный сервер, а не облачный, там какое-то дополнительное ПО для облачных серверов стоит, демон cloud-init и ещё что-то, они постоянно консоль забивают какими-то своими сообщениями.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как собирать rpm-пакеты

Сообщение Bizdelnick »

sunny1983 писал(а):
08.01.2017 13:42
где можно взять готовый образ CentOS 7 в формате raw для быстрого развёртывания на ВМ?

Так установите один раз и используйте этот образ. Если для экспериментов, то никакой магии вроде не требуется (хотя боюсь ошибиться: в некоторых дистрибутивах надо грохнуть файл /etc/udev/rules.d/70-persistent-net.rules). Если для производственных целей, то надо удалить серверные ключи openssh и, вероятно, закостылить их генерацию при загрузке. Только для быстрого развёртывания я советую использовать не raw, а qcow2, и вместо копирования создавать новый образ, использующий готовый как backing image, — тогда развёртывание действительно будет быстрым.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
sunny1983
Сообщения: 357
ОС: GNU/Linux 4.x (Fedora, Debian)
Контактная информация:

Re: Как собирать rpm-пакеты

Сообщение sunny1983 »

Bizdelnick писал(а):
08.01.2017 14:45
Так установите один раз и используйте этот образ.

Установка на ВМ отличается ведь от установки на физическую машину? Раздела на диске хватит и одного и своп не нужен?
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Как собирать rpm-пакеты

Сообщение Vascom »

sunny1983 писал(а):
09.01.2017 17:50
Bizdelnick писал(а):
08.01.2017 14:45
Так установите один раз и используйте этот образ.

Установка на ВМ отличается ведь от установки на физическую машину? Раздела на диске хватит и одного и своп не нужен?

Не бойтесь создавать для разных вопросов новые темы на форуме.
Установка на ВМ не отличается от установки на физическую машину.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Как собирать rpm-пакеты

Сообщение Bizdelnick »

sunny1983 писал(а):
09.01.2017 17:50
Установка на ВМ отличается ведь от установки на физическую машину?

Не сильно.

sunny1983 писал(а):
09.01.2017 17:50
Раздела на диске хватит и одного и своп не нужен?

Смотря как использовать будете. Если есть хоть какие-то сомнения, лучше сделать.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить