rpm规范文件中的chkconfig命令

时间:2011-03-21 09:04:10

标签: rpm rpmbuild

我想在rpm spec文件的%install部分中使用'chkconfig --del NetworkManager'命令。如果我包含此命令,rpm正在构建正常但是当我安装该rpm时,它看起来命令没有被执行。安装完成后,我使用'chkconfig --list'命令验证并观察到服务一直运行。

这是我正在使用的spec文件。请让我知道我错了。

%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

3 个答案:

答案 0 :(得分:8)

好的,得到了​​答案。我应该从%post部分而不是%install部分发出chkconfig命令。

答案 1 :(得分:2)

实际上,我认为你的回答是错误的......

首先,您要/sbin/chkconfig NetworkManager off干净地关闭它; --del将其从chkconfig控件中删除。

其次,这只是在下次重启时停止运行。要停止当前运行的实例,您需要调用/sbin/service NetworkManager stop

但是,%install部分不在目标计算机上运行,​​只在构建计算机上运行。 %post是放置我上面两个命令的适当位置。

答案 2 :(得分:-1)

你也可以依赖提供网络管理员的任何东西。