2013-08-28 4 views
2

%defattr을 spec 파일에 여러 번 사용할 수 있습니까? Ubuntu 10 (rpm 버전 4.7.1)에서 다음 정의는 /var/log/testdir2에 적용된 777 권한을에 적용합니다. 우분투 12.04.1 (x86_64RPM 버전 4.9.1.1)으로 업그레이드 동일한 명세 파일과 RPM 재생과 같은 대상 시스템에 배포 한 후defattr 동작이 rpm 4.7.2와 4.9.1 사이에서 변경됩니까?

%files 
%defattr(-,root,root,-) 
%dir /var/log/testdir1 
%defattr(777,root,root,-) 
%dir /var/log/testdir2 
%dir %attr(777,root,root) /var/log/testdir3 

는은/var// testdir2 갖는 권한 755 로그 초래 . 위의 을/var/log/testdir3 으로 정의하기 위해 spec 파일을 변경해야합니다. 원하는 권한을 얻으려면 위의 내용을 참조하십시오.

spec 파일의 정의 뒤에 %defattr 정의가 있고 그 뒤에 해당 사용 권한이있는 파일 집합이 있고 그 다음에 또 다른 %defattr 정의와 그 사용 권한이있는 파일 집합이 나옵니다. 그건 허용되지 않습니까? 또는 사용 권한과 관련하여 디렉터리와 파일을 처리하는 방법에는 차이가 있습니까?

답변

3

%defattr은 일반적으로 파일/디렉토리의 기본 속성을 설정하는 데 사용되므로 여러 번 사용하면 이상하게 보입니다. 먼저 %defattr 값을 보자 : %defattr(file perms, user, group, dir perms). 따라서/var/log/testdir3 디렉토리는 디렉토리 권한을 설정하지 않으므로 tarball에서 755 권한을 가지며, 단지 상속 만합니다. 그것은 777에 디렉토리를 설정합니다, 내가 위에서 무엇을 사용

%files 
%defattr(755,root,root,777) 
%dir /var/log/testdir1 
%dir /var/log/testdir2 
%dir /var/log/testdir3 

다음은 소유권 모두 (기본값을 상속 있기 때문에 당신이 755에 열거 된 모든 파일을 설정

이 같은 시도 root.root의).

% dir을 선언 할 때 디렉터리 사용 권한 만 설정하는 것과 같이 로그 dir에 대한 사용 권한을 777로 설정하는 이유는 아직도 조금 혼란 스럽습니다. 파일을 무언가로 설정하려고하지 않습니까? 다른 권한을 가진 특정 디렉토리가 필요하면 %attr 속성을 사용해야합니다.

+0

응답 해 주셔서 감사합니다. 네 말이 맞아, 네 번째 매개 변수 인 dir 권한이 내가 원하는대로하고있다. 다른 권한을 가진 디렉토리 그룹 (파일이 없음)이 있습니다. 각 그룹에는 다른 % defattr 설정이 접두사로 붙습니다. 최근의 os 업그레이드 (rpmbuild의 새 버전) 이후에 내 rpm의 동작이 변경되었지만 % defattr을 처음부터 사용하지 않았던 것 같습니다. 감사. – Glenn

+0

당신을 위해 일하는 것을 보는 것이 기쁩니다! – Forrest