私はRPMを使ってターゲットマシンにファイルとディレクトリの束を作ります。私はこのRPMを構築するspecファイルを作成しました。 specファイルには、以下のようになります。rpmbuildは間違ったファイルの所有権を設定しています。root:root(間違った所有者/グループビルド:users)
Name: testMultipleFiles
Version: 1.0
Release: 2
Summary: Demo how to package multiple files
Group: DCCA Deployment
License: GPLv2
Source: testMultipleFiles.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
AutoReqProv: on
%description
Authors:
--------
Name Raj Kumar Sanpui
%prep
%setup -q
%build
%install
mkdir -p $RPM_BUILD_ROOT/opt/insiteone/dir1
mkdir -p $RPM_BUILD_ROOT/opt/insiteone/dir2
mkdir -p $RPM_BUILD_ROOT/opt/insiteone/dir3
mkdir -p $RPM_BUILD_ROOT/opt/insiteone/dir4
mkdir -p $RPM_BUILD_ROOT/opt/insiteone/dir5
mkdir -p $RPM_BUILD_ROOT/opt/insiteone/dir6
mkdir -p $RPM_BUILD_ROOT/opt/insiteone/dir7
mkdir -p $RPM_BUILD_ROOT/opt/insiteone/dir8
mkdir -p $RPM_BUILD_ROOT/opt/insiteone/dir9
mkdir -p $RPM_BUILD_ROOT/opt/insiteone/dir10
install file1.sh $RPM_BUILD_ROOT/opt/insiteone/dir1
install file2.sh $RPM_BUILD_ROOT/opt/insiteone/dir2
install file3.sh $RPM_BUILD_ROOT/opt/insiteone/dir3
install file4.sh $RPM_BUILD_ROOT/opt/insiteone/dir4
install file5.sh $RPM_BUILD_ROOT/opt/insiteone/dir5
install file6.sh $RPM_BUILD_ROOT/opt/insiteone/dir6
%clean
rm -rf $RPM_BUILD_ROOT
%post
%postun
%files
%defattr(644,insite1,insite1,0755)
/opt/insiteone/dir1/file1.sh
/opt/insiteone/dir2/file2.sh
/opt/insiteone/dir3/file3.sh
%attr(644,insite1,insite1)/opt/insiteone/dir4/file4.sh
%attr(644,insite1,insite1)/opt/insiteone/dir5/file5.sh
%attr(644,insite1,insite1)/opt/insiteone/dir6/file6.sh
%dir %attr(777,insite1,insite1)/opt/insiteone/dir4
%dir %attr(700,insite1,insite1)/opt/insiteone/dir5
%dir %attr(644,insite1,insite1)/opt/insiteone/dir6
%dir %attr(640,insite1,insite1)/opt/insiteone/dir7
%dir %attr(600,insite1,insite1)/opt/insiteone/dir8
%dir %attr(744,insite1,insite1)/opt/insiteone/dir9
%dir %attr(644,insite1,insite1)/opt/insiteone/dir10
をしかし、私はこのRPMをビルドするとき、そこには誤りがないとビルドが成功しても、ビルドログは言う:
意味Checking permissions and ownerships - using the permissions files
/tmp/Check.perms.gv6tJD
setting /var/tmp/testMultipleFiles-1.0-build/ to root:root 0755. (wrong owner/group build:users)
setting /var/tmp/testMultipleFiles-1.0-build/opt to root:root 0755. (wrong owner/group build:users)
、それが設定されますユーザーとグループとしてinsite1:insite1の代わりにroot:rootにします。
完全なビルドログです。
[email protected]:~/rpmbuild/SPECS> rpmbuild -bb testmulti.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.14760
+ umask 022
+ cd /home/build/rpmbuild/BUILD
+ cd /home/build/rpmbuild/BUILD
+ rm -rf testMultipleFiles-1.0
+ /usr/bin/gzip -dc /home/build/rpmbuild/SOURCES/testMultipleFiles.tar.gz
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd testMultipleFiles-1.0
++ /usr/bin/id -u
+ '[' 1001 = 0 ']'
++ /usr/bin/id -u
+ '[' 1001 = 0 ']'
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.14760
+ umask 022
+ cd /home/build/rpmbuild/BUILD
+ /bin/rm -rf /var/tmp/testMultipleFiles-1.0-build
++ dirname /var/tmp/testMultipleFiles-1.0-build
+ /bin/mkdir -p /var/tmp
+ /bin/mkdir /var/tmp/testMultipleFiles-1.0-build
+ cd testMultipleFiles-1.0
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.14760
+ umask 022
+ cd /home/build/rpmbuild/BUILD
+ cd testMultipleFiles-1.0
+ mkdir -p /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir1
+ mkdir -p /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir2
+ mkdir -p /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir3
+ mkdir -p /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir4
+ mkdir -p /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir5
+ mkdir -p /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir6
+ mkdir -p /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir7
+ mkdir -p /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir8
+ mkdir -p /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir9
+ mkdir -p /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir10
+ install file1.sh /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir1
+ install file2.sh /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir2
+ install file3.sh /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir3
+ install file4.sh /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir4
+ install file5.sh /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir5
+ install file6.sh /var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir6
+ /usr/lib/rpm/brp-lib64-linux
[email protected]: if you find problems with this script, drop me a note
+ RPM_BUILD_ROOT=/var/tmp/testMultipleFiles-1.0-build
+ export RPM_BUILD_ROOT
+ test -x /usr/sbin/Check -a 1001 = 0 -o -x /usr/sbin/Check -a '!' -z /var/tmp/testMultipleFiles-1.0-build
+ echo 'I call /usr/sbin/Check...'
I call /usr/sbin/Check...
+ /usr/sbin/Check
Checking permissions and ownerships - using the permissions files
/tmp/Check.perms.gv6tJD
setting /var/tmp/testMultipleFiles-1.0-build/ to root:root 0755. (wrong owner/group build:users)
setting /var/tmp/testMultipleFiles-1.0-build/opt to root:root 0755. (wrong owner/group build:users)
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-symlink
Processing files: testMultipleFiles-1.0-2
Finding Provides: /usr/lib/rpm/find-provides testMultipleFiles
Finding Requires: /usr/lib/rpm/find-requires testMultipleFiles
Finding Supplements: /usr/lib/rpm/find-supplements testMultipleFiles
Requires(interp): /bin/sh /bin/sh
Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Requires(post): /bin/sh
Requires(postun): /bin/sh
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/testMultipleFiles-1.0-build
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/testMultipleFiles-1.0-build
Wrote: /home/build/rpmbuild/RPMS/x86_64/testMultipleFiles-1.0-2.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.14760
+ umask 022
+ cd /home/build/rpmbuild/BUILD
+ cd testMultipleFiles-1.0
+ rm -rf /var/tmp/testMultipleFiles-1.0-build
+ exit 0
ご注意:insite1ユーザーおよびグループが事前にターゲットマシンに存在するであろう、RPMがインストールされている、との私のための理由がないとして、それは、RPMのビルドマシンに存在するものではないのです。 insite1それらを作成します。
追加:私はそれがユーザーとグループの存在(insite1:insite1)がターゲットマシンに、適切な権限を持つ微すべてのファイルとディレクトリを強行し、インストールし、観察し、しかし、ディレクトリDIR1、DIR2、及びをdir3はまだrootとして設定されています:rootしかし0755、私はそれがinsite1であることを期待していました:insite1は%defattr
に基づいています。 デフォルトのディレクトリ権限を設定する方法はありませんか?
'dir1'、' dir2'、 'dir3'は' insite1:insite1'でインストールされましたが、 /var/tmp/testMultipleFiles-1.0-build/をrootに設定する:root 0755.(間違ったオーナー/グループビルド:users) ' – kingsmasher1