LINUX.ORG.RU

Поддержка %config % noreplace в spec-файле Fedora 10

 rpm fedora10


0

1

Добрый день! Не подскажете spec-файл, секция %file в Fedora 10 поддерживает %config %noreplace? Пытаюсь сделать так, чтобы конфигурационный файл при установке не перезаписывал старый, а создавался как новый с расширением .rpmnew (Ожидаемое действие директивы %noreplace). Выполняю rpmbuild -bb my.spec и наблюдаю RPM build errors: File must begin with «/»: %noreplace Мой spec-файл:

Summary: First rpm on Fedora 10 Name: program Version: 2.4.8 Release: 5 License: GPL Group: User Interface/Desktops Buildroot: %{_tmppath}

%description My first rpm on Fedora 10

%files /usr/local/SormDecoder/file2 %config %noreplace /usr/local/program/cfg/file.cfg %config(noreplace)/usr/local/program/cfg/file1.cfg

Кстати, %{_tmppath} тоже не проходит, инсталляционные файлы все равно необходимо помещать в папку /root/rpmbuild/BUILDROOT/program-2.4.8-5юч86_64

Заранее большое спасибо!


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

Собственно, он очень простой и так и выглядит:

Summary: First rpm on Fedora 10 Name: program Version: 2.4.8 Release: 5 License: GPL Group: User Interface/Desktops Buildroot: %{_tmppath} %description My first rpm on Fedora 10 %files /usr/local/program/file2 %config(noreplace) /usr/local/program/cfg/file1.cfg

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

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

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

Практическим путем выяснилось следующее, очевидно, это орректное поведение утилиты rpm для файла пмеченного %config(noreplace) : 1. Если [файл в старой версии пакета] не совпадает с отредактированным пользоваиелем и не совпадает с [файл в новой версии пакета] - файл отредактированный пользователем не перезаписывается, создается новый файл с расширением .rpmnew 2. Если [файл в старой версии пакета] совпадает с отредактированным пользоваиелем и не совпадает с [файл в новой версии пакета] - файл перезаписывается, заменяется на файл новой версии 3. Если [файл в старой версии пакета] не совпадает с отредактированным пользоваиелем и совпадает с [файл в новой версии пакета] - файл отредактированный пользователем не перезаписывается, не создается нового файла с расширением .rpmnew, просто остается один отредактированный файл.

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

Спасибо большое! В смысле, лучше не использовать? Параметр, задающий корневую папку в Fedora 10 игнорируется, то есть место, в которым мы моделируем иерархию директорий, куда будут устанвлены файлы жестко закреплено системой, изменить его нельзя и смысла что-то задавать в Buildroot нет?

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

У меня тут еще возник вопрос, не по теме, но все же. Хочу объединить несколько rpm в одном rpm. То есть в секции %files не просто файлы, а rpm-пакеты. Никаких особых случаев тут возникать не должно?Что-то у меня вроде все rpm-расположены там, где надо и все равно не работает...Пишет: Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/Cluster-2.6-1.x86_64 error: Installed (but unpackaged) file(s) found: /usr/local/first-0.1-60.x86_64.rpm /usr/local/second-0.1-93.x86_64.rpm /usr/local/third-2.6.1-1287.x86_64.rpm

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

Хочу объединить несколько rpm в одном rpm

Честно говоря, создается впечатление, что Вы идете неправильным путем. Для чего нужно объединять несколько rpm в одном? Если хочется сделать метапакет, то взгляните, к примеру, на spec-файл из wine-*.src.rpm

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

как можно организовать пользовательский ввод в rpm?

Никак; по замыслу авторов, rpm предназначен для автоматического развертывания программного обеспечения (или любых файлов, упакованных в rpm-пакеты). И опять возникает встречный вопрос — зачем? Скажите, чего Вы хотите добиться, а я постараюсь подсказать, как это сделать

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

Вообще идея была вот в чем:имеется решение,оформленное в один rpm, состоящее из нескольких rpm пакетов(а имеенно трех), пользователь вводить режим установки решения(допустим, требуется установить два rpm на один сервер,а третий на другой). В зависимости от ввода пользователя дефайнятся разные макросы,а потом проверятся,если определен один макрос устанавливать такой-то пакет,если другой-такой-то пакет.

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

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

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