2011-03-21 5 views
9

rpm 사양 파일의 % install 섹션에서 'chkconfig --del NetworkManager'명령을 사용하고 싶습니다. 이 명령을 포함 시키면 rpm이 잘 구축되지만 rpm을 설치할 때 명령이 실행되지 않는 것으로 보입니다. 설치 후 'chkconfig --list'명령을 사용하여 확인하고 서비스가 실행될 때까지 지켜 보았습니다.rpm 사양 파일의 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

기본적으로 네트워크 관리자 (chkconfig --del NetworkMnager)를 비활성화하는 rpm 패키지를 만들고 싶습니다. 올바른 사양 파일을 알려주십시오. – Souvik

답변

8

네, 답있어. % install 섹션 대신 % post 섹션에서 chkconfig 명령을 실행해야합니다.

2

사실, 당신의 대답은 내 생각은 잘못된 것입니다 ...

먼저 깨끗하게을 해제 /sbin/chkconfig NetworkManager off을 수행 할; --delchkconfig 컨트롤에서 제거합니다.

둘째, 다음 번에 다시 부팅 할 때 중지됩니다. 현재 실행중인 인스턴스를 중지하려면 /sbin/service NetworkManager stop으로 전화해야합니다.

그러나 예, %install 섹션은 대상 시스템에서만 실행되며 빌드 시스템에서는 실행되지 않습니다. %post은 위의 두 명령을 입력 할 수있는 적절한 위치입니다.

-1

네트워크 관리자를 제공하는 서비스에 의존 할 수도 있습니다.

+0

이것은 무엇을 의미합니까? –

+1

/etc/init.d/NetworkManager가 없으면 RPM 설치/제거가 실패합니다.이 서비스 파일은 네트워크 관리자 패키지의 일부이므로 RPM은 네트워크 관리자 패키지에 런타임 종속성을가집니다. – user318904