10

我想在 rpm 规范文件的 %install 部分使用“chkconfig --del NetworkManager”命令。如果我包含此命令,则 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
4

3 回答 3

8

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

于 2011-03-21T10:26:48.857 回答
2

其实你的答案是错误的,我认为...

首先,您要/sbin/chkconfig NetworkManager off彻底关闭它;--del将其从chkconfig控制中移除。

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

但是,是的,该%install部分不在目标机器上运行,仅在构建机器上运行。%post是放置我上面的两个命令的正确位置。

于 2011-07-09T14:05:44.603 回答
-1

而且您还不如依赖网络管理器提供的任何东西。

于 2014-04-07T17:07:12.637 回答