gpt4 book ai didi

linux - RPM + rpm 安装(不按照SPEC创建目录)

转载 作者:太空狗 更新时间:2023-10-29 12:07:26 24 4
gpt4 key购买 nike

我需要以下方面的建议

我构建简单的规范文件并构建 rpm

我将新的 rpm 传输到其他 Linux 机器以安装新的 rpm

根据规范文件,新的 rpm -> test.sh-6.2-2.i386.rpm 应该创建/tmp/MY_RPM_TESTS 目录,但此 rpm 不创建 MY_RPM_TESTS 和子目录请告知为什么,我需要在规范文件中修复什么?

RPM 安装:

   [root@linux1 rpm -Uvh  /root/rpmbuild/RPMS/i386/test.sh-6.2-2.i386.rpm
Preparing... ########################################### [100%]
This is preinstall script
Linux linux 2.6.18-164.2.1.el5PAE #1 SMP Mon Sep 21 04:45:05 EDT 2009 i686 i686 i386 GNU/Linux
1:test.sh ########################################### [100%]
Linux linux 2.6.18-164.2.1.el5PAE #1 SMP Mon Sep 21 04:45:05 EDT 2009 i686 i686 i386 GNU/Linux
Now we wait for sleep
100

[root@linux1 ls /tmp

preinstall_dir

我的 SPEC 文件:

  root@linux /usr/src/redhat/SPECS]# more my_spec.spec
Summary: An example tool. To show a simple rpm build of the tool.
Name: test.sh
Version: 6.2
Release: 2
Source0: /root/test.sh
Source1: /root/urim.sh
Group: Development/Debuggers
BuildRoot:/tmp/MY_RPM_TESTS
License: OtherLicense
%description


%pre -p /bin/ksh
print "This is preinstall script"
uname -a
rm -rf /tmp/preinstall_dir
mkdir /tmp/preinstall_dir

%install
rm -rf %{buildroot}

mkdir -p %{buildroot}
mkdir -p %{buildroot}/home
mkdir -p %{buildroot}/home/home1

cp %SOURCE0 %{buildroot}/home
cp %SOURCE0 %{buildroot}/home/home1

cp %SOURCE1 %{buildroot}/home

%files
/home/test.sh
/home/home1/test.sh
/home/urim.sh



%post -p /bin/ksh

uname -a
print "Now we wait for sleep" ; sleep 1
NUM=100
print $NUM

构建 rpm:

  [root@linux /usr/src/redhat/SPECS]# rpm -ba   /usr/src/redhat/SPECS/my_spec.spec
Executing(%install): /bin/sh -e /root/rpmbuild/tmp/rpm-tmp.83360
+ umask 022
+ cd /root/rpmbuild/BUILD
+ rm -rf /tmp/MY_RPM_TESTS
+ mkdir -p /tmp/MY_RPM_TESTS
+ mkdir -p /tmp/MY_RPM_TESTS/home
+ mkdir -p /tmp/MY_RPM_TESTS/home/home1
+ cp /root/rpmbuild/SOURCES/test.sh /tmp/MY_RPM_TESTS/home
+ cp /root/rpmbuild/SOURCES/test.sh /tmp/MY_RPM_TESTS/home/home1
+ cp /root/rpmbuild/SOURCES/urim.sh /tmp/MY_RPM_TESTS/home
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-strip
+ /usr/lib/rpm/brp-strip-static-archive
+ /usr/lib/rpm/brp-strip-comment-note
Processing files: test.sh-6.2-2
Requires(interp): /bin/ksh /bin/ksh
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib (PayloadFilesHavePrefix) <= 4.0-1
Requires(pre): /bin/ksh
Requires(post): /bin/ksh
Checking for unpackaged file(s): /usr/lib/rpm/check-files /tmp/MY_RPM_TESTS
Wrote: /root/rpmbuild/SRPMS/test.sh-6.2-2.src.rpm
Wrote: /root/rpmbuild/RPMS/i386/test.sh-6.2-2.i386.rpm

最佳答案

你误会了。 /tmp/MY_RPM_TESTS 是构建根目录, 创建的,但仅供 rpmbuild 临时和内部使用。它并不意味着是 rpm 文件的一部分,无论如何你都不应该尝试在 /tmp 中安装任何东西!/tmp 仅用于临时文件。

关于linux - RPM + rpm 安装(不按照SPEC创建目录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5694718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com