1
我想爲我的java代碼構建RPM.RPM構建和安裝部分工作正常。但是,後來我添加了一個shell腳本, post部分來運行shell腳本文件來創建一些文件並啓動java應用程序。文件被複製得很好。但是,在%post部分,我得到了失敗的依賴項bin/sh錯誤。我在linux機器和目標機器上構建了rpm是centOS.I也試過AutoReqProv:沒有在spec文件中。我沒有以root用戶的身份運行安裝程序。另外,目標機器不希望有ANT(iam使用它來構建java代碼 - 這可能是與問題無關)。我附上下面的代碼。安裝的默認位置在tmp文件夾中(用於測試)。安裝RPM時發生錯誤 - spec-failed依賴關係的%post腳本/ bin/sh
Summary: test Summary: test
Name: test
Version: 1
Release: 1
License: Restricted
Group: Applications/System
BuildRoot: ~/rpm/BUILD/helloworld-root
URL: http://mycompany.net/helloworld.tar
Vendor: Mycompany
Packager: Mycompany
Prefix: /tmp
BuildArchitectures: x86_64
%description
Hello World
%prep
pwd
%build
pwd
echo "changing directory"
echo $RPM_BUILD_ROOT
cd %{_sourcedir}
pwd
ant -f testbuild.xml
%install
pwd
echo "in install"
echo $RPM_BUILD_ROOT
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/tmp/test/
cd $RPM_BUILD_ROOT/tmp/test/
tar -xf %{_builddir}/test.tar
%post
sh /tmp/test/createdb.sh
%clean
%files
/tmp/test
%changelog
我還搜查谷歌,但找不到如何從spec.with運行shell腳本推翻後段,我曾嘗試通過命令行來運行它執行fine.I欣賞的幫助,如果有人能問題出在哪裏?
'AutReqProv:no' [可能是一個錯誤](http://www.rpm.org/max-rpm/s1-rpm-inside-tags.html#S3-RPM-INSIDE-AUTOREQPROV-TAG)。你能複製和粘貼實際的命令和錯誤信息嗎? – sarnold 2012-01-30 00:52:09
錯誤是相同的http://stackoverflow.com/questions/3959040/rpm-installation-fails-due-to-depencency-bin-sh-not-found.Except iam沒有登錄作爲根,我得到錯誤當我嘗試安裝rpm.Now IAM不使用AutReqProv時:不。上面介紹了我正在使用的SPEC文件。我的%post帖子是否正確? – keerthi 2012-01-30 01:22:33