关于bash:RPM生成错误:从/var/tmp/rpm-tmp.32XJLX(%install)退出的状态不正确

RPM build errors:Bad exit status from /var/tmp/rpm-tmp.32XJLX (%install)

我正在尝试在centos 6.5上创建一个简单的rpm软件包。但是我无法完成它,因为它给了我错误。.我已经关注了这两个线程。./ var / tmp / rpm-tmp的退出状态错误。 b1DgAt(%build)和/var/tmp/rpm-tmp.ajKra4(%prep)的错误退出状态..但没有运气...

我无法弄清楚我在这里缺少什么..请帮助我解决此问题。.

这是我的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Name:   test
Version: 1.0    
Release:    1%{?dist}
Summary: A test package

Group:      Testing
License:    GPL
URL:        http://www.yahoo.com
Source0:        test-1.0.tar.gz
BuildRoot:  %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

BuildRequires:  /bin/rm, /bin/mkdir, /bin/cp
Requires:   /bin/bash, /bin/date

%description
this is the test package build for rhche

%prep
%setup -q

%build
./configure
%install
rm -rf $RPM_BUILD_ROOT
make -p $RPM_BUILD_ROOT/usr/local/bin
cp myscriptdate $RPM_BUILD_ROOT/usr/local/bin

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%attr(0755,root,root)/usr/local/bin/myscriptdate

%changelog
* Thu Dec 09 2010 Forrest <forrest@redhat.com> 1.0-1
-Initial RPM
-Added /usr/local/bin/myscript

源目录为/ test1

1
2
3
4
5
6
7
8
[ara@catshit test1]$ pwd
/test1
[ara@catshit test1]$ ls -ls
total 12
4 drwxrwxrwx. 2 ara ara 4096 Dec  7 00:02 test-1.0
4 -rw-rw-r--. 1 ara ara  210 Dec  7 00:09 test-1.0.tar.gz
4 -rwxrwxrwx. 1 ara ara  742 Dec  7 00:17 test.spec
[ara@catshit test1]$

test-1.0被压缩为test-1.0.tar.gz。
在test-1.0内部,我有一个名为myscriptdate的脚本,该脚本具有以下简单代码。

'#!/ bin / bash

日期

当我尝试rpmbuild -ba test.spec时,它会给我

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Not a target:
.f:
#  Implicit rule search has not been done.
#  Modification time never checked.
#  File has not been updated.
#  commands to execute (built-in):
    $(LINK.f) $^ $(LOADLIBES) $(LDLIBS) -o $@

# Not a target:
.f.o:
#  Implicit rule search has not been done.
#  Modification time never checked.
#  File has not been updated.
#  commands to execute (built-in):
    $(COMPILE.f) $(OUTPUT_OPTION) $<

# files hash-table stats:
# Load=70/1024=7%, Rehash=0, Collisions=278/1660=17%
# VPATH Search Paths

# No `vpath' search paths.

# No general (`VPATH' variable) search path.

# # of strings in strcache: 0
# # of strcache buffers: 0
# strcache size: total = 0 / max = 0 / min = 4096 / avg = 0
# strcache free: total = 0 / max = 0 / min = 4096 / avg = 0

# Finished Make data base on Sun Dec  7 00:51:01 2014

error: Bad exit status from /var/tmp/rpm-tmp.ZFlmeu (%install)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.ZFlmeu (%install)

/var/tmp/rpm-tmp.ZFlmeu含量低于

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/sh

  RPM_SOURCE_DIR="/home/ara/rpmbuild/SOURCES"
  RPM_BUILD_DIR="/home/ara/rpmbuild/BUILD"
  RPM_OPT_FLAGS="-O2 -g"
  RPM_ARCH="x86_64"
  RPM_OS="linux"
  export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS
  RPM_DOC_DIR="/usr/share/doc"
  export RPM_DOC_DIR
  RPM_PACKAGE_NAME="test"
  RPM_PACKAGE_VERSION="1.0"
  RPM_PACKAGE_RELEASE="1.el6"
  export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
  LANG=C
  export LANG
  unset CDPATH DISPLAY ||:
  RPM_BUILD_ROOT="/home/ara/rpmbuild/BUILDROOT/test-1.0-1.el6.x86_64"
  export RPM_BUILD_ROOT

  PKG_CONFIG_PATH="/usr/lib64/pkgconfig:/usr/share/pkgconfig"
  export PKG_CONFIG_PATH

  set -x
  umask 022
  cd"/home/ara/rpmbuild/BUILD"
cd 'test-1.0'
rm -rf $RPM_BUILD_ROOT
make -p $RPM_BUILD_ROOT/usr/local/bin
cp myscriptdate $RPM_BUILD_ROOT/usr/local/bin





    /usr/lib/rpm/brp-compress
    /usr/lib/rpm/brp-strip
    /usr/lib/rpm/brp-strip-static-archive
    /usr/lib/rpm/brp-strip-comment-note


make -p $RPM_BUILD_ROOT/usr/local/bin行是您的问题。

虽然不是问题,但您几乎肯定不希望在该行上-p。因为它在编译期间对您没有任何帮助,并且您的rpm构建过程无需查看规则的make数据库。

真正的问题是,您告诉make您希望它构建$RPM_BUILD_ROOT/usr/local/bin目标,而make实际上知道如何构建它的可能性极小(因此导致make不能构建它并给您一个错误) )。删除-p将帮助您查看make吐出的实际错误,因为它也不会吐出规则数据库的内容。

我认为您的意思是mkdir -p。 (应该作为%{__mkdir_p}宏使用。)