Некоторые версии 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.
Нет, нельзя. Вы можете использовать макросы в %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