2011-03-21 87 views
9

我想在rpm spec文件的%install部分使用'chkconfig --del NetworkManager'命令。如果我包含這個命令,rpm就可以正常生成,但是當我安裝該rpm時,它看起來該命令沒有得到執行。安裝完成後,我使用'chkconfig --list'命令進行了驗證,並觀察到服務正在運行。rpm spec文件中的chkconfig命令

這是我使用的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 
+0

基本上我想創建一個rpm包來禁用網絡管理器(chkconfig --del NetworkMnager)。請告知正確的spec文件。 – Souvik 2011-03-21 09:16:43

回答

8

好的,得到了​​答案。我應該從%post部分發出chkconfig命令,而不是%install部分。

2

其實,你的答案是錯的,我認爲......

首先,你想要做/sbin/chkconfig NetworkManager off關閉它乾淨; --del將其從chkconfig控制中移除。

其次,它只是在下次重新啓動時停止運行。要停止當前正在運行的實例,您需要致電/sbin/service NetworkManager stop

但是,是的,%install部分不在目標機器上運行,僅在生成機器上運行。 %post是放置上述兩個命令的適當位置。

-1

你可能會依賴任何提供網絡管理員。

+0

這是什麼意思? – 2014-04-08 01:36:19

+1

如果/etc/init.d/NetworkManager不存在,則RPM安裝/卸載將失敗,此服務文件是Network Manager軟件包的一部分,因此您的RPM對Network Manager軟件包具有運行時依賴性。 – user318904 2014-04-09 02:31:18

相關問題