Пользовательские опции при установке RPM с RPMBuild

Некоторые версии CentOS устанавливают net. ipv4.ip_forward на 0 снова при перезапуске сетевой службы (например, с помощью service restart networking).

Точнее говоря, он устанавливается в ноль в разделе stop сценария /etc/init.d/network:

stop)
      [ "$EUID" != "0" ] && exit 4
      # Don't shut the network down if root is on NFS or a network
      # block device.

      # [...]

      action $"Shutting down loopback interface: " ./ifdown ifcfg-lo

      sysctl -w net.ipv4.ip_forward=0 > /dev/null 2>&1

Вы можете отредактировать этот сценарий и удалить или изменить эту строку.

Дополнительную информацию см. в Red Hat Bugzilla Bug 552653.

0
09.10.2018, 18:19
1 ответ

Нет, нельзя. Вы можете использовать макросы в %post. Но они оцениваются во время сборки, и вы можете переопределить их только во время сборки :

.
%{!?foo:%global foo SOME_DEFAULT}

%post
echo %{foo}

Первая строка определяет некоторое значение по умолчанию, когда макрос fooотсутствует.

Тогда можно бежать:

rpmbuild -ba --define='foo bar' evil.spec

где вы определяете свой собственный макрос fooс содержимым bar. После того, как число оборотов построено, все становится каменным, и вы не можете изменить число оборотов в минуту.

Но вы можете сделать что-то вроде:

%post
cat /etc/myconfig.cfg |... #do something based on content of the file

и сообщить пользователю:

echo foo > /etc/myconfig.cfg; rpm -i acme-1.1-1.el7.noarch.rpm
0
28.01.2020, 04:12

Теги

Похожие вопросы