Команда chkconfig в файле спецификаций rpm

Я хотел бы использовать команду «chkconfig --del NetworkManager» в разделе %install файла спецификаций rpm. Если я включаю эту команду, rpm работает нормально, но когда я устанавливаю этот rpm, похоже, что команда не выполняется. После установки я проверил с помощью команды «chkconfig --list» и заметил, что служба все еще работает.

Вот файл спецификации, который я использую. Пожалуйста, дайте мне знать, если я ошибаюсь.

%define name disable_network-manager
%define version 1.0
%define release fc

Name:       %{name}
Version:    %{version}
Release:    1%{?dist}
Summary:    Includes the script to disable Network Manager services

Group:      Development/Other
License:    GPL
URL:        www.abcd.com
Source0:    %{name}-%{version}.tar.gz
BuildRoot:  %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

%description
sample text.

%prep
%setup -q

#%build

%install
/sbin/chkconfig --del NetworkManager
rm -rf $RPM_BUILD_ROOT
install -m 0755 -d $RPM_BUILD_ROOT/usr/bin
install -m 0755 enablenm.sh $RPM_BUILD_ROOT/usr/bin/enablenm.sh

%clean
rm -rf $RPM_BUILD_ROOT


%files
/usr/bin/enablenm.sh

person Souvik    schedule 21.03.2011    source источник
comment
По сути, я хотел бы создать пакет rpm, который отключит сетевой менеджер (chkconfig --del NetworkMnager). Посоветуйте правильный файл спецификации.   -  person Souvik    schedule 21.03.2011


Ответы (3)


Хорошо, получил ответ. Я должен был выполнить команду chkconfig из раздела %post вместо раздела %install.

person Souvik    schedule 21.03.2011

На самом деле, ваш ответ неверен, я думаю...

Во-первых, вы хотите сделать /sbin/chkconfig NetworkManager off, чтобы отключить его начисто; --del удаляет его из-под контроля chkconfig.

Во-вторых, это просто останавливает его запуск при следующей перезагрузке. Чтобы остановить запущенный в данный момент экземпляр, вам нужно вызвать /sbin/service NetworkManager stop .

Но да, раздел %install не запускается на целевой машине, только на машине сборки. %post — правильное место для размещения двух приведенных выше команд.

person Aaron D. Marasco    schedule 09.07.2011

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

person user318904    schedule 07.04.2014
comment
Установка/удаление RPM завершится ошибкой, если /etc/init.d/NetworkManager отсутствует, этот служебный файл является частью пакета Network Manager, поэтому ваш RPM во время выполнения зависит от пакета Network Manager. - person user318904; 09.04.2014