我今天第一次安装了cygwin,所以我很新。在安装过程中,我包含了rpm和rpmbuild,因为我需要这些来运行我的ant脚本。
但是,当我尝试从命令行运行任一程序时,无论我给出什么输入,我都没有得到任何响应:
$ rpm -qa
$
$ rpmbuild
$
当我尝试使用调用rpm的build.xml文件运行ant时,我得到类似这样的内容:
$ ant rpm
Buildfile: [mypath]/build.xml
rpm-prep:
...
[standard prep output]
...
rpm:
[copy] Copying 4116 files to [mypath]\.rpm\SOURCES\DataTransformation_UI-1.4.0
[copy] Copied 274 empty directories to 16 empty directories under [mypath]\.rpm\SOURCES\DataTransformation_UI-1.4.0
[tar] Building tar: [mypath]\.rpm\SOURCES\DataTransformation_UI-1.4.0.tar.gz
[copy] Copying 1 file to [mypath]\.rpm\SPECS
[rpm] Building the RPM based on the DataTransformation_UI.spec file
[rpm] '[cygwinpath]\cygwin\bin\rpmbuild.exe' failed with exit code -1073741819
BUILD SUCCESSFUL
Total time: 1 minute 30 seconds
这里,[mypath]是我的build.xml文件所在的本地路径,[cygwinpath]是我安装cygwin的地方。
如果您有兴趣,这是build.xml文件。对我来说看起来很标准,虽然我也没用多少:
<project name="DataTransformation_UI" basedir="." default="main">
<property file="${basedir}/build.properties" />
<property name="VERSION" value="3.0.0"/>
<!-- ============================ RPM Prep Target ======================== -->
<target name="rpm-prep" description="Set up the local RPM TopDir build environment">
<delete includeEmptyDirs="true" failonerror="false">
<fileset dir="${rpm.TopDir}/"/>
</delete>
<mkdir dir="${rpm.TopDir}/"/>
<mkdir dir="${rpm.TopDir}/BUILD"/>
<mkdir dir="${rpm.TopDir}/RPMS"/>
<mkdir dir="${rpm.TopDir}/SOURCES"/>
<mkdir dir="${rpm.TopDir}/SPECS"/>
<mkdir dir="${rpm.TopDir}/SRPMS"/>
</target>
<!-- ========================= RPM Build Target ======================== -->
<target name="rpm" depends="rpm-prep" description="Creates Tarball and Builds rpm.">
<copy todir="${rpm.TopDir}/SOURCES/${rpm.Name}-${rpm.Version}">
<fileset dir="./" casesensitive="no">
<include name="*.*"/>
<include name="**/*"/>
</fileset>
</copy>
<tar destfile="${rpm.TopDir}/SOURCES/${rpm.Name}-${rpm.Version}.tar.gz"
longfile="gnu" compression="gzip">
<tarfileset dir="${rpm.TopDir}/SOURCES/${rpm.Name}-${rpm.Version}" prefix="${rpm.Name}-${rpm.Version}">
<include name="**/**"/>
<include name="*.*"/>
</tarfileset>
</tar>
<delete includeEmptyDirs="true" failonerror="false">
<fileset dir="${rpm.TopDir}/SOURCES/${rpm.Name}-${rpm.Version}"/>
</delete>
<copy file="${basedir}/${rpm.Name}.spec" todir="${rpm.TopDir}/SPECS" />
<rpm specFile="${rpm.Name}.spec" topDir="${rpm.TopDir}" command="-ba --define 'rpmversion ${rpm.Version}' --define 'rpmrelease ${rpm.Release}${rpm.AutoRelease}'
--define 'webwarname ${rpm.Web.Warname}' --define 'rpmname ${rpm.Name}'"/>
</target>
</project>
关于我可能遗失的任何想法?
答案 0 :(得分:0)
这不是ANT问题,rpm任务只调用底层OS rpmbuild命令。
这看起来像是rpmbuild命令生成的内部错误。谷歌搜索发现以下链接,其中有一条评论报告同一问题。