Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux rpmbuild设置错误的文件所有权表示root:root(错误的所有者/组生成:用户)_Linux_Installation_Rpm_Rpmbuild - Fatal编程技术网

Linux rpmbuild设置错误的文件所有权表示root:root(错误的所有者/组生成:用户)

Linux rpmbuild设置错误的文件所有权表示root:root(错误的所有者/组生成:用户),linux,installation,rpm,rpmbuild,Linux,Installation,Rpm,Rpmbuild,我正在使用RPM在目标机器上创建一组文件和目录,每个文件和目录都有一组不同的file/dir权限。我已经创建了一个规范文件,它构建了这个RPM。 等级库文件如下所示: Name: testMultipleFiles Version: 1.0 Release: 2 Summary: Demo how to package multiple files Group: DCCA Deployment Licens

我正在使用RPM在目标机器上创建一组文件和目录,每个文件和目录都有一组不同的file/dir权限。我已经创建了一个规范文件,它构建了这个RPM。 等级库文件如下所示:

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)
这意味着,它将用户和组设置为root:root,而不是insite1:insite1

这是完整的构建日志

build@SLES11SP4-185:~/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
sf@suse.de: 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
build@SLES11SP4-185:~/rpmbuild/SPECS>rpmbuild-bb testmulti.spec
正在执行(%prep):/bin/sh-e/var/tmp/rpm-tmp.14760
+乌马斯克022
+cd/home/build/rpmbuild/build
+cd/home/build/rpmbuild/build
+rm-rf测试多文件-1.0
+/usr/bin/gzip-dc/home/build/rpmbuild/SOURCES/testMultipleFiles.tar.gz
+焦油-xf-
+状态=0
+“['0-ne 0']”
+cd TestMultipleFile-1.0
++/usr/bin/id-u
+ '[' 1001 = 0 ']'
++/usr/bin/id-u
+ '[' 1001 = 0 ']'
+/bin/chmod-rfa+rX、u+w、g-w、o-w。
+出口0
正在执行(%build):/bin/sh-e/var/tmp/rpm-tmp.14760
+乌马斯克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 TestMultipleFile-1.0
+出口0
正在执行(%install):/bin/sh-e/var/tmp/rpm-tmp.14760
+乌马斯克022
+cd/home/build/rpmbuild/build
+cd TestMultipleFile-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
+安装file1.sh/var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir1
+安装file2.sh/var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir2
+安装file3.sh/var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir3
+安装file4.sh/var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir4
+安装file5.sh/var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir5
+安装file6.sh/var/tmp/testMultipleFiles-1.0-build/opt/insiteone/dir6
+/usr/lib/rpm/brp-lib64-linux
sf@suse.de:如果您发现此脚本有问题,请给我留言
+RPM\u BUILD\u ROOT=/var/tmp/testMultipleFiles-1.0-BUILD
+导出RPM\u生成\u根目录
+测试-x/usr/sbin/Check-a1001=0-o-x/usr/sbin/Check-a'!'-z/var/tmp/testMultipleFiles-1.0-build
+回显“我呼叫/usr/sbin/Check…”
我打电话/usr/sbin/Check。。。
+/usr/sbin/Check
检查权限和所有权-使用权限文件
/tmp/Check.perms.gv6tJD
将/var/tmp/testMultipleFiles-1.0-build/设置为root:root 0755。(错误的所有者/组生成:用户)
将/var/tmp/testMultipleFiles-1.0-build/opt设置为root:root 0755。(错误的所有者/组生成:用户)
+/usr/lib/rpm/brp compress
+/usr/lib/rpm/brp符号链接
处理文件:testMultipleFiles-1.0-2
查找提供:/usr/lib/rpm/find提供testmultiplefile
查找需要:/usr/lib/rpm/find需要TestMultipleFile
查找补充:/usr/lib/rpm/find Supplements testmultiplefile
需要(interp):/bin/sh/bin/sh

需要(rpmlib):rpmlib(PayloadFilesHavePrefix)当您放入
%文件时:

/opt/insiteone/dir1/file1.sh
这意味着在rpm中只获取
file1.sh
。而defattr仅适用于该文件。当然,该文件附带了一些路径。因此,如果路径不存在,则创建该路径。使用当前用户(通常为root用户)

所以你要么说:

%files
/opt/insiteone/dir1
它将接受dir1和其中的所有内容(递归)。 或:


顺便说一句,正确的软件包应该检查用户和组“insite1”是否存在。当您放入
%文件时,可以使用此%pre代码段执行此操作:

/opt/insiteone/dir1/file1.sh
这意味着在rpm中只获取
file1.sh
。而defattr仅适用于该文件。当然,该文件附带了一些路径。因此,如果路径不存在,则创建该路径。使用当前用户(通常为root用户)

所以你要么说:

%files
/opt/insiteone/dir1
它将接受dir1和其中的所有内容(递归)。 或:


顺便说一句,正确的软件包应该检查用户和组“insite1”是否存在。您可以使用这个%pre代码段来实现这一点,感谢它部分解决了问题,
dir1
dir2
、和
dir3
现在与
insite1:insite1
一起安装,但在构建相同的错误时仍然出现:
设置/var/tmp/testMultipleFiles-1.0-build/到root:root 0755。(错误的所有者/组构建:用户)
感谢这部分解决了问题,
dir1
dir2
dir3
现在安装了
insite1:insite1
,但在构建时仍然会出现相同的错误:
将/var/tmp/testMultipleFiles-1.0-build/设置为root:root 0755。(错误的所有者/组生成:用户)